This doc is deprecated, but includes notes and consideration on implementation details that are still useful. see Draft: Permissionless Channel Sequencer
A stake-lottery channel sequencer: a drop-in sibling of the existing round-robin sequencer. Instead of a fixed roster of accredited keys taking turns, anyone who stakes a note can win the right to write the next message to a channel, via a transparent per-slot lottery
accredited_keys —
someone has to gatekeep that roster.CHANNEL_LOTTERY_CONFIG op.CHANNEL_STAKE op binds a note (UTXO) → an
Ed25519 posting key in a per-channel registry. Tokens are not locked — they
stay spendable.= Poseidon2(CHAN_LEAD_V1, epoch_nonce, slot, channel_id, note_id) and wins iff
ticket < threshold, where threshold is stake-weighted (φ_approx over the
channel’s staked total); Cryptarchia’s block-production math, minus the secret.LotteryWin proof (note_id + a
signature). Validators recompute the same ticket and accept iff it wins — no
prover needed (transparent lottery), and every L1 node checks it identically.effective_from)[as a grinding defense] and the note must still be unspent at
post time (liveness check).posting_timeout slots until someone wins — the permissionless analogue of
round-robin’s timeout takeover.(epoch, nonce) from GET /epoch/beacon,
computes its own wins locally, and posts when it wins — a normal client with no
special privileges.The rest of this doc is the deep dive — each design axis, the decision we made, the alternatives, and why.
*marks a change from today’s round-robin implementation.