A full reproduction of Eric Ringger's likelihood ratio analysis, plus three code-based evidence items drawn from our own analysis of hashcash, Bitcoin v0.1, and Adam Back's post-2013 public code record.
Ringger's approach treats each piece of evidence as a likelihood ratio: how much more likely is this evidence if Back is Satoshi compared to if he isn't? Multiply them together. Apply Bayes' theorem. The result is a posterior probability conditioned on your chosen prior.
The key advantage over the NYT's qualitative framing: you're forced to put numbers on your beliefs and show your work. The key limitation: every LR is a judgment call, and the independence assumptions encoded in the DAG structure are arguable.
Ringger models four conditional dependencies. Evidence items that are causally downstream of others are not independent — their LRs must be evaluated conditional on their parents.
E13 (code absence) is not shown; it connects directly to H like the other independent nodes. The four conditional edges — E1→E2, E2→{E4,E5,E7} — encode Ringger's judgment that background knowledge makes the blueprint more probable, and that blueprint makes rhetoric/citation/linguistic evidence more probable.
All ten likelihood ratios from Ringger's Substack post, reproduced exactly. The combined LR of 165,110,400 is verified.
| ID | Evidence | Condition | LR | Assessment |
|---|---|---|---|---|
| E1 | Background: British academic, cypherpunk, crypto 1990s | H | 90 | Generous but defensible. Extremely rare combination. |
| E2 | Blueprint posts (b-money reference + hashcash integration) | E1 | 7 | Given the background, writing the blueprint documents is still unusual. |
| E3 | Combined key citations in whitepaper (hashcash + b-money) | H | 20 | Both cited explicitly; hashcash is rare, b-money nearly unknown. |
| E4 | Rhetorical patterns matching Satoshi's forum writing | E2 | 13 | Almér writing stylometry. Back ranks 4th of 48 candidates. |
| E5 | b-money citation (Wei Dai contact) | E2 | 4 | Satoshi emailed Dai before whitepaper publication. Back knew Dai. |
| E6 | Whitepaper technical writing style (academic register) | H | 30 | The most generous LR in the model. Back's academic credentials match the whitepaper register precisely. |
| E7 | Linguistic fingerprint (vocabulary, phrasing) | E2 | 6 | Conditional on blueprint, still distinctive. |
| E8 | Behavioral signals (El Salvador interview evasiveness) | H | 4 | Claimed not to have received the Satoshi email. Pattern of specific denials. |
| E9 | Timing gap (Back denied prior Satoshi contact publicly) | H | 0.5 | Weak counter-evidence. Denial could be false or cover. |
| E10 | Email metadata inconsistency in original exchange | H | 0.7 | Minor anomaly. Weak counter-evidence. |
Ringger's model covers writing, behavior, and background. It does not include any code comparison. We add three items from our own analysis. They are independent from each other and from Ringger's evidence (no DAG edges needed).
| ID | Evidence | LR (point) | Range | Direction |
|---|---|---|---|---|
| E11 NEW | Code stylometry: Back matches 1 of 12 Bitcoin v0.1 style traits | 0.15 | 0.05–0.40 | Counter |
| E12 NEW | MSVC environment: hashcash shipped with Visual C++ project file — same as Bitcoin v0.1 | 2.0 | 1.0–4.0 | Positive |
| E13 NEW | Post-2013 code absence: adam3us GitHub has zero public C++ despite CEO of C++ crypto company | 2.0 | 1.0–4.0 | Weak positive |
Adam Back's hashcash (released 1997, updated through 2011) is the best available sample of his C code prior to Bitcoin. The GitHub mirror confirms Back (adam3us) as a contributor. The cypherspace.org distribution explicitly includes a Visual C++ project file. Here is what the code shows when compared against Bitcoin v0.1.
| ✓ | 4-space indentation — both use exactly 4 spaces throughout |
| ✓ | MSVC development environment — VC++ project file shipped with hashcash; Bitcoin v0.1 built in Visual Studio |
| ✓ | Return style — return x; without parentheses in both |
| ✓ | Cross-platform #ifdef — both handle Windows/Unix conditionals explicitly |
| ✗ | Spaces inside parens — hashcash uses if ( x ); Bitcoin uses if (x) |
| ✗ | Function naming — hashcash uses parse_period; Bitcoin uses ProcessMessage |
| ✗ | Variable naming — hashcash uses validity_period; Bitcoin uses nValue (Hungarian) |
| ~ | Language — C vs C++; some differences are expected and don't carry strong signal |
The spaces-inside-parens divergence is the most notable, since it's a deliberate stylistic choice (/* c-file-style: "stroustrup" */ is declared at the top of hashcash.c). Bitcoin v0.1 consistently omits those spaces. Naming convention differences are partially explained by the C→C++ transition, but Hungarian notation in Bitcoin is a Windows-centric choice that doesn't appear in Back's C code.
The divergences account for E11's LR of 0.15. A programmer writing new code 7 years after their previous public project will drift stylistically — but the spaces-inside-parens pattern is stable enough to be informative. If Back wrote Bitcoin, he either changed this habit deliberately or the Bitcoin code represents a different working style than his personal projects.
Point-estimate LRs carry false precision. Ringger's numbers involve real judgment calls. Monte Carlo sensitivity analysis samples each LR log-uniformly over a ±2× range (±10× for E11, given higher uncertainty) and reports the distribution of posteriors across 1 million draws.
| Prior | Model | Median | 1st Pctile | P(>99%) | P(>99.9%) |
|---|---|---|---|---|---|
| Uniform 1/620 |
Ringger E1–E10 | 100.000% | 99.993% | 100.00% | 100.00% |
| + Code E11–E13 | 99.999% | 99.977% | 100.00% | 99.96% | |
| Broad CS 1/10,000 |
Ringger E1–E10 | 99.994% | 99.889% | 100.00% | 98.74% |
| + Code E11–E13 | 99.989% | 99.624% | 99.88% | 92.36% |
The meaningful shift is in the broad CS prior's "P(>99.9%)" column: 98.74% → 92.36%. Under conservative assumptions about who could have written Bitcoin, the code evidence puts a non-trivial probability mass in the tail. That 7.6 percentage point drop represents real uncertainty the writing-only model doesn't capture.
Taking the full model (Ringger + code evidence, combined LR = 99,066,240), what would it take to push the posterior probability below 99% from a uniform prior?
To push below 99% with a uniform prior, you'd need to believe that if Back is Satoshi, the probability of his public code not matching Bitcoin's style is less than 0.007% — essentially that he couldn't have deliberately changed his coding conventions. That's indefensible. Deliberate stylometric obfuscation — different naming conventions, spacing choices, language selection — is trivially easy.
The broad CS prior breakeven (0.12%) is harder to dismiss but still very low. An LR(E11) of 0.0015 requires believing there's a 99.88% probability that Back's code, if he wrote Bitcoin, would match Bitcoin's style. No stylometric tool works that reliably.
The code evidence as a whole is slightly negative — net LR 0.60 — but doesn't change the headline. The full model puts the posterior at 99.9994% (uniform prior) and 99.9899% (broad CS prior) at point estimates, with Monte Carlo medians close to both.
The code-style divergence between hashcash and Bitcoin v0.1 is real. The spaces-inside-parens difference is consistent. The naming convention shift can be partially explained by C→C++ but not fully. These are genuine counter-signals that belong in any honest model.
They don't break the case because the positive evidence (165M combined LR) is simply too heavy. Code stylometry would need to be essentially perfect — LR < 0.001 — to tip the balance. That requires believing Back, if he is Satoshi, couldn't have chosen different spacing habits for a different project in a different language seven years later.
The more interesting finding is E13: Back has produced essentially no public C++ since 2013. Given that Blockstream's entire codebase is C++ (Elements, Lightning, libsecp256k1), this absence is conspicuous. Whether it's OPSEC or simply a CEO who stopped committing to public repos — that's the question the model can't answer, and the one that matters most.
All calculations are reproducible. The Ringger combined LR of 165,110,400 is exact. Monte Carlo uses 1,000,000 draws with log-uniform sampling over the stated ranges.