Math Check

Smart Mathematical Analysis & Reverse-Engineering · Bitcoin Challenge 1–160

← Cockpit loading dataset… — keys verified Idle

Smart Mathematical Analysis & Reverse-Engineering — measured verdict

low-resource · zero GPU

Dataset: BTC-Solved-Unsolved.txt — all 160 Bitcoin Challenge puzzles. Method: steps 1–4 below (gap/ratio profiling, bit-level & masking distribution, predictive model fit, actionable strategy) plus the five advanced non-linear/structural checks in their own section further down (bit-position bias matrix, spectral periodicity, cross-key algebraic relations, nibble/byte entropy, Benford's Law), executed in your browser at load time from btc-puzzles.json, and reproduced independently by math_check.py (pure standard library). No figure on this page is typed in by hand.

computing…
Position χ²(9) — decile uniformity of keys inside ranges
Trend r — position vs puzzle number
95% band coverage — fitted model ±1.96 sd
Search-space reduction — bits removed by the model

Dataset & integrity

parse → verify
puzzles — rows parsed from the source dataset
solved (keys known) — used for every statistic below
unsolved (targets) — including the reference target #71
keys → own address — secp256k1 → SHA-256 → RIPEMD-160 → Base58Check

—

Every solved row is re-derived end-to-end: private key → compressed public key → HASH160 → P2PKH address, and must equal the address published with the puzzle (—). A single mistyped hex digit would break that link, so the statistical work below runs on provably intact keys. Puzzle ranges are [2^(n-1), 2^n − 1] where n = bit length of the key.

Step 1 — Mathematical gap & ratio profiling

offsets · linear · recurrence

all solved keys sorted by puzzle number and private-key value

pairgap = k[i+1] − k[i]ratio k[i+1] / k[i]
pairs tested — —
constant offset (gap CV) — —
ratio mean ± sd — —
recurrence k[i+1] = a·k[i] — —

normalised position inside each range   p = (k − 2^(n−1)) / 2^(n−1)

mean / sd of p — uniform on [0,1) expects 0.5000 / 0.2887
Pearson r(p, puzzle #) — —
decile χ²(9 df) — —
lag-1 autocorrelation — white noise ≈ 0

—

Step 2 — Bit-level & masking distribution

density · padding · masks
popcount(key) / n — fair-coin expectation 0.5000
odd keys — —
zero nibbles in keys — uniform hex expects 6.25%
exactly n significant bits — 2^(n−1) ≤ k < 2^n forces the leading bit
first hex digit inside range mask — n mod 4 → forced set: 1→{1}, 2→{2,3}, 3→{4..7}, 0→{8..f}
bit density by nibble slot — measured density 0.480–0.505 vs 0.500 expected
seed / padding signature — zero-run counts vs uniform-hex expectation
mask origin — the only mask present is the puzzle range itself

—

Step 3 — Predictive formula derivation

OLS · residuals · out-of-sample
fit A · log₂(k) = a·n + b — —
fit B · position p = a·n + b — —
95% band → reduction — —
out-of-sample: fit #1–#130 → #135 — —
—

The deliverable script performs all four steps from a terminal — no GPU, no network, no dependencies — and prints the honest sub-space for any unsolved target. It prefers the raw BTC-Solved-Unsolved.txt when present and falls back to btc-puzzles.json.

python3 math_check.py python3 math_check.py --predict 121 Download
loading script…

Step 4 — Actionable lightweight strategy

zero GPU
exact range — —
keys in range — —
model median key — —
honest sub-space — —
—

what zero-GPU analysis can and cannot do

  1. —

Advanced Non-Linear Forensic & Structural Analysis for Bitcoin Challenge Puzzles

5 checks · solved keys only

Steps 1–4 use linear and geometric summaries; these five checks attack the 83 solved private keys non-linearly and structurally — bit-position bias matrix, spectral / multi-lag periodicity, cross-key algebraic relations, nibble & byte entropy, and Benford's Law. Each check is computed live in your browser from btc-puzzles.json and mirrored line-for-line by advanced() in math_check.py. Thresholds are family-wise α = 0.01 (Bonferroni across scanned candidates); hit counts are judged against their exact null expectation with a Poisson tail. No figure below is precomputed.

check 1 — bit-position bias matrix (positional probability)

matrix (MSB excluded) — —
global χ²(63 df) · p — —
max |z| · relative bucket — —
MSB pinning — leading bit forced by 2^(n−1) ≤ k — range arithmetic
absolute free-bit positions — —
check-1 flag @ fw α = 0.01 — χ² rejection or any |z| beyond Bonferroni

relative bit-probability matrix — 64 buckets over r = p/(n−1)

bucketr rangebits onesfreq of 1z vs 0.5

absolute free-bit positions with ≥ 40 keys — static pinning scan

bit pkeysones freqz

—

check 2 — spectral & frequency domain (value series u = k/2^n − 0.5 · concatenated bit stream)

value-series ACF · max |r| — —
Fisher periodogram — —
bit-stream ACF · max |r| — —
check-2 flag @ fw α = 0.01 — any ACF lag or periodogram spike beyond Bonferroni

value-series multi-lag autocorrelation — lags 1…60

lagpairs n_Lr critflag

Fisher periodogram — top 5 of 41 ordinates

frequency kperiod n/k power / mean

bit-stream autocorrelation — max |r| per 128-lag block

lagsmax |r|at lag critflag

—

check 3 — cross-key algebraic multipliers & relations (all pairs)

exact multiplier · hits / pairs — —
modular · hits / pairs · 2^32 — —
modular · hits / pairs · 2^64 — —
sum triples · hits / pairs — —
GF(2) linear rank — —
check-3 flag @ fw α = 0.01 — Poisson tail of hits, or rank below key count

—

check 4 — suffix, nibble & byte entropy profiling (LSB-first)

pooled nibble χ²(15) · p — —
LSB nibble χ²(15) · p — —
MSB nibble inside range mask — —
LSB byte entropy — —
check-4 flag @ fw α = 0.01 — χ² rejection, or a nibble outside the range mask

nibble positions j = 0 (least significant) … 33 — keys contributing, entropy, χ²(15)

jkeysentropy (bits) χ²(15)p

byte positions b = 0 (least significant) … 31 — zero share and entropy

byte bzero in entropy (bits)

—

check 5 — Benford's law compliance (decimal & hexadecimal)

decimal χ²(8) · p — —
hex χ²(14) · p — —
check-5 flag @ fw α = 0.01 — χ² rejection in either base

decimal leading digit vs Benford log10(1 + 1/d)

digitobserved expecteddeviation

hex leading digit vs Benford log16(1 + 1/d)

digitobserved expecteddeviation

—

waiting for math-adv.js…

Low-Level Bitwise, Algebraic, and Residue Forensics for Bitcoin Challenge Puzzles

5 checks · solved keys only

The checks above summarise keys as numbers; these five examine their bit and digit structure directly — consecutive-key XOR gaps, greatest-common-divisor profiling of the gaps, the full Hamming-weight (popcount) distribution against B(n, ½), base-10 conversion artifacts, and a forbidden-residue matrix across the small primes 3…31. Every figure is computed live in your browser from btc-puzzles.json and mirrored line-for-line by lowlevel() in math_check.py. Thresholds are family-wise α = 0.01 with exact null expectations (Bonferroni across scanned candidates, Poisson tails for hit and empty-class counts). Nothing below is precomputed.

check 6 — bitwise XOR gap analysis (Ki+1 ⊕ Ki)

XOR popcount vs null — —
largest gap deviation — —
longest identical-bit run — —
repeating mask / rotation — —
min LFSR linear complexity — —
check-6 flag @ fw α = 0.01 — summed z, any gap beyond Bonferroni, or short LFSR

consecutive XOR gaps — popcount against the exact per-gap expectation

gap in → n+1bits popcountexpected zflag

LFSR signature scan — Berlekamp-Massey linear complexity per XOR bit plane

bit plane plinear complexity LC / nflag

—

check 7 — GCD gap profiling (ΔK = Ki+1 − Ki)

gcd of all gaps — —
neighbouring gcd > 1 — —
even differences — —
divisibility scan m=2–200 — —
check-7 flag @ fw α = 0.01 — shared factor, divisor scan, or parity of the gaps

divisibility of the gaps by m — observed vs GAPS/m

mgaps divisible expectedz

largest neighbouring-gap gcds

gap pairgcd bits

—

check 8 — full Hamming weight (popcount) distribution shape

standardised popcount · mean · sd — —
shape χ² vs B(n, ½) — —
keys beyond |z| = 2 — —
even popcounts — —
check-8 flag @ fw α = 0.01 — shape χ², tail count, or parity bias

relative popcount r = pop/n in ten bands — observed vs binomial expectation

r bandkeys expecteddeviation

largest standardised popcounts

bits npopcount z

—

check 9 — decimal (base-10) conversion artifacts

last digit of keys · χ²(9) — —
last digit of gaps · χ²(9) — —
trailing zero · distinct pairs — —
digit repeats in the gaps — —
printable-ASCII byte image — —
check-9 flag @ fw α = 0.01 — χ² rejection, digit repeats, or a text-seed byte image

last decimal digit — keys and consecutive gaps

digitkeys gaps

base-10 pattern tests — observed vs null expectation

testobserved expectedp

—

check 10 — forbidden residues across the small primes 3 … 31

empty residue classes — —
smallest per-modulus p — —
largest residue z — —
check-10 flag @ fw α = 0.01 — χ² rejection, excess empty classes, or a residue z

residue matrix per modulus — χ², empty classes, and the lowest bucket

mod Mχ²(M−1) pempty (null) min countlowest z

—

waiting for math-low.js…

Deep Cryptographic, Dynamic & Information-Theoretic Analysis for Bitcoin Challenge Puzzles

5 checks · solved keys only

The sections above treat the keys one at a time; these five ask whether the solved private keys as a set behave like independent uniform draws. Check 11 measures every pairwise Hamming distance H(Ki, Kj) and tests the whole matrix against resampled datasets. Check 12 runs the NIST SP 800-22 runs test and an LZ78 parse per key and on the aggregated 3850-bit stream, looking for the compressible repeated substrings a passphrase-derived (brainwallet) key would leave behind. Check 13 computes Shannon mutual information between bit positions — the quartile MSB-32 × LSB-32 block and all 1953 position pairs — to expose non-linear dependency. Check 14 pushes each key through the Collatz map and Rule 30 and compares trajectory length, odd-step share, parity runs and 1-density against simulations of the same bit length. Check 15 maps each key into the secp256k1 field as (K³ + 7) mod p and tests quadratic residuosity and the uniformity of the field image.

Every figure is computed live in your browser from btc-puzzles.json and mirrored line-for-line by deep() in math_check.py. Thresholds are family-wise α = 0.01 with Bonferroni across the candidates each test scans, and every Monte-Carlo null uses one deterministic xorshift32 stream with identical seeds on both sides. Where a null is discrete and small-n the null is enumerated exactly (LZ78 below 21 bits) or the inference is carried by an aggregate test rather than a per-key z. Nothing below is precomputed.

check 11 — pairwise binary Hamming distance matrix (all N(N−1)/2 pairs)

pairs compared — —
mean pairwise z (null 0) — —
spread of pairwise z (null 1) — —
band χ²(3) — —
largest pairwise |z| — —
key-level mean distance z — —
check-11 flag @ fw α = 0.01 — any resampled statistic beyond α, or a pair / key beyond Bonferroni

most extreme pairs — Hamming distance against the binomial model

n pairHamming H expectedzflag

—

check 12 — NIST SP 800-22 runs & LZ78 Lempel-Ziv complexity

pooled bitstream runs — —
weakest per-key runs p — —
LZ78 phrases, pooled stream — —
per-key LZ78, aggregate — —
repeated 8-bit windows — —
check-12 flag @ fw α = 0.01 — pooled runs / LZ78, per-key aggregate, or excess repeats

exact per-key LZ78 null — full enumeration of every n-bit key (n ≤ 20)

nphrases null meanz exact P(X ≤ obs)

—

check 13 — bit-segment Shannon mutual information (non-linear links)

bit-position pairs tested — —
largest bias-corrected MI — —
pairs beyond Bonferroni — —
block MI (MSB-32 × LSB-32) — —
segment entropy (LSB / MSB) — —
check-13 flag @ fw α = 0.01 — any pair beyond Bonferroni, or excess block MI

ten strongest position pairs — bias-corrected MI and G²

segment pairkeys MI (bits)G² pflag

—

check 14 — Collatz trajectory & Rule-30 state-space dynamics

Collatz stopping time — —
odd-step share — —
parity-sequence runs — —
Rule-30 1-density — —
repeated Rule-30 rows — —
check-14 flag @ fw α = 0.01 — aggregate mean z, excess |z| > 2, or excess repeated rows

aggregate dynamics tests — the inference, since per-key Monte-Carlo z's are descriptive

statisticmean z aggregate zp |z| > 2P(X ≥)

—

check 15 — secp256k1 field geometry, (K³ + 7) mod p

quadratic residues of K³+7 — —
field image χ²(15) — —
mean (K³+7)/p — —
mean y/p over residues — —
check-15 flag @ fw α = 0.01 — any of the four sub-tests beyond α/4

field-geometry sub-tests — observed against the length-matched null

testobserved null / expectedp flag

—

waiting for math-deep.js…

Dataset · all 160 puzzles

sorted by n
#bitsstatus range 2^(n−1) .. 2^n − 1 (hex)private key (hex) position ppopcount

—