AIP-22 stage 1 on chain 2800: anchor certificate threshold K=7, the QBFT quorum of ten validators, from block 20,715,632

This commit is contained in:
Aere Network 2026-09-29 16:07:49 +03:00
parent 2d3812835f
commit 1779ac8a8b
5 changed files with 13 additions and 9 deletions

View File

@ -318,7 +318,7 @@ export BESU_OPTS="\
-Daere.pq.anchorInterval=32 \ -Daere.pq.anchorInterval=32 \
-Daere.pq.anchorIntervalSchedule=17225968:128 \ -Daere.pq.anchorIntervalSchedule=17225968:128 \
-Daere.pq.anchor.maxSeals=9 \ -Daere.pq.anchor.maxSeals=9 \
-Daere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6,17102384:0,17102416:6 \ -Daere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6,17102384:0,17102416:6,20715632:7 \
-Daere.pq.anchorV2Block=17047600 \ -Daere.pq.anchorV2Block=17047600 \
-Daere.pq.chainId=2800 \ -Daere.pq.chainId=2800 \
-Daere.pq.hybridRegistry=$REG/hibrid-10.properties \ -Daere.pq.hybridRegistry=$REG/hibrid-10.properties \

View File

@ -489,7 +489,7 @@ passes"):
-Daere.pq.anchorInterval=32 -Daere.pq.anchorInterval=32
-Daere.pq.anchorIntervalSchedule=17225968:128 -Daere.pq.anchorIntervalSchedule=17225968:128
-Daere.pq.anchor.maxSeals=9 -Daere.pq.anchor.maxSeals=9
-Daere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6,17102384:0,17102416:6 -Daere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6,17102384:0,17102416:6,20715632:7
-Daere.pq.anchorV2Block=17047600 -Daere.pq.anchorV2Block=17047600
-Daere.pq.chainId=2800 -Daere.pq.chainId=2800
-Daere.pq.hybridRegistry=<registries>/hibrid-10.properties -Daere.pq.hybridRegistry=<registries>/hibrid-10.properties

View File

@ -22,9 +22,11 @@ should not be confused:
least one honest validator signed; eight or nine are carried in practice). Raised at block least one honest validator signed; eight or nine are carried in practice). Raised at block
14,961,456 (August 21, 2026): the enforced minimum became **six**, which at that time was a full 14,961,456 (August 21, 2026): the enforced minimum became **six**, which at that time was a full
2f+1 quorum of the nine-validator set, the same count QBFT itself required to agree on the block. 2f+1 quorum of the nine-validator set, the same count QBFT itself required to agree on the block.
**Since 2026-09-11 the set is ten and QBFT's quorum is seven, so the same six is above f+1 and From 2026-09-11 the set was ten and QBFT's quorum seven, so the same six was above f+1 and
below the quorum.** The threshold did not move; the set did. The schedule step is below the quorum: the threshold had not moved, the set had. **From block 20,715,632 (AIP-22 stage 1,
`aere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6`, uniform on all ten validators; the armed 2026-09-29) the enforced minimum is seven, again a full 2f+1 quorum of the ten-validator set.**
The schedule is `aere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6,17102384:0,17102416:6,20715632:7`,
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 75 seconds (128 blocks; about every 16 the post-quantum guarantee is a checkpoint about every 75 seconds (128 blocks; about every 16
@ -295,8 +297,10 @@ sentence. Someone else has to do the verifying, which is why it is here.
**A certificate at an anchor height is signed by at least six validators, since block 14,961,456 **A certificate at an anchor height is signed by at least six validators, since block 14,961,456
(August 21, 2026). It was f+1 before that, and this paragraph said so. Between that date and (August 21, 2026). It was f+1 before that, and this paragraph said so. Between that date and
2026-09-11 six WAS the 2f+1 quorum of a nine-validator set; since the tenth validator joined, the 2026-09-11 six WAS the 2f+1 quorum of a nine-validator set; from 2026-09-11 until block 20,715,632,
quorum is seven and six is not one, so we do not call it a quorum.** The distinction with ten validators, the quorum was seven and six was not one, so we did not call it a quorum. From
block 20,715,632 (AIP-22 stage 1, armed 2026-09-29) the minimum is seven, the 2f+1 quorum of ten, and there it
is a quorum again.** The distinction
is worth keeping in view rather than deleting, because it is the difference between two genuinely is worth keeping in view rather than deleting, because it is the difference between two genuinely
different claims. f+1 signatures guarantee only that at least one honest validator signed. A quorum different claims. f+1 signatures guarantee only that at least one honest validator signed. A quorum
of 2f+1 is the same count QBFT itself requires to agree on the block. Between 14,961,456 and of 2f+1 is the same count QBFT itself requires to agree on the block. Between 14,961,456 and

View File

@ -266,7 +266,7 @@ export BESU_OPTS="\
-Daere.pq.anchorInterval=32 \ -Daere.pq.anchorInterval=32 \
-Daere.pq.anchorIntervalSchedule=17225968:128 \ -Daere.pq.anchorIntervalSchedule=17225968:128 \
-Daere.pq.anchor.maxSeals=9 \ -Daere.pq.anchor.maxSeals=9 \
-Daere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6,17102384:0,17102416:6 \ -Daere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6,17102384:0,17102416:6,20715632:7 \
-Daere.pq.anchorV2Block=17047600 \ -Daere.pq.anchorV2Block=17047600 \
-Daere.pq.chainId=2800 \ -Daere.pq.chainId=2800 \
-Daere.pq.hybridRegistry=$REG/hibrid-10.properties \ -Daere.pq.hybridRegistry=$REG/hibrid-10.properties \

View File

@ -93,7 +93,7 @@ const K6_HEIGHT = 14961456;
// that did not know the step would call that anchor wrong; one that hides it would be lying. MIN_SEALS_SCHEDULE // that did not know the step would call that anchor wrong; one that hides it would be lying. MIN_SEALS_SCHEDULE
// ("h:k,h:k") overrides for experiments and for other chains. // ("h:k,h:k") overrides for experiments and for other chains.
// 28001, 2026-09-22: step 2988864:4, the per-scheme minimum becomes the QBFT quorum (4 of 5), AIP-22 stage 1 rehearsal. // 28001, 2026-09-22: step 2988864:4, the per-scheme minimum becomes the QBFT quorum (4 of 5), AIP-22 stage 1 rehearsal.
const K_DEFAULT = CHAIN_ID === 28001 ? [[64, 0], [128, 3], [168032, 0], [168064, 3], [2988864, 4]] : [[0, 3], [K6_HEIGHT, 6], [17102384, 0], [17102416, 6]]; const K_DEFAULT = CHAIN_ID === 28001 ? [[64, 0], [128, 3], [168032, 0], [168064, 3], [2988864, 4]] : [[0, 3], [K6_HEIGHT, 6], [17102384, 0], [17102416, 6], [20715632, 7]];
const K_SCHEDULE = (process.env.MIN_SEALS_SCHEDULE || '').split(',').filter(Boolean).map(p => p.split(':').map(Number)).sort((a, b) => a[0] - b[0]); const K_SCHEDULE = (process.env.MIN_SEALS_SCHEDULE || '').split(',').filter(Boolean).map(p => p.split(':').map(Number)).sort((a, b) => a[0] - b[0]);
if (!K_SCHEDULE.length) K_SCHEDULE.push(...K_DEFAULT); if (!K_SCHEDULE.length) K_SCHEDULE.push(...K_DEFAULT);
// D-338 (2026-09-04): the SCHEMES the certificate must carry, by height of the PARENT (the seals are made when the // D-338 (2026-09-04): the SCHEMES the certificate must carry, by height of the PARENT (the seals are made when the