Bitcoin Institute

Why did Satoshi distribute Bitcoin as a .rar? The Warez-scene parallel

A stylized .rar archive file icon beside a terminal window reading "no installer found" and "no svn history found", a checklist titled "Convention Check" with matching items checked and producer-side items crossed out, and a shield with a checkmark next to a magnifying glass labeled "Audit 2011"

Bitcoin v0.1 shipped on SourceForge as a .rar archive — a format more common in IRC/XDCC Warez-scene distribution than open-source releases. No version control system was used. The distribution-side and tooling-absence observations are read here as a coherent set, alongside Dan Kaminsky’s 2011 security audit, which examined v0.1’s security architecture from the other side. The personal-environment evidence (Hungarian notation, OpenSSL dependency, Visual C++ 6.0 toolchain, the MingW32 PGP header line) is treated separately in the Windows-centric development environment analysis.

1 Distribution: the .rar packaging choice

Bitcoin v0.1 was distributed as a .rar archive — a format rarely used on SourceForge, where .zip and .tar.gz were the standard for open-source releases. The .rar format was more commonly associated with informal software distribution channels, including the Warez scene (IRC/XDCC/Usenet distribution networks). Satoshi never wrote down why he chose it.

The easy reading is that he brought the Warez scene’s conventions with him. Set against the release conventions of the scene at the time, only part of the form matches:

ConventionSatoshi’s practiceMatch
.rar distributionbitcoin-0.1.0.rar✅
Windows-only initial releasev0.1 – v0.1.5✅
No installer (extract and run)Extract .rar, run executable✅
NFO file with ASCII artNone❌
Group tag (-GROUPName)None❌
SFV verification fileNone❌

The three matches fit anyone shipping software that runs once unpacked to ordinary Windows users. The marks that identify a scene release, the NFO file, the group tag and the SFV checksums, are all missing. A pseudonym and anonymous e-mail addresses are not scene conventions either; how Satoshi kept them apart is in the anonymity analysis, and where he signed up and under what name is in the analysis of Satoshi and the software-registration era.

Satoshi’s own record has one more .rar, outside the releases. On January 30, 2009, he e-mailed a debug build as a .rar to Nicholas Bohm, who was tracking down crashes. When it did not arrive, he wrote before resending: “stripped debug info, reduces rar filesize from 7.8MB to 1.6MB.” Here the .rar is the container a test build travels in as an e-mail attachment. The missing installer lasted only for the first releases. By October 2009 Martti Malmi had built a Windows installer with autostart and minimize-to-tray, and the v0.2 announcement lists a “Setup program for Windows” among its new features.

That Satoshi aimed first at individual Windows users is in his own words, in an August 2009 e-mail covered by the Windows-centric development environment analysis. I do not read this record as Satoshi bringing scene conventions with him. The overlap stops at the form: a .rar for Windows users.

2 Absence of standard development tooling

Bitcoin v0.1 shipped with no version control history, despite SourceForge offering both SVN and CVS hosting in 2008. The repository came in August 2009, when Martti Malmi created it.

By 2008, version control was common practice even for solo developers — and conspicuously near-universal among developers handling C++ codebases of some twenty thousand lines professionally (v0.1.0 has about 19,900, as counted in the code analysis). The absence of a VCS in v0.1 is a significant tell about Satoshi’s development habits before Bitcoin.

Several other tooling absences cluster with this:

  • No test suite. v0.1 included no automated tests; the implicit verification model was code review and live network observation.
  • No issue tracker. Bug reports were handled in the BitcoinTalk forum and private email rather than in a structured tracker.
  • No build system in the modern sense. v0.1 was distributed as a manually built binary; reproducible builds came much later.

These absences do not mean the code was poorly engineered (Section 4 reviews evidence to the contrary). They mean that Satoshi’s development process was informal in the procedural sense: shaped by personal practice rather than by team-collaboration tooling.

The combination — no VCS, no tests, no issue tracker, .rar distribution — is consistent with a developer whose prior experience was solo or in environments where these tools were not the default. It is inconsistent with someone embedded in a contemporary professional or academic software-engineering setting.

3 Implementation choices and the Windows-centric development environment

The implementation-style evidence is set out in full in the Windows-centric development environment analysis, along with Satoshi’s own “much more Linux capable than me” self-positioning relative to Gavin Andresen and the eight-month pre-SVN solo period that overlaps with the distribution choices examined here.

The relevant point for the Warez-scene reading: the Windows-only first release (v0.1 – v0.1.5) is one of the matching conventions in the table above, and it is consistent with the picture documented in that separate entry — not an independent surprise.

4 Security architecture: the Kaminsky audit

Dan Kaminsky’s 2011 audit, reported in The New Yorker, contained both criticism and praise.

On formatting and readability, Kaminsky said the code was “dense and inscrutable” and that “the way the whole thing was formatted was insane. Only the most paranoid, painstaking coder in the world could avoid making mistakes.”

On security architecture, however, his finding was the opposite. Kaminsky identified nine potential exploits, and each time he went after one he found an “Attack Removed” message and a line that already addressed it. “The same thing happened over and over.” He concluded:

Dan Kaminsky (The New Yorker article, October 10, 2011)

Either there’s a team of people who worked on this, or this guy is a genius.

This is the most rigorous security review of v0.1 by an outside expert in the public record. The result is consistent and worth stating directly: Satoshi anticipated essentially every category of attack a sophisticated adversary would attempt and pre-blocked them at the design level.

5 The distinction: foresighted security vs. informal process

The picture across §1–§4 is unusual on two axes, and each axis is unusual on its own:

AxisSatoshi’s practiceWhat’s rare about it
Security architectureRemarkably foresighted — the exploits Kaminsky attempted were already blocked, “over and over”Most informal solo developers do not pre-block sophisticated cryptographic attacks they have not personally been targeted by
Implementation processInformal — no VCS, no test suite, no issue tracker, .rar distributionMost developers with documented security foresight work within teams, with version control, and with formal test infrastructure

The combination supports a structural reading: Satoshi clearly thought hard about what could go wrong with the system itself, but did not work within the conventions of professional collaborative software engineering. The two competencies developed independently. This is not impossible — solo cryptographic systems builders with non-standard process backgrounds exist — but it is unusual enough to be worth naming as a distinguishing trait.

6 Limits

  • Each individual observation has alternative readings. The absence of version control could reflect time pressure rather than habit. Hungarian notation could be a deliberate self-discipline choice rather than a Windows-tradition tell. Each isolated observation is weakly diagnostic.
  • The cluster is more diagnostic than any individual observation. The strength of the reading is that all the choices point in compatible directions: Windows-centered development, informal process, individual rather than team workflow.
  • No identity hypothesis follows. The reading characterizes the shape of Satoshi’s working environment. It does not narrow the identity to any country, employment status, age range, or specific person.
  • Foresighted security is consistent with multiple kinds of background. Self-taught cryptography hobbyists, academic cryptographers working outside their institution, and security-industry veterans operating outside their workplace are all consistent with the Kaminsky finding.

Kaminsky’s verdict came in two halves, a team or a genius. Of the outside readings of this code I know, his is the only one that left the choice open, and the tooling record closes the first half for him: a .rar with no installer, a codebase with no repository, a release with no tests are the marks of one person working alone. Which leaves the second half standing, unqualified.