From 0510b20684b5b2c8c639d8cf042d6e3356427b56 Mon Sep 17 00:00:00 2001 From: Marcin Pawlowski Date: Wed, 5 Aug 2026 15:29:57 +0200 Subject: [PATCH] Countable recovery under a selfish adversary: SM1 hides the first-fork cost The countable model can reference only the first block of a fork, so a discarded chain of h honest blocks yields one countable uncle, not h. Sec 6.6 reads the estimator repair off a free knob eta and quotes it at eta = 1 -- attainable under SM1, which acts the moment the honest branch reaches length 1 and so never buries a second block. The optimal SSZ policy waits and does bury them, and there the deployed counting rules cap eta at 0.44 (alpha = 0.4, gamma = 0), landing D-hat at 0.81 rather than the 0.94 an unrestricted count gives -- and the ceiling degrades with alpha while the unrestricted value improves. So SM1 is a faithful proxy for selfish-mining revenue (0.484 vs 0.489) but not for TSI's estimator damage. selfish_mdp: carry per-branch orphan counts on the transition table so the accounting cannot drift from the race logic; optimal_policy_stats solves the policy's stationary distribution for per-event canonical/orphan rates. The per-event rates sum to 1 (every block is canonical or orphaned), which the tests assert as an independent check on the whole derivation. reorg: the same ceiling for the depth-maximising adversary -- 0.52 at alpha = 0.30 with the measured honest fork rate -- reached from the other direction. Neither adversary optimises deflation directly, so both ceilings are upper bounds on eta; that gap is logged as open item 16. Co-Authored-By: Claude Opus 5 (1M context) --- reports/tsi/README.md | 32 ++- .../fig36_countable_selfish.png | Bin 0 -> 260148 bytes .../scripts/countable_selfish.py | 197 ++++++++++++++++++ .../tsi/tsi-sim-pernode/src/tsi_sim/reorg.py | 17 ++ .../tsi-sim-pernode/src/tsi_sim/selfish.py | 29 +++ .../src/tsi_sim/selfish_mdp.py | 178 ++++++++++++++-- .../tests/test_countable_selfish.py | 86 ++++++++ 7 files changed, 514 insertions(+), 25 deletions(-) create mode 100644 reports/tsi/report-figures/fig36_countable_selfish.png create mode 100644 tools/simulators/tsi/tsi-sim-pernode/scripts/countable_selfish.py create mode 100644 tools/simulators/tsi/tsi-sim-pernode/tests/test_countable_selfish.py diff --git a/reports/tsi/README.md b/reports/tsi/README.md index 33457a3..6f9a6d9 100644 --- a/reports/tsi/README.md +++ b/reports/tsi/README.md @@ -72,7 +72,7 @@ 1. **All nodes always agree.** In every run, at every network size and block rate tested (1 000–10 000 nodes at the production security parameter; to 32 000 in the size-scaling study, [§3.7](#s3-7); blocks every 10–30 s), all nodes computed *exactly* the same estimate — even though they constantly disagree about the newest blocks. The reason is structural: TSI measures a window buried deep in the finalized past, where every honest node sees identical history ([§3.1](#s3-1)). Two caveats keep this honest: agreement is not accuracy — nodes can unanimously agree on a wrong value (see next point) — and agreement is inherited from the common genesis value, not rebuilt: TSI maintains agreement but cannot repair a divergence that somehow arose ([Appendix C](#sC)). 2. **Network delay makes the estimate too low; uncle references fix it.** When blocks race, the losers ("orphans") drop off the chain and out of the count, so the network under-counts its own stake — by roughly a quarter to a third under Blend (the mix-network transport) delays, deepening with network size. The error is strictly one-sided: the equilibrium estimate is **bounded above by the true stake** — `D̂/D` cannot exceed 1 (no tested cell sits above 1 beyond sampling noise, which is why the accuracy plots are capped at 1; [§2.2](#s2-2)), so delay can only deflate the estimate, never inflate it. Letting each block also reference recent orphans ("uncles") puts them back into the count — counting *slots*, so a slot with two winners still counts once — and a single uncle reference per block restores the estimate to **exactly the true stake** (the recommended cap adds a one-uncle margin, [§8](#s8)) (the only residual is an optional ~1 % from on-chain rounding of the target rate, [§2.2](#s2-2)/[Appendix A](#sA)) ([§3.2](#s3-2)). 3. **Two sizing rules cover the deployments tested.** How many uncle slots a block needs (`U`) is dictated by the **load** — the number of blocks the whole network produces during the time one block needs to reach everyone (written `ρ`; formally `ρ = f·D_vis`, [§3.3](#s3-3)). The load counts the concurrent blocks each new block must be able to reference, and one uncle slot drains one of them per block — so `U` must be at least the load rounded up, plus one spare. How far back a block may reach for an orphan (`W`) is dictated by block spacing, not delay: about ten block intervals. The formal equations, their calibration, and worked examples are in [§4](#s4). -4. **Cheating doesn't pay.** Hiding blocks to deflate the estimate costs the attacker more than anyone else, heals within one epoch, and — for a full withdrawal — the lower estimate is simply the *correct* count of who is still participating ([§6.4](#s6-4)–[§6.5](#s6-5)). The one genuinely profitable attack is classic selfish mining, which needs roughly one-third of all stake and afflicts every Nakamoto-style chain, not TSI specifically; the damage it does to the estimate is repaired by the same uncle mechanism ([§6.6](#s6-6)). Rewarding uncles compensates the honest victims of delay and makes hiding strictly worse — but the reward must remain a bonus (a *soft* rule, never a validity requirement, which an attacker could turn into a tool for censoring or forking the chain), and the uncle + nephew rewards (the nephew reward pays the block that *includes* the reference) must together stay below one block reward, or deliberately orphaning one's own blocks becomes a business ([§6.7](#s6-7)–[§6.8](#s6-8)). +4. **Cheating doesn't pay.** Hiding blocks to deflate the estimate costs the attacker more than anyone else, heals within one epoch, and — for a full withdrawal — the lower estimate is simply the *correct* count of who is still participating ([§6.4](#s6-4)–[§6.5](#s6-5)). The one genuinely profitable attack is classic selfish mining, which needs roughly one-third of all stake and afflicts every Nakamoto-style chain, not TSI specifically; the damage it does to the estimate is *partly* repaired by the same uncle mechanism — about half of it against an optimally-played attack, because the counting rule can reach only the first block of each discarded fork ([§6.6](#s6-6)). Rewarding uncles compensates the honest victims of delay and makes hiding strictly worse — but the reward must remain a bonus (a *soft* rule, never a validity requirement, which an attacker could turn into a tool for censoring or forking the chain), and the uncle + nephew rewards (the nephew reward pays the block that *includes* the reference) must together stay below one block reward, or deliberately orphaning one's own blocks becomes a business ([§6.7](#s6-7)–[§6.8](#s6-8)). 5. **Reorganisations stay shallow if the load stays low.** Forks are the cost centre: a deep reorg discards confirmed blocks. Fork depth grows with delay, and uncles keep it shallow (without them the deflated estimate over-produces blocks, and honest reorgs reach ~17 deep; with them, ~4). Against a private-chain attacker holding 10–30 % of stake trying to force the deepest reorg, keeping the load below one (few honest forks) keeps reorgs bounded and shallow (single digits to low tens of blocks even at 30 % stake) — but past that, at 30 % stake and heavy delay, fork-induced orphaning tips the attacker over an effective majority and reorgs become unbounded. The same "keep `ρ < 1`" rule that keeps the estimate accurate keeps reorgs shallow ([§6.10](#s6-10)). *Method note: results come from the per-node simulator at the production security parameter k = 2160, with the robustness and size-scaling studies at a reduced k = 256 where noted; the sizing rules are semi-empirical (their form follows from the fork/orphan mechanism, their constants are fitted to the sweeps) and are derived under honest, deterministic-delay conditions — noise, attacks, and incentives are treated in [§6](#s6).* @@ -474,7 +474,7 @@ Read this before using the numbers: the regime they hold in, and the margins tha - **[§6.3](#s6-3)** uncle-suppression grinding — a bounded attack. - **[§6.4](#s6-4)** static block withholding — deflates `D̂` but faithfully tracks *active* stake. - **[§6.5](#s6-5)** dynamic withhold-rejoin grinding — unprofitable, non-persistent. -- **[§6.6](#s6-6)** selfish / private-chain withholding — the one profitable lever (above the classic stake threshold, quantified with the optimal-strategy MDP); uncle-*counting* still restores the estimate. +- **[§6.6](#s6-6)** selfish / private-chain withholding — the one profitable lever (above the classic stake threshold, quantified with the optimal-strategy MDP); uncle-*counting* restores about half of the estimator damage, bounded by the countable rule's one-uncle-per-fork ceiling. - **[§6.7](#s6-7)** block/uncle *rewards* — robustly compensate honest orphans and disincentivise hiding, but a *voluntary* reward can backfire on selfish mining. - **[§6.8](#s6-8)** a *soft* (reward-weighted) inclusion rule — the fork-safe choice (a validity rule cannot prove which forks a producer saw). The emergent reference rate stays high (honest blocks reference the published orphans), so the backfire mostly vanishes; the residual is set by the uncle window `W` (how far back a block may reach to reference an orphan; recommended 300 slots = 10/f, [§3.4](#s3-4)) and visibility. - **[§6.9](#s6-9)** multiple coalitions and bribery — the abstention commons is bounded and structure-independent; multi-coalition *selfish* mining is flagged, not solved. @@ -592,9 +592,21 @@ The curve is **within `0.09` for `β = 0.5` and `β = 1.0`** at every duty — p ![Fig 13 — selfish mining earns more than its stake above the classic threshold (left, vs the Eyal–Sirer closed form); its orphaning deflates D̂, which uncle-counting recovers (right).](report-figures/fig13_selfish.png) +**But `η` is not free — the first-fork restriction caps it, and SM1 hides that (`fig36`).** `fig13`'s recovery curve reads `η` as a knob over `[0,1]`, and against **SM1** the full range is attainable: SM1 acts the moment the honest branch reaches length 1 (match at a 1-lead, override at a 2-lead, publish-one above it), so it never buries a second block behind the first, every orphan it makes is the first block of its fork, and the countable model ([§2.1](#s2-1)) can reference all of them — measured `η = 1.000000` exactly, at every `α` and `γ` tested. The **optimal** policy — the one invoked above as the true profit frontier — does not oblige. It *waits*, then overrides a run of `h` honest blocks at once; that run is one chain, so only its first block has a parent on the referencing chain and the deployed rules recover **one** uncle from it, not `h`. Solving the SSZ MDP for its stationary orphan structure (`scripts/countable_selfish.py`, cap = 64) gives the ceiling directly (`γ = 0`): + +| `α` | `η` ceiling (countable) | `D̂/D*` unrestricted, `p_ref` = 1 | `D̂/D*` countable, `p_ref` = 1 | +|---|---|---|---| +| 0.34 | 0.585 | 0.926 | **0.856** | +| 0.40 | 0.441 | 0.945 | **0.811** | +| 0.46 | 0.105 | 0.955 | **0.619** | + +So **SM1 is a faithful proxy for selfish-mining revenue but not for TSI's estimator damage**: at `α = 0.4, γ = 0` its revenue share (0.484) sits within 1 % of the optimum's (0.489), while its recoverable-orphan fraction (1.00) is more than double (0.44). The repair is real but roughly **half** of what the unrestricted model shows — `0.81`, not `0.94`, at `α = 0.4` — and it moves the *wrong way* with `α`: the unrestricted recovery improves as the attacker grows (0.926 → 0.955) because a stronger attacker orphans a larger share of a shrinking honest chain, while the countable recovery **degrades** (0.856 → 0.619) because a stronger attacker waits longer and buries more blocks per fork. (Read the `α ≥ 0.42` cells as indicative: the orphan *shape* converges more slowly in the MDP's lead cap than the revenue does — `η` at `α = 0.45` still moves by ~3 % relative between cap 48 and 64, against ~0.1 % at `α = 0.4`.) The depth-maximising adversary of [§6.10](#s6-10) agrees on the magnitude from the other direction — `η = 0.52` at `α = 0.30` with the measured honest fork rate `o = 0.35` (`reorg.countable_recovery_from_depths`). Neither figure is a worst case: both adversaries optimise something else (revenue, depth), and one optimising *deflation* directly would trade revenue for fork depth. The attacker's own channel is capped by the same rule — its abandoned secret chain is also one chain, so it can self-uncle only the first block of it (`η_adv = 0.750` at `α = 0.4`), which narrows the [§6.7](#s6-7)(a) farming payoff below what the block count suggests. + +![Fig 36 — the countable recovery ceiling under a selfish adversary: SM1 leaves every orphan referenceable (flat 1.0) while the optimal policy buries them (left); the resulting D̂ is about half the repair the unrestricted model shows, and degrades with α (right).](report-figures/fig36_countable_selfish.png) + **Issuance model.** Does deflating `D̂` inflate the reward pie? No, for a per-canonical-block schedule: TSI targets *counted* density `= f`, so the canonical block rate is held at `≈ f` regardless of the attack (the extra lottery wins a deflated `D̂` produces are orphans that earn nothing). Absolute reward per unit stake therefore equals the revenue *share* metric — **[§6.5](#s6-5)'s "abstention is unprofitable" is robust under per-block issuance**, and [§6.6](#s6-6)'s selfish premium is the genuine profit channel. MEV (value extracted from transaction ordering) or a per-*raw*-block schedule would reopen this — an issuance-design question, not a TSI-estimation one. *(This clean equivalence assumes the block-only schedule; once [§6.7](#s6-7) pays and **counts** uncles, the counted density held at `f` includes recovered uncles, so the canonical rate sits slightly below `f` and the pie's size and split both shift. [§6.7](#s6-7)'s profitability is then read directly off the reward *share*, not off a fixed pie — the two subsections use different issuance premises, reconciled only in the `w_u = 0` limit.)* -**Scope.** Modelled: SM1 *and* the optimal-MDP selfish strategy with a network tie-break `γ`, a single coalition, and uncle density-recovery as the `[0,1]` knob `η`. Multi-coalition races are discussed (not solved) in [§6.9](#s6-9). The headline: **private-chain withholding is the real profit threat, bounded by the classic stake threshold; its *estimator* deflation is undone by uncle-counting, while its *profit* premium is only conditionally reduced by rewarding uncles ([§6.7](#s6-7)–[§6.8](#s6-8)).** +**Scope.** Modelled: SM1 *and* the optimal-MDP selfish strategy with a network tie-break `γ`, a single coalition, uncle density-recovery as the `[0,1]` knob `η`, and — for the optimal policy — the ceiling the countable rule puts on `η`. Multi-coalition races are discussed (not solved) in [§6.9](#s6-9); their orphan *shape*, and hence their own `η` ceiling, is unmodelled for the same reason. The reward analysis of [§6.7](#s6-7)–[§6.8](#s6-8) runs on the SM1 race, where every orphan is countable, so its numbers are unaffected by the restriction — but they inherit SM1's optimism about *which* orphans exist to be compensated. The headline: **private-chain withholding is the real profit threat, bounded by the classic stake threshold; its *estimator* deflation is roughly halved by uncle-counting rather than undone, while its *profit* premium is only conditionally reduced by rewarding uncles ([§6.7](#s6-7)–[§6.8](#s6-8)).** ### 6.7 Block/uncle rewards: robust for fairness and anti-hiding, but a *voluntary* reward can backfire on selfish mining (`fig14`, `fig15`) @@ -668,6 +680,8 @@ Everything above assumed a single coalition; this section asks what changes when **Result 3 — a confirmation-depth rule for finality.** Turning the tail into a wait-time: at the recommended operating point (`o ≈ 0.35`), to hold `P(reorg ≥ d) < 10⁻³` a receiver waits **d ≈ 4 blocks (~2 min) against a 10 % adversary, 8 (~4 min) against 20 %, 17 (~8.5 min) against 30 %**; for a `10⁻⁶` guarantee, roughly double those (8 / 15 / 34 blocks). These are the confirmation depths for probabilistic settlement. The protocol's *deterministic* finality at `k = 2160` blocks is vastly deeper than any of these, so the finality-driven `k` ([§3.1](#s3-1)) is consistent with — and far more conservative than — the reorg tail; the confirmation-depth rule matters only for parties wanting faster-than-final soft settlement. These 4/8/17 depths are the **N = 1 000, degree-6** point; the scale study below shows how they move with size and connectivity. +**Result 4 — what a reorg costs the *estimator*, and why depth is the wrong thing to be relaxed about.** Uncle references do not change the longest-chain race, so they do not change reorg *depth* — but depth changes what the references can recover. A depth-`d` reorg discards `d` **consecutive** public blocks: one chain, whose first block alone has a parent on the surviving chain, so the countable rule ([§2.1](#s2-1)) reads exactly one of the `d` back into the density and `d−1` are lost for good. Over the excursions of the deepest-reorg walk that ceiling is `attacks / blocks` (`reorg.countable_recovery_from_depths`), and at the recommended operating point (`o = 0.35`) it falls with stake: **0.85** at `α = 0.10`, **0.70** at 0.20, **0.52** at 0.30 (mean depths 1.18 / 1.43 / 1.93). This is the same ceiling [§6.6](#s6-6) measures for the revenue-optimal adversary (`η = 0.44` at `α = 0.4`), reached from the other direction — and it is why "reorgs stay shallow" is load-bearing for *accuracy* and not only for settlement: every block of extra depth is a block the estimator can never count. + **Scale (N × degree).** The honest fork rate `o`, and through it the reorg depths, rises with network size and falls with peering degree. The 99.9 % confirmation depths (blocks) against a 10/20/30 % adversary, measured over `N × degree` (`scripts/reorg_depth.py --measure-scale`, `runs/fork_rate_vs_scale.parquet`): | N | degree | fork rate `o` | d(10 %) | d(20 %) | d(30 %) | @@ -745,7 +759,7 @@ Every parameter a protocol designer or operator can set, in three groups: **prot | private-chain reorg (`α` = 0/10/20/30 %) | deepest-reorg longest-chain attack | `α` = the attacking coalition's stake fraction — the selfish-mining notation for `β_adv` above, and distinct from the TSI learning rate `β` ([§6.3](#s6-3)); reorg-depth tail `(α_eff/(1−α_eff))^d` with the *effective* share `α_eff=α/(α+(1−α)(1−o))` (`o` = honest fork rate); shallow at ρ<1, unbounded at 30 % once forks push `α_eff>½` | [§6.10](#s6-10), figs 27, 28 | | `fork_rate`, `max_reorg_depth` (engine outputs) | measured fork structure | honest fork rate 0.2→0.6 over δ=2→32 s; max reorg depth 2→4 (U=2), up to 17 at U=0 | [§6.10](#s6-10), fig28 | | `α`, `γ` (selfish race) | private-chain withholding | profitable above `(1−γ)/(3−2γ)` (⅓ at γ = 0); the optimal MDP barely beats SM1 at γ = 0 | [§6.6](#s6-6), figs 13, 14 | -| `η` — uncle-recovery fraction | estimator repair under selfish orphaning | `D̂` 0.70 → 0.82 → 0.94 as η 0 → 0.5 → 1 (α = 0.4) | [§6.6](#s6-6), fig13 | +| `η` — uncle-recovery fraction | estimator repair under selfish orphaning | `D̂` 0.70 → 0.82 → 0.94 as η 0 → 0.5 → 1 (α = 0.4). **Not a free knob:** the countable rule caps it at one uncle per discarded fork — `η = 1` exactly under SM1, but **0.44** under the optimal policy (α = 0.4, γ = 0), landing `D̂` at 0.81 | [§6.6](#s6-6), fig13, fig36 | | `p_ref`, `p_ref_adv`, `adv_nephew` (`RewardParams`) | the strategic reference game under rewards | selfish share falls below block-only once `p_ref ≳ 0.3` (α ≥ 0.4); attacker self-uncling lowers its own share (0.406 → 0.394) | [§6.7](#s6-7)/6.8, fig15 | | `windowed_fork_choice`, `prune_arrival` | engine exactness | bit-exact at jitter = 0; [§6.1](#s6-1) re-ran the exact oracle (both off) under jitter | [§6.1](#s6-1) | @@ -770,7 +784,7 @@ Everything below is assembled from this report's own measurements; each row cite | 6 | operating point | **`ρ = f·D_vis < 1` with margin** | the fitted static feedback map folds near ρ ≈ 1 (provisioning warning — the full dynamics never reach it); grinding is weak at ρ < 1 (1.04×) but cheap at ρ > 1 (1.43×); chronic ρ > 1 under-count persists after any attack ends. ρ < 1 is simultaneously the honest-accuracy and the adversarial safeguard | [§6.2](#s6-2) fig7; [§6.3](#s6-3) fig8; [§6.5](#s6-5)(iv) fig12 | | 7 | genesis / initialization | **genesis `D̂` is a single protocol constant, identical at every node** — never client-configurable | consensus is an *initialization* property, not a restoring force: an injected per-node spread is conserved forever (max/min ≈ 3.0, flat), while a *common* wrong guess self-corrects in ~2 epochs | [Appendix C](#sC) (fig21); [§3.2](#s3-2) fig1 | | 8 | uncle validity precondition | **a counted uncle must be a real lottery winner for its slot — already enforced on-chain by the spec's ZK Proof-of-Leadership** | fabrication is cryptographically impossible (the ZK Proof-of-Leadership cannot be forged); this precondition underlies every [§6.3](#s6-3)–[§6.5](#s6-5) bound and caps uncle issuance at `≤ U·(w_u + w_n)` per block | [§6.3](#s6-3), [§6.7](#s6-7)(a) | -| 9 | uncles in the density | **recovered uncles enter the TSI counted density** (independent of rewarding them) | restores `D̂` under honest latency (0.64–0.74 → 1.0) *and* under selfish orphaning (0.70 → 0.94 at η = 1) — a safety win with no reward-schedule dependence | [§3.2](#s3-2) fig2; [§6.6](#s6-6) fig13 | +| 9 | uncles in the density | **recovered uncles enter the TSI counted density** (independent of rewarding them) | restores `D̂` under honest latency (0.64–0.74 → 1.0) *and*, partially, under selfish orphaning — a safety win with no reward-schedule dependence. Size the *partial*: honest recovery is full because latency orphans are single blocks, but an optimally-played selfish attack discards multi-block forks of which the countable rule reaches only the first, so recovery there is `0.70 → 0.81` at α = 0.4 (not the `0.94` an unrestricted count would give) and falls further as α grows | [§3.2](#s3-2) fig2; [§6.6](#s6-6) fig13, fig36 | | 10 | inclusion rule | **soft (reward-weighted) — never a validity rule** | a hard mandate cannot be encoded fork-safely: the objective encoding is a censorship weapon, the subjective one forks consensus with no adversary; under the soft rule `p_ref` is emergent and high — at `p_ref ≈ 0.85` the selfish share (0.420 at α = 0.4) is already below block-only (0.484) and near stake | [§6.8](#s6-8) fig15 | | 11 | reward schedule | **substantial `w_u` (Ethereum's GHOST-style uncle rewards are the precedent); `w_u + w_n < 1` strictly enforced** | farming a real leadership win into a self-uncle + self-nephew pays `w_u + w_n` against an honest block's 1 — the binding invariant is the *sum* (0.875 + 0.03125 = 0.906 is safe; 0.875 + 0.15 = 1.025 is not); `w_u` compensates honest orphans (recovery → 1.0) and makes hiding forfeit both rewards | [§6.7](#s6-7)(a), figs 14, 15 | | 12 | peering degree | **degree 4 is acceptable for smaller networks — up to N ≈ 2×10⁵ it keeps the load under 0.9 at the 8-s budget; use ≥ 6 beyond, and scale with the target size** | degree sets the gossip-diameter slope `ℓ_mean ≈ a_d·ln N`, and at a fixed blending budget that slope decides when `U = 1` runs out: at δ = 8 s, degree 4 exhausts U = 1 near **N* ≈ 8×10⁵** (its ladder curve already touches the recovery bar at N = 32 000), degree 6 holds to N ~ 4×10⁹, degree 8 to ≈ 6×10¹² — one degree step (4 → 6) buys ~5 000× more network at the same budget. Degree and the uncle cap are exchangeable defences against growth: densify the graph or add an uncle slot, whichever is cheaper. Plus the small-N benefit of better U = 0 recovery (tip agreement is comparable: deg 6 0.985–0.993 vs deg 4 0.988–0.994) | [§3.7](#s3-7), figs 23, 24; fig19; [Appendix C](#sC) (fig18) | @@ -787,13 +801,13 @@ Everything below is assembled from this report's own measurements; each row cite **Why soft, not hard, inclusion.** "Owed" cannot be proven — no node can prove which forks a producer saw. An objective slot-gap encoding lets an attacker withhold-then-late-release an uncle to retroactively invalidate honest blocks (censorship); a visibility encoding is subjective and forks consensus with no adversary at all ([§6.8](#s6-8)). The soft rule concedes only a small residual (quantified in [§8.3](#s8-3) item 3): a bounded near-threshold backfire that vanishes as the emergent `p_ref` rises, and a per-α premium that stays ≤ +0.014 even at full inclusion. -**What TSI defends, and what it measures.** Abstention-style withholding is strictly unprofitable (reward/stake 0.95 → 0.31 for duty 0.10 → 0.75 at β_adv = 0.3), bounded as griefing (deflation = β_adv·ψ), non-persistent, and does not stack across coalitions ([§6.5](#s6-5), [§6.9](#s6-9)) — and a full withdrawal is *correctly measured*, not mis-measured: `D̂ → (1−β_adv)` is the right answer for the participating stake ([§6.4](#s6-4)). The one profitable lever is classic selfish mining above `(1−γ)/(3−2γ)` — a general Nakamoto-PoS result, not TSI-specific; TSI's added exposure (estimator deflation to 0.70 at α = 0.4) is repaired by uncle-counting (row 9), and the profit premium is blunted, not eliminated, by the soft-rewarded references (row 10). The adversary frontier is exactly optimal selfish mining; no compounding lever remains ([§6.7](#s6-7)). +**What TSI defends, and what it measures.** Abstention-style withholding is strictly unprofitable (reward/stake 0.95 → 0.31 for duty 0.10 → 0.75 at β_adv = 0.3), bounded as griefing (deflation = β_adv·ψ), non-persistent, and does not stack across coalitions ([§6.5](#s6-5), [§6.9](#s6-9)) — and a full withdrawal is *correctly measured*, not mis-measured: `D̂ → (1−β_adv)` is the right answer for the participating stake ([§6.4](#s6-4)). The one profitable lever is classic selfish mining above `(1−γ)/(3−2γ)` — a general Nakamoto-PoS result, not TSI-specific; TSI's added exposure (estimator deflation to 0.70 at α = 0.4) is *partly* repaired by uncle-counting (row 9 — to 0.81, not the 0.94 an unrestricted count would reach, because the deployed rule can reference only the first block of each discarded fork), and the profit premium is blunted, not eliminated, by the soft-rewarded references (row 10). The adversary frontier is exactly optimal selfish mining; no compounding lever remains ([§6.7](#s6-7)). ### 8.3 Residual risks and open items 1. **The ρ ≈ 1 fold ([§6.2](#s6-2)).** The fitted static map is bistable at the recipe's own boundary; the full dynamics never reach it, but "U = ⌈ρ⌉ suffices" is an upper edge, not a safe interior — row 6 is a hard provisioning requirement, not a preference. -2. **Multi-coalition selfish mining is open ([§6.9](#s6-9)).** The literature threshold can fall below ⅓ and total orphaning can exceed the single-coalition value, so `D̂ ≈ 0.70` at α = 0.4 is not an upper bound. Flagged, not solved. +2. **Multi-coalition selfish mining is open ([§6.9](#s6-9)).** The literature threshold can fall below ⅓ and total orphaning can exceed the single-coalition value, so `D̂ ≈ 0.70` at α = 0.4 is not an upper bound. Flagged, not solved. The [§6.6](#s6-6) countable ceiling adds a second unmodelled dimension: competing coalitions orphan each other in *runs* as well as in volume, and the recoverable share depends on that shape, not just on the total (item 16). 3. **Near-threshold reward backfire ([§6.7](#s6-7)–[§6.8](#s6-8)).** At α ≈ 0.35 a small backfire (≤ +0.03 above block-only for `p_ref ≳ 0.3`, rising to +0.05 at the unreachable `p_ref = 0`) persists until `p_ref ≳ 0.75`; even `p_ref = 1` leaves a premium growing with α. 4. **No re-convergence ([Appendix C](#sC)).** Any mechanism that could inject persistent per-node `D̂` disagreement (genesis/clock exploit) would never be self-corrected — safety rests entirely on row 7. 5. **Adversarial `U` margin unquantified ([§6.8](#s6-8)).** Under attack-inflated orphaning (orphan/blocks ≈ 0.35 at α = 0.46) the honest-load cap may need extra margin (owed uncles beyond `U` defer and can age out of `W`); this report does not size it. @@ -807,6 +821,7 @@ Everything below is assembled from this report's own measurements; each row cite 13. **Reward payout mechanism unspecified ([§8.5](#s8-5)).** Rows 10–11 give the incentive constraints, not the encoding. Header-count indistinguishability (Blend) and the equal-share, content-independent voucher of the Anonymous Leaders Reward Protocol are the binding constraints on any `w_u`/`w_n` schedule, and reconciling them — including a payout path for a producer whose block is off-chain — is spec work left open here. 14. **Temporal resolution — `D̂` is stale by design ([§6.11](#s6-11)).** With `β = 1`, `D̂` tracks active stake at a one-epoch (≈ 7.5-day) lag, so it reflects participating stake from ~1–2 weeks ago and updates only weekly; a genuinely *sub-epoch* swing (daily or intra-week churn) falls below the estimator's Nyquist limit and is not tracked as a cycle at all. This is the correct trade for organic churn (row 5), but it bounds how fast TSI can follow real participation changes — flagged, not a defect. 15. **Correlated latency untested ([§2](#s2)).** Both link distributions draw each link *independently*, so the sweeps probe the latency marginal, not its spatial structure; geographically **correlated** latency (regional clustering that lets co-located nodes fork as a bloc) is not modelled. In the primary Blend regime the per-hop mixing delay dominates the geographic link term, so this is expected to stay second-order — but it is untested. +16. **The deflation-optimal adversary is unquantified ([§6.6](#s6-6)).** The countable recovery ceilings measured there come from adversaries optimising something *else* — revenue (the SSZ MDP: `η = 0.44` at α = 0.4) and reorg depth (`η = 0.52` at α = 0.30). An adversary optimising the *estimator* directly would trade revenue for fork depth, since every block buried behind a fork's first is permanently uncountable while a deeper fork costs it only the marginal revenue of waiting. Both measured ceilings are therefore upper bounds on `η` — best-case-for-the-defender — not lower bounds on the damage; sizing the deflation-optimal policy is future work. ### 8.4 Capstone: the whole recipe, in one run @@ -878,6 +893,7 @@ Sweep studies are committed configs, run with `make ` (writes a dated `run | dynamic withhold-rejoin grinding | `scripts/dynamic_withhold.py` (`adversary_period`, `adversary_withhold_epochs`) | [§6.5](#s6-5) | | selfish / private-chain withholding | `scripts/selfish_mining.py` (`src/tsi_sim/selfish.py`) | [§6.6](#s6-6) | | optimal selfish (SSZ MDP) + uncle rewards | `scripts/selfish_rewards.py` (`src/tsi_sim/selfish_mdp.py`, `RewardParams`) | [§6.6](#s6-6), [§6.7](#s6-7) | +| **countable recovery ceiling under a selfish adversary** (the `η` cap: SM1 vs the optimal policy) | `scripts/countable_selfish.py` (`selfish_mdp.optimal_policy_stats`, `reorg.countable_recovery_from_depths`); fig36 | [§6.6](#s6-6) | | soft uncle inclusion (reward share vs emergent `p_ref`) | `scripts/reward_mandate.py` | [§6.8](#s6-8), [§6.9](#s6-9) | | U = 0 fluctuation series (zero delay, k ∈ {256, 1024, 2160}) | `scripts/appendix_fluct.py --run` (`runs/fluctuation_u0.parquet`) | [Appendix B](#sB) | | CI smoke grid + analytic sanity checks | `configs/smoke.yaml`; `scripts/verify.py` (`make verify`) — validation only, no figures | — | @@ -893,7 +909,7 @@ Because the two models draw independent RNG streams, every countable-vs-unrestri All studies were **re-run on 2026-07-23/24 with the corrected slot-counting mechanism** ([§2.1](#s2-1)) and the early-stop optimisation; the resilient batch is `scripts/run_all_reruns.sh` (per-step log in `runs/rerun_status.log`). Canonical run directories (latest): fullscale N=5000/10000 = `2026-07-24_094519_fullscale`; fullscale N=1000/2000 = `2026-07-23_171803_fullscale-small`; uncle-window = `2026-07-24_001456`; window-uncles = `2026-07-24_014240`; block-rate = `2026-07-24_043943`; blend-hops-delay = `2026-07-24_064052`; window-scale = `2026-07-24_085234`; latency-shape = `2026-07-24_090014_expdist`; stake-tail = `2026-07-24_090044_pareto133`; heterogeneous-start = `2026-07-24_090114_default`; N-scaling = the `nscaling-{a,b}` + `nscaling32-{a,b}` runs; adversary grids = `runs/adversary_grid/`; jitter = `runs/jitter_grid/`; bootstrap = `runs/bootstrap_fullscale/`; fluctuation = `runs/fluctuation_u0.parquet`; fork-rate = `runs/fork_rate_vs_delay.parquet`; ρ-boundary = `2026-07-27_195627_rho-boundary`. Referencing-model studies: countable-vs-unrestricted (paired, primary) = `2026-08-05_120804_cvo-paired-countable` / `2026-08-05_123403_cvo-paired-old`; the superseded unpaired pair = `2026-08-04_103536_cvo-countable` / `2026-08-04_104010_cvo-old`; window absorption = `2026-08-04_104633_absorption-window`; fine delay band (unpaired) = `2026-08-04_191441_fine-countable` / `2026-08-04_195353_fine-old`; fine delay band (paired, primary) = `2026-08-05_111109_fine-paired-countable` / `2026-08-05_113218_fine-paired-old`. -Figures are embedded from [`report-figures/`](report-figures) and versioned here alongside the report; the simulator folder does **not** commit its own generated figures, so the copies checked in here are the figures of record. Figures are in `report-figures/` (`fig1`–`fig29`, plus [Appendix B](#sB)'s `figB1`–`figB2`; numbering is generation order, not order of appearance). Committed generators: `fig1` (bootstrap, k=2160) by `scripts/bootstrap_dynamics.py`; `fig2`,`fig4`,`fig5`,`fig17`–`fig22` by `scripts/regenerate_extra_figs.py` from the latest sweeps (`fig3` hops×delay×U grid by `scripts/hops_delay_grid.py`, `fig6` (block-rate `U_min` grid + ρ-collapse) rendered ad hoc from `runs/2026-07-24_043943_block-rate` with no committed generator; `fig26` deficit-vs-ρ by `scripts/rho_boundary_analysis.py`) (fullscale-derived `fig17`–`fig20` pool both sizes in that run, N = 5 000 and N = 10 000 — the generators filter on stake_dist/topology/degree/init_dest only, never on `n_nodes`); `fig8`,`fig9` by `scripts/adversary_figs.py` from `runs/adversary_grid/`; `fig10`–`fig12` by `scripts/dynamic_withhold.py`; `fig13`–`fig15` by `scripts/selfish_mining.py`/`selfish_rewards.py`/`reward_mandate.py`; `fig16` by `scripts/stake_vs_delay.py`; `fig23`–`fig24` by `scripts/nscaling_analysis.py`; `fig25` by `scripts/window_scale_analysis.py`; `fig27`–`fig28` by `scripts/reorg_depth.py` (fork rates via `--measure`; private-chain model `src/tsi_sim/reorg.py`); `fig29` by `scripts/churn.py`; `figB1`–`figB2` by `scripts/appendix_fluct.py`. `fig7` (feedback fixed-point) is an analytic overlay; `fig30`–`fig33` (countable-vs-unrestricted accuracy, `q_u`-prediction check, recovery rate, absorption-window sweep) by `scripts/plot_countable_vs_old.py` from the `cvo-countable`/`cvo-old`/`absorption-window` runs; `fig34`–`fig35` (design-regime accuracy and the model gap with 95 % CIs) by `scripts/plot_fine_delay.py` from the `fine-countable`/`fine-old` runs. Every figure type the per-node simulator generates appears in this report, and the fork-rate/reorg-depth study closes the previous reproducibility gap for the adversarial figures (`fig8`,`fig9` now have committed generators from `runs/adversary_grid/`). +Figures are embedded from [`report-figures/`](report-figures) and versioned here alongside the report; the simulator folder does **not** commit its own generated figures, so the copies checked in here are the figures of record. Figures are in `report-figures/` (`fig1`–`fig29`, plus [Appendix B](#sB)'s `figB1`–`figB2`; numbering is generation order, not order of appearance). Committed generators: `fig1` (bootstrap, k=2160) by `scripts/bootstrap_dynamics.py`; `fig2`,`fig4`,`fig5`,`fig17`–`fig22` by `scripts/regenerate_extra_figs.py` from the latest sweeps (`fig3` hops×delay×U grid by `scripts/hops_delay_grid.py`, `fig6` (block-rate `U_min` grid + ρ-collapse) rendered ad hoc from `runs/2026-07-24_043943_block-rate` with no committed generator; `fig26` deficit-vs-ρ by `scripts/rho_boundary_analysis.py`) (fullscale-derived `fig17`–`fig20` pool both sizes in that run, N = 5 000 and N = 10 000 — the generators filter on stake_dist/topology/degree/init_dest only, never on `n_nodes`); `fig8`,`fig9` by `scripts/adversary_figs.py` from `runs/adversary_grid/`; `fig10`–`fig12` by `scripts/dynamic_withhold.py`; `fig13`–`fig15` by `scripts/selfish_mining.py`/`selfish_rewards.py`/`reward_mandate.py`; `fig16` by `scripts/stake_vs_delay.py`; `fig23`–`fig24` by `scripts/nscaling_analysis.py`; `fig25` by `scripts/window_scale_analysis.py`; `fig27`–`fig28` by `scripts/reorg_depth.py` (fork rates via `--measure`; private-chain model `src/tsi_sim/reorg.py`); `fig29` by `scripts/churn.py`; `figB1`–`figB2` by `scripts/appendix_fluct.py`. `fig7` (feedback fixed-point) is an analytic overlay; `fig30`–`fig33` (countable-vs-unrestricted accuracy, `q_u`-prediction check, recovery rate, absorption-window sweep) by `scripts/plot_countable_vs_old.py` from the `cvo-countable`/`cvo-old`/`absorption-window` runs; `fig34`–`fig35` (design-regime accuracy and the model gap with 95 % CIs) by `scripts/plot_fine_delay.py` from the `fine-countable`/`fine-old` runs; `fig36` (the countable recovery ceiling under a selfish adversary) by `scripts/countable_selfish.py`, which solves the MDP directly and writes `runs/countable_selfish.parquet` + `runs/countable_selfish_reorg.parquet` (no sweep input). Every figure type the per-node simulator generates appears in this report, and the fork-rate/reorg-depth study closes the previous reproducibility gap for the adversarial figures (`fig8`,`fig9` now have committed generators from `runs/adversary_grid/`). --- diff --git a/reports/tsi/report-figures/fig36_countable_selfish.png b/reports/tsi/report-figures/fig36_countable_selfish.png new file mode 100644 index 0000000000000000000000000000000000000000..e49a84e82c178809008a9846a4c973952fc208de GIT binary patch literal 260148 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 +?vkEV3X;^ndADE5|7X=m8{$8 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 literal 0 HcmV?d00001 diff --git a/tools/simulators/tsi/tsi-sim-pernode/scripts/countable_selfish.py b/tools/simulators/tsi/tsi-sim-pernode/scripts/countable_selfish.py new file mode 100644 index 0000000..cda28c6 --- /dev/null +++ b/tools/simulators/tsi/tsi-sim-pernode/scripts/countable_selfish.py @@ -0,0 +1,197 @@ +"""What the first-fork restriction costs against a selfish adversary — REPORT §6.6 (fig36). + +§6.6 reads the estimator repair off a free knob: the uncle-recovery fraction ``eta``, quoted at +``eta = 1`` ("honest-orphan recovery"). The countable uncle model (§2.1) can reference only the +**first block of a fork**, so ``eta`` is not free — it is capped by how the adversary *shapes* the +blocks it orphans: + + * **SM1** acts the moment the honest branch reaches length 1 (match at a 1-lead, override at a + 2-lead, publish-one above it), so it never buries a second block behind the first. Every orphan + it makes is the first block of its fork and the cap is exactly 1 — the restriction is free. + * The **optimal** (Sapirshtein–Sompolinsky–Zohar) policy *waits*, then overrides a run of ``h`` + honest blocks at once. That run is one chain, so the deployed rules recover **one** uncle from + it, not ``h``, and the cap falls to ~0.44 at ``alpha = 0.4``. + +So SM1 is a faithful proxy for selfish-mining *revenue* (§6.6 quotes 0.484 vs the optimum's 0.488 +at gamma = 0) but **not** for TSI's estimator damage: the two differ by a factor of ~2 in +recoverable orphans. The panel on the right is the consequence — the repair §6.6 credits to uncle +counting is roughly half of what the unrestricted model shows, and it *degrades* with alpha where +the unrestricted model improves. + +Two panels (fig36): + LEFT — the recovery ceiling ``eta_countable`` vs stake, per gamma, against SM1's flat 1.0. + RIGHT — the resulting ``D_hat/D*`` at gamma = 0: no uncles, countable (p_ref = 1 and 0.85), and + the unrestricted baseline §6.6 reports. + +Run: python scripts/countable_selfish.py (writes runs/countable_selfish.parquet + fig36) +""" + +from __future__ import annotations + +from pathlib import Path + +import numpy as np +import pandas as pd + +from tsi_sim.plotting import style +from tsi_sim.reorg import ( + alpha_effective, + countable_recovery_from_depths, + simulate_deepest_reorg, +) +from tsi_sim.selfish import race_from_alpha, selfish_threshold, tsi_dhat_ratio +from tsi_sim.selfish_mdp import optimal_policy_stats + +HERE = Path(__file__).resolve().parent.parent +RUNS = HERE / "runs" +FIGS = HERE / "report-figures" +RUNS.mkdir(exist_ok=True) +FIGS.mkdir(exist_ok=True) + +# cap 64 keeps the orphan *shape* converged (it settles more slowly than the revenue: the drift +# from cap 48 to 64 is ~3e-4 in eta at alpha = 0.4, ~5e-3 at alpha = 0.45). +CAP = 64 +GAMMAS = [0.0, 0.5] +ALPHAS = [0.26, 0.28, 0.30, 0.34, 0.36, 0.38, 0.40, 0.42, 0.44, 0.46] +P_REF_REALISTIC = 0.85 # the §6.8 stand-in for the emergent honest-referencer rate +N_EVENTS = 4_000_000 # SM1 comparison arm + + +def sweep() -> pd.DataFrame: + rng = np.random.default_rng(20260805) + rows = [] + for gamma in GAMMAS: + for alpha in ALPHAS: + s = optimal_policy_stats(alpha, gamma, cap=CAP) + sm1 = race_from_alpha(alpha, N_EVENTS, gamma, rng) + rows.append(dict( + alpha=alpha, gamma=gamma, cap=CAP, + above_threshold=alpha > selfish_threshold(gamma), + deviates=s.deviates, + revenue_opt=s.revenue, + revenue_sm1=sm1.revenue_share, + density_fraction=s.density_fraction, + orphan_hon_blocks=s.orphan_hon_blocks, + orphan_hon_runs=s.orphan_hon_runs, + eta_countable=s.countable_recovery if s.deviates else np.nan, + eta_countable_adv=s.countable_recovery_adv if s.deviates else np.nan, + # the estimator, as §6.6 reports it (unrestricted) and as deployed (countable) + dhat_u0=s.dhat_ratio(p_ref=0.0), + dhat_unrestricted=s.dhat_ratio(p_ref=1.0, countable=False), + dhat_countable=s.dhat_ratio(p_ref=1.0, countable=True), + dhat_countable_pref=s.dhat_ratio(p_ref=P_REF_REALISTIC, countable=True), + # SM1's own repair, for contrast: eta = 1 is attainable there + dhat_sm1_eta1=tsi_dhat_ratio(sm1, 1.0), + eta_sm1=sm1.countable_recovery, + )) + out = pd.DataFrame(rows) + out.to_parquet(RUNS / "countable_selfish.parquet") + return out + + +def report(df: pd.DataFrame) -> None: + print(f"{'gamma':>5} {'alpha':>6} {'rev_opt':>8} {'rev_SM1':>8} {'eta_cnt':>8} {'eta_SM1':>8} " + f"{'no unc':>7} {'unrestr':>8} {'count':>7} {'cnt@.85':>8}") + for _, r in df[df.deviates].iterrows(): + print(f"{r.gamma:5.1f} {r.alpha:6.2f} {r.revenue_opt:8.4f} {r.revenue_sm1:8.4f} " + f"{r.eta_countable:8.4f} {r.eta_sm1:8.4f} {r.dhat_u0:7.4f} " + f"{r.dhat_unrestricted:8.4f} {r.dhat_countable:7.4f} {r.dhat_countable_pref:8.4f}") + hit = df[(df.gamma == 0.0) & np.isclose(df.alpha, 0.40)] + if not hit.empty: + r = hit.iloc[0] + print(f"\nHeadline (alpha=0.40, gamma=0): revenue {r.revenue_sm1:.3f} (SM1) vs " + f"{r.revenue_opt:.3f} (optimal) — a faithful proxy;") + print(f" but eta 1.000 (SM1) vs {r.eta_countable:.3f} (optimal) — not a faithful proxy, " + f"and D_hat {r.dhat_unrestricted:.3f} -> {r.dhat_countable:.3f}.") + + +def fig36(df: pd.DataFrame) -> None: + import matplotlib.pyplot as plt + style.apply_style() + fig, axes = plt.subplots(1, 2, figsize=(9.6, 3.8)) + + # LEFT: the recovery ceiling, optimal policy vs SM1 + ax = axes[0] + ax.axhline(1.0, color="0.5", lw=1.1, ls="--", + label="SM1 — every orphan countable") + for i, gamma in enumerate(GAMMAS): + g = df[(df.gamma == gamma) & df.deviates].sort_values("alpha") + ax.plot(g.alpha, g.eta_countable, "-o", ms=4, color=style.OKABE_ITO[i + 1], + label=rf"optimal policy, $\gamma={gamma}$") + thr = selfish_threshold(gamma) + ax.axvline(thr, color=style.OKABE_ITO[i + 1], lw=0.7, ls=":") + ax.set_ylim(0, 1.08) + ax.set_xlabel(r"adversary stake $\alpha$") + ax.set_ylabel(r"countable recovery ceiling $\eta$") + ax.set_title("The optimum buries orphans SM1 leaves reachable") + ax.legend(fontsize=7, loc="lower left") + + # RIGHT: the estimator consequence at gamma = 0 + ax = axes[1] + g0 = df[(df.gamma == 0.0) & df.deviates].sort_values("alpha") + ax.axhline(1.0, color="0.5", lw=0.9, ls="--", label=r"honest $D^*$") + ax.plot(g0.alpha, g0.dhat_unrestricted, "-s", ms=4, color=style.OKABE_ITO[2], + label=r"unrestricted count, $p_{ref}=1$ (fig13's $\eta=1$)") + ax.plot(g0.alpha, g0.dhat_countable, "-o", ms=4, color=style.OKABE_ITO[3], + label=r"countable, $p_{ref}=1$ (deployed rule)") + ax.plot(g0.alpha, g0.dhat_countable_pref, "-^", ms=4, color=style.OKABE_ITO[5], + label=rf"countable, $p_{{ref}}={P_REF_REALISTIC}$") + ax.plot(g0.alpha, g0.dhat_u0, "-v", ms=4, color=style.OKABE_ITO[1], + label=r"no uncles ($\eta=0$)") + ax.set_xlabel(r"adversary stake $\alpha$") + ax.set_ylabel(r"$\hat D / D^*$ (estimator deflation)") + ax.set_title(r"About half the repair fig13's $\eta=1$ implies") + ax.legend(fontsize=7, loc="lower left") + + style.save(fig, FIGS / "fig36_countable_selfish", provenance="scripts/countable_selfish.py") + plt.close(fig) + + +def reorg_ceilings() -> pd.DataFrame: + """The same ceiling for the *depth*-maximising adversary of §6.10, for cross-reference. + + A depth-``d`` reorg discards ``d`` consecutive public blocks — one chain, one countable uncle. + Reported at the honest fork rate ``o = 0`` and at the measured Blend value ``o = 0.35``, which + inflates the adversary's effective share and so its reorg depths. + """ + rows = [] + for o in (0.0, 0.35): + for alpha in (0.10, 0.20, 0.30): + ae = alpha_effective(alpha, o) + depths = simulate_deepest_reorg(ae, 4_000_000, np.random.default_rng(5)) + rows.append(dict(alpha=alpha, orphan_rate=o, alpha_eff=ae, attacks=int(depths.size), + mean_depth=float(depths.mean()), + eta_countable=countable_recovery_from_depths(depths))) + out = pd.DataFrame(rows) + out.to_parquet(RUNS / "countable_selfish_reorg.parquet") + print("\n=== depth-maximising adversary (§6.10) — same first-fork ceiling ===") + print(f"{'alpha':>6} {'o':>5} {'a_eff':>7} {'E[d]':>6} {'eta_cnt':>8}") + for _, r in out.iterrows(): + print(f"{r.alpha:6.2f} {r.orphan_rate:5.2f} {r.alpha_eff:7.4f} {r.mean_depth:6.3f} " + f"{r.eta_countable:8.4f}") + return out + + +def main() -> None: + import argparse + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--reuse", action="store_true", + help="re-render from runs/countable_selfish.parquet instead of re-solving the " + "MDP (the solve is ~15 min; the figure is not)") + args = ap.parse_args() + + cached = RUNS / "countable_selfish.parquet" + if args.reuse and cached.exists(): + print(f"=== re-rendering from {cached.name} ===") + df = pd.read_parquet(cached) + else: + print(f"=== countable recovery under a selfish adversary (MDP cap={CAP}) ===") + df = sweep() + reorg_ceilings() + report(df) + fig36(df) + print("wrote fig36_countable_selfish") + + +if __name__ == "__main__": + main() diff --git a/tools/simulators/tsi/tsi-sim-pernode/src/tsi_sim/reorg.py b/tools/simulators/tsi/tsi-sim-pernode/src/tsi_sim/reorg.py index a537084..9050199 100644 --- a/tools/simulators/tsi/tsi-sim-pernode/src/tsi_sim/reorg.py +++ b/tools/simulators/tsi/tsi-sim-pernode/src/tsi_sim/reorg.py @@ -74,3 +74,20 @@ def simulate_deepest_reorg(alpha_eff: float, n_events: int, peak = 0 # honest block at lead 0 -> canonical growth, no attack in progress return np.asarray(depths, dtype=np.int64) + + +def countable_recovery_from_depths(depths: np.ndarray) -> float: + """Share of reorg-discarded public blocks the countable model can reference back (§6.6). + + A depth-``d`` reorg displaces ``d`` *consecutive* public blocks. They form one chain rooted at + the fork point, and the countable model can reference only the block whose parent lies on the + referencing chain — so one of the ``d`` is recoverable into the density and ``d-1`` are not. + Over a run of attacks that ceiling is ``attacks / blocks = len(depths) / sum(depths)``. + + This is the depth-*maximising* adversary's value; the revenue-maximising one is + :func:`tsi_sim.selfish_mdp.optimal_policy_stats`. Neither is a worst case for the estimator — + an adversary optimising deflation directly would trade revenue for depth. + """ + d = np.asarray(depths, dtype=np.int64) + total = int(d.sum()) + return (d.size / total) if total else 1.0 diff --git a/tools/simulators/tsi/tsi-sim-pernode/src/tsi_sim/selfish.py b/tools/simulators/tsi/tsi-sim-pernode/src/tsi_sim/selfish.py index b569e5b..4833e86 100644 --- a/tools/simulators/tsi/tsi-sim-pernode/src/tsi_sim/selfish.py +++ b/tools/simulators/tsi/tsi-sim-pernode/src/tsi_sim/selfish.py @@ -63,6 +63,29 @@ class RaceResult: """Counted canonical blocks / all mined blocks — the factor TSI deflates ``D̂`` by.""" return (self.adv + self.hon) / self.events if self.events else 1.0 + @property + def orphan_hon_runs(self) -> int: + """Orphaned honest *chains* — the number of them the countable model can reference. + + The countable uncle model (§2.1) can reference only the first block of a fork, so a + discarded chain of ``h`` honest blocks yields one countable uncle, not ``h``. **Under SM1 + this equals** ``orphan_hon``: the rule acts the moment the honest branch reaches length 1 + (match at a 1-lead, override at a 2-lead, publish-one above it), so it never buries a + second block behind the first and every orphan it makes is the first block of its fork. + The optimal policy *waits* and does bury them — see + :func:`tsi_sim.selfish_mdp.optimal_policy_stats`, where the ratio drops well below 1. + """ + return self.orphan_hon + + @property + def countable_recovery(self) -> float: + """Ceiling on the uncle-recovery fraction ``eta`` under the first-fork rule: 1.0 for SM1. + + Stated as a property rather than a constant so the SM1 claim is checkable in one place + (``tests/test_countable_selfish.py``) against the same quantity computed for the optimum. + """ + return self.orphan_hon_runs / self.orphan_hon if self.orphan_hon else 1.0 + def simulate_selfish(is_adv: np.ndarray, gamma: float, rng: np.random.Generator) -> RaceResult: """Eyal–Sirer SM1 selfish-mining race over a stream of block-finding events. @@ -217,6 +240,12 @@ def tsi_dhat_ratio(race: RaceResult, uncle_recovery: float) -> float: TSI drives the *counted* density to ``f``; the counted density is the canonical fraction plus a recovered fraction ``uncle_recovery ∈ [0,1]`` of the orphaned HONEST blocks (referenced back as uncles — adversary blocks reference none, §6.4). ``D̂/D* = (adv + hon + u*orphan_hon)/events``. + + ``uncle_recovery`` is a free knob. Against **SM1** the deployed counting rules admit its full + range — every orphan SM1 makes is countable (``race.countable_recovery == 1``). Against the + **optimal** policy they do not: use + :meth:`tsi_sim.selfish_mdp.OptimalPolicyStats.dhat_ratio`, which caps recovery at one uncle per + orphaned chain (§6.6). """ u = float(np.clip(uncle_recovery, 0.0, 1.0)) counted = race.adv + race.hon + u * race.orphan_hon diff --git a/tools/simulators/tsi/tsi-sim-pernode/src/tsi_sim/selfish_mdp.py b/tools/simulators/tsi/tsi-sim-pernode/src/tsi_sim/selfish_mdp.py index fc1e52c..3b3c53d 100644 --- a/tools/simulators/tsi/tsi-sim-pernode/src/tsi_sim/selfish_mdp.py +++ b/tools/simulators/tsi/tsi-sim-pernode/src/tsi_sim/selfish_mdp.py @@ -13,10 +13,19 @@ bisection, solving each inner MDP by relative value iteration. The optimal revenue is an upper bound on any selfish adversary's take; it lower-bounds the honest stake threshold above which deviating pays. Used in §6.6 to bracket the real profit frontier. + +:func:`optimal_policy_stats` reads a second quantity off the same solution: how the orphaned +blocks are *shaped*. The countable uncle model (§2.1) can reference only the **first block of a +fork**, so an override that discards ``h`` honest blocks — one chain — yields one countable +uncle, not ``h``. SM1 never lets the honest branch grow past 1 before acting, so under SM1 every +orphan is countable; the optimum *waits*, and that is what the first-fork restriction cannot +recover (§6.6). """ from __future__ import annotations +from dataclasses import dataclass + import numpy as np # fork labels @@ -34,46 +43,53 @@ def _build_states(cap: int): def _transitions(a, h, f, action, alpha, gamma, cap): - """Legal-action transition list: [(prob, (a',h',f'), adv_reward, hon_reward)]. + """Legal-action transition list: [(prob, (a',h',f'), adv_reward, hon_reward, orph_hon, + orph_adv)]. Returns None if the action is illegal in this state. At the cap, only adopt/override remain so the chain stays bounded (the optimal policy resolves long before the cap in the tested range). + + ``orph_hon`` / ``orph_adv`` are the honest / adversary blocks *discarded* on that branch. They + are carried here rather than re-derived downstream so the orphan accounting cannot drift from + the race logic. Each is a **contiguous chain** rooted at the fork point, which is what makes the + countable model's first-fork rule recover exactly one of them (:func:`optimal_policy_stats`). """ beta = 1.0 - alpha at_cap = a >= cap or h >= cap if action == ADOPT: - # abandon the secret chain; the h honest blocks are confirmed, then one block is mined - return [(alpha, (1, 0, IRRELEVANT), 0, h), - (beta, (0, 1, IRRELEVANT), 0, h)] + # abandon the secret chain; the h honest blocks are confirmed, then one block is mined. + # The a secret blocks are discarded as one chain off the fork point. + return [(alpha, (1, 0, IRRELEVANT), 0, h, 0, a), + (beta, (0, 1, IRRELEVANT), 0, h, 0, a)] if action == OVERRIDE: if a <= h: return None # need a strictly longer chain to override # publish h+1 blocks -> they override the public h; a-h-1 stay secret; then one block mined - return [(alpha, (a - h, 0, IRRELEVANT), h + 1, 0), - (beta, (a - h - 1, 1, RELEVANT), h + 1, 0)] + return [(alpha, (a - h, 0, IRRELEVANT), h + 1, 0, h, 0), + (beta, (a - h - 1, 1, RELEVANT), h + 1, 0, h, 0)] if at_cap: return None # only adopt/override allowed at the boundary if action == WAIT: if f != ACTIVE: - return [(alpha, (a + 1, h, IRRELEVANT), 0, 0), - (beta, (a, h + 1, RELEVANT), 0, 0)] + return [(alpha, (a + 1, h, IRRELEVANT), 0, 0, 0, 0), + (beta, (a, h + 1, RELEVANT), 0, 0, 0, 0)] if a < h: return None # inconsistent (unreachable) active state: only adopt is valid # waiting while a fork is active: the same race dynamics as match - return [(alpha, (a + 1, h, ACTIVE), 0, 0), - (gamma * beta, (a - h, 1, RELEVANT), h, 0), # adv's matched branch wins h - ((1 - gamma) * beta, (a, h + 1, RELEVANT), 0, 0)] + return [(alpha, (a + 1, h, ACTIVE), 0, 0, 0, 0), + (gamma * beta, (a - h, 1, RELEVANT), h, 0, h, 0), # adv's matched branch wins h + ((1 - gamma) * beta, (a, h + 1, RELEVANT), 0, 0, 0, 0)] if action == MATCH: if not (f == RELEVANT and a >= h): return None # match needs equal-or-longer chain on a fresh tip - return [(alpha, (a + 1, h, ACTIVE), 0, 0), - (gamma * beta, (a - h, 1, RELEVANT), h, 0), - ((1 - gamma) * beta, (a, h + 1, RELEVANT), 0, 0)] + return [(alpha, (a + 1, h, ACTIVE), 0, 0, 0, 0), + (gamma * beta, (a - h, 1, RELEVANT), h, 0, h, 0), + ((1 - gamma) * beta, (a, h + 1, RELEVANT), 0, 0, 0, 0)] return None @@ -89,6 +105,8 @@ def _precompute(alpha, gamma, states, index, cap): nxt = np.zeros((4, n, _K), dtype=np.int64) radv = np.zeros((4, n, _K)) rhon = np.zeros((4, n, _K)) + ohon = np.zeros((4, n, _K)) # honest blocks discarded on the branch (one chain) + oadv = np.zeros((4, n, _K)) # adversary blocks discarded on the branch (one chain) legal = np.zeros((4, n), dtype=bool) for i, (a, h, f) in enumerate(states): for action in (ADOPT, OVERRIDE, MATCH, WAIT): @@ -96,12 +114,14 @@ def _precompute(alpha, gamma, states, index, cap): if tr is None: continue legal[action, i] = True - for b, (p, s2, ra, rh) in enumerate(tr): + for b, (p, s2, ra, rh, oh, oa) in enumerate(tr): probs[action, i, b] = p nxt[action, i, b] = index[s2] radv[action, i, b] = ra rhon[action, i, b] = rh - return probs, nxt, radv, rhon, legal + ohon[action, i, b] = oh + oadv[action, i, b] = oa + return probs, nxt, radv, rhon, ohon, oadv, legal def _solve_mdp(pc, rho, ref, iters, tol): @@ -112,7 +132,7 @@ def _solve_mdp(pc, rho, ref, iters, tol): textbook span criterion: at the average-reward fixed point ``TV − V = g·1`` (span → 0), and the gain ``g`` is that uniform increment. Returns the span-centre of the final Bellman increment. """ - probs, nxt, radv, rhon, legal = pc + probs, nxt, radv, rhon, _ohon, _oadv, legal = pc reward = (1.0 - rho) * radv - rho * rhon # (4, n, K), constant across iterations V = np.zeros(probs.shape[1]) tau = 0.5 @@ -142,6 +162,11 @@ def optimal_selfish_revenue(alpha: float, gamma: float, cap: int = 60, states, index = _build_states(cap) pc = _precompute(alpha, gamma, states, index, cap) ref = index[(1, 0, IRRELEVANT)] + return _bisect_revenue(pc, ref, alpha, iters, tol) + + +def _bisect_revenue(pc, ref, alpha, iters, tol): + """Bisection on the ratio objective — the shared inner loop of the revenue solvers.""" lo, hi = alpha - 1e-9, 1.0 # relative revenue in [alpha, 1) for _ in range(44): mid = 0.5 * (lo + hi) @@ -151,3 +176,122 @@ def optimal_selfish_revenue(alpha: float, gamma: float, cap: int = 60, else: hi = mid return 0.5 * (lo + hi) + + +@dataclass +class OptimalPolicyStats: + """Per-block-finding-event rates under the optimal policy's stationary distribution. + + Every MDP transition consumes exactly one block-finding event (the alpha/beta branch), so + stationary per-step rates *are* per-event rates. ``deviates`` is False below the profitability + threshold, where the optimum is honest mining and the MDP is indifferent across policies (the + value-iteration policy is then arbitrary and its orphan structure meaningless). + """ + alpha: float + gamma: float + revenue: float + deviates: bool + density_fraction: float # canonical blocks per event — the raw TSI deflation factor + orphan_hon_blocks: float # honest blocks orphaned per event + orphan_hon_runs: float # honest orphan *chains* per event (1 countable uncle each) + orphan_adv_blocks: float # adversary blocks discarded per event + orphan_adv_runs: float + + @property + def countable_recovery(self) -> float: + """Ceiling on the uncle-recovery fraction ``eta`` under the first-fork rule (§2.1). + + ``runs / blocks``: an override discards a *chain* of honest blocks and only its first is + referenceable, so this is the largest ``eta`` the deployed counting rules admit — 1.0 under + SM1 (which never buries a second block), below 1 whenever the policy waits. + """ + if self.orphan_hon_blocks <= 0: + return 1.0 + return self.orphan_hon_runs / self.orphan_hon_blocks + + @property + def countable_recovery_adv(self) -> float: + """The same ceiling on the attacker *self-uncling* its own abandoned chain (§6.7(a)).""" + if self.orphan_adv_blocks <= 0: + return 1.0 + return self.orphan_adv_runs / self.orphan_adv_blocks + + def dhat_ratio(self, p_ref: float = 1.0, countable: bool = True) -> float: + """Equilibrium ``D̂/D*`` = canonical density + the referenced share of honest orphans. + + ``countable=True`` counts one uncle per orphaned *chain* (the deployed rule); + ``countable=False`` is the unrestricted baseline that counts every orphaned block. + """ + rec = self.orphan_hon_runs if countable else self.orphan_hon_blocks + return self.density_fraction + float(np.clip(p_ref, 0.0, 1.0)) * rec + + +def optimal_policy_stats(alpha: float, gamma: float, cap: int = 64, + iters: int = 4000, tol: float = 1e-10) -> OptimalPolicyStats: + """Orphan structure of the *optimal* selfish policy — the input the countable model needs. + + Solves the same MDP as :func:`optimal_selfish_revenue`, then reads the greedy policy off the + value function at the optimal ``rho``, finds its stationary distribution, and accumulates the + per-event canonical / orphan rates carried on the transition table. + + ``cap`` must be larger here than for the revenue alone: the revenue converges once long leads + are rare, but the orphan *shape* keeps changing while the policy still waits near the cap + (measured drift at alpha = 0.45 is ~0.005 in eta from cap 48 to 64, ~0.0003 at alpha = 0.4). + """ + states, index = _build_states(cap) + pc = _precompute(alpha, gamma, states, index, cap) + probs, nxt, radv, rhon, ohon, oadv, legal = pc + ref = index[(1, 0, IRRELEVANT)] + revenue = _bisect_revenue(pc, ref, alpha, iters, tol) + + # Below the profitability threshold the optimum is honest mining (revenue == alpha) and the MDP + # is indifferent among many policies; report the honest outcome rather than an arbitrary one. + if revenue <= alpha * (1.0 + 1e-6): + return OptimalPolicyStats(alpha=alpha, gamma=gamma, revenue=revenue, deviates=False, + density_fraction=1.0, orphan_hon_blocks=0.0, + orphan_hon_runs=0.0, orphan_adv_blocks=0.0, + orphan_adv_runs=0.0) + + # Recover V at the optimal rho, then the greedy policy. + reward = (1.0 - revenue) * radv - revenue * rhon + n = probs.shape[1] + V = np.zeros(n) + for _ in range(iters): + q = (probs * (reward + V[nxt])).sum(axis=2) + q[~legal] = -1e18 + d = q.max(axis=0) - V + if d.max() - d.min() < tol: + break + V = V + 0.5 * d + V -= V[ref] + q = (probs * (reward + V[nxt])).sum(axis=2) + q[~legal] = -1e18 + # Deterministic tie-break toward the lowest action index (ADOPT < OVERRIDE < MATCH < WAIT) so + # near-ties resolve to the least-deviating policy instead of an arbitrary argmax. + best = q.max(axis=0) + pol = np.where(q >= best[None, :] - 1e-9, np.arange(4)[:, None], 99).min(axis=0) + + rows = np.arange(n) + p_s, n_s = probs[pol, rows], nxt[pol, rows] # (n, K) + # Stationary distribution. The policy chain is periodic (see _solve_mdp), so iterate the lazy + # chain — same stationary vector, no oscillation. + pi = np.full(n, 1.0 / n) + for _ in range(500_000): + new = 0.5 * pi + 0.5 * np.bincount(n_s.ravel(), weights=(pi[:, None] * p_s).ravel(), + minlength=n) + new /= new.sum() + if np.abs(new - pi).max() < 1e-15: + pi = new + break + pi = new + + w = pi[:, None] * p_s # stationary branch flow + ohon_s, oadv_s = ohon[pol, rows], oadv[pol, rows] + return OptimalPolicyStats( + alpha=alpha, gamma=gamma, revenue=revenue, deviates=True, + density_fraction=float((w * (radv[pol, rows] + rhon[pol, rows])).sum()), + orphan_hon_blocks=float((w * ohon_s).sum()), + orphan_hon_runs=float((w * (ohon_s > 0)).sum()), + orphan_adv_blocks=float((w * oadv_s).sum()), + orphan_adv_runs=float((w * (oadv_s > 0)).sum()), + ) diff --git a/tools/simulators/tsi/tsi-sim-pernode/tests/test_countable_selfish.py b/tools/simulators/tsi/tsi-sim-pernode/tests/test_countable_selfish.py new file mode 100644 index 0000000..2129a28 --- /dev/null +++ b/tools/simulators/tsi/tsi-sim-pernode/tests/test_countable_selfish.py @@ -0,0 +1,86 @@ +"""Countable (first-fork) uncle recovery under a selfish adversary (§6.6). + +The countable model can reference only the first block of a fork, so a discarded *chain* of +honest blocks yields one countable uncle however long it is. These tests pin the two ends of +that: SM1 never buries a second block (so the restriction costs nothing), while the optimal +policy waits and does (so it costs a factor of ~2 in recoverable orphans). +""" + +import numpy as np +import pytest + +from tsi_sim.selfish import race_from_alpha, selfish_threshold +from tsi_sim.selfish_mdp import optimal_policy_stats + +FAST = dict(cap=16, iters=1500) + + +@pytest.mark.parametrize("gamma", [0.0, 0.5, 1.0]) +@pytest.mark.parametrize("alpha", [0.2, 1 / 3, 0.4, 0.45]) +def test_sm1_orphans_are_all_countable(alpha, gamma): + # SM1 acts as soon as the honest branch reaches length 1, so every orphan it makes is the + # first block of its fork: the first-fork restriction costs SM1 exactly nothing. + r = race_from_alpha(alpha, 200_000, gamma, np.random.default_rng(3)) + assert r.orphan_hon_runs == r.orphan_hon + assert r.countable_recovery == 1.0 + + +@pytest.mark.parametrize("gamma", [0.0, 0.5]) +def test_optimal_policy_block_conservation(gamma): + # Every block-finding event yields exactly one block, which ends up canonical or orphaned. + # Per-event rates must therefore sum to 1 — the same invariant test_selfish asserts for SM1. + s = optimal_policy_stats(0.4, gamma, **FAST) + total = s.density_fraction + s.orphan_hon_blocks + s.orphan_adv_blocks + assert abs(total - 1.0) < 1e-9 + + +@pytest.mark.parametrize("gamma", [0.0, 0.5]) +def test_optimal_policy_buries_orphans(gamma): + # Above the profitability threshold the optimum waits before overriding, so it discards + # multi-block honest chains that the first-fork rule cannot recover. + s = optimal_policy_stats(0.4, gamma, **FAST) + assert s.deviates + assert s.orphan_hon_runs < s.orphan_hon_blocks + assert s.countable_recovery < 0.7 # measured ~0.44 (gamma=0) / ~0.55 (gamma=0.5) + + +def test_below_threshold_does_not_deviate(): + # Below the threshold the optimum is honest mining; the MDP is indifferent across policies + # there, so the orphan structure of an arbitrary greedy tie-break must not be reported. + alpha = 0.25 + assert alpha < selfish_threshold(0.0) + s = optimal_policy_stats(alpha, 0.0, **FAST) + assert not s.deviates + assert s.orphan_hon_blocks == 0.0 + assert s.density_fraction == 1.0 + + +def test_countable_dhat_is_below_unrestricted(): + s = optimal_policy_stats(0.4, 0.0, **FAST) + # With no references the two models agree; with them, countable recovers strictly less. + assert s.dhat_ratio(p_ref=0.0, countable=True) == s.dhat_ratio(p_ref=0.0, countable=False) + assert s.dhat_ratio(p_ref=1.0, countable=True) < s.dhat_ratio(p_ref=1.0, countable=False) + # and both are bounded by the no-attack value + assert s.dhat_ratio(p_ref=1.0, countable=False) <= 1.0 + # monotone in the reference rate + assert (s.dhat_ratio(p_ref=0.0, countable=True) + < s.dhat_ratio(p_ref=0.5, countable=True) + < s.dhat_ratio(p_ref=1.0, countable=True)) + + +def test_attacker_self_uncle_is_capped_too(): + # The attacker's abandoned secret chain is also one chain, so it can self-uncle only its + # first block — the §6.7(a) farming channel is narrower than the block count suggests. + s = optimal_policy_stats(0.4, 0.0, **FAST) + assert s.orphan_adv_runs < s.orphan_adv_blocks + assert 0.5 < s.countable_recovery_adv < 1.0 + + +@pytest.mark.slow +def test_cap_convergence(): + # The orphan shape converges more slowly in cap than the revenue does; check the drift is + # small where the report quotes numbers. + a = optimal_policy_stats(0.4, 0.0, cap=48) + b = optimal_policy_stats(0.4, 0.0, cap=64) + assert abs(a.countable_recovery - b.countable_recovery) < 2e-3 + assert abs(a.revenue - b.revenue) < 1e-3