Name | Verification status | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
zkSyncEraVerifier | Not verified Verification was not performed for this verifier. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verifier 0xdd9C…7Ed2Last used TodayDescription
| Description
|
zkSync Era utilizes Boojum as the main proving stack for their system. Boojum is an implementation of the Redshift protocol which uses the Plonk IOP with a polynomial commitment scheme based on List Polynomial Commitments (LPCs), which is in turn based on FRI, making the scheme transparent. The scheme makes use of the Goldilocks field, which is much smaller than alt_bn128’s field.
The protocol makes use of recursive proof aggregation via 15 recursive circuits. At the moment of writing, there is no detailed documentation on the aggregation architecture. State diffs are published in compressed form on L1.
The final proof is wrapped into a Plonk+KZG proof for cheap verification. The CRS used is the one generated by Aztec ceremony with 176 participations. The instructions to regenerate the verification keys can be found here, with a documentation on their usage here.
Solidity contracts are compiled into Yul using solc
and compiled again using zksolc
to target a LLVM, which is then used to target the EraVM. The ISA spec of the EraVM can be found here. The differences between the zkEVM and the EVM are listed here. The source code of the circuits can be found here.
Tool name | Version | Tool docs |
---|---|---|
Custom tool | v14.2.0 | More informationMore info |