We are delighted to announce that we’re publishing the initial package of documentation about the architecture of the zkEVM project, which we’re calling Polygon Hermez 2.0.
In this blog post, you’ll find a summary of the initial public documentation set, which will grow as we create it.
You can also read the documentation here, if you want to delve deeper into it. Let’s jump right in!
Introducing the Architecture
One of the biggest challenges of developing a zkEVM with full opcode compatibility has been representing some computation as a state machine, and then translating it into a polynomial representation.
To better understand this, the docs start with a classical example: the Fibonacci State Machine.
In this section of the documentation, we provide the intuition on how the polynomials can be used to verify the Fibonacci sequence computation.
A Simple State Machine
Following this idea, we have developed a second example, a Simple State Machine that contains the design of a set of assembly instructions, all the necessary flags and values to perform the validation of the computations and a representation of these computations as a table.
You can check the full mathematical model here, but long story short, we can prove different executions for different initial conditions for the same “program.”
In other words, the trace being executed is an execution of the actual program if the instruction trace is contained in the ROM of the program.
A Novel Modular Design
In this section, we provide an introduction about how we are designing our zkEVM by creating modules that are connected using the Plookup protocol.
Taking our main state machine as reference, and the overall design is the following one:
Using Plookup as a bus to connect our main state machine to the other specific state machines allows us to design in a modular way a virtual state machine that can be verified with zero-knowledge technology.
You can check the full details of this section here.
The zkEVM Development Continues
As explained before, the Polygon Hermez team believes that the compatibility that the OPCODE-based approach provides is the best solution to bring scalability to Ethereum. Efficiency should be similar to a compiler-based scaling approach, but with the advantage of inheriting Ethereum’s security model.
Even more importantly, the zkEVM will be fully compatible with all infrastructure, as the specifications of the EVM are very well defined.
The description of the Simple State Machine and its Novel Modular Design are great introductory examples of the zkEVM technology, but there’s much more coming.
The development of the zkEVM prover is advancing according to the plan, and we have an initial operational version that includes an initial set of state machines. More on this very soon!
That’s all for now!
You can ask us any questions about the new documentation on Discord. You can also follow us on Twitter and Telegram for future updates.