ADR-0002: Proof system: interactive bisection now, validity prover second, never alone

Invalid roots are made unfinalizable by an interactive fraud proof: log₂(steps) bisection rounds narrowing to one instruction, verified in a single Solana transaction. A ZK validity prover is added later as a…

Status: accepted. Dated 2026-08-13.

Status: accepted (2026-08-13) · Prompt: §5 D2, §6 C7

Decision

Invalid roots are made unfinalizable by an interactive fraud proof: log₂(steps) bisection rounds narrowing to one instruction, verified in a single Solana transaction. A ZK validity prover is added later as a second independent gate (multi-prover), not a replacement.

Rejected

  • Whole-batch re-execution on L1 — does not fit any per-transaction compute budget; not a design.
  • Single validity prover as sole gate — a soundness bug is silent and total.
  • Trusted operator only — acceptable to state during Stage 0, unacceptable to design for.

Load-bearing feasibility claim

The one-step verifier fits one Solana transaction (compute + size). This is proven by arithmetic in Step 9 before any mainnet claim ⟨VERIFY against target Agave release⟩.

Reversal trigger

If one-step verification cannot fit L1 budgets for the chosen VM encoding, the execution encoding changes — not the honesty of the window.