The setting

  1. Big picture in three stages:

    $$

    \begin{array}{ccccc} \underset{\square}{\text{consensus}} & \longrightarrow & & \overbrace{\underset{▣}{\text{proofs}}}^\text{compute} & \longrightarrow &\overbrace{\underset{\blacksquare}{\text{state update}}}^{\text{L1 interaction}}\\ _{\text{(sequencers)}} & & & {\text{(provers)}} & &{\text{(open?)}} \end{array} $$

  2. Today’s focus is proofs and state updates.

  3. For today, consensus is a black box that outputs two things:

    1. Outputs L2 ledger
    2. Periodically outputs L1 checkpoints containing:
      1. Block hash
      2. State commitment to block execution
      3. 📝 Quorum certificate
  4. L1 checkpoint registry contract maintains a single chain of checkpoints.

  5. L1 state updates require proofs between checkpoints: if there’s a chain

    $$ ☑︎\to \square \to \cdots \to\square \to ☑︎ $$

    then one can end proof at a block which is continued by a checkpoint:

    $$ \red{☑︎}\to \square \to \cdots \to\red{\square} \to \cdots \to\square \to ☑︎ $$

Today’s focus

  1. Proof production

    1. Division of labor — what are the proving jobs?
    2. Designation of labor — who performs each job?

  2. Proof price discovery

    <aside> ⚠️ You may assume separation between sequencer resource and prover resource.

    </aside>

    1. User fee calculation problem?

    2. How to get high responsiveness?

      Suppose we use 1559 for prover resource pricing. If tx prover fees are too low for the provers, the protocol will be slow to discover this, because the problematic txs may be checkpointed on L1 and then wait to become reverted.

  3. L1 state update

    No computation.

    1. Can we make it into an open race?
    2. Is designation of labor enforced? (Accept proofs given by undesignated party?)
    3. Other?
  4. Reward issuance — is designation of labor enforced? (e.g in a competition, do only winners get rewards? are there consolations?)

Example

Open race + incentivized turn-based redundancy. Proofs propagated off-chain and off-ledger.

  1. Proof production
    1. Division — free heaviest tree (provers continue the heaviest tree however they want; atoms = {block, binary block merge})
    2. Designation — open race + turn-based redundancy
  2. Price discovery — 1559 + L1 signal fallback
    1. 1559 on L2
    2. Prover network can signal desire for price increase through L1 based on reputation (specifically, historically active provers can flag)
  3. L1 state update — open race with turn-based fallback after 5 idle hours
  4. Reward issuance — whatever is submitted to L1 first + turn-based if proof of same transition (not necessarily same proof) supplied <1 hour after state update