From 54774eb719c272fb32e8f85a33e5f3992bdd89d5 Mon Sep 17 00:00:00 2001 From: Aere Network Date: Thu, 17 Sep 2026 21:25:42 +0300 Subject: [PATCH] SPEC 1.2.0 amended 2026-09-17: the four enforcement heights have passed (17,250,000 / 17,400,000 / 17,550,000 / 17,700,000, 5-8 September), hybrid keys live since 17,047,600; 'emission only' is dated history; LICENSING regenerated --- LICENSING.md | 4 ++-- SPEC.md | 31 +++++++++++++++++++++---------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/LICENSING.md b/LICENSING.md index 591b673..cfba1c5 100644 --- a/LICENSING.md +++ b/LICENSING.md @@ -123,7 +123,7 @@ the section 4(b) notice of changed files), and each keeps its original notice pe -## anchor/: every file that carries someone else's copyright (generated 2026-09-12) +## anchor/: every file that carries someone else's copyright (generated 2026-09-17) This list is **generated from the files this package actually ships**, not written by hand: the previous hand-written table fell behind the tree on 2026-09-12 and seven upstream files went @@ -132,7 +132,7 @@ repository, and the publisher refuses to ship a package whose list disagrees wit You do not need that tool to check the list: every row below names a file in this package, and `grep -i copyright` on it shows the same line. -Measured 2026-09-12 over `anchor/`: **179 files**. **90** carry someone +Measured 2026-09-17 over `anchor/`: **179 files**. **90** carry someone else's copyright alone, **45** carry a shared notice naming both upstream and us, and **11** name only `contributors to the AERE Network`; 33 carry no copyright line at all. The first two groups are the table below. A shared notice is listed too: those are precisely the diff --git a/SPEC.md b/SPEC.md index d4ed7a8..d22c835 100644 --- a/SPEC.md +++ b/SPEC.md @@ -1,6 +1,6 @@ # Aere Network chain 2800: full protocol specification -Version: 1.2.0, written 2026-08-25, amended 2026-09-02 (section 2.6, D8, G11) and 2026-09-05 (sections 2.6 and 3.1: the message-layer arming heights, the v2 hybrid certificate, the anchor interval schedule). Scope: everything a third party needs to implement a client +Version: 1.2.0, written 2026-08-25, amended 2026-09-02 (section 2.6, D8, G11), 2026-09-05 (sections 2.6 and 3.1: the message-layer arming heights, the v2 hybrid certificate, the anchor interval schedule) and 2026-09-17 (sections 2.6 and 3.1: the four enforcement heights have passed, hybrid keys are live; the "emission only" qualification is dated history). Scope: everything a third party needs to implement a client that follows chain 2800 from block 0 to the live head and validates what the network validates, without reading Aere source code. It specifies the follower (validation) protocol completely; it describes seal production only where a follower must understand it to validate. @@ -360,11 +360,18 @@ its healing) and, since 2026-09-02, WITH the anchor armed as on 2800 (source: `consensus-pqc/fullpq-activare-2026-08-28/`, `F-lib.sh`, `dovezi/`). The machine-checked model of these rules is `aere-research/formal-consensus/pq_message_enforcement_smt.py` (section 7). -**What this section does not claim.** Node-to-node authentication (RLPx) is ECDSA. The hybrid -(Falcon + SLH-DSA) certificate is implemented and tested but no hybrid keys exist on 2800. None of -this is audited by a third party. Until the four `forkBlock` heights are set on the fleet, chain -2800's consensus is post-quantum in EMISSION only, and the defensible sentence remains the one in -section 3.1. +**What this section does not claim.** Node-to-node authentication (RLPx) is ECDSA. None of this is +audited by a third party. + +**Amended 2026-09-17 (state of the enforcement).** The four `forkBlock` heights were set uniformly +on every validator and all four have passed: 17,250,000 (commit, 2026-09-05), 17,400,000 +(proposal, 2026-09-06), 17,550,000 (round-change, 2026-09-07) and 17,700,000 (prepare, 2026-09-08). +Since 17,700,000 every QBFT message on the hot path (proposal, prepare, commit, round-change) is +refused unless it carries a valid post-quantum seal, on both clients (the Nethermind validator +enforces since 2026-09-11). The hybrid (Falcon-512 + SLH-DSA-SHA2-128s) keys exist on 2800 and +every anchor certificate is v2 since block 17,047,600 (2026-09-04). Between 2026-09-01 and +2026-09-08 this paragraph read "post-quantum in EMISSION only"; that was true for those days and +is history now. What remains classical is named in section 3.1. --- @@ -392,10 +399,14 @@ requires) (source: `anchor/README.md`, "Scope boundary"; `RUN-A-NODE.md`, the an The defensible sentence, and the only form this document endorses: *every 32nd block 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 and are finalized by ECDSA alone. Consensus (proposal, identity, -transport, per-block finality) is classical secp256k1 ECDSA; the anchor is a binding, not a -replacement, and "post-quantum consensus" without this qualification overstates (source: -`anchor/README.md`). None of this code has been audited by a third party (source: `anchor/README.md`, +anchors carry no Falcon seals in the header and their header is finalized by the ECDSA committed +seals alone. *Amended 2026-09-17:* the consensus MESSAGES that produce every block (proposal, +prepare, commit, round-change) carry and require post-quantum seals since 2026-09-08 (section +2.6), so a forged classical validator key alone no longer opens a round, prepares or commits a +block on the live network; node identity and transport (RLPx) remain classical secp256k1 ECDSA, +and so does the per-block header artifact between anchors. The anchor is a binding, not a +replacement, and "post-quantum consensus" without these qualifications overstates (source: +`anchor/README.md`, section 2.6 as amended). None of this code has been audited by a third party (source: `anchor/README.md`, "What is not proven here"). The threat model is retroactive rewriting (the long-range / posterior-corruption attack), not