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
This commit is contained in:
parent
c239cbd750
commit
a7fa601e97
@ -38,8 +38,10 @@ findings we chose not to fix and why.
|
|||||||
## Verify the chain yourself, without trusting us
|
## 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
|
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
|
13,014,000 every 32nd block, and from block 17,225,968 every 128th, carries a post-quantum certificate
|
||||||
block 14,961,456 that certificate requires at least six valid seals out of nine. The verifier is
|
(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.
|
public, the signatures are in the headers, and the check runs against any node — ours or your own.
|
||||||
|
|
||||||
## Reporting a vulnerability
|
## Reporting a vulnerability
|
||||||
|
|||||||
@ -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
|
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
|
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
|
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,
|
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
|
2026), and since block 17,047,600 (2026-09-04) a **hybrid** certificate of Falcon-512 AND
|
||||||
|
|||||||
@ -138,10 +138,12 @@ running a configuration the chain does not.
|
|||||||
|
|
||||||
## The post-quantum header anchor: apply patch 0003 to follow the current chain
|
## 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
|
Since block 13,014,000 every 32nd header of chain 2800, and from block 17,225,968 every 128th,
|
||||||
`extraData`: a certificate of validator Falcon-512 seals, universal since block 13,889,296 and
|
carries a sixth element in its QBFT `extraData`: a certificate of validator post-quantum seals,
|
||||||
enforced at a minimum of three seals per anchor block (f+1 of nine) since 2026-08-14. A node
|
universal since block 13,889,296, enforced at a minimum of three seals per anchor block (f+1 of
|
||||||
rejects an anchor block whose certificate holds fewer than three valid seals. (Correction 2026-08-19:
|
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
|
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
|
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.)
|
shipped code in favour of the anchor rules and changed no enforcement, so that sentence is withdrawn.)
|
||||||
|
|||||||
@ -35,8 +35,10 @@ pointer is <https://aere.network/.well-known/security.txt>.
|
|||||||
have to agree to halt this chain is one. No amount of cryptography changes that number, and a
|
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.
|
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,
|
- **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
|
every 32nd block, and from block 17,225,968 every 128th, carries a post-quantum certificate under
|
||||||
valid seals out of nine from block 14,961,456. Blocks between anchors rest on ECDSA. We correct
|
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.
|
over-claims publicly when we find them, and we have done so before.
|
||||||
|
|
||||||
## Fixes
|
## Fixes
|
||||||
|
|||||||
8
SPEC.md
8
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
|
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).
|
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
|
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
|
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
|
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).
|
safety).
|
||||||
|
|
||||||
Security property bought by the interval: an adversary holding every classical validator key and no
|
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
|
Falcon key can rewrite at most the tail since the last anchor, so fork depth <= 128 blocks since
|
||||||
16 seconds); rewriting anything below an anchor changes that anchor's parent hash, forces the
|
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.
|
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:
|
History below H remains protected by ECDSA alone, permanently (source:
|
||||||
`anchor/consensus/common/.../PqAnchorConfig.java`, interval javadoc; `anchor/README.md`).
|
`anchor/consensus/common/.../PqAnchorConfig.java`, interval javadoc; `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
|
## Scope boundary, stated first and not in a footnote
|
||||||
|
|
||||||
**Consensus on Aere Network chain 2800 is classical secp256k1 ECDSA QBFT with a post-quantum
|
**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:
|
should not be confused:
|
||||||
|
|
||||||
1. **The binding.** From block 13,014,000 the block hash of every anchored header (every 32nd
|
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.
|
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
|
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
|
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
|
`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
|
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
|
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
|
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
|
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
|
(hash-based) seals; the enforced minimum applies to EACH scheme on its own, at least six of nine valid
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user