hsma founder (OP)
Newbie

Activity: 24
Merit: 0
|
 |
September 25, 2026, 07:59:37 AM Last edit: September 27, 2026, 03:31:05 PM by Welsh |
|
DEC-262 - Direction mux + root binding + depth-N: DEF-192/193/195 repaired in-circuit Decision: build_smt_opening2 - the SMT opening as it was always claimed: (1) direction multiplexer - t=dirsib, u=dircur, sel0=t-u+cur, sel1=u-t+sib, boolean row dir*dir=dir; dir=1 hashes (sib, cur, IV), dir=0 hashes (cur, sib, IV); 5 rows + 2 vars per level. (2) root binding - w[expected]*1 = w[chain_tip] as a constraint row; the prover's chain terminates at the CLAIMED root and a wrong claim UNSATs. (3) explicit iv_var - any depth, no lane collision (DEF-195). (4) SmtResult2.n_rows = ACTUAL rows (DEF-194). Probe (smt21probe): depth-1/2/3 all SAT matching an independent mux-semantics mirror (86/171/256 rows); [G-dir-neg] dir=1 circuit vs dir=0 expected root UNSATs (the mux is LIVE - v1's [G-dir] showed identical roots); [G-root-neg] expected=root+1 UNSATs (binding live). v1 retained as the depth-1 legacy layer; header relabeled FIXED-in-v2. CA-R186: A proof binds only what it constrains. A chain without an expected-root constraint proves any root; a selector without a boolean constraint selects nothing. The gap between 'computes' and 'proves' is exactly the missing rows. DEC-265 - build/generated -> generated/: proof artifacts enter version control Decision: The 31 generated headers (params + goldens) moved from gitignored build/generated to tracked generated/ (beside include/, tools/, scripts/); every live reference swept to the new -Igenerated convention (gate.sh, CMakeLists.txt, generator callers; docs/ ledger receipts are historical records and keep the old paths). build/ remains the ignored scratch workspace (CMake junk, logs, stale probe copies - canonical probes live in tools/; ark/py_ecc/pairing provenance already in docs/refs/). Determinism receipt: all 31 goldens pre-move == post-regeneration byte-identical - the generator's determinism is now a git-checkable property, and any future constant change is a reviewable diff instead of an invisible rewrite. CA-R189: Generated constants are proof artifacts: they live in version control. A regeneration that changes a tracked golden is a diff to be reviewed, not a rebuild to be trusted. Build status: P3-0a CLOSED. NEXT: P3-0b - the MSSC design contract (whitepaper section 3 in hand: k=20->40, alpha=0.75, beta=150, phi_floor=0.50, DEC-016 canonical vote preimage, beacon-gated breaker) against the proven substrate (consensus.hpp automaton, g1net.hpp sampler, threshold beacon/sig).
DEC-277 - The Commit-then-Simulate envelope roundtrip: encrypt, wire, committee-decrypt Decision: include/hsma/m2envelope.hpp - the encrypted mempool envelope: the sender picks r, computes R=[r]G2gen and ss=[r]X_E, derives the DEM key via kdf(ss, ser_g2(X_E), hdr), encrypts via dem_encrypt (6-arg: ct, tag, k, hdr, payload, len), and gossips the envelope {R(192B LE), ct_len(4BE), ct, tag(32), cth(32)} as p2p type 0x07. The committee decrypts: D_j = dec_share(s_j_canon, R) per member, aggregate (1-of-1: Ds[0]; k-of-n: Lagrange-weighted, P4-2), kdf, dem_decrypt. Defects owned: DEF-223 (the endianness seam): ser_g2 writes LITTLE-ENDIAN per limb (b=0 is the LSB, m2.hpp:31 out[i48+k8+b] = c[k] >> (8*b)) but decode_envelope read BIG-ENDIAN - the deserialized R was valid-looking but mathematically wrong. Found by the R-roundtrip check ([E2R]: DIFFERS before, SAME after). CA-R202: a serialization format's byte order is part of its contract; the serializer and deserializer must agree per limb, not just per structure
|