Components
Keyper Set
The keyper set is a threshold-committee consisting of at least 20 members. During a setup phase, the keyper set generates the eon public key and broadcasts it. This key will be used by users to encrypt payloads. After each block produced by the sequencer, the keyper set generates a decryption key that can be used to decrypt these payloads.
It is assumed that at least a certain number of keypers β the threshold β is online and behaves honestly. If not, they can produce decryption keys before the corresponding block has been produced and use this advance knowledge to frontrun in collusion with the sequencer.
Sequencer
The job of Optimismβs sequencer is to receive transactions from users, build blocks, broadcast them, and submit them to L1. In addition to that, this proposal requires them to listen on a P2P network for decryption keys from the keypers and produce blocks with slightly altered rules.
System Contracts
The system relies on a small suite of smart contracts deployed on L2:
- The Keyper Set Contract: Manages the set of keypers.
- The Key Broadcast Contract: Acts as a billboard on which keypers can publish the eon public key.
- Shutter Inbox Contract: Collects encrypted payloads and metadata submitted by users in the form of Commit Transactions.
Client Library
This frontend library provides functions for Dapps to easily
- retrieve the eon public key from the Key Broadcast Contract,
- create and encrypt payloads,
- submit them to the Shutter Inbox Contract via Commit Transactions, and
- be notified when they are included as well as decrypted and executed.
Diagram of the different components making up the Shutterized Optimism System. Arrows indicate the data flow starting with the user submitting a plaintext as well as an encrypted transaction and ending with it being executed on the chain. Numbered text over arrows describe successive steps in the block building process. (high res)