An L1 contract that allows anyone to submit valid L2 blocks. crLists may be submitted on L1.
Blocks are built by L1 searchers/builders from a mempool.
crLists are transaction lists required for inclusion in a future block. They may be compressed, e.g.
[[to, sig], [nullifier, proof], [nullifier, proof]] -> compress([[[to], [nullifier], [nullifier], proof]])
Fees for crLists may be calculated to target a minimum block production rate.
Network risk is minimized compared to alternatives (liveness, censorship, escape-hatch - all inherited from L1). MEV moves to L1.
This solution is simple enough to be feasible within 6 months.
crList griefing might require an inclusion delay.
crList pricing is an open question.
https://ethresear.ch/t/based-rollups-superpowers-from-l1-sequencing/15016 https://notes.ethereum.org/@fradamt/forward-inclusion-lists https://vitalik.ca/general/2022/09/17/layer_3.html
Improve txn confirmation times and reduce redundant prover work.
An L1 contract accepts Bundles and StateTransitions, which are produced by L1 searchers/builders.
Bundles are zk-aggregated txn-lists
compress([[to,bundle_fee], [nullifier,...], [...]], bundler, proof]]]).
StateTransitions are L2 state transitions/proofs, for 1 or more L2 blocks, whose contents are the Bundles on L1.
Bundles pay a base-fee per-tx for inclusion.
The base-fee targets a desired StateTransition-block-rate (using L1 basefee, contract gas, and previous rate).
Snowy: Decentralized Order-flow
A mempool that propagates stealable recursive-bundles rather than individual transactions.
Inspired by Avalanche.
Nodes gossip valid Bundles of increasing size. Non-overlapping Bundles can be merged to include a tx:
[non-overlapping bundle] [non-overlapping bundle] [tx] -> [bundle]
These bundles are stealable (pay L2 fees to the L1 builder).
Inspired by no training wheels, allow provably buggy code to trigger an exit.
If any of
- a StateTransition has not been produced in >= 7 days (stuck)
- someone submits two distinct proofs for the same data
- someone shows a disagreement with an second state-transition implementation
- L1 sequencing halts
- run an open L1 validator vote to select a new unilateral block sequencer
- limit long-term chain functionality (e.g. an increasing fee-bomb)
If the chain is stuck, the vote includes the option to revert the last StateTransition.
Time to finality increases from L1-Bundle to 2x L1-StateTrasition, in cases where it’s possible to halt the chain.
Reverting a StateTransition may cause the contract to become insolvent on L1.
Like with prediction-market settlement, default selection could be centralized, and capital-challenged into an L1 vote.
Hey, thanks so much for submitting this proposal for the sequencer selection RFP!
After all proposals were collected, our team evaluated each individual submission against our design priorities - decentralization, liveness, censorship resistance, and privacy - and we’ve gone with two finalist candidates: B52 and Fernet.
Still, we want to thank you for taking the time to participate in the ongoing decentralization of Aztec. We very much appreciate your contribution.
We’d like to offer you a retroactive grant of $500 for submitting your proposal. If you’re interested in collecting the grant, please check your messages from the account that you posted this original proposal from. You will have received a message from our team with some directions for next steps!
If you’re not interested in collecting the grant, let us know and we will donate the funding to Protocol Guild to support the ongoing funding of the Ethereum client teams. Thanks again for participating, and we hope to see you participate again in a future proposal (like the Upgrade Proposal RFP we have just announced).
Just circling back to say that the retroactive grant has now been paid – I’ve shared the tx confirmation directly in DMs.