pywdr - building zk-VMs in Python! Infrastructure User Experience

The problem pywdr solves

zk-VMs are among the most complex zero-knowledge circuits in deployment. powdr is a tool that greatly simplifies implementing zk-VMs by providing a powerful DSL. Our project, pywdr, achieves the same, but utilizing the Python programming language.

pywdr amplifies the benefits of powdr: There is no need to learn a new programming language for both the programmer and the auditor. Furthermore, pywdr itself is implemented in a fraction of the lines of code compared to powdr, making it easier to maintain, extend, and audit.

Challenges you ran into

The complexities of writing parsers (for the assembly program), subtle bugs in the zk-constraints (causing witness generation to fail), and incorrect suggestions by ChatGPT.

Technology used

  • powdr: We use powdr to process a small subset of its low-level PIL language. This gives us witness generation and proof generation ­čÄë
  • powdr-py: An earlier hackathon project by one team member, implementing the basic mechanisms to generate constraints and connect to the powdr stack.