Evidence Matrix

BSAHI — every headline number, classified by how it was actually obtained. Produced: 2026-09-17 · Checked by tools/research/integrity_audit.py

The three layers

LayerDefinitionWhat it means for a reader
ObservedRead from a node, or from a frozen primary capture with a recorded dateCite as measurement. Grade A/B.
ReconstructedDerived by a stated procedure from anchors (interpolation, era means, attribution)Cite as procedure, not as a measurement. Grade C/D.
ModelledAssumptions dominate; the output is a scenario, not an observationCite as a scenario. Grade C.

Nothing in this project may be presented as Observed if it is Reconstructed or Modelled. The matrix is the enforcement: if a number appears anywhere without a row here, that is a defect.

Matrix

#MetricValue / reading (as published)LayerSourceDateGrade
1SCCR (live)0.2789 · 139 blocks · 99.28% below 1× · N=32K · T=10yr · spec 2.1.0Observeddata/sccr.json ← mempool.space 24h fee endpoint (GH Actions)2026-09-16B
2SCCR daily history36 daily readingsObserveddata/sccr_history.json2026-08-02 → 2026-09-16B
3SCCR historical (era reconstruction)era-level SCCR, 2010-2026Reconstructeddata/sccr_historical_series.json (daily aggregates → era legs)frozen 2026-09B/C
4Chain size (bytes to verify)789.45 GB (2026)Observedcumulative frozen avg-block-size (unit MB)2026B
5UTXO / chain state0.5 GB (2013) → 11 GB (2025/26), era tableReconstructedanchors + interpolation (no continuous source)D
6UTXO / chain state (observed)h671,462 · 72,234,156 UTXOs · 18,633,940 BTC · UTXO DB 4.39 GBObservedgettxoutsetinfo from a real Bitcoin Core node (utxo_state_measure.py)captured 2026-09-17A
7Mining difficulty127,450,789,715,844Observeddata/difficulty_series.json (frozen primary)2026-09-13A
8Mempool congestion1,498 daily points, 2016-2026Observeddata/mempool_congestion_series.json (frozen primary)2026B*
9Per-block samples3 blocks/era (2026: 2)Observed (spot)data/perblock_validation.json (esplora + blockchain.info)2026-09-16B (spot-check, not a survey)
10Network hashrate956 TH/s·10⁶ (≈956 EH/s)Observedfrozen hash-rate series (unit TH/s)2026B
11Miners' revenue41.4M USD/dayObservedfrozen miners-revenue series (unit USD)2026B
12Production cost ratioreported across $0.03–$0.15/kWhModelled (observed legs + assumed price/efficiency)data/production_cost_ratio.json2026-09-17C
13Electricity price$0.05/kWh (scenario $0.03–$0.15)Modelled (assumption)documented assumptionC
14ASIC efficiency (network avg)25 J/TH (2026), era tableModelled (estimate)documented tableC
15Node census (N)≥32,000 (lower bound)Observedgetnodeaddresses census (data/node_census*.json)2026-08-02B
16Pool attribution7/7 pools coherent ≤1.5σ; network-total diff 2.34%Observeddata/pool_attribution_validation.json2026-09-15C/B
17Mining concentrationHHI/Gini/N_eff per windowObserveddata/mining_concentration.json2026-09-15B
18BIP-110 signalinglock-in h963,648 (2026-08-23 00:48:47 UTC); snapshot h966,270Observeddata/bip110.json (GH Actions) + blockstream.info2026-09-09A
19Fee history / block interval95-point intraday seriesObserveddata/fee_history.json, data/block_interval.json2026-09-17B
20Verification Cost Indextrend (headline): sync time flat, value-relative cost ~17× cheaperModelleddata/verify_cost_index.json2026-09-17C
21VCI chain legtotal bytes to verifyObservedfrozen avg-block-size2026B
22VCI state legreconstructed UTXO tableReconstructed(falls back to row 5)D
23VCI throughputassumed commodity archive-syncModelleddocumented tableC
24Node operator labour$25/h, labour shareModelleddocumented assumptionD
25Cost-to-flood leverageL ≈ 3.0× (dust 0.9×)Modelledresearch/cost-to-flood.md2026-08-10C
26Bandwidth bound52.6 GB/yrModelleddata/bandwidth_bound.json2026-08-04C
27Pruning externalitydownload+verify unavoidableModelledresearch/pruning_externality_analysis.md2026-08-10C

Grades

Standing checks (run with the matrix)

tools/research/integrity_audit.py re-checks, on every run:

  1. Heights/dates monotonic — every (height, timestamp) pair increases together.
  2. Anchors — a height's chain date matches the known anchor; the capture time is recorded separately (they differ by years while the node is in IBD).
  3. Units — derived unit fields agree with raw ones (hashrate_ehs == hashrate_ths/1e6; power TH/s × J/TH = W; GB is decimal 1e9).
  4. Provenance — each dataset carries schema + generated_at + a source.
  5. Layers — each dataset is classified Observed / Reconstructed / Modelled.

Known open items (surfaced by the audit, not hidden)

How to use this page

Before publishing any number, find its row. If the layer is Observed, cite it with its date. If it is Reconstructed or Modelled, cite the procedure and the grade — never the level as if it were measured.

Data source: data/integrity_audit.json — deterministic, frozen-input instrument; re-runnable offline.

← All research · ← Back to Learn