From 3b06139f6d8de873a0584f10fabd089d398b68e9 Mon Sep 17 00:00:00 2001 From: Aere Network Date: Thu, 29 Oct 2026 00:25:55 +0200 Subject: [PATCH] Runda 11 a reviziei prozei (2026-10-28): anchor/README (treapta 5, clientul 2), tools/verify-proof.mjs (prefixul de integritate), vectors/SURSE.md in engleza, declaratia de citari --- CITATIONS-UNRESOLVED.md | 3 +-- anchor/README.md | 2 +- tools/verify-proof.mjs | 6 +++++- vectors/SURSE.md | 22 +++++++++++----------- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/CITATIONS-UNRESOLVED.md b/CITATIONS-UNRESOLVED.md index c74cd6a..041f820 100644 --- a/CITATIONS-UNRESOLVED.md +++ b/CITATIONS-UNRESOLVED.md @@ -13,7 +13,7 @@ Paths that DO resolve are written relative to a side-by-side checkout of the Aer repositories, so they begin with a repository name, for example `aere-contracts/contracts/pqc/AereCryptoRegistry.sol`. -Unresolvable distinct paths in this repository: **23**. +Unresolvable distinct paths in this repository: **22** (23 when measured on 2026-10-21; on 2026-10-28 `vectors/SURSE.md` was translated into English and no longer cites an internal tool, so its entry was removed). - `admission-params.json` cited in: aere-node/validator/README.md - `aere-candidacy.json` cited in: aere-node/RUN-A-NODE.md, aere-node/validator/README.md @@ -33,7 +33,6 @@ Unresolvable distinct paths in this repository: **23**. - `registry-v3-20836228.json` cited in: aere-node/validator/README.md - `RESULT.txt` cited in: aere-node/SPEC.md - `scripts/deschise/antetul-osaka-e-al-lantului.sh` cited in: aere-node/SPEC.md -- `scripts/poarta-secrete.cjs` cited in: aere-node/vectors/SURSE.md - `static-nodes.json` cited in: aere-node/README.md, aere-node/validator/README.md - `strategie/VERIFICARE-FORMALA-2026-08-24.md` cited in: aere-node/SPEC.md - `testnet-public/CITESTE-MA.md` cited in: aere-node/SPEC.md diff --git a/anchor/README.md b/anchor/README.md index 42646a9..16e518e 100644 --- a/anchor/README.md +++ b/anchor/README.md @@ -225,7 +225,7 @@ proposal without a valid Falcon seal from its own proposer does not open a round its own domain over (chainId, height, round, digest), so an honest proposal seal cannot be replayed as a vote nor a vote seal as a proposal - both directions are tested. The ROUND-CHANGE message carries its own seal since 2026-08-31 (its embedded justifications are coupled to PREPARE -enforcement). What remains classical on chain 2800: node-level devp2p authentication, the ECDSA commit seals that every header still carries until AIP-22 stage 5, the ECDSA commit seal that a commit carries besides its post-quantum seal, and the ECDSA envelope that every consensus message still carries on the wire, whose form both clients judge but which, since block 24,300,000 (AIP-22 stage 4), no longer names its author (this sentence corrected on 2026-10-28: it did not name the envelope; AIP-22, note of 2026-10-27 under section 5). The validators are named in +enforcement). What remains classical on chain 2800: node-level devp2p authentication, the ECDSA commit seals that every header still carries until AIP-22 stage 5, the ECDSA commit seal that a commit carries besides its post-quantum seal, and the ECDSA envelope that every consensus message still carries on the wire, whose form both clients judge and which, since block 24,300,000 (AIP-22 stage 4), no longer names its author on the Besu-derived validators (this sentence corrected on 2026-10-28: it did not name the envelope; AIP-22, note of 2026-10-27 under section 5). The validators are named in consensus by the post-quantum ids of AIP-22 since block 20,836,228 (stage 3, 2026-09-30); that code is in this directory. (Corrected 2026-10-22: until that date this sentence also listed validator identity as classical and said that the post-quantum identity was unarmed on chain 2800 and ran only on testnet 28001.) diff --git a/tools/verify-proof.mjs b/tools/verify-proof.mjs index b9ce583..8a00c9a 100644 --- a/tools/verify-proof.mjs +++ b/tools/verify-proof.mjs @@ -109,7 +109,11 @@ export function local(env, notJson = null) { const text = String(JSON.stringify(st)); const h = '0x' + crypto.createHash('sha256').update(Buffer.from(text, 'utf8')).digest('hex'); const ok = h === sh.toLowerCase(); - out.push(level('integrity', ok ? 'PASSED' : 'FAILED', ok ? `sha256(statement) == statementHash (${h.slice(0, 18)}..)` : `sha256(statement) is ${h.slice(0, 18)}.., not the statementHash ${sh.slice(0, 18)}..`)); + // on a refusal the two values shown must visibly differ: the prefix runs to the first differing hex digit (a hash changed in its last + // digit printed as two identical 16-digit prefixes until 2026-10-28) + let d = 2; while (d < h.length && h[d] === sh.toLowerCase()[d]) d++; + const n = Math.max(18, d + 1), cut = (x) => x.slice(0, n) + (n < x.length ? '..' : ''); + out.push(level('integrity', ok ? 'PASSED' : 'FAILED', ok ? `sha256(statement) == statementHash (${h.slice(0, 18)}..)` : `sha256(statement) is ${cut(h)}, not the statementHash ${cut(sh)}`)); return { out, text: ok ? text : null }; } diff --git a/vectors/SURSE.md b/vectors/SURSE.md index c2040a2..9e6147c 100644 --- a/vectors/SURSE.md +++ b/vectors/SURSE.md @@ -1,14 +1,14 @@ -# SURSE: de unde vin vectorii de proba din acest director +# SOURCES: where the test vectors in this directory come from -Act de provenienta cerut de poarta de secrete (`scripts/poarta-secrete.cjs`, clasa COD TERT): fiecare fisier -de aici e o fixtura PUBLICATA de NIST sau de echipa de referinta a schemei, copiata in pachet ca sa poata fi -rulata de oricine impotriva precompilelor vii (`scripts/verify-live-precompiles.mjs`). Cheile publice si -semnaturile din ele sunt ale vectorilor de proba, nu ale nimanui de la Aere Network. Provenienta de mai jos -e citita din campul `katSource` al fiecarui fisier, scris 2026-09-02. +Statement of provenance. Every file here is a fixture PUBLISHED by NIST or by the reference team of +the scheme, copied into the package so that anyone can run it against the live precompiles +(`scripts/verify-live-precompiles.mjs`). The public keys and signatures in these files belong to the +test vectors, not to anyone at Aere Network. The provenance below is read from the `katSource` field +of each file, written on 2026-09-02. -| fisier | schema | sursa declarata in fisier | sha256 (16) | +| file | scheme | source declared in the file | sha256 (first 16 hex digits) | |---|---|---|---| -| `falcon1024_kat0.json` | NIST Falcon-1024 (round-3), official KAT vector 0 and 1 | falcon1024-KAT.rsp (Falcon round-3 NIST submission) | `5f430ea31548fde0` | -| `falcon512_kat0.json` | NIST Falcon-512 (round-3), KAT oficial | fisierul nu poarta camp `katSource`; `README.md` (randul "official NIST Falcon KAT vector 0 for both parameter sets") il declara vectorul KAT 0 al trimiterii Falcon round-3, ca si perechea lui `falcon1024_kat0.json` | `5011efbb97f68027` | -| `mldsa44-acvp-tg8.json` | ML-DSA-44 (Dilithium2), FIPS 204 | NIST ACVP ML-DSA-sigVer-FIPS204 test vectors | github.com/usnistgov/ACVP-Server | gen-val/json-files/ML-DSA-sigVer-FIPS204 | `d9850650abdf446c` | -| `sphincs-sha2-128s-acvp-tg31.json` | SLH-DSA-SHA2-128s (SPHINCS+-SHA2-128s-simple), FIPS 205 | NIST ACVP SLH-DSA-sigVer-FIPS205 test vectors | github.com/usnistgov/ACVP-Server | gen-val/json-files/SLH-DSA-sigVer-FIPS205 | `943811677f3a2549` | +| `falcon1024_kat0.json` | NIST Falcon-1024 (round 3), official KAT vectors 0 and 1 | falcon1024-KAT.rsp (Falcon round-3 NIST submission) | `5f430ea31548fde0` | +| `falcon512_kat0.json` | NIST Falcon-512 (round 3), official KAT | the file carries no `katSource` field; `README.md` (the line "official NIST Falcon KAT vector 0 for both parameter sets") declares it KAT vector 0 of the Falcon round-3 submission, like its pair `falcon1024_kat0.json` | `5011efbb97f68027` | +| `mldsa44-acvp-tg8.json` | ML-DSA-44 (Dilithium2), FIPS 204 | NIST ACVP ML-DSA-sigVer-FIPS204 test vectors, github.com/usnistgov/ACVP-Server, gen-val/json-files/ML-DSA-sigVer-FIPS204 | `d9850650abdf446c` | +| `sphincs-sha2-128s-acvp-tg31.json` | SLH-DSA-SHA2-128s (SPHINCS+-SHA2-128s-simple), FIPS 205 | NIST ACVP SLH-DSA-sigVer-FIPS205 test vectors, github.com/usnistgov/ACVP-Server, gen-val/json-files/SLH-DSA-sigVer-FIPS205 | `943811677f3a2549` |