From a7fa601e9743cf6ebc170071234bab3a3967ed8f Mon Sep 17 00:00:00 2001 From: Aere Network Date: Mon, 28 Sep 2026 01:15:22 +0300 Subject: [PATCH] docs: the anchor cadence is every 128th block from 17,225,968 (2026-09-05), not every 32nd; the minimum is six of each scheme, of ten validators since 2026-09-11; fork depth bound and checkpoint period restated for 128 --- AUDITS.md | 6 ++++-- README.md | 2 +- RUN-A-NODE.md | 10 ++++++---- SECURITY.md | 6 ++++-- SPEC.md | 8 +++++--- anchor/README.md | 7 ++++--- 6 files changed, 24 insertions(+), 15 deletions(-) diff --git a/AUDITS.md b/AUDITS.md index 09307bc..db8360e 100644 --- a/AUDITS.md +++ b/AUDITS.md @@ -38,8 +38,10 @@ findings we chose not to fix and why. ## Verify the chain yourself, without trusting us The post-quantum anchor is designed so you do not have to take our word for it: from block -13,014,000, every 32nd block carries a Falcon-512 certificate, and the block hash covers it. From -block 14,961,456 that certificate requires at least six valid seals out of nine. The verifier is +13,014,000 every 32nd block, and from block 17,225,968 every 128th, carries a post-quantum certificate +(Falcon-512, and from block 17,047,600 also SLH-DSA-SHA2-128s), and the block hash covers it. From +block 14,961,456 that certificate requires at least six valid seals of each scheme (six of nine +validators then, six of ten since 2026-09-11). The verifier is public, the signatures are in the headers, and the check runs against any node — ours or your own. ## Reporting a vulnerability diff --git a/README.md b/README.md index 71579f2..1497b18 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ consensus post-quantum, and nothing in the precompile patches touches consensus. Consensus on chain 2800 is **hybrid post-quantum in a precise and limited sense**, by a separate mechanism: the QBFT header anchor in `anchor/` and `patches/0003`. Since 2026-08-14 every -32nd block (an anchor block) must carry, under its block hash, a certificate of valid post-quantum +32nd block (an anchor block; every 128th from block 17,225,968, see below) must carry, under its block hash, a certificate of valid post-quantum validator seals, and a node does not finalize an anchor block without it: at least three Falcon-512 seals at first (f+1 of nine), **six of nine, a full 2f+1 quorum, since block 14,961,456** (August 21, 2026), and since block 17,047,600 (2026-09-04) a **hybrid** certificate of Falcon-512 AND diff --git a/RUN-A-NODE.md b/RUN-A-NODE.md index 2b65934..625d203 100644 --- a/RUN-A-NODE.md +++ b/RUN-A-NODE.md @@ -138,10 +138,12 @@ running a configuration the chain does not. ## The post-quantum header anchor: apply patch 0003 to follow the current chain -Since block 13,014,000 every 32nd header of chain 2800 carries a sixth element in its QBFT -`extraData`: a certificate of validator Falcon-512 seals, universal since block 13,889,296 and -enforced at a minimum of three seals per anchor block (f+1 of nine) since 2026-08-14. A node -rejects an anchor block whose certificate holds fewer than three valid seals. (Correction 2026-08-19: +Since block 13,014,000 every 32nd header of chain 2800, and from block 17,225,968 every 128th, +carries a sixth element in its QBFT `extraData`: a certificate of validator post-quantum seals, +universal since block 13,889,296, enforced at a minimum of three seals per anchor block (f+1 of +nine) from 2026-08-14 and of six from block 14,961,456, for each scheme once the certificate became +hybrid (Falcon-512 and SLH-DSA-SHA2-128s) at block 17,047,600. A node rejects an anchor block whose +certificate holds fewer valid seals than the schedule requires at its height. (Correction 2026-08-19: an earlier version of this paragraph said that from block 14,050,000 the network refuses to finalize any block without a post-quantum quorum; the per-block rule armed at that height is retired in the shipped code in favour of the anchor rules and changed no enforcement, so that sentence is withdrawn.) diff --git a/SECURITY.md b/SECURITY.md index edfd2cb..68319bd 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -35,8 +35,10 @@ pointer is . have to agree to halt this chain is one. No amount of cryptography changes that number, and a report pointing at the consequences of that fact is in scope and welcome. - **The post-quantum guarantee is at anchor heights**, not on every block: from block 13,014,000, - every 32nd block carries a Falcon-512 certificate under the block hash, requiring at least six - valid seals out of nine from block 14,961,456. Blocks between anchors rest on ECDSA. We correct + every 32nd block, and from block 17,225,968 every 128th, carries a post-quantum certificate under + the block hash (Falcon-512, and from block 17,047,600 also SLH-DSA-SHA2-128s), requiring at least + six valid seals of each scheme from block 14,961,456 (six of nine validators then, of ten since + 2026-09-11). Blocks between anchors rest on ECDSA. We correct over-claims publicly when we find them, and we have done so before. ## Fixes diff --git a/SPEC.md b/SPEC.md index dabe3c4..839a951 100644 --- a/SPEC.md +++ b/SPEC.md @@ -431,7 +431,8 @@ schedule: 0 from 13,014,000 (warm-up), 3 from 13,034,000 (f+1 of the nine valida 2026-08-14), and **6 from block 14,961,456** (of nine then, a full 2f+1 quorum at that size and below the ten-validator quorum of seven since 2026-09-11, the same count QBFT itself requires) (source: `anchor/README.md`, "Scope boundary"; `RUN-A-NODE.md`, the anchor section). -The defensible sentence, and the only form this document endorses: *every 32nd block does not +The defensible sentence, and the only form this document endorses: *every anchor block (every +128th block from 17,225,968, every 32nd before it) does not finalize without a certificate of at least six valid Falcon-512 validator seals (of ten validators since 2026-09-11) under its hash (three, before block 14,961,456; see the schedule and the historical windows)*. Blocks between anchors carry no Falcon seals in the header and their header is finalized by the ECDSA committed @@ -452,8 +453,9 @@ against the four known mitigation families and states what it does NOT claim, in safety). Security property bought by the interval: an adversary holding every classical validator key and no -Falcon key can rewrite at most the tail since the last anchor, so fork depth <= 32 blocks (about -16 seconds); rewriting anything below an anchor changes that anchor's parent hash, forces the +Falcon key can rewrite at most the tail since the last anchor, so fork depth <= 128 blocks since +block 17,225,968 (about 75 seconds at the measured rhythm; <= 32 blocks, about 16 seconds, before +it); rewriting anything below an anchor changes that anchor's parent hash, forces the anchor to be reproduced, and reproducing it requires Falcon signatures the adversary does not have. History below H remains protected by ECDSA alone, permanently (source: `anchor/consensus/common/.../PqAnchorConfig.java`, interval javadoc; `anchor/README.md`). diff --git a/anchor/README.md b/anchor/README.md index 953922e..acc2a3a 100644 --- a/anchor/README.md +++ b/anchor/README.md @@ -11,11 +11,11 @@ demonstrable from these files is marked as not demonstrable from these files. ## Scope boundary, stated first and not in a footnote **Consensus on Aere Network chain 2800 is classical secp256k1 ECDSA QBFT with a post-quantum -checkpoint enforced every 32 blocks.** This code is what adds the checkpoint, in two steps that +checkpoint enforced every 128 blocks (every 32 until block 17,225,968).** This code is what adds the checkpoint, in two steps that should not be confused: 1. **The binding.** From block 13,014,000 the block hash of every anchored header (every 32nd - block) commits to a Falcon-512 certificate signed by the validators. That is a binding, not a + block, every 128th from block 17,225,968) commits to a Falcon-512 certificate signed by the validators. That is a binding, not a replacement: a rewrite of anchored history must also forge the post-quantum signatures. 2. **The enforced minimum.** Since 2026-08-14 a node does not finalize an anchor block unless its certificate holds at least three valid Falcon-512 seals (f+1 of nine, the guarantee that at @@ -27,7 +27,8 @@ should not be confused: `aere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6`, uniform on all ten validators; the startup guard refuses any threshold above N - f = 7, the highest count reachable with the fault budget down. Blocks between anchors carry no Falcon seals and are finalized by ECDSA alone, so - the post-quantum guarantee is a checkpoint about every 16 seconds, not a per-block quorum. + the post-quantum guarantee is a checkpoint about every 75 seconds (128 blocks; about every 16 + seconds at 32 blocks, before block 17,225,968), not a per-block quorum. 3. **The hybrid certificate.** Since block 17,047,600 (2026-09-04) the certificate is the v2, scheme-tagged form `RLP[2, [[scheme, index, signature], ...]]` and carries Falcon-512 (lattice) AND SLH-DSA-SHA2-128s (hash-based) seals; the enforced minimum applies to EACH scheme on its own, at least six of nine valid