This repository contains documentation material about the different aspects of the Polygon zkEVM. In particular, this repository contains three types of materials: (A) system description slides, (B) system description documents (that we also name as our knowledge layer) and finally, (C) technical specification documents.
Materials in this repo are being continuously reviewed and updated.
- Concepts: Here you can find slides about some concepts that are recommended to understand the zkEVM.
- Proving System Principles: Here you can find the first part of the zkEVM architecture slides that present the basic principles of the proving system used by the zkEVM.
- Sequencing and Proving: Here you can find the second part of the zkEVM architecture slides that presents the two main processes in the zkEVM: the sequencing and the proving.
- Layer Communications: Here you can find the third part of the zkEVM architecture slides that shows how the different layers exchange information in the zkEVM architecture.
- Exchanging Assets and Messages: Here you can find the fourth part of the zkEVM architecture slides that shows how we use the layer exchange to transfer assets and messages between layers.
- uLXLY: Here you can find the fifth part of the zkEVM architecture slides that explains the unified LXLY.
- Economics: Here you can find the sixth part of the zkEVM architecture slides that explains the economic aspects of the zkEVM.
-
Concepts:
-
Architecture:
-
Proving System Principles:
-
Sequencing and Proving:
-
Communication Between Layers:
-
uLXLY:
-
Economics:
-
Specs:
Currently there are the following documents (the order is valid for linear reading):
- MulMod Opcode: This document describes the implementation of the mulmod opcode.
- eSTARK: This paper describes eAIR, a set of constraints and its proving system.
- PIL: This document describes the Polynomial Identity Language (PIL), which is a novel domain-specific language useful for defining eAIR constraints.
- Proof Recurssion: This document specifies how the polygon zkEVM is proven using recursion, agregation and composition. The constraints of the zkEVM are specified as polynomial identities using the PIL language. Then, an execution trace can be proven using the PIL specification for building a STARK that is proved with the FRI protocol. The problem is that STARKs generate big proofs. This document describes how to use recursion together with composition to shorten the proof size.