Marcin Pawlowski 15ad9f285c
Tighten the statistics in the design-band section
Re-examining §3.2a's inference rather than its numbers found one claim
that was wrong and one that does not survive correction.

Wrong: "two independent tests agree on that onset." The gap test
(countable - unrestricted) and the vs-1.0 test (countable - 1.0) share
the countable arm and are correlated at rho ~ 0.73. The vs-1.0 test is
not confirmation, it is the same measurement with one noisy arm removed
-- which makes it ~1.4x more sensitive, and is why it flags 4 cells
where the gap test flags 1. What IS informative is the contrast between
arms: unrestricted shows chance-level deviation, countable shows a
shortfall concentrated at every uncle cap at the top of the band.

Does not survive: the whole-band pooled gap, -0.00048 +- 0.00033
(t = 2.8). Counting every test in the section -- 15 per-cell gap, 5
pooled-per-delay, 1 whole-band, 30 vs-1.0 = 51 -- Bonferroni requires
z = 3.30. It is now labelled unresolved. The sign imbalance (11/15
negative, p = 0.12) is labelled likewise.

Holds, and more firmly than claimed: delta_max = 5, pooled t = 3.68.
Added a 20 000-draw permutation test on the same cells, which assumes
no distributional form: p = 0.0003, with every other delay at p >= 0.21.
It clears the 51-test Bonferroni threshold. Replicate distributions are
clean (sd ~0.003, |skew| <= 0.5, no outliers), and the peering graph
re-rolls per replicate -- `replicate` is in config.key() and the graph
is seeded from the full-key spawn hierarchy -- so the replicate SEM
captures graph-to-graph variance rather than pseudo-replicating one
graph.

Added a weighted regression of gap on delay as a single pre-specifiable
test with no choice of which delay to inspect: slope -0.00024 +-
0.00012 per slot (t = -2.05). Consistent with a monotone cost, marginal
on its own, and reported as such.

Added the limitation that actually caps the resolution: the comparison
is unpaired. uncle_model enters the config key (which is what makes
--old bit-reproduce the earlier runs), so the two arms share neither
graph nor lottery draws and each comparison pays the between-run
variance twice -- a +-0.0015 per-cell floor, an order of magnitude
above the effect. A paired design would cancel most of it and is named
as the single change that would most improve the measurement.

The §1 summary is corrected to match: indistinguishable from zero up to
delta_max = 4, resolved only at the top of the band at ~0.14%.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 10:57:51 +02:00
..

Total-Stake-Inference parameter selection

Per-node network simulation of Cryptarchia Total Stake Inference (TSI). Simulator: tsi-sim-pernode. All runs at the true security parameter k = 2160 unless noted; latency is in slots and 1 slot = 1 s.

This report selects and justifies the TSI parameters for Cryptarchia from a per-node network simulation. The whole report is one document — tsi-report.md — and section numbers (§1§9, Appendices AC) are stable identifiers referenced from the simulator and from spec discussion.

Uncle references. The model analysed throughout is the countable one: counting-only references, deduplicated by slot, drawn from first-fork blocks only, within a window derived as w_u = W_abs/f. An unrestricted baseline — any orphan in the window at any fork depth — is measured alongside it for comparison. The two are indistinguishable in the design regime ρ < 1 and diverge only under overload. See the model note at the top of the report, the mechanism in §2.1, the comparison in §3.2§3.2a, and the reproduction notes in §9.

Contents

Read the report →

§ what it covers
§1 executive summary — the problem, the findings, the recommendation
§2 the model, the measurement convention, and the counting rule
§3 the findings and their evidence, including the high-precision design band (§3.2a)
§4 design equations and the parameter-selection algorithm
§5 caveats and regime of validity
§6 robustness — jitter, grinding, withholding, selfish mining, rewards, reorg depth, churn
§7 parameter reference — what each knob does
§8 the safest selection, residual risks, and the recommendation-vs-spec deltas
§9 reproducibility — how to re-run every study
A · B · C the residual f-rounding offset · the per-epoch noise floor · consensus detail

Headline recommendation

Cryptarchia baseline f = 1/30. Two design choices are foundational: count uncles per occupied slot, not per block — the density-bug fix that lands the estimate at exactly D (§2.1, §8.5) — and make genesis a single protocol constant, identical at every node, never client-configurable, since a per-node divergence is never self-corrected (§8.1 row 7). The settings: security k = 2160, uncle window W = 300 slots, uncle cap U ≥ ⌈ρ⌉ + 1 (2 at the Blend target; the protocol's MAX_UNCLES = 4 sits safely above it), learning rate β = 1, on-chain f at 10⁻⁶ precision, peering degree ≥ 6 at scale, soft uncle rewards with w_u + w_n < 1, and operate at load ρ = f·D_vis < 1. The full recommended-configuration table and rationale are in §8 →.

Figures

Figures are embedded from report-figures/ via relative links and are versioned here alongside the report. They are produced by the simulator's plotting scripts (scripts/*.py and tsi_sim.plotting) in tsi-sim-pernode; that simulation folder does not commit its own generated figures — the copies checked in here are the report's figures of record.

Reproducing the results

The simulation code, configs, and run data live in tools/simulators/tsi/tsi-sim-pernode. Every study's exact command is listed in §9 — Reproducibility. In short, from the simulator directory: make install, then make <config> to run a sweep (results land under runs/<timestamp>_<label>/), and the per-figure generators under scripts/ render the figures. Regenerated figures must be copied into report-figures/ to update this report.