You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The verifiers backing mainnet come from a single-coordinator, 3-machine Groth16 phase-2 ceremony (drand quicknet round 30261477) — see docs/ceremony/transcript.md and the build: "ceremony" marker in contracts/scripts/ceremony/ceremony-marker.json. Both the transcript and README state plainly this is not a substitute for an open multi-party ceremony with independent external participants; its soundness rests on the honest-machine assumption plus the unbiasable beacon. Closing that gap is the honest next step for a mainnet holding real value. (The completed single-coordinator run is #121; this issue supersedes its trust model, it does not reopen it.)
Scope
Design an open ceremony: participant recruitment/onboarding, contribution coordinator, attestation collection, and a final public beacon.
Reuse scripts/ceremony/run-ceremony.ts; extend it for external contributions + a public contribution feed.
Regenerate the five verifiers + browser proving keys (packages/config/public/circuits/*) from the new final zkeys; keep on-chain verifier and in-browser .zkey byte-identical (same sha256), as today.
Republish docs/ceremony/transcript.md, bump ceremony-marker.json, and plan the verifier redeploy/upgrade path — note the deploy:mainnet guardrail asserts the ceremony marker (guardrail Build wallet export, import, and local account deletion #4 / ceremony_build_required).
Acceptance criteria
A ceremony plan (participants, tooling, beacon, verification instructions) reviewed and agreed.
A Fuji/testnet dry-run regenerating verifiers end-to-end with the new tooling.
A defined path to swap mainnet verifiers to the open-ceremony build (redeploy vs upgrade) with the guardrail marker updated.
Dependencies
Verifier swap coordinates with the Ownable admin-custody transfer and the external-audit timing.
Tracker: #154
Context
The verifiers backing mainnet come from a single-coordinator, 3-machine Groth16 phase-2 ceremony (drand quicknet round 30261477) — see
docs/ceremony/transcript.mdand thebuild: "ceremony"marker incontracts/scripts/ceremony/ceremony-marker.json. Both the transcript and README state plainly this is not a substitute for an open multi-party ceremony with independent external participants; its soundness rests on the honest-machine assumption plus the unbiasable beacon. Closing that gap is the honest next step for a mainnet holding real value. (The completed single-coordinator run is #121; this issue supersedes its trust model, it does not reopen it.)Scope
scripts/ceremony/run-ceremony.ts; extend it for external contributions + a public contribution feed.packages/config/public/circuits/*) from the new final zkeys; keep on-chain verifier and in-browser.zkeybyte-identical (same sha256), as today.docs/ceremony/transcript.md, bumpceremony-marker.json, and plan the verifier redeploy/upgrade path — note thedeploy:mainnetguardrail asserts the ceremony marker (guardrail Build wallet export, import, and local account deletion #4 /ceremony_build_required).Acceptance criteria
Dependencies
Ownableadmin-custody transfer and the external-audit timing.