sim/economy/sim.py: 1,000 operators choosing MINE, PROVE, HYBRID or OFF per card class with their own clients; sortition by weight with the 10-s window then open claiming, external jobs with the 90/10 split, backlog rule, difficulty clamps, GBM price. Scenarios a to f, 5 seeds: no backlog, no window miss, hash floor 0.74 of pre-event. Traffic sensitivity finds the shortage oscillation only above the proving fleet's capacity (100 to 300 shards per block); at 100 the sortition window (10 s to 20 s) is the lever that removes it. docs/analysis/economy-2026-10-04.md holds the model, assumptions, results, worst case and the proposal (window = p90 shard time plus a swap, 25 s at today's targets; B_p tied to the live fleet), not applied. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
6.2 KiB
6.2 KiB
Igneum economy simulation, 1000 operators, 30 days, seeds [1, 2, 3, 4, 5], tick 180 s
Parameters: tick=180.0, days=30, n_ops=1000, emission=31.688, pool=0.2, window=10.0, assignees=8, burn=0.1, timeout=300.0, shards_per_block=3.0, job_work=10.0, ext_usd_day=2000.0, ext_mult=1.0, price0=0.012, vol_day=0.05, swap=5.0, aggregation=4.0, waste=0.5, hyst_lo=0.05, hyst_hi=0.25, dwell_ticks=20, decide_every=4, ema_ticks=20.0, farm_share=0.2, backlog_rule=600.0
- a: baseline
- b: external pays 10x from day 7, coin price falls 70% over days 7 to 14
- c: no external demand
- d: the 20% operator disappears at day 10
- e: a 30% operator never fulfils its assignments
- f: a pool with hash equal to the network's arrives at day 10 (2x hash)
| Metric | a | a min | a max | b | b min | b max | c | c min | c max | d | d min | d max | e | e min | e max | f | f min | f max |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| hash mining share (mean) | 0.93 | 0.92 | 0.94 | 0.85 | 0.84 | 0.87 | 0.96 | 0.95 | 0.96 | 0.92 | 0.92 | 0.93 | 0.91 | 0.90 | 0.91 | 0.93 | 0.91 | 0.93 |
| cards proving, day 1 | 0.15 | 0.14 | 0.15 | 0.15 | 0.14 | 0.15 | 0.09 | 0.08 | 0.10 | 0.15 | 0.14 | 0.15 | 0.21 | 0.21 | 0.22 | 0.16 | 0.15 | 0.17 |
| cards proving, day 10 | 0.15 | 0.14 | 0.17 | 0.27 | 0.25 | 0.28 | 0.08 | 0.08 | 0.09 | 0.15 | 0.14 | 0.17 | 0.22 | 0.21 | 0.23 | 0.15 | 0.14 | 0.16 |
| cards proving, day 20 | 0.16 | 0.13 | 0.19 | 0.36 | 0.32 | 0.41 | 0.08 | 0.06 | 0.09 | 0.12 | 0.09 | 0.15 | 0.21 | 0.20 | 0.22 | 0.14 | 0.12 | 0.15 |
| cards proving, day 30 | 0.15 | 0.11 | 0.20 | 0.34 | 0.29 | 0.40 | 0.09 | 0.07 | 0.11 | 0.13 | 0.11 | 0.15 | 0.21 | 0.19 | 0.23 | 0.17 | 0.14 | 0.22 |
| cards hybrid, day 30 | 0.54 | 0.53 | 0.55 | 0.45 | 0.40 | 0.51 | 0.54 | 0.53 | 0.55 | 0.45 | 0.45 | 0.46 | 0.42 | 0.41 | 0.43 | 0.50 | 0.44 | 0.52 |
| cards off, day 30 | 0.01 | 0.00 | 0.04 | 0.10 | 0.06 | 0.15 | 0.01 | 0.00 | 0.02 | 0.09 | 0.09 | 0.09 | 0.01 | 0.00 | 0.03 | 0.06 | 0.01 | 0.17 |
| hash min / pre-event | 0.95 | 0.93 | 0.95 | 0.82 | 0.81 | 0.85 | 0.97 | 0.96 | 0.97 | 0.75 | 0.74 | 0.75 | 0.98 | 0.98 | 0.99 | 0.95 | 0.95 | 0.96 |
| hash day 30 / pre-event | 1.00 | 0.97 | 1.02 | 0.87 | 0.82 | 0.91 | 1.00 | 0.98 | 1.01 | 0.80 | 0.78 | 0.81 | 1.00 | 0.99 | 1.01 | 1.92 | 1.77 | 2.00 |
| hours hash under 50% | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| backlog max, shards | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| oldest unproven age max, s | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| age max day 10, s | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| age max day 20, s | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| age max day 30, s | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| blocks proven within 60 s | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 |
| worst day within 60 s | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 |
| blocks proven within 20 s | 0.26 | 0.25 | 0.27 | 0.41 | 0.26 | 0.64 | 0.29 | 0.28 | 0.30 | 0.21 | 0.20 | 0.22 | 0.14 | 0.13 | 0.14 | 0.27 | 0.23 | 0.40 |
| blocks/s mean | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 |
| blocks/s hourly max | 1.05 | 1.05 | 1.06 | 1.05 | 1.05 | 1.06 | 1.05 | 1.04 | 1.06 | 1.05 | 1.04 | 1.06 | 1.05 | 1.04 | 1.05 | 1.05 | 1.05 | 1.06 |
| blocks/s hourly min | 0.95 | 0.94 | 0.95 | 0.95 | 0.94 | 0.95 | 0.95 | 0.94 | 0.95 | 0.95 | 0.95 | 0.95 | 0.95 | 0.94 | 0.96 | 0.95 | 0.94 | 0.95 |
| difficulty end / start | 1.00 | 0.96 | 1.04 | 0.86 | 0.80 | 0.94 | 1.00 | 0.98 | 1.01 | 0.80 | 0.77 | 0.85 | 1.00 | 0.98 | 1.02 | 1.91 | 1.76 | 1.98 |
| external jobs delivered | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | nan | nan | nan | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 |
| price at day 30, $ | 0.01 | 0.01 | 0.02 | 0.00 | 0.00 | 0.01 | 0.01 | 0.01 | 0.01 | 0.02 | 0.01 | 0.02 | 0.01 | 0.01 | 0.02 | 0.01 | 0.01 | 0.01 |
| proving-share crossings per day | 13.20 | 11.10 | 14.30 | 6.92 | 6.10 | 8.30 | 15.18 | 11.10 | 17.50 | 13.94 | 12.60 | 15.20 | 10.56 | 9.50 | 11.80 | 11.92 | 10.70 | 15.70 |
| proving-share 10-90 pct range, points | 8.46 | 7.95 | 9.34 | 7.36 | 5.93 | 9.93 | 2.79 | 1.87 | 3.89 | 8.45 | 7.81 | 9.43 | 3.83 | 3.23 | 4.52 | 5.72 | 3.57 | 10.09 |
| mode switches (operator x class) | 245,632 | 221,853 | 263,797 | 149,307 | 136,699 | 159,157 | 202,169 | 189,878 | 211,638 | 248,420 | 243,171 | 262,933 | 124,643 | 113,075 | 132,562 | 248,936 | 159,175 | 468,404 |
| Flag | a | b | c | d | e | f |
|---|---|---|---|---|---|---|
| miner shortage (hash under 50% of pre-event for 1 h or more) | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 |
| backlog over 600 s (design's backlog-rule trigger) | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 |
| growing backlog (positive 10-day trend and over 60 s at day 30) | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 |
| window miss (a day under 90% of blocks within 60 s) | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 |
| oscillation (proving-share 10-90 range over 10 points in the last 10 days) | 0/5 | 0/5 | 0/5 | 0/5 | 0/5 | 1/5 |
Operator profit by card class, $ per card-day (mean over seeds, all modes including off):
| Scenario | 5090 | 3090 | 3060 | small | shard share 5090 | shard share 3090 | shard share 3060 |
|---|---|---|---|---|---|---|---|
| a | 6.373 | 1.663 | 0.780 | 0.394 | 0.59 | 0.26 | 0.16 |
| b | 5.170 | 1.819 | 1.355 | 0.146 | 0.63 | 0.19 | 0.18 |
| c | 6.115 | 1.569 | 0.762 | 0.388 | 0.62 | 0.29 | 0.09 |
| d | 6.480 | 2.338 | 1.064 | 0.572 | 0.53 | 0.31 | 0.16 |
| e | 5.081 | 1.534 | 0.853 | 0.311 | 0.43 | 0.28 | 0.29 |
| f | 3.350 | 0.685 | 0.431 | 0.149 | 0.56 | 0.25 | 0.19 |