project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5 allows for any ERC20 to be used to validate, simultaneously, any or all on-chain trust networks. Our mechanism is original, secure, and composable, and we use it to decentralize OP's sequencer and pioneer optimistic L3s on Polygon's zkEVM, Scroll, and Gnosis Chain.

Created At

Scaling Ethereum 2023

Winner of


🥈 Optimism — Hack the Stack


🏊‍♀️ UMA & Across — Pool Prize


📜 Scroll — Just Deploy!

Project Description

The mechanism fundamentally extends the ERC20 standard by allowing users to subscribe to external modules, giving the module, which can be any arbitrary logic, the right to slash their token balance. When a user gives modules this right, we say that the user has restaked into that module. The module would ask for some task to be performed and reward the users for doing so according to some protocol rules or punish or slash them for displaying undesirable behavior. There's no arbitrary limit for the number of modules that could use a stake, but to prevent modules from becoming 'undercollateralized', we designed a locking mechanism. For example in the case of an optimistic oracle, a validator answering a request could use restaking for the bond. During the challenge window, if someone disputes their answer, the protocol would 'lock' their stake until the dispute is resolved, preventing other modules from slashing the stake while the dispute hasn't been resolved and blocking the user from withdrawing the stake. Opposite to this scenario, as long as nobody disputes the validator's answer, the validator can reuse the same stake for as many bonds as they wish. The infrastructure is built around composability, so the space for mechanisms is wide and largely open. For more details, you can check out our Swimlanes diagrams, which specifically include the restaking flow for an optimistic oracle and the possible interactions between multiple simultaneously restaking modules.

How it's Made

We hacked the OP stack 1) to allow for out-of-the-block deployment of the chain into any existing, live blockchain, redesigning the bedrock-devnet Docker setup to work with an external L1-RPC 2) to allow it to connect to arbitrary proof of stake system 3) to include a cryptoeconomic dispute resolution process based on UMA, allowing anyone to challenge and determine the validity of an L2 output root through that protocol, providing the first decentralized fault proof system for the OP stack (Cannon has not been implemented for Bedrock nor has any other mechanism of its kind yet). We also located, but didn't finish implementing, the changes for the OP stack's gossip layer to operate with an arbitrary number and changing set of sequencers. Along the way, we improved the default implementation of the OP stack -- we plan to make pull requests after the hackathon. Beyond this, we created a Webapp using React, TailwindCSS, DaisyUI. Vercel, and Wagmi that connects directly to our smart contracts. The contracts include our staking system, which we built from scratch and include the extension for the ERC20, a controller (with a module directory), and a number of modules, which include the Optimistic L2 module that decentralizes the sequencer and powers the L3s. As part of that module, we also implemented from scratch a Proof of Stake system that uses the new OPCODE block.prevrandao. It's also worth pointing out that we created all the mechanisms from scratch, which while they were inspired in Eigenlayer's work are fundamentally different in their focus. While restaking in the former's case is limited to Ethereum's consensus layer, our implementation is built around extending on-chain tokens, which we believe open up the door to novel applications and more capital efficiency. It's worth pointing out that this is likely to be the end-game solution to power stake-based systems like OP's proposed 'Superchain' and as well as L3s.

background image mobile

Join the mailing list

Get the latest news and updates