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.
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.
Registration: Registrant
s 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 Proposer
s who then have access to the Registrant
’s collateral. After delegating once, a Registrant
cannot undelegate, but may delegate to additional Proposer
s.
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.