From b9f6af8f5a6460cf14496ec6df0269619f6a8367 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Wed, 7 Oct 2026 20:39:42 +0000 Subject: [PATCH] attack-pass F4: reconciled with adv-mixer-2 (the carry digit at position 32 counted here and not there; agreed median 226, 15 days a century, worst 2050-04-28 at 1.113x; the rule takes adv-mixer-2's form) Co-Authored-By: Claude Fable 5.1 --- docs/analysis/attack-pass-2026-10.md | 5 +++++ docs/analysis/attack-pass/f4-weakday.md | 30 +++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/docs/analysis/attack-pass-2026-10.md b/docs/analysis/attack-pass-2026-10.md index ad49738c..ae719a5a 100644 --- a/docs/analysis/attack-pass-2026-10.md +++ b/docs/analysis/attack-pass-2026-10.md @@ -558,6 +558,11 @@ redraw day 22,633; no pack changes. Landed (Counter ASIC lane, 7 October 2026, 1 (`docs/design/class-v5-stored-state.md` section 11) with F4's harness as its gate, re-gated by this lane against the v5 branch once its `accept.rs` carries it. The brief's rank 3 (funding.md B2, the untested all-equal ROT draw of MEMHARD.md) now reads "a bounded tail, measured", with the F4 record as the source. +Reconciled with adv-mixer-2's independent census (7 October 2026, 21:5x UK; F4 record section 9): the same class +and cost form; this record's NAF counted the carry digit at position 32, which a 32-bit multiplier never pays, so the +agreed figures are adv-mixer-2's: median 226, a 1.1x gain at cost A at most 205, 5.69e-4 of days (2^-10.8), 15 days +a century, worst 2050-04-28 (day 29,337) at 1.113x; the DSP-bound readings agree at 0; the redraw rule for the next +class takes adv-mixer-2's form (cost A at most 205, or k >= 1, or the eight ROT equal). Status: F4 PASS against v4; AP-F4-1 FIXED-AND-PASSED against v5 once the lane's accept.rs carries the rule and the census passes against it. diff --git a/docs/analysis/attack-pass/f4-weakday.md b/docs/analysis/attack-pass/f4-weakday.md index 34cdecd4..06c4164c 100644 --- a/docs/analysis/attack-pass/f4-weakday.md +++ b/docs/analysis/attack-pass/f4-weakday.md @@ -307,3 +307,33 @@ under 4 in `census-100y.md`); the `ROT` rule redraws one, day 57,146 (2 distinct * It did not search optimal single-constant multiplication costs (not computable at 2^28 scale); NAF is the standard canonical bound and the ratio between days is what the gate asks. * It did not census the era draw (F7) or the spec's intent for the 64-bit seeding (F7); the fact is stated in section 1. + +## 9. Reconciliation with adv-mixer-2's independent census (7 October 2026, 21:5x UK; main's order through the +crypto-engage coordinator: the two tables side by side, the median each used, one agreed figure) + +Both censuses read the same class, the FPGA LUT multiplier-adder area (no chip or GPU gain), with the same cost form, +64 + the sum over the sixteen MUL of (signed-digit weight - 1). They differ in one convention. This harness's +`naf_weight` (src/main.rs line 72) computes the canonical NAF of the constant as a `u64` and counts every digit, +including the carry digit at position 32 that a 32-bit odd constant carries with probability 1/3; adv-mixer-2's +`w32` counts the digits at positions 0 to 31 only, because a multiplier modulo 2^32 is never built with a digit at +position 32. Checked on 2^18 random odd constants: mean weight 11.442 with the carry digit against 11.109 without +(P(digit at 32) = 0.3334), cost 231.1 against 225.7. So this record charged every day about 5 adders a 32-bit +multiplier never pays, unevenly per day, which is the whole of 231 against 226 and of 12 against 15 days a century. + +| Quantity | This record (M1, carry digit counted) | adv-mixer-2 (model A, w32 modulo 2^32) | Agreed | +|---|---|---|---| +| Cost form | 64 + sum(NAF(MUL_i) - 1), NAF over u64 | 64 + sum(w32(MUL_i) - 1), digits 0 to 31 | adv-mixer-2's: the digit at position 32 costs nothing in a 32-bit multiply | +| Median per application | 231 (census over 2^24 chain days; mean 231.113) | 226 (exact, 16-fold convolution over all 2^31 odd constants; the log's provisional 231 superseded) | 226 | +| Threshold for a 1.1x gain | cost under 210 (NAF sum under 163) | cost A at most 205 | cost A at most 205 | +| Fraction of days over 1.1x | 3.264e-4 (5,476 of 2^24); exact expectation 3.243e-4 | 5.677e-4 (2^24 census); exact 5.694e-4 | 5.69e-4, about 2^-10.8, against the 2^-20 gate | +| Days over 1.1x per century (36,525 public days) | 12 | 15, listed in its Q4 | 15 | +| Worst public day | 29,337 (2050-04-28), cost 206, 1.121x | 29,337 (2050-04-28), cost A 203, 1.113x | 29,337, 1.113x | +| Genesis day 20,729 | cost 226, 0.978x | cost A 219, 1.032x | 219 | +| DSP-bound metric | M2: 0 days with k >= 2 in 2^28; k >= 1 at 1.067x | model C: P(k >= 1) 3.12e-5 (1.067x), P(k >= 2) 4.57e-10 (1.143x) | agree: under the gate at every k | +| Redraw rule for the next class | reject NAF sum under 163 (cost under 211), redraw from the next stream values | cost A at most 205, or k >= 1, or the eight ROT equal: continue the same SplitMix64 stream and draw the forty again | adv-mixer-2's form and numbers | + +Verdict unchanged: PASS against class v4 on the DSP-bound reading (M2 and model C agree at 0), the LUT tail bounded +and measured; the agreed numbers above replace this record's M1 figures wherever quoted, and AP-F4-1's rule on the +v5 list takes adv-mixer-2's form. Harness note: `attack-f4 plant` and `day` default `--median` to 221 when the flag is +absent (the plant lines of the class v5 run this evening read "median 221" for that reason); every census line in +this record was run with `--median 231` and is restated against 226 above.