Commit Graph

15 Commits

Author SHA1 Message Date
Aere Network
ea4ebcda5d AIP-22 stages 1 to 3 on chain 2800 in the node package; verifier no longer prints the stage-5 sentence on chain 2800
README, SPEC, RUN-A-NODE, SECURITY, AUDITS and anchor/README now state the live rules: at least seven of
ten seals per scheme from block 20,715,632 (stage 1), Falcon-512 at every 32nd block and SLH-DSA-SHA2-128s
at every 128th from block 20,746,736 (stage 2), post-quantum validator ids in the header and in
qbft_getValidatorsByBlockNumber from block 20,836,228 (stage 3). Stages 4 and 5 are not active on chain 2800.

tools/verify-anchor.mjs: the FINALIZED line said on every chain that a header between anchors carries only
its proposer's seal, which is true only where AIP-22 stage 5 is active (testnet 28001). It now reports what
it measured: on chain 2800 headers between anchors carry the validators' classical ECDSA commit seals.
Checked on both chains on 2026-10-01: chain 2800, 4/4 anchors verified, ECDSA branch printed; testnet 28001,
2/2 anchors and 20/20 proposer seals verified, stage-5 branch printed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:27:11 +03:00
Aere Network
9fd694b888 AIP-22 stage 2 on chain 2800: from block 20,746,736 a Falcon-512 anchor certificate every 32 blocks and the SLH-DSA-SHA2-128s layer every 128 (schemeSchedule falcon-512/32+slh-dsa-sha2-128s/128) 2026-09-29 21:09:36 +03:00
Aere Network
1779ac8a8b AIP-22 stage 1 on chain 2800: anchor certificate threshold K=7, the QBFT quorum of ten validators, from block 20,715,632 2026-09-29 16:07:49 +03:00
Aere Network
54ab30407c verify-anchor.mjs: ANCHOR_REPORT=<file> writes the most recent verified anchor and the parent hash its seals signed, as JSON, for tools that build on it (nothing printed changes) 2026-09-27 06:36:36 +03:00
Aere Network
75b2872e13 verify-anchor.mjs: early refusals stop without process.exit() (on Windows it returned 127 instead of 1 after a network request); any other uncaught error still fails the run 2026-09-27 05:32:06 +03:00
Aere Network
0b36247051 verify-anchor.mjs: step 6 admits a re-proposed block sealed by its round's proposer (AIP-22 section 5 as corrected 2026-09-25, now running on testnet 28001); builder rule, round bound and canonical round on every header; exit code set, not process.exit 2026-09-27 05:14:52 +03:00
Aere Network
4250738290 verify-anchor: FINALIZED (post-quantum) summary line; probes proba-pe-lant/control-negativ repaired upstream, 2026-09-26 2026-09-26 16:20:11 +03:00
Aere Network
0f6ec82fa1 verify-anchor.mjs: step 6, the proposer's Falcon-512 seal on every recent header (AIP-22 stage 5), verified against the v3 registry key of its index and bound to the coinbase; proven on testnet 28001 with two planted forgeries rejected 2026-09-24 23:01:51 +03:00
Aere Network
ab90cc5b06 verify-anchor: a certificate is a NON-EMPTY item 6 (AIP-22 stage 5 headers carry an empty certificate slot between anchors) 2026-09-24 00:03:31 +03:00
Aere Network
a94c0f2686 verify-anchor: from KEYS_FROM the OK line names the registry v3 epoch whose keys verified the seals, not the key manifest 2026-09-23 18:35:06 +03:00
Aere Network
089dc9803c verify-anchor.mjs: AIP-22 stage 3b read path, inert until an index marks it - from KEYS_FROM (or the v3 epoch whose index entry carries keysFrom) the key and the id of a seal's index come from the v3 epoch in force at the parent, as both clients read them; the ECDSA link of an id is inherited across epochs that omit it, and an id linked again drops its older address. Without keysFrom anywhere nothing changes: chain 2800 5/5, testnet 28001 5/5 re-run on 2026-09-23. 2026-09-23 16:05:24 +03:00
Aere Network
944dc0bba6 tools: verify-anchor.mjs discovers registry v3 epochs (AIP-22 stage 3, formatVersion 3 entries of the same manifest index) and verifies each in full with registry-v3.mjs (every proof of possession, every ECDSA link, the rotation chain, the Merkle registry hash), then requires every v3 row to carry exactly the Falcon-512 key, SLH-DSA key and address of the key manifest that signs at its height; the identity height is the first epoch's bindHeight, IDENTITY_BLOCK=none disables it as a negative control. Adds tools/registry-v3.mjs and tools/falcon512.mjs, which verify-anchor.mjs imports and the package did not carry. Checked 2026-09-23: testnet 28001 20/20 with its published v3 epoch (registry hash 0xd19eef4a..., identity from 3,080,010); chain 2800 20/20 unchanged; a byte-altered epoch and an epoch whose SLH-DSA key differs from the signing manifest both refused with the reason. 2026-09-23 15:33:49 +03:00
Aere Network
79e5dafd53 verify-anchor.mjs: per-scheme anchor intervals (AIP-22 stage 2: SCHEME_SCHEDULE entries like falcon-512/32+slh-dsa-sha2-128s/128; a scheme off its own grid at an anchor is surplus, verified but not required) and post-quantum validator identity (AIP-22 stage 3: IDENTITY_BLOCK + REGISTRY_V3 translate the validator set to ids from H_id); testnet 28001 default gains the stage-2 step 3070656. Proven 2026-09-23 12:07Z on 28001: 11 of 11 anchors after 3,070,656 accepted (3 hybrid on the 128 grid, 8 Falcon-only at 32), and the pre-stage-2 schedule refuses exactly the 8 Falcon-only; 20 of 20 on chain 2800 unchanged. 2026-09-23 15:08:45 +03:00
Aere Network
b8e9bdf971 verify-anchor.mjs: the testnet 28001 default seal-threshold schedule gains the AIP-22 stage-1 rehearsal step 2988864:4 (the per-scheme minimum becomes the QBFT quorum, 4 of 5); chain 2800 unchanged, and any value is still overridable via MIN_SEALS_SCHEDULE 2026-09-23 02:51:21 +03:00
Aere Network
665b86365e O-017: the anchor verifier ships in tools/, the Bouncy Castle licence is cited at its real path, two operator-repository scripts are declared as unpublished 2026-09-10 15:38:34 +03:00