Let’s build an EVM-compatible Sovereign Zone on Nomos!
This will help us put all the pieces together and feel for ourselves how it is like to build on Nomos. Also it will be fun.
The idea would be to get the team together at the offsite and play around, but we need to be ready for a smooth experience! For this reason, we will prepare all supporting tools before that, by building a simple reth-based zone without any proof or additional guarantee. At the offsite we will have a little hackathon to plug in a zk proving system and play around with applications, experimenting with what can be done.
Organizational
-
[x] Finalize options that will be explored during the offsite @Giacomo Pasini
Goal: We have a list of 2 options and the tentative groups that will work on those
The options we will explore are:
-
Reth on a risc-v zkVM (risc0, sp1) (@Giacomo Pasini)
-
zkSync (@Antonio)
We’re going to split and lead the different options. Groups can be formed even later as preparation does not depend on that and can take into account personal preferences.
- [ ] Prepare offsite presentation @Giacomo Pasini
Goal: give team members a bit of introduction before starting the hackathon
Node Integration / Infra
- [ ] Ensure DA interface is ready and can be used by sequencers and external users @Giacomo Pasini
- [ ] Document the current DA api
- [ ] Inform discussion for the next version of the API
- [ ] Ensure everybody has access to the testnet for the offsite @Gusto Bacvinka
- [x] Request VMs (by April 11, 2025, earlier the better) @Antonio
- [ ] Set up VMs @Antonio
Sovereign Zone Integration
- [ ] Get a working EVM-compatible zone without proofs
Goal: We have all the necessary pieces in place to run a EVM-compatible SZ off of Nomos, including clients, but without proving anything. This will ensure that there are no missing pieces by the offsite. In itself, this could be considered a pessimistic SZ.
- [ ] Wallet Support @Antonio
Goal: we can use existing wallets to interact with this SZ
- [x] Evaluate usable EVM-compatible wallets
- Metamask and Rabby are compatible with the provided interface
- [ ] Implement required JSON-RPC interface for the chosen wallet(s)
- [ ] Sequencer
Goal: the logic to execute transactions, build blocks, and publish data to nomos DA
- [x] Extract execution env / state management components from reth
- [ ] Implement block building / transaction batching (ideally, we don’t need to build a full block with consensus headers)
- [x] Deploy toy ERC20 contract and ensure it can be interacted with
- [ ] Integrate with Nomos DA
- [ ] Add mempool for managing incoming txs
- [ ] Bundle a binary with necessary services
Goal: we can interact with a node using a wallet to send a transaction and observe its outcome. Enough data to reconstruct the zone state is periodically pushed to Nomos DA
- [x] Deeper dive into zksync to ensure there are no blockers @Antonio
- Wrote down some personal considerations about this part of the offsite: ‣
- I also forked the zksync-era repo into our org: https://github.com/logos-co/zksync-era. Link is also present in the considerations document above.
Offsite presentation
What is a rollup?
A rollup is primarily a scaling solution concept used in many blockchains, particularly Ethereum. Its main goal is to improve transaction throughput and lower transaction costs while inheriting security from the base (layer-1) blockchain.
Tipically, rollups operate in the following fashion: