Introduction
The zkEVM has become a very popular topic over the last 2 years. It has arguably become the gold standard technology for scaling Ethereum -- not only through layer 2, but also through layer 1 directly -- "snark Ethereum itself for the end game". We have been pushing forward this ambitious dream together with the Privacy and Scaling Exploration team since the beginning, and have committed to keep co-building it in the future.
In this article, I want to share some of the lessons we have learned while building the zkEVM, and how we've been thinking of different trade-offs along the way. We're taking a different approach than other projects in the ecosystem, and this places us in a unique position.
Develop through a community-driven approach
Scroll is fundamentally enabled by open-source. We are using the proving stack from Zcash and have been co-building zkEVM circuits with the PSE team from day one. We appreciate the community effort and all the tooling being built. In that spirit, one important mindset we have is to give back as much as we can and continue building with the community in a more open and collaborative way. This sets our ethos apart from other projects. More specifically, we have done the following things to make the development of Scroll become community-oriented:
Public education for a broad audience. To help people understand our architecture, we have given multiple talks and hosted events globally. You can find us at Devconnect, SBC, Devcon, etc. For students who wants to learn deeper, we have given lectures at 0xPARC about our proving stack as well as presentations at Stanford and Berkeley about our research. For auditors, we have hosted special auditor sessions about our codebase. We also frequently create educational resources for the general zk and Ethereum communities - we host a weekly applied zk research series, and share technical posts about zk tech and Ethereum.
Develop with the community. Our zkEVM has been developed through a fully community-driven approach from day one. In addition to our team and the PSE team, there are multiple community members contributing to different parts of the zkEVM (e.g. many opcode circuits have been implemented in parallel by different community members, and amazing optimizations have been made to both the keccak circuit and snark-verifier). We also lead a bi-weekly community call to improve the underlying proving stack. Amazing progress has already been made - for example, Goldilocks and FRI are now supported in Halo2. A strong foundation through community effort enables shared security and shared auditing!