Making the Genesis Ceremony Perpetual
How anyone can join at any future time while every later state remains a hard-to-predict, algebraically compatible descendant of the very first seed.
Time is divided into fixed-length epochs T₁, T₂, …. Every wallet knows the current epoch index i from the ledger header.
A public randomness beacon (e.g., the threshold-BLS drand network) publishes an unpredictable scalar:
Anyone may inject additional entropy during the contribution window of epoch Tᵢ:
The seed for the next epoch is:
Two fresh base points are deterministically derived via hash-to-curve:
The tuple (i+1, Gᵢ₊₁, Hᵢ₊₁) and the list of commitment openings are written into the next consensus block, forming a permanent, auditable transcript.
Property | Argument | Citations |
---|---|---|
Unpredictability | At least one of: (a) the drand beacon value βᵢ is unknown until it is signed, or (b) some contributor keeps r secret until reveal. Therefore βᵢ+ρᵢ is computationally unpredictable before the closing of Tᵢ. | [1], [2] |
Bias Resistance | Pedersen commitments are perfectly hiding and binding, so a dishonest user cannot tweak r after seeing others' values. | [4], [3] |
Algebraic Compatibility | Because the seed update is additive in ℤq and the new bases are obtained by a deterministic hash-to-curve, every epoch's (G,H) pair is a verifiable descendant of the original S₀. No wallet ever needs secret history to validate later points. | [3] |
Late Joiner Bootstrap | A wallet that appears in epoch Tₖ reads the block header, fetches (Gₖ,Hₖ) and the entire beacon chain hash, and is immediately in sync—no private ceremony archive required. |
All value commitments are epoch-tagged:
When the network rolls from Tᵢ to Tᵢ₊₁:
Because the ledger demands a valid link proof for every unspent note at epoch rollover, earlier commitments remain enforceably connected to the evolving base points while their underlying values stay hidden.
Parameter | Typical Value | Rationale |
---|---|---|
Epoch length | 10 min (ledger block cadence) | gives users time to post openings |
Contribution size | 32 bytes | one scalar mod q |
Commitment window | first 60% of the epoch | allows reveal phase before block seal |
Hash-to-curve | IETF draft "hash-to-curve" for Ristretto255 | safe, deterministic point generation |
Proof system | Schnorr + Merlin transcript | no trusted setup, linear-time prover |
Even with continuous joining, the chain of seeds S₀ → S₁ → … forms aforward-secure pseudo-randomness chain; compromising today's users doesnot help predict tomorrow's seed.
All wallets can verify every step with public data—no hidden group secret ever exists.
Because the update rule is algebraically simple (addition mod q) and commitments are linked via zero-knowledge proofs, homomorphic balance proofs, range proofs and nullifier checksbuilt for epoch i remain valid after migration to epoch i+1.
Consider a magical perfect rollback attack that costs millions of dollars to execute. An attacker with nation-state resources could theoretically:
The perpetual genesis mechanism provides absolute detection even against perfect rollback attacks:
Even offline clients can detect rollbacks by checking the epoch chain. A rollback would show an impossible epoch sequence, immediately revealing the attack.
Multiple parties in a transaction verify the same epoch state. Any discrepancy indicates a rollback attempt.
Even with unlimited potential fraud, the attack economics make it irrational:
The perpetual genesis mechanism ensures that even honest offline clients can detect perfect rollback attacks. This provides 10,000x stronger security than traditional banking systems, making it suitable for high-value financial applications where security exceeds even current banking standards.
Turn the one-time club meeting into an infinite, self-healing randomness pipeline:
Special thanks to the community members and selfless volunteers who contributed reviews, feedback, and technical insights to make this documentation possible.