diff --git a/README.md b/README.md index 5a24a61..64a9b7c 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Falcon-1024 (`0x0AE2`), ML-DSA-44 (`0x0AE3`), SLH-DSA-128s (`0x0AE4`) and SHAKE2 have been live as precompiles since block 9,189,161. You can call them yourself against `https://rpc.aere.network` without asking us for anything. -**Consensus on chain 2800 is QBFT, with a post-quantum checkpoint every 32 blocks; since block 24,300,000 (AIP-22 stage 4) every validator attributes each consensus vote only through the verified post-quantum seal of its author (headers are still admitted on their ECDSA commit seals until AIP-22 stage 5).** Since block 13,014,000 anchor blocks carry, under the block hash, a +**Consensus on chain 2800 is QBFT, with a post-quantum checkpoint every 32 blocks; since block 24,300,000 (AIP-22 stage 4) every validator attributes each consensus vote only through the verified post-quantum seal of its author (since block 25,080,000, AIP-22 stage 5, headers no longer carry ECDSA commit seals and are admitted on the Falcon-512 seal of their proposer alone; a commit still carries the ECDSA commit seal of its validator as an additional check).** Since block 13,014,000 anchor blocks carry, under the block hash, a certificate of validator post-quantum seals (Falcon-512, with SLH-DSA-SHA2-128s as well since 2026-09-04, at every 128th block since 2026-09-29; every anchor was 128 blocks apart from block 17,225,968 to block 20,746,736). Since block 20,715,632 (2026-09-29) a validator rejects an anchor block diff --git a/execution-kernel/MACHINE-INTERFACE-CONTRACT.md b/execution-kernel/MACHINE-INTERFACE-CONTRACT.md index b5e57ec..04cddbc 100644 --- a/execution-kernel/MACHINE-INTERFACE-CONTRACT.md +++ b/execution-kernel/MACHINE-INTERFACE-CONTRACT.md @@ -145,9 +145,7 @@ both directions (section 7). Two MI results for the same input are equal when, a | block `hash`, `parentHash` | identical 32-byte hash | Determinism is a claim about these commitments, not about internal representation. Two clients -may lay out their trie nodes differently in memory, name their threads differently, and store -`extraData` differently for the same block (QBFT lets each node assemble the final header -locally, and the block hash does not cover the seals; see aere-node `SPEC.md`, section 2.3; corrected +may lay out their trie nodes differently in memory, name their threads differently, and store `extraData` differently for the same block (below block 25,080,000, AIP-22 stage 5, QBFT let each node assemble the final header locally; from it nodes that committed a block in the same round store the same bytes, and only the round (element 3) and the proposer seal of that round (element 6) can still differ under the same hash, for a block that nodes committed in different rounds (a value locked in one round and proposed again in a later one); a node that imports the block stores the form of the node that served it; the block hash does not cover the seals either way; see aere-node `SPEC.md`, section 2.3; corrected 2026-10-27: this pointed to a file that is not public). None of that is an MI input or output. Only the commitments above are. @@ -319,7 +317,7 @@ The harness prints a NOT MEASURED block naming these on every run, and its JSON them in the `honesty` field, so the non-claims travel with every result rather than living only in this document: -- **That consensus is post-quantum.** It is not. Consensus finality is QBFT whose votes every validator attributes only through their verified post-quantum seals since block 24,300,000 (AIP-22 stage 4), with classical secp256k1 ECDSA commit seals in the header until AIP-22 stage 5 and a Falcon certificate at every anchor. MI is an execution seam and says nothing about consensus. +- **That consensus is post-quantum.** The contract does not make that claim: MI is an execution seam and says nothing about consensus. What the chain states is that since block 25,080,000 (AIP-22 stage 5) headers no longer carry ECDSA commit seals and, since block 24,300,000 (AIP-22 stage 4), every vote counts only with the verified post-quantum seal of its author, and a commit still carries the ECDSA commit seal of its validator as an additional check, which it calls post-quantum consensus, with three limits: the transport between nodes is still authenticated by secp256k1, the ten validators are run by one operator, and no third party has audited it yet; a Falcon certificate sits at every anchor. - **That equal header roots prove independent execution by themselves.** See the honesty boundary in section 5. The load-bearing fact is Nethermind's reject-on-disagreement behaviour, not the served bytes. diff --git a/execution-kernel/mi-replay-diferential.mjs b/execution-kernel/mi-replay-diferential.mjs index 21d37f2..f159e15 100644 --- a/execution-kernel/mi-replay-diferential.mjs +++ b/execution-kernel/mi-replay-diferential.mjs @@ -335,7 +335,7 @@ async function main() { honesty: 'A matching header root served over RPC proves both endpoints serve the same bytes; ' + 'the load-bearing fact is that Nethermind validates on processing and rejects on ' + 'disagreement. ' - + 'Consensus finality is QBFT whose votes every validator attributes only through their verified post-quantum seals since block 24,300,000 (AIP-22 stage 4), with classical secp256k1 ECDSA commit seals in the header until AIP-22 stage 5 and a Falcon certificate at every anchor. ' + + 'Consensus finality is QBFT: since block 25,080,000 (AIP-22 stage 5) headers no longer carry ECDSA commit seals and, since block 24,300,000 (AIP-22 stage 4), every vote counts only with the verified post-quantum seal of its author, and a commit still carries the ECDSA commit seal of its validator as an additional check; the transport between nodes is still authenticated by secp256k1, the ten validators are run by one operator, and no third party has audited it yet, and a Falcon certificate sits at every anchor. ' + 'MI is execution only and this is not a post-quantum-consensus claim. Not a benchmark. Both endpoints are ' + 'operated by the same party (the trust root does not move; what is removed is the class ' + 'of lies needing only one client implementation). State older than the ~512-block RPC ' diff --git a/pq-stark/README.md b/pq-stark/README.md index 0340a8b..90cf91b 100644 --- a/pq-stark/README.md +++ b/pq-stark/README.md @@ -1,5 +1,7 @@ # pqc-fork/pq-stark - PQ STARK-verify precompile 0x0AE8 (BabyBear/Plonky3 FRI/STARK verify skeleton) +> **Note added 2026-10-30 (consensus).** Since block 25,080,000 (AIP-22 stage 5) headers no longer carry ECDSA commit seals: each carries the Falcon-512 seal of its proposer instead, and a commit still carries the ECDSA commit seal of its validator as an additional check. Where the note of 2026-09-24 below describes the headers, it describes chain 2800 below that block. + > **Note added 2026-09-24 (consensus).** Where this document says that consensus is classical secp256k1 ECDSA and not post-quantum, read it as the per-block finality statement it was until block 24,300,000 (AIP-22 stage 4, 2026-10-25). Since that block every validator attributes a consensus vote only through its verified post-quantum seal, and a block is post-quantum final once the next anchor, at most 32 blocks later, carries the certificate that covers it; headers still carry classical ECDSA commit seals until AIP-22 stage 5 (this sentence corrected on 2026-10-25). It no longer describes all of consensus on chain 2800: since 2026-08-14 every anchor block must carry a certificate of validator post-quantum seals under its hash (Falcon-512, with SLH-DSA as well since 2026-09-04), and since 2026-09-05 (block 17,250,000) the nine AERE-client validators (nine of the ten) refuse a commit message without a valid Falcon-512 seal of its author, and since 2026-09-08 (block 17,700,000) any QBFT consensus message without one, while the tenth, the second client, enforced that seal only on commit messages until block 24,300,000 and attributes every consensus message only through it since (this clause corrected on 2026-10-12, 2026-10-25 and 2026-10-28; until 2026-10-28 it dated the refusal of every message type to 2026-09-05, the date of the commit layer alone). (Note applied to this document on 2026-10-28.) > **Note added 2026-08-19.** Statements in this document that consensus on chain 2800 is (or remains) classical secp256k1 ECDSA QBFT were written before the post-quantum header anchor went live, and remain true for block-by-block finality. Since block 13,014,000 anchor blocks (every 32nd block, on every one since block 13,889,296) also carry, under the block hash, a certificate of validator Falcon-512 seals, and since 2026-08-14 a node rejects an anchor block with fewer than three valid seals (f+1 of nine; eight or nine are carried in practice). That is a post-quantum checkpoint about every 16 seconds, not a per-block quorum: the claim published on 2026-08-15 that from block 14,050,000 no block finalizes without a post-quantum quorum was wrong (the per-block rule armed at that height is retired in the shipped code in favour of the anchor rules) and was withdrawn on 2026-08-19. Details: https://aere.network/quantum.html and the aere-node repository, anchor/README.md.