# GHOSTDAG withholding simulator, 10 blocks/s, k 124, 8 honest miners, 20 seeds per cell Generated by `sim/horizon/consensus-security/ghostdag_sim.py` on 2026-10-06 19:38 UTC. Every number is this simulator's; the model and its limits are in the file header. ## 1. Honest parallelism alone: natural selected-chain reorg depth at honest miner 0 (chain blocks), 75 s per episode | one-way delay d, s | blocks in flight (bps x d) | reorg depth p99 (worst seed) | reorg depth max | |---|---|---|---| | 0.35 | 3.50 | 11 | 15 | | 0.67 | 6.70 | 22 | 26 | | 2 | 20.00 | 99 | 109 | ## 2. Withhold for T seconds, then release everything: what the honest selected chain does `won` = the attacker's private tip became honest miner 0's selected chain after the release (its earlier-ordered conflicting transaction then precedes the honest copy). `reorg` = chain blocks removed from miner 0's selected chain (median and max over seeds). `fork age` = seconds between the fork point and the release: the window a conflicting transaction can reach back. `att blue` = the attacker's blue blocks over its blocks in miner 0's view (weight and subsidy kept); `hon red` = honest blocks since the fork turned red by the release. | d, s | attacker share H | hold T, s | blocks withheld (mean) | won | reorg med / max | fork age if won, s (med) | att blue / att blocks | hon red / hon blocks | |---|---|---|---|---|---|---|---|---| | 0.35 | 20% | 10 | 20.4 | 25% | 1 / 33 | 10 | 99% | 2% | | 0.35 | 20% | 30 | 60.3 | 0% | 1 / 3 | - | 41% | 1% | | 0.35 | 20% | 60 | 118.0 | 0% | 0 / 11 | - | 18% | 0% | | 0.35 | 20% | 90 | 176.7 | 0% | 1 / 6 | - | 14% | 0% | | 0.35 | 34% | 10 | 38.0 | 90% | 26 / 30 | 10 | 99% | 1% | | 0.35 | 34% | 30 | 104.4 | 85% | 77 / 84 | 30 | 92% | 23% | | 0.35 | 34% | 60 | 202.9 | 0% | 0 / 2 | - | 32% | 1% | | 0.35 | 34% | 90 | 304.9 | 0% | 1 / 3 | - | 13% | 0% | | 0.35 | 45% | 10 | 44.5 | 95% | 23 / 29 | 10 | 99% | 2% | | 0.35 | 45% | 30 | 132.3 | 95% | 71 / 79 | 30 | 96% | 19% | | 0.35 | 45% | 60 | 267.9 | 95% | 139 / 152 | 60 | 95% | 49% | | 0.35 | 45% | 90 | 407.1 | 95% | 208 / 225 | 90 | 95% | 62% | | 0.35 | 51% | 10 | 53.8 | 100% | 23 / 27 | 10 | 99% | 2% | | 0.35 | 51% | 30 | 153.8 | 100% | 66 / 74 | 30 | 100% | 19% | | 0.35 | 51% | 60 | 304.5 | 100% | 132 / 144 | 60 | 100% | 51% | | 0.35 | 51% | 90 | 458.8 | 100% | 199 / 217 | 90 | 100% | 65% | | 0.35 | 67% | 10 | 69.3 | 100% | 17 / 22 | 10 | 100% | 2% | | 0.35 | 67% | 30 | 203.1 | 100% | 52 / 62 | 30 | 100% | 29% | | 0.35 | 67% | 60 | 399.1 | 100% | 104 / 116 | 60 | 100% | 57% | | 0.35 | 67% | 90 | 602.6 | 100% | 158 / 174 | 90 | 100% | 69% | | 0.35 | 90% | 10 | 93.8 | 100% | 7 / 11 | 10 | 100% | 2% | | 0.35 | 90% | 30 | 273.8 | 100% | 24 / 29 | 30 | 100% | 38% | | 0.35 | 90% | 60 | 539.6 | 100% | 46 / 54 | 60 | 100% | 63% | | 0.35 | 90% | 90 | 810.1 | 100% | 70 / 80 | 90 | 100% | 74% | | 0.67 | 20% | 10 | 20.4 | 45% | 10 / 33 | 11 | 97% | 2% | | 0.67 | 20% | 30 | 60.3 | 0% | 3 / 13 | - | 47% | 2% | | 0.67 | 20% | 60 | 118.0 | 0% | 3 / 16 | - | 18% | 1% | | 0.67 | 20% | 90 | 176.7 | 0% | 3 / 20 | - | 13% | 1% | | 0.67 | 34% | 10 | 38.0 | 100% | 20 / 32 | 11 | 99% | 2% | | 0.67 | 34% | 30 | 104.4 | 95% | 59 / 64 | 31 | 98% | 27% | | 0.67 | 34% | 60 | 202.9 | 0% | 2 / 11 | - | 33% | 2% | | 0.67 | 34% | 90 | 304.9 | 0% | 2 / 12 | - | 13% | 1% | | 0.67 | 45% | 10 | 44.5 | 100% | 17 / 22 | 10 | 99% | 2% | | 0.67 | 45% | 30 | 132.3 | 100% | 52 / 58 | 30 | 99% | 23% | | 0.67 | 45% | 60 | 267.9 | 100% | 102 / 111 | 60 | 100% | 53% | | 0.67 | 45% | 90 | 407.1 | 100% | 154 / 166 | 90 | 100% | 66% | | 0.67 | 51% | 10 | 53.8 | 100% | 16 / 26 | 11 | 99% | 3% | | 0.67 | 51% | 30 | 153.8 | 100% | 50 / 58 | 31 | 99% | 21% | | 0.67 | 51% | 60 | 304.5 | 100% | 100 / 109 | 61 | 100% | 53% | | 0.67 | 51% | 90 | 458.8 | 100% | 146 / 163 | 91 | 100% | 66% | | 0.67 | 67% | 10 | 69.3 | 100% | 13 / 16 | 10 | 100% | 2% | | 0.67 | 67% | 30 | 203.1 | 100% | 39 / 47 | 30 | 100% | 32% | | 0.67 | 67% | 60 | 399.1 | 100% | 78 / 89 | 60 | 100% | 59% | | 0.67 | 67% | 90 | 602.6 | 100% | 118 / 132 | 90 | 100% | 71% | | 0.67 | 90% | 10 | 93.8 | 100% | 6 / 9 | 10 | 100% | 5% | | 0.67 | 90% | 30 | 273.8 | 100% | 19 / 23 | 30 | 100% | 41% | | 0.67 | 90% | 60 | 539.6 | 100% | 38 / 44 | 60 | 100% | 64% | | 0.67 | 90% | 90 | 810.1 | 100% | 58 / 66 | 90 | 100% | 76% | | 2 | 20% | 10 | 20.4 | 90% | 29 / 97 | 21 | 96% | 5% | | 2 | 20% | 30 | 60.3 | 0% | 17 / 75 | - | 62% | 7% | | 2 | 20% | 60 | 118.0 | 0% | 16 / 100 | - | 16% | 1% | | 2 | 20% | 90 | 176.7 | 0% | 32 / 69 | - | 12% | 1% | | 2 | 34% | 10 | 38.0 | 100% | 16 / 29 | 14 | 98% | 4% | | 2 | 34% | 30 | 104.4 | 85% | 35 / 51 | 32 | 94% | 32% | | 2 | 34% | 60 | 202.9 | 0% | 17 / 90 | - | 36% | 5% | | 2 | 34% | 90 | 304.9 | 0% | 14 / 52 | - | 11% | 1% | | 2 | 45% | 10 | 44.5 | 100% | 13 / 78 | 12 | 98% | 7% | | 2 | 45% | 30 | 132.3 | 100% | 32 / 44 | 31 | 99% | 31% | | 2 | 45% | 60 | 267.9 | 100% | 62 / 77 | 61 | 99% | 59% | | 2 | 45% | 90 | 407.1 | 90% | 92 / 101 | 91 | 93% | 63% | | 2 | 51% | 10 | 53.8 | 100% | 10 / 16 | 11 | 99% | 6% | | 2 | 51% | 30 | 153.8 | 100% | 26 / 33 | 31 | 99% | 32% | | 2 | 51% | 60 | 304.5 | 100% | 57 / 66 | 61 | 99% | 59% | | 2 | 51% | 90 | 458.8 | 100% | 85 / 98 | 91 | 100% | 71% | | 2 | 67% | 10 | 69.3 | 100% | 6 / 13 | 10 | 99% | 7% | | 2 | 67% | 30 | 203.1 | 100% | 22 / 28 | 30 | 99% | 41% | | 2 | 67% | 60 | 399.1 | 100% | 44 / 52 | 60 | 100% | 65% | | 2 | 67% | 90 | 602.6 | 100% | 68 / 75 | 90 | 100% | 76% | | 2 | 90% | 10 | 93.8 | 100% | 3 / 5 | 10 | 100% | 17% | | 2 | 90% | 30 | 273.8 | 100% | 12 / 14 | 30 | 100% | 53% | | 2 | 90% | 60 | 539.6 | 100% | 24 / 27 | 60 | 100% | 71% | | 2 | 90% | 90 | 810.1 | 100% | 37 / 40 | 90 | 100% | 81% | ## 3. Selfish withholding (release when about to lose, or at lead L = 6): blue share against hash share over 300 s, d = 0.67 s | attacker share H | attacker blue blocks / its blocks (weight kept) | attacker share of ALL blue blocks (weight share; honest mining gives H) | private tip is the chain at the end | max reorg depth seen | |---|---|---|---|---| | 20% | 100% | 20.3% | 60% | 5 | | 34% | 100% | 34.1% | 80% | 7 | | 45% | 100% | 45.4% | 80% | 5 | | 51% | 100% | 51.0% | 100% | 3 | | 67% | 100% | 67.7% | 100% | 5 | | 90% | 100% | 89.9% | 100% | 0 | (81 cells, 223 s)