Background

Design Statement

The Preconfirmation Registry is a L1 smart contract that is the canonical way for proposers to post collateral to become preconfers. This document describes how the Registry can be implemented for the EthCC 7 preconf devnet, and is a simplification of a final spec.

Design Principles

Credible Neutrality: Pure ****ETH collateral is used to register, additional collateral is not represented in the registry, but might exist other places

Permissionless Operation: It is completely permissionless to register with the Registry.

Capital Efficiency: Where possible, choose designs that maintain capital efficiency.

Design Requirements

Registration: Registrants can register to the contract by submitting some nonzero amount of raw ETH.

Withdrawals: The Registrant can withdraw ETH to an address after a delay has passed.

Delegation: A ****Registrant can delegate to any number of Proposers who then have access to the Registrant’s collateral. After delegating once, a Registrantcannot undelegate, but may delegate to additional Proposers.

Penalties: If a Proposer ****signs a commitment to honor some penalty conditions, but doesn’t, they will be penalized for this fault. Penalty conditions are represented with EVM bytecode. Penalties are represented by the Penalty object, which is returned by executing the penalty conditions bytecode.

Leader Election: The Registry uses the Ethereum lookahead to determine the next Proposer who has at least MINIMUM_COLLATERAL effective collateral balance, and provides a method for retrieving this Proposer. If no eligible Proposer is present in the lookahead, this method returns the 0 address.

Exiting: If a Registrant would like to withdraw collateral, they can initiate a withdrawal that will occur after a cooldown period of 32 blocks. 32 blocks is arbitrarily set to the maximum Ethereum proposer lookahead length, to increase stabilization of the leader election.

Configuration: The MINIMUM_COLLATERAL parameter can be set by the deployer during construction.