Who Wrote Bitcoin?
Overview Code Analysis NYT & Ringger Bayesian Model

Who Wrote Bitcoin? — Code Stylometry Analysis

Comparing Bitcoin v0.1 (2009) against open-source code from 12 Satoshi candidates

Who Wrote Bitcoin? Not Adam Back. And Not Jack Dorsey.
Code stylometry: 12 traits compared across Bitcoin v0.1 and 9 candidates' open-source code
1/12
Dorsey Obj-C, Python
decashed pick
1/12
Adam Back C, snake_case
NYT's pick
2/12
Hal Finney C, /* comments */
4.5
Sassaman C, 2-space
4.5
McCaleb C++, tabs
8.5
Wei Dai C++, no C prefix
8.5
Andresen C++, 4-space, Unix
9
Falco C++, Win, 2-space
11/12 ★
Stokes C++, MFC, C prefix!
12 traits: language, comments, naming, C prefix, Hungarian vars, indent, spacing, returns, braces, ret-type, platform, pointers
■ 0–3 ■ 4–6 ■ 7–8 ■ 9+
Not charted: Craig Wright ([email protected] — court-ruled not Satoshi, Mar 2024) and Phil Wilson / Scronty ([email protected] — self-proclaimed 1/3 of team) have no independent code to examine. See the Self-Proclaimed table below.
01 Executive Summary

We performed a code stylometry analysis comparing Bitcoin v0.1 (January 2009) against actual source code from 12+ Satoshi candidates across 12 measurable coding traits: language choice, comment style, naming conventions, class prefix patterns, Hungarian notation, indentation, control flow spacing, return statements, brace placement, function declarations, platform orientation, and pointer management. Every comparison is based on real, auditable source code — not biographical speculation.

The result is stark. Adam Back — the New York Times' candidate — scores 1 out of 12. He writes C, not C++. He uses snake_case, not CamelCase. He uses tabs, not spaces. He uses block comments, not line comments. His code shares almost nothing with Bitcoin's. Meanwhile, a Windows P2P developer profile — exemplified by the Shareaza codebase (Michael Stokes) — scores 11 out of 12, matching Bitcoin's MFC class prefixes, Hungarian notation, Allman braces, precompiled headers, and Win32 platform orientation.

This reveals a paradox. The cypherpunk community writes Unix C. Satoshi wrote Windows C++. A systematic search of 30+ cypherpunk mailing list participants found zero whose code matches Bitcoin's style. These are two different worlds, and Satoshi sits at their intersection — someone with cypherpunk knowledge but Windows MFC coding habits. Finding the person who bridges both communities is the key to the mystery.

The most intriguing unexplored lead: Kevin Hearn (WinMX / Tixati), a Canadian Windows C++ solo developer who was described before WinMX as “a software developer previously known only for database applications and small ancillary cryptographic programs.” He “disappeared off planet earth” from late 2005 to mid-2009 — precisely overlapping Satoshi's development period — after moving his company to Vanuatu (an offshore privacy jurisdiction). He resurfaced by incorporating Tixati Software Inc. on June 28, 2009, just five months after Bitcoin's genesis block. He has pre-existing cryptographic programming experience, builds complex decentralized systems alone (200,000+ lines of C++), has never released source code for anything, accepts Bitcoin donations, and operates from Windsor, Ontario (US Eastern timezone — one of the best fits for Satoshi's posting pattern). His behavioral profile is the strongest match to Satoshi of any candidate, but all his code is closed source, making stylometric verification impossible without access to WinMX or Tixati internals.

02 Satoshi's Coding DNA

The Fingerprint — Bitcoin v0.1.0 (January 2009)

Based on analysis of main.cpp, net.cpp, ui.cpp, serialize.h, bignum.h

Language C++ (10 .cpp files, 0 .c files)
Comments // line comments exclusively (295 instances, zero /* */ block comments)
Class naming CamelCase with C prefix — CBlock, CTransaction, CWalletTx, CKey, CAddress
Member/global vars Hungarian notation — fFound, nBestHeight, mapWallet, vWalletUpdated, csMapKeys
Indentation 4 spaces (zero tab lines in entire codebase)
if spacing if (x) — space before paren, no spaces inside
Return style return true; — no parentheses
Brace style Allman (opening brace on next line for functions)
Function decls Return type on same line as function name
Platform Windows-first — 44 Win32/wxMSW refs, 0 Unix refs, wxWidgets GUI
Headers Single monolithic headers.h (precompiled header pattern)
Pointers Raw pointers, NULL (not nullptr), no smart pointers
STL Heavy use — map<>, vector<>, multimap<>, string
Error handling C++ throw, custom error() function, printf
The C class prefix and Hungarian notation (f/n/map/v/cs prefixes) are specifically from Microsoft's MFC/COM programming tradition of the 1990s–2000s. The monolithic headers.h is a Windows precompiled header pattern. These traits collectively point to someone who spent years writing Windows desktop applications in Visual C++.
03 The Evidence

Trait-by-Trait Comparison

12-Trait Stylometric Analysis

We split the comparison into four tiered tables to keep each view readable. Satoshi’s fingerprint is in the left column; the rest are candidates, sorted within each tier by overall match score. See the full ranked scorecard below for the unified ordering across all candidates.

Tier 1 — Strongest Code Matches (8.5+ / 12)

Windows MFC / C++ archetype. These are the candidates whose code style most resembles Bitcoin v0.1.
Trait Satoshi Stokes
11/12
Falco
9/11
Wei Dai
8.5/11
Andresen
8.5/12
Language C++ C++ C++ C++ C++
Comments // only // (819 vs 8) // mostly // mostly // mostly
Naming CamelCase CamelCase CamelCase CamelCase CamelCase
C class prefix Yes (CBlock) Yes (CNetwork) No No Yes (CScheduler)
Hungarian vars f/n/map/v m_b/n/p full m_ prefix simple Partial (n prefix)
Indentation 4 spaces tabs 2 spaces tabs 4 spaces
if spacing if (x) if ( x ) if (x) if (x) if (x)
Return style return x return x return x return x Mixed
Brace style Allman Allman Allman Allman Mixed Allman/K&R
Ret type placement same line same line same line same line same line
Platform Windows-first Windows MFC Windows Cross+MSVC Unix/Linux
Raw ptrs / NULL Yes Yes Some No smart Mixed
No namespaces Yes Yes

Tier 2 — Moderate Matches (4–6 / 12)

Partial overlap with Bitcoin’s style — usually matching on language or platform but missing other markers.
Trait Satoshi Le Roux
5.5/12
McCaleb
4.5/11
Sassaman
4.5/9
Language C++ C (some .cpp) C++ C
Comments // only /* */ primary // mostly /* */ only
Naming CamelCase C style CamelCase snake_case
C class prefix Yes (CBlock) N/A No N/A
Hungarian vars f/n/map/v b/sz/n full m prefix N/A
Indentation 4 spaces tabs tabs 2 spaces
if spacing if (x) mixed if(x) if (x)
Return style return x return x return(x) return x
Brace style Allman K&R-ish K&R Allman
Ret type placement same line same line same line same line
Platform Windows-first Windows Cross-plat Unix+Win32
Raw ptrs / NULL Yes Yes (BOOL) Some smart
No namespaces Yes

Tier 3 — Weak Code Matches / Ruled Out (< 3 / 12)

Candidates whose code style diverges sharply from Bitcoin v0.1. Includes the NYT’s pick (Back) and the most popular 2025 theory (Dorsey).
Trait Satoshi Finney
2/10
Gutmann
~2/12
Back
1/10
Dorsey
1/12
Language C++ C C C ObjC, Py, C
Comments // only /* */ only /* */ only /* */ only // with !!!
Naming CamelCase snake_case snake_case snake_case snake_case
C class prefix Yes (CBlock) N/A N/A N/A No
Hungarian vars f/n/map/v N/A N/A N/A None
Indentation 4 spaces tabs tabs tabs 2 spaces
if spacing if (x) if (x) if ( x ) mixed
Return style return x return x return x
Brace style Allman K&R K&R Mixed
Ret type placement same line separate same line same line
Platform Windows-first Unix-first Cross-plat Unix-first Mac/Unix
Raw ptrs / NULL Yes
No namespaces Yes

Self-Proclaimed Candidates — Cannot Evaluate on Code

Both are Australians who publicly claimed to be Satoshi. Neither has independent pre-2009 source code available for stylometric analysis. Wright used the [email protected] email and was ruled not to be Satoshi by the UK High Court in March 2024. Wilson (aka “Scronty”) used the [email protected] address and claims to have been one-third of a team that included Wright and David Kleiman.
Trait Satoshi Wilson (Scronty)
self-proclaimed
Wright (CSW)
court-ruled not Satoshi
Language C++ No public C++ code No evidence of C++ proficiency
Public codebase Bitcoin v0.1 Destroyed, per own account Only plagiarism found
Background Unknown 3D animator, self-taught coder Computer scientist / businessman
Bitcoin proof Wallet keys None (wallet destroyed) Forged (UK court finding)
Claimed email satoshin@gmx/vistomail [email protected] (Malmi email) [email protected]
Signing capability Yes Cannot sign Cannot sign
Claim structure Solo pseudonym “Team of three” (Wright+Kleiman+Wilson) “Team of three” (inconsistent third member)
Net code evidence 30 KLOC Zero (cannot verify or rule out) Zero authentic (plagiarism documented)
Why include them at all? Both are historically significant Satoshi claimants. Wright spent a decade and millions in legal fees trying to prove he was Satoshi; Wilson self-published a detailed narrative (Bitcoin Origins) at vu.hn. The stylometric framework we apply to everyone else cannot be applied to them because they have no independent code to examine. That is itself a finding: if either truly wrote Bitcoin, the proof would be trivial (sign a message with the genesis-block private key). Neither has done so.

Final Rankings

Candidate Scorecard

Rank Candidate Score Era Code Best Match Key Gap
1 Michael Stokes 11/12
Shareaza (2002–2017) ONLY candidate matching C prefix + Hungarian + MFC + P2P protocol design Tabs not spaces; if ( x ) has extra interior spaces
2 Vincent Falco 9/11
DSPFilters (2009) Windows P2P developer (BearShare) — exact profile BearShare source closed; no C prefix in available code
3 Gavin Andresen 8.5/12
scheduler, IBLT (2015) C prefix (CScheduler) + 4-space indent + line comments Unix not Windows; mixed brace/return style. Style may reflect Satoshi's influence.
4 Wei Dai 8.5/11
Crypto++ (1995–present) Most general C++ traits match; sophisticated codebase Not Windows-first; no C prefix or Hungarian notation
5 Paul Le Roux 5.5/12
E4M/TrueCrypt (1998–2000) Hungarian notation + Windows. Criminal = anonymity motive Writes C not C++, block comments, tabs
6 Jed McCaleb 4.5/11
NewCoin (2011) Writes C++, CamelCase naming Tabs, return(x), if(x), not Windows-first
6 Len Sassaman 4.5/9
Mixmaster Allman braces, if (x) spacing Writes C not C++, block comments
8 Hal Finney 2/10
RPOW (2004) if (x) spacing, return x style Writes C, tabs, block comments, separate-line return type
8 Peter Gutmann ~2/12
cryptlib Writing stylometry #2 match (ULC Legal study) Writes C, block comments, tabs
10 Adam Back 1/10
hashcash Same-line return type Writes C, tabs, block comments, spaces inside parens, snake_case
10 Jack Dorsey 1/12
Gmailto, burn.py (2004) Early returns; // !!! self-questioning comments No C++, no C prefix, no Hungarian, snake_case, 2-space indent, Mac/Unix not Windows
Nick Szabo N/A
(Java only) Cannot evaluate — no public C/C++ code
Phil Wilson (Scronty) N/A
(destroyed, per own account) Self-proclaimed 1/3 of Satoshi team (w/ Wright + Kleiman); no independent code
Craig Wright N/A
(none authentic) UK High Court ruled not Satoshi (Mar 2024); forged evidence; plagiarism
Note on Gavin Andresen (#3): Gavin took over Bitcoin development directly from Satoshi in 2010. His C prefix usage (CScheduler) and n-prefix variables could reflect Satoshi's influence on his coding style rather than shared authorship. He is based in Amherst, MA — US Eastern timezone, which fits Satoshi's posting pattern.

Expert Review: Robert Graham's Networking Code Analysis

💬

"I looked at how Shareaza/2.0 and Bitcoin/0.1 do networking. There is no chance this could've been the same programmer. Shareaza's Sockets network code is robust, showing deep experience with the subject. Satoshi's Sockets code is just what you'd read in a textbook, full of subtle bugs, like in-progress connect() or send() not sending all the requested data."

Robert Graham, professional C/C++ programmer and security researcher, responding to the whowrotebitcoin.com analysis

This is a critical distinction beyond formatting. Code stylometry measures conventions (naming, spacing, braces) — but Graham is identifying a difference in competency level for networking code specifically. Stokes' Shareaza was a production-grade multi-protocol P2P client handling millions of connections; his socket code reflects years of real-world network programming. Satoshi's networking code, while functional, reads like someone who learned sockets from documentation rather than from building high-traffic P2P systems.

This further supports the conclusion that Stokes himself likely did not write Bitcoin — but someone from the same Windows MFC development ecosystem, with less networking experience but comparable coding conventions, may have. The stylometric match identifies the school of programming; the competency gap identifies a different practitioner within that school.

04 The Two Worlds

Convergence on a Specific Developer Archetype

Across all 10 candidates, the stylometric analysis has converged on a very specific profile for Satoshi: someone who wrote Windows MFC/ATL C++ peer-to-peer applications in the 2000–2008 era. The C class prefix, Hungarian notation, Allman braces, precompiled headers, and heavy Win32/MFC references are not generic C++ habits — they are the specific fingerprint of a Visual C++ application developer working on desktop software.

The three candidates who best match this profile:

All three are Windows developers. Two of them — Stokes and Falco — are P2P protocol designers who built decentralized file-sharing networks, the exact same domain as Bitcoin's peer-to-peer protocol. This is a remarkably narrow intersection: Windows MFC C++ developer AND decentralized P2P protocol designer. Very few people in the world fit both criteria simultaneously.

The C Prefix and Hungarian Notation — The MFC/COM Signature

Two of Satoshi's most distinctive traits — the C class prefix (CBlock, CTransaction) and Hungarian notation (fFound, nBestHeight, mapWallet) — were previously unmatched by any candidate. These conventions come specifically from Microsoft's MFC (Microsoft Foundation Classes) and COM programming traditions.

Michael Stokes' Shareaza is the first and only codebase to match both traits. Shareaza uses CamelCase with C prefix (CCollectionFile, CNetwork, CBTClient, CDownload, CBuffer, CAlbumFolder) and full Hungarian notation (m_bActive, nLength, nCount, pFile, pPacket, pHost). The Shareaza codebase also uses StdAfx.h (precompiled headers), the same pattern as Satoshi's monolithic headers.h. And Stokes designed a decentralized P2P protocol (Gnutella2), matching Satoshi's domain expertise in peer-to-peer network design.

The remaining gap between Stokes and Satoshi — tabs vs. 4 spaces for indentation, and if ( x ) with extra interior spaces vs. Satoshi's if (x) — is the smallest discrepancy of any candidate. Indentation style is also the trait most easily changed by a developer (via editor settings or project conventions), making it a weaker signal than naming conventions or comment style.

Caveat: There is no known connection between Michael Stokes and the cypherpunk or cryptography community. Being a stylometric match does not confirm identity — it means the code was written by someone with the same development background: a Windows MFC C++ peer-to-peer application developer. Satoshi could be Stokes, someone who worked alongside him, or any developer from the same narrow ecosystem of Windows P2P application builders in the 2000s. Code stylometry identifies the type of developer, not the specific person.

The Cypherpunk World (Unix / C)

92,000 Cypherpunk Mailing List Posts Searched

Satoshi announced Bitcoin on the metzdowd.com cryptography mailing list — a cypherpunk-adjacent forum. His whitepaper cites cypherpunk work (Hashcash by Adam Back, b-money by Wei Dai). We searched the complete cypherpunk mailing list archive (92,194 messages, 2000–2016) for every candidate in our analysis.

CandidatePostsAssessment
Ray Dillinger 849 Massive presence. #1 in ULC writing stylometry study.
Adam Back 589 Major contributor. Discussed P2P DoS resistance + e-cash.
Len Sassaman 166 Active participant.
Hal Finney 107 Active. First person to receive a Bitcoin transaction.
Ian Grigg 103 Active. Ricardian Contracts inventor.
Wei Dai 70 Moderate. Creator of b-money (cited by Satoshi).
Nick Szabo 36 Occasional. Bit Gold designer.
Gavin Andresen 16 Minor presence.
BearShare (Falco mentioned) 5 Mentioned by others, not posted by Falco himself.
Shareaza (Stokes mentioned) 2 Mentioned in French copyright lawsuit context only.
Michael Stokes 0 Not on the cypherpunk list at all.
Vincent Falco 0 Not on the cypherpunk list at all.
Paul Le Roux 0 Not on the cypherpunk list at all.

The Windows MFC World (Win32 / C++)

Cypherpunk Code Survey: 30+ Posters Checked on GitHub

To test whether any cypherpunk mailing list participant matches Satoshi's code style, we searched GitHub for public C/C++ code from the top 30+ most active posters. The results are unambiguous.

Cypherpunks with C/C++ Code on GitHub

DeveloperHandleReposLanguageStyleWindows MFC?
Moxie Marlinspike moxie0 sslsniff (570★), tortunnel C++ /* comments, 2-space, boost::asio, Unix No
Zooko Wilcox zooko cryptopp fork, crawl C/C++ (fork) Wei Dai's code, not original. Python primarily. No
Jacob Appelbaum ioerror 9 C/C++ repos C Pure C (csidh, dnscrypt, flashrom), Unix/Linux No
Adam Langley agl critbit (334★), curve25519-donna (344★) C Pure C, Google cryptographer, Unix No
Trevor Perrin trevp libsignal-protocol-c, openssl C Pure C, Signal Protocol designer, Unix No
Wei Dai weidai11 cryptopp (5,444★) C++ CamelCase, Allman, tabs, cross-platform. Score: 8.5/11 Partial
Hal Finney halfinney RPOW, bc_key C Pure C, /* comments, tabs, snake_case. Score: 2/10 No

Cypherpunks with No Public C/C++ Code

Eugen Leitl (4,539 posts), R.A. Hettinga (2,620), Jim Choate (1,871), grarpamp (1,402), coderman (1,390), Declan McCullagh (1,363), Tim May (1,287), John Young (1,125), Major Variola (1,044), Bill Stewart (1,032), Ray Dillinger (849 posts, #1 in ULC writing study), David Honig (648), Jim Bell (237), Steven Schear (284), Thomas Shaddack (247), Cathal Garvey (264), Georgi Guninski (575), Peter Trei (516), K. Brown (281), Zenaan Harkness (816), Len Sassaman (166), Nick Szabo (36), and many others — none have public C or C++ code on GitHub. Most are theorists, activists, journalists, or worked in closed-source environments. Those with GitHub accounts write Ruby, Python, Perl, Nix, or have empty repos.

Zero cypherpunk mailing list participants match Satoshi's Windows MFC C++ coding style.

Every cypherpunk with public code writes Unix-style C or Python. The cypherpunk community was — and remains — a Unix ecosystem. Satoshi's Windows MFC/ATL C++ fingerprint (C class prefix, Hungarian notation, StdAfx.h precompiled headers, wxWidgets GUI, 5,000+ Win32 API references in comparable codebases) exists entirely outside the cypherpunk world. This is not a sampling artifact; it reflects a genuine cultural divide between the privacy/cryptography community (Unix) and Windows application development.

The Paradox: Two Communities That Don't Overlap

The code stylometry points to a Windows MFC C++ P2P application developer. The cypherpunk mailing list analysis points to a Unix-oriented cryptography researcher. These two communities barely intersect:

Cypherpunk World
Unix, C, Python
Academic crypto
Mailing lists
Back, Finney, Dai, Dillinger
Windows MFC World
Win32, C++, MFC/ATL
P2P applications
Developer forums (GDF)
Stokes, Falco, Le Roux

Satoshi had deep knowledge from the left column (cryptographic primitives, e-cash theory, distributed systems) but wrote code in the style of the right column (Windows MFC conventions, P2P networking patterns). Finding the person who bridges these two worlds — or the collaboration that combined them — is the key to solving the Satoshi mystery.

Three Possible Explanations

1. The Lurker

A Windows developer who read the cypherpunk lists without posting. They absorbed the ideas (Hashcash, b-money, distributed systems) and had the programming skills to implement them. Their code style reflects their professional background (Windows MFC), while their knowledge reflects years of silent reading.

2. The Team

A cypherpunk designed the system (choosing the cryptographic primitives, writing the whitepaper) while a Windows developer coded it. The code reflects the coder's style; the whitepaper reflects the designer's knowledge. Satoshi's communications could be either or both.

3. The Dual Identity

A rare individual who was both: a professional Windows C++ developer by day (explaining the MFC conventions, Hungarian notation, wxWidgets) and a cypherpunk enthusiast by night (explaining the cryptographic knowledge, mailing list awareness, British English). Such a person would be hard to find because they'd appear in neither community under both identities.

The search continues. The cypherpunk archive does not contain the GDF (Gnutella Developer Forum) posts, which were hosted on Yahoo Groups and shut down in 2020. The GDF is where Michael Stokes was active and where the P2P development community congregated. If a preserved copy of the GDF archive exists, it could bridge the gap between the P2P and cypherpunk communities — revealing whether any P2P developer also discussed cryptography or digital cash.
05 Deep Dives

Detailed investigations into the most significant candidates and evidence threads. Click to expand.

Michael Stokes (Shareaza) — 11/12 Match Timeline, British English, Expert Review

Even with the timezone and competency objections, Stokes' code remains the closest stylistic match to Satoshi's (11/12 formatting traits). This means the analysis has successfully identified the type of developer who wrote Bitcoin: a Windows MFC/ATL C++ application developer who used the same conventions as Shareaza-era P2P developers — but who was less experienced with network programming than Stokes himself. The actual author may be a more junior developer from the same ecosystem, someone who learned MFC conventions in a Windows shop but built Bitcoin as their first serious networking project.

Detailed Location Timeline

Corporate filings, web archives, and community records allow us to reconstruct Stokes' location with reasonable confidence. Sources include the Australian Securities & Investments Commission (ASIC), the Australian Business Register (ABR), Wayback Machine snapshots of Mercora's team page, Shareaza Wiki revision history, and a WIPO domain dispute decision.

DateEventLocation ImpliedSource
Nov 2002 Registers Shareaza Pty Ltd (ACN 102 912 667, WA 6014) Perth, Australia ASIC / ABR
~2003 Listed as CTO / co-founder, Mercora Inc. Sunnyvale, CA (or remote?) MarketScreener, GigaOM
Jun 2004 Open-sources Shareaza 2.0, transfers domain Unknown Shareaza Wiki
Nov 2004 Files voluntary deregistration of Shareaza Pty Ltd Australia (filing) ASIC doc 020841849
Sep 2005 Title on Mercora team page changes from CTO to "Client Architect" Unknown Wayback Machine
Nov 2005 Disappears from Mercora team page entirely Left Mercora Wayback Machine
Nov 2005 Shareaza Pty Ltd officially deregistered Australia ASIC
Feb 2006 ABN cancelled Australia ABR
Late 2005 – Jan 2008 COMPLETELY DARK — no digital trace found anywhere Unknown
Jan 5, 2008 Shareaza Wiki first revision states: "He currently resides in Australia" Australia SourceForge wiki rev 1733
Oct 31, 2008 Bitcoin whitepaper published Stokes appears to be in Australia at this time
Jan 3, 2009 Bitcoin genesis block mined Stokes appears to be in Australia at this time
Aug 2008 Social.fm (formerly Mercora) shuts down N/A (Stokes had left years earlier) Web archives
2010–2014 Confirmed in Australia, employed with side jobs Australia Shareaza Wiki (EN + NL)

Was Stokes Ever Physically in the US?

Possibly not. Despite being listed as CTO of a Sunnyvale startup, several clues suggest he may have been remote from Australia the entire time:

The timeline weakens the Stokes case. The Shareaza Wiki confirms Stokes "currently resides in Australia" as of January 2008 — nine months before the Bitcoin whitepaper. If he was in Australia during 2008–2010, his posting times would need to be midnight–9 AM AEST (the "vampire schedule"), which is not sustainable for 14+ months. No evidence was found placing him outside Australia at any point during 2006–2010.

British/Australian English Match

Michael Stokes resides in Australia (confirmed on the Shareaza Wiki). Australian English uses British spellings as standard — "colour," "favour," "analyse," "defence." The word "bloody" is quintessentially Australian slang.

Shareaza's source code confirms Stokes writes in British/Australian English:

WordBritish (Stokes)AmericanRatio
colour vs color 302 61 83% British
initialise vs initialize 2 48 4% British
serialise vs serialize 0 403 0% British
Total British spellings 354 instances across codebase

The pattern is telling: Stokes defaults to British spelling for words he chose himself (his own function names like CalculateColour(), GetColour(), OnSysColourChange()) but uses American spelling where forced by the Windows API (which uses "Color" in its own type names like COLORREF). This mixed British/American pattern is exactly what Satoshi's writing exhibits — and exactly what you'd expect from an Australian developer working with American APIs.

Kevin Hearn (WinMX / Tixati) — The Ghost Developer Pre-existing crypto experience, 3.5-year disappearance, corporate records, closed source

Kevin Hearn

STRONGEST NEW LEAD
WinMX / Tixati / Fopnu / DarkMX — Frontcode Technologies → Tixati Software Inc.
Status: Alive and active. Tixati v3.42 released December 2025. Posts on Tixati forums as “KH”. Patreon active ($478/month, 163 members). Tixati Software Inc. filed 2025 annual return.

Profile

The Timeline

Date Kevin Hearn Satoshi Nakamoto
Dec 2004 Last WinMX release (v3.54 beta 4)
Sep 2005 WinMX shuts down after RIAA threats. Frontcode “simply disappears”
~2005 Registers “WinMX Technologies” in Vanuatu (offshore privacy haven)
Nov 2006 Canadian holding company (6253610 Canada Inc.) formally dissolved
Mar 2008 WinMX community: “Nobody has ever been able to contact him. Disappeared off planet earth.” Aug 2008: bitcoin.org domain registered
Oct 2008 Bitcoin whitepaper published
Jan 3, 2009 Genesis block mined
Jun 28, 2009 Tixati Software Inc. incorporated in Windsor, ON — he resurfaces
2009 First Tixati release
Mid-2010 Satoshi begins disengaging
Apr 2011 Satoshi’s last known communication

Corporate Records (Canadian Federal Business Registry)

Corporation 1
6253610 Canada Inc.
  • Incorporated June 29, 2004
  • Address: 5527 Coronation, Windsor, ON
  • Director: KEVIN HEARN
  • Dissolved November 22, 2006
Corporation 2
Tixati Software Inc.
  • Corporation #7198051, BN 858469661
  • Incorporated June 28, 2009
  • Director: KEVIN HEARN
  • Still active (2025 annual return filed Aug 26, 2025)
  • Address moved: Windsor → Toronto (1 Yonge St, 2013) → 18 King St E (2022)

The “Disappeared Off Planet Earth” Quote

“I just wondered what ever happened to Kevin Hearn (Frontcode Technologies), is he even alive?... Its like he just disappeared off planet earth.”

— Sophie, WinMXWorld forum, March 6, 2008

“No one to our knowledge has ever been able to contact him Sophie, and I’m aware of many who have tried to track him down.”

— GhostShip (admin), WinMXWorld forum, March 6, 2008

Technical Capabilities (Matching Bitcoin Requirements)

Online Handles

Code Availability

NONE. All software (WinMX, Tixati, Fopnu, DarkMX, Super Simple Server) is closed source. The WinMX community had to reverse-engineer his WPNP protocol because he never published it. GitHub has only a bittorrent.org fork with no code.

Accepts Bitcoin donations for Tixati (address: 19u1s1ed8m1fhXrWFmA3BQrYkZ5efZXLYH)

Why He’s the Most Intriguing Lead

  1. Pre-existing cryptographic programming experience (before WinMX, i.e. before 2000)
  2. Solo developer building complex decentralized systems alone — same pattern as Satoshi
  3. Extreme privacy — no photos, no interviews, nobody can find him
  4. Disappeared for 3.5 years (late 2005 – mid 2009) during exactly the Bitcoin development window
  5. Moved company to Vanuatu (offshore privacy jurisdiction) before disappearing
  6. Reappeared right when Bitcoin launched (Tixati Inc. incorporated June 28, 2009 — five months after genesis block)
  7. Canadian — Commonwealth English (colour, favour)
  8. Windsor, Ontario = US Eastern timezone — one of the best fits for Satoshi’s posting pattern
  9. Accepts Bitcoin for Tixati donations
  10. Has NEVER released source code for anything — maintaining code secrecy is his established pattern
  11. Robert Graham’s note that Satoshi’s networking code was “textbook-level” is consistent with someone whose background was “database applications and small ancillary cryptographic programs” before WinMX — he would have had less networking experience in 2008 than he later developed building Tixati

The Barrier

Without access to his source code (everything is proprietary), we cannot confirm the stylometric match. His behavioral profile is the strongest match to Satoshi of any candidate — but code stylometry requires code.

What Would Settle It

If anyone has access to WinMX source code (from reverse engineering, leaked builds, or legal archives), comparing it against Bitcoin v0.1 would be one of the most important tests in the Satoshi investigation. Alternatively, analysis of Tixati’s binary for coding convention artifacts (string literals, debug symbols, class naming patterns) might reveal enough for a partial comparison.
Jack Dorsey — The Biography-Driven Theory (1/12 on code, strong on coincidence) Cypherpunk-adjacent in 1996, Dnet P2P payments, symbolic fit, code mismatch

Jack Dorsey (Twitter co-founder, Block CEO) has become the most popular 2025-era Satoshi candidate, driven largely by Seán Murray’s decashed.eth.loan research and a Nov 2025 CoinDesk podcast. His case is built almost entirely on biographical coincidence and symbolism rather than code. He deserves a dedicated look because the biography is genuinely interesting — and because applying the same 12-trait stylometric framework we use on every other candidate is the fairest way to test the theory.

What’s strong (biographical)

What’s weak (code)

Dorsey’s own 2003 barter page (gu.st/jak/barter.html) lists the languages he’s proficient enough to teach: C, Python, OCaml, Lisp, ObjC. C++ is conspicuously absent. Bitcoin v0.1 is C++.

Even decashed.eth.loan (the pro-Dorsey site) admits: “90s era code authored by Jack are hard to come by” and “Jack did not openly proclaim that C++ was one of his primary languages.” Only about 40 lines of Objective-C and 125 lines of Python from the Satoshi era are publicly available for comparison.

12-Trait Stylometric Comparison: Dorsey vs Satoshi

Trait Satoshi (Bitcoin v0.1) Dorsey (Gmailto.m + burn.py, 2004) Match
Language C++ C, Python, OCaml, Lisp, ObjC — no C++
Comments // with //// emphasis // with !!! emphasis; # in Python ~
Naming PascalCase + camelCase snake_case (burnhash, gettagsfor, tagsd)
C class prefix Yes (CBlock, CWallet, CNode) No (class named Gmailto)
Hungarian vars Heavy (nBits, fFound, pNode) Zero Hungarian anywhere
Indentation 4 spaces 2 spaces (Python and Obj-C)
Operator spacing Spaces around operators Tight / packed ternaries ~
Return style Early returns + guards Early returns + guards
Brace style Allman everywhere Allman for methods, K&R for if
Platform Windows MFC / Visual Studio Mac OS X Cocoa + Linux / CGI
Pointer style Type* var (attached to type) Type *var (Cocoa convention)
Code density Verbose, defensive, comment-heavy Terse, inline imports, except: pass
Score Jack Dorsey — same range as Adam Back, the candidate with the weakest code fit 1 / 12

Dorsey’s Actual Code (Publicly Available)

Gmailto/main.m (Objective-C, 2004)
#import <Cocoa/Cocoa.h>

@implementation NSApplication (shutCocoaUp)
- (void) buttonPressed: (id)sender
{
  //  !!! is there a better way to do this?
}
@end

int main(int argc, const char **argv)
{
  return NSApplicationMain(argc,argv);
}
burn.gu.st/index.py (Python, 2004)
def getburnsfor(tags):
  burns = []
  for t in tags:
    try: burns += file(pathjoin('tag',t)).read().split()
    except: pass
  ...
  # !!! better way to do this sort?
  sburns = []
  for b in burns:
    sburns.append((os.path.getmtime(pathjoin('burn',b)),b))
  sburns.sort()
  sburns.reverse()

What Satoshi’s code actually looks like

class CBlock
{
public:
    // header
    int nVersion;
    uint256 hashPrevBlock;
    unsigned int nBits;
    unsigned int nNonce;

    CBlock()
    {
        SetNull();
    }

    bool IsNull() const
    {
        return (nBits == 0);
    }
};

The C-prefixed class, the nVersion/hashPrevBlock/nBits Hungarian notation, the 4-space indent, the Allman braces, and the PascalCase method names are all absent from Dorsey’s 2004 code in both languages.

The one similarity decashed cites, contextualized

Decashed’s code-based argument rests on two observations: both Dorsey and Satoshi use // single-line comments, and both write self-questioning comments. Examples:

Jack Dorsey (2004)
// !!! is there a better way to do this?
# !!! better way to do this sort?
Satoshi (Bitcoin v0.1)
//// is this all we want to do if there’s a file error like this?
////// should the one on the receiving end do this too?

The habit of self-questioning is shared — but the marker differs (!!! vs ////), the language differs (Obj-C/Python vs C++), and every other structural feature of the surrounding code is opposite. “Is there a better way?” is not a fingerprint; it is one of the most common comment patterns any programmer writes.

The unfalsifiable rebuttal

Decashed concedes the stylometric mismatch and rationalizes it with: “writing opensource code for a little freeware utility for retail mac users is quite a bit different than writing revolutionary source code for a cypherpunk audience” — Satoshi was allegedly performing a different style on purpose. If Jack’s code matches Satoshi’s, it confirms. If it doesn’t, it confirms anyway because he was obfuscating. This is unfalsifiable, which is why biographical-only theories tend to cluster around Dorsey rather than code-based ones.

Bottom line

On pure code stylometry, Dorsey scores 1/12 — tied with Adam Back for the weakest match. Every structural marker that identifies Satoshi (C++, MFC, Hungarian notation, C prefix, Allman braces, 4-space indent, Windows-first) is absent from Dorsey’s publicly available code. He is the opposite archetype: a Mac/Unix scripting and Obj-C utility developer.

The biographical fit is genuinely interesting — much stronger than most candidates. A cypherpunk-adjacent 1996 UMR student working on Windows imaging software at 15, co-founder of a P2P dispatch and payments system that quietly shut down in July 2008, who was fired from Twitter two weeks before the Bitcoin whitepaper — that is not nothing. But biography without code evidence is what every Satoshi theory has. The NYT built its Adam Back case on biography; it collapsed when we looked at the code.

The honest position: Dorsey could have hired or directed someone with the MFC background to write Bitcoin (Erik Westra, the Dnet programmer, is the obvious candidate for that role — he went dark exactly when Satoshi appeared). But Dorsey as Satoshi writing Bitcoin v0.1 himself is not supported by any code we can examine.

What would settle it

The Dnet codebase itself — and any 1990s-era Dorsey code from UMR, Mira Digital Publishing, or his Blackberry Twitter prototype — would allow a definitive comparison. Erik Westra (the Dnet primary coder who went dark July 2008 through March 2009) is a separate, interesting candidate in his own right who has not been stylometrically examined by anyone. If a leak, archive, or FOIA discovery surfaces Dnet source, that should be analyzed immediately.
The eMule Ecosystem — Satoshi's Potential "Coding School" MFC conventions, Kademlia DHT, anonymous contributors

eMule Developer Community

“Merkur” + anonymous contributors
github.com/SomeSupport/eMule — full source available
  • eMule uses EXACTLY the same technology stack as Bitcoin v0.1: Visual C++ with MFC, C prefix classes (CAbstractFile, CDownloadQueue, CServerList), Hungarian notation (m_abyKadID, m_aBufferSend), StdAfx.h precompiled headers, // line comments
  • eMule implements Kademlia distributed hash table — the same DHT technology underlying Bitcoin's peer discovery
  • eMule has 237 instances of British “Colour” spelling (from a ColourPopup component)
  • Core developers used pseudonyms — “Merkur” (Hendrik Breitkreuz, German), “Ornis”, “Bluecow”, “Unknown1/John”, “Tecxx”, “Pach2”
  • “Unknown1” is listed only as “John” — real identity completely unknown. Most common English name. Could be British/Commonwealth.
  • ANYONE who contributed to eMule's codebase would have absorbed the exact MFC conventions that match Satoshi's code
  • KEY WEAKNESS: “Merkur” is German (not Commonwealth English). Other developers' nationalities unknown.
eMule as Satoshi's “coding school.” The eMule codebase is significant not because any specific eMule developer is likely Satoshi, but because it was the largest open-source Windows MFC C++ P2P codebase of the 2000s. Anyone who contributed to, forked, or studied eMule's code would have internalized exactly the conventions found in Bitcoin v0.1: C prefix classes, Hungarian notation, StdAfx.h precompiled headers, // comments. eMule may have been Satoshi's “coding school” — the place where they learned the conventions they later used in Bitcoin. The eMule project had many anonymous contributors whose real identities remain unknown.
Linguistic Evidence — British/Commonwealth English Patterns colour, favour, grey, bloody hard

Satoshi's writings contain well-documented Commonwealth English patterns: "colour," "favour," "grey," "defence," "analyse," and the colloquialism "bloody hard." The Bitcoin whitepaper uses "favour." Bitcoin v0.1's UI code uses SetBackgroundColour and GetColour. These spellings are standard in the UK, Australia, New Zealand, and Canada.

Satoshi's corpus shows the same mix: "favour" and "colour" (British) alongside "characterized" and "optimize" (American). This is natural for a Commonwealth English speaker immersed in American technology — you spell your own words in your native dialect but absorb American spellings from the tools you use daily.

Key forum evidence still needed: Stokes was active on the Gnutella Developer Forum (GDF), which was hosted on Yahoo Groups (groups.yahoo.com/group/the_gdf/). Yahoo Groups was shut down in 2020, but archives may have been preserved. Stokes' GDF forum posts would allow a direct writing style comparison to Satoshi's bitcointalk.org posts — looking at sentence structure, vocabulary, punctuation habits (double-spacing after periods), and the mixed British/American spelling pattern.
Timezone Analysis — Who Was Awake? 742+ timestamps, conversion table

Multiple studies have analyzed 742+ timestamps from Satoshi's bitcointalk posts, SourceForge commits, and emails (Oct 2008 – Dec 2010). The findings are consistent:

Sleep window (near-zero activity): ~05:00 – 11:00 UTC
Peak activity: ~14:00 – 23:00 UTC

Period UTC London (GMT) US Eastern (EST) US Pacific (PST) Australia AEST (UTC+10)
Sleep 05:00–11:00 5 AM – 11 AM 12 AM – 6 AM 9 PM – 3 AM 3 PM – 9 PM
Peak 14:00–23:00 2 PM – 11 PM 9 AM – 6 PM 6 AM – 3 PM 12 AM – 9 AM

Timezone Assessment

Update: Michael Stokes was in Australia during the Bitcoin period. Deep research into corporate records, web archives, and public registries has produced a detailed timeline that weakens the Stokes case on the timezone dimension, while his code remains the strongest match of any candidate.
06 Other Candidates

Brief assessments of every other candidate investigated. Candidates with detailed sections above are not repeated here.

Wei Dai
8.5/11 — Crypto++ (1995–present)
Most general C++ traits match; sophisticated codebase. Not Windows-first; no C prefix or Hungarian notation. Creator of b-money (cited by Satoshi). 70 cypherpunk posts.
Vincent Falco
9/11 — DSPFilters (2009), BearShare (closed)
Windows P2P developer (BearShare) — exact profile match. BearShare source closed; no C prefix in available code. 0 cypherpunk posts.
Gavin Andresen
8.5/12 — scheduler, IBLT (2015)
C prefix (CScheduler) + 4-space indent + line comments. Unix not Windows; style may reflect Satoshi's influence. Amherst, MA (US Eastern). 16 cypherpunk posts.
Paul Le Roux
5.5/12 — E4M/TrueCrypt (1998–2000)
Hungarian notation + Windows. Criminal = anonymity motive. Writes C not C++, block comments, tabs. 0 cypherpunk posts.
Jed McCaleb
4.5/11 — NewCoin (2011)
Writes C++, CamelCase naming. Tabs, return(x), if(x), not Windows-first. Created Mt. Gox and Stellar.
Len Sassaman
4.5/9 — Mixmaster
Allman braces, if (x) spacing. Writes C not C++, block comments. 166 cypherpunk posts. Deeply embedded in cypherpunk world.
Hal Finney
2/10 — RPOW (2004)
if (x) spacing, return x style. Writes C, tabs, block comments, separate-line return type. First person to receive a Bitcoin transaction. 107 cypherpunk posts.
Peter Gutmann
~2/12 — cryptlib
Writing stylometry #2 match (ULC Legal study). Writes C, block comments, tabs. 159 block comment instances, 0 line comments.
Adam Back
1/10 — hashcash
Same-line return type only match. Writes C, tabs, block comments, spaces inside parens, snake_case. 589 cypherpunk posts. NYT's pick.
John Marshall ("swabby/swax")
Gnucleus / GnucDNA — Windows MFC C++ Gnutella client.
C prefix classes (CAutCore, CAutNetwork), Hungarian notation, StdAfx.h. American (New Hampshire) — not Commonwealth English. Very young (~18) at launch.
Phil Zimmermann
4/12 — PGP / ZRTP (libzrtp)
Creator of PGP. Pure C, snake_case with zrtp_ prefix, tabs, /* block comments */. American (Boulder, CO). Deep crypto credentials but wrong code ecosystem.
Nick Szabo
N/A — Java only
Cannot evaluate — no public C/C++ code. Bit Gold designer. 36 cypherpunk posts.
Craig Wright
N/A — 0 public repos
Cannot evaluate. Court-adjudicated as not Satoshi.
07 Methodology

Source Code Analyzed

ProjectAuthorSource
Bitcoin v0.1.0 Satoshi Nakamoto (Jan 2009) github.com/trottier/original-bitcoin
Shareaza Michael Stokes (2002–2017) github.com/jason-jxc/Shareaza
DSPFilters Vincent Falco (2009) github.com/vinniefalco/DSPFilters
Crypto++ Wei Dai (1995–present) github.com/weidai11/cryptopp
E4M / TrueCrypt Paul Le Roux (1998–2000) github.com/FreeApophis/TrueCrypt
NewCoin Jed McCaleb (Oct 2011) github.com/XRPLF/rippled first commit
Mixmaster Len Sassaman et al. github.com/crooks/mixmaster
RPOW Hal Finney (2004) github.com/NakamotoInstitute/RPOW
cryptlib Peter Gutmann github.com/cryptlib/cryptlib
hashcash Adam Back (~2002–2005) github.com/hashcash-org/hashcash
scheduler Gavin Andresen (2015) github.com/gavinandresen/scheduler
IBLT_Cplusplus Gavin Andresen github.com/gavinandresen/IBLT_Cplusplus

Analysis performed by comparing coding conventions across 12 stylometric traits: language choice, comment style, naming conventions, class prefix patterns, variable naming conventions, indentation, control flow spacing, return statement style, brace placement, function declaration format, platform orientation, and pointer/memory management patterns.

Shareaza corpus: 527 .cpp files, 675 .h files. E4M/TrueCrypt corpus: Mount.c, Dlgcode.c (derived from E4M 2.02a). cryptlib corpus: .c files with 159 block comment instances and 0 line comment instances.

Of the additional candidates investigated (Ray Dillinger, Phil Wilson/Scronty, Ian Grigg, Dustin Trammell, Mike Hearn, Martti Malmi, David Chaum), only Gavin Andresen had substantial public C++ code suitable for comparison. The others write in C, Java, Ruby, Assembly, TypeScript, or have no public code.

Generated April 2026. Code stylometry is one analytical lens — it can rule candidates out but cannot definitively confirm identity. Writing style can be deliberately altered.

08 Who Am I

I'm Adam Fisk. I was the lead engineer at LimeWire — one of the most popular Gnutella P2P clients of the 2000s. I'm currently the founder, executive director, and lead programmer at Lantern, a censorship circumvention tool used by millions of people in countries with internet restrictions.

This investigation started with a talk I gave at the Plan B conference in El Salvador on how easy it would be for nation states to censor Bitcoin. Researching that topic led me to suspect Adam Back as Satoshi — purely based on his British background and the linguistic evidence. I even attended Back's talk at Plan B because I thought he might be Satoshi — as it turns out, so did John Carreyrou, who was there working on the NYT investigation at the same time.

Then I bounced the idea off Jed McCaleb (creator of eDonkey, Mt. Gox, Stellar), who pointed out the code differences and Robert Graham's X post about how Back's and Satoshi's code look nothing alike. That sent me down the rabbit hole.

I started downloading the actual source code from every candidate — hashcash, RPOW, Crypto++, Shareaza, eMule, Gnucleus, and more — and systematically comparing coding conventions against Bitcoin v0.1. The analysis revealed that Satoshi's code came from the Windows MFC P2P development ecosystem, not the Unix/academic cypherpunk world. That insight led me to search for new candidates from the P2P community — developers of Gnutella, eDonkey, BitTorrent, and Direct Connect clients — rather than the usual cypherpunk suspects.

As someone who spent years building P2P software on the Gnutella network, I know this ecosystem well. The MFC conventions in Bitcoin v0.1 — the C class prefix, Hungarian notation, StdAfx.h precompiled headers, wxWidgets GUI — are recognizable to anyone who worked on Windows P2P clients in that era. The question of who specifically wrote Bitcoin remains open, but the question of what kind of developer wrote it is now answered.

This analysis was conducted with the help of Wick, an open-source browser-grade web access tool I created. Find me on X @adamfisk.