Bitcoin Institute

Satoshi Nakamoto and Visual C++ 6.0: Microsoft's sign-up era and a money with no account

A dark navy title card reading "The sign-up era" above three panels: a Visual C++ 2008 Express registration window asking for a Passport sign-in, a name and an e-mail address with 30 days remaining; two compiler cards for Visual C++ 6.0 SP6 and MinGW GCC 3.4.5; and a Bitcoin v0.1 card showing a key pair created locally beside an empty, dashed form marked "no account"

In the readme.txt he shipped with the source of Bitcoin v0.1.3, Satoshi named the compilers he supported: MinGW GCC 3.4.5 and Microsoft Visual C++ 6.0 SP6, a compiler Microsoft had sold since 1998. A few lines further down he recorded what that loyalty cost: “You may need Boost version 1.35 to build with MSVC 6.0. I couldn’t get version 1.37 to compile with MSVC 6.0.”

By then the current Microsoft compiler was free, and it wanted to know who was using it. The free Visual C++ 2008 Express Edition had to be registered within 30 days, through a Passport sign-in and an online form that asked for personal information. A pseudonymous developer holding on to a ten-year-old compiler invites an easy reading: he stayed where nobody asked his name. The record lets that reading be checked, against what the software of those years asked of its users, what this circle had said about it, where Satoshi did put a name down, and what he built.

1998Visual C++ 6.0 released2001Office XP shipsworldwide with ProductActivation (May)Windows XP shipsworldwide with ProductActivation (Oct)2002Altman on thecryptography list -unregistrable Office XPdropped for Office 97(May)Gilmore - XP locks yourdata until you register(Aug)2005Visual Studio Express -free, unlocked by aregistration key (Nov)2008bitcoin.org registeredthroughAnonymousSpeech(Aug 18)SourceForge projectregistered (Nov 9)2009v0.1 released -Windows .rar withsource (Jan)bitcoin.org site account"satoshi" (Jun 14)2010Boost 1.35 required,builds with MSVC 8.0(2005) too (Feb 12)Satoshi turns on forume-mail verification (Jul29)2011PGP footer still GnuPGMingW32 + WinPT (Feb22)The sign-up era and Satoshi's record

1. Software starts asking who you are

Microsoft’s Product Activation tied a copy of the software to the machine it was installed on and would not keep running until it had been unlocked through Microsoft. After trials in single markets with Office 97 and Office 2000, it was extended worldwide with Office XP, on sale from May 2001, and Windows XP, from October 2001; Microsoft’s own 2002 page names those two products. Microsoft assured users that activation was an entirely anonymous transaction. Not everyone took that on trust. Writing in The Register in April 2001, John Lettice judged that “vast swathes of the user community are poised to believe the slightest suggestion that the company is up to no good.”

The developer tools went one step further and asked for a name. Visual Studio Express, launched on November 7, 2005, was a free download for its first year, and a registration key unlocked it “for unlimited, ongoing use”; registering meant Microsoft would “collect standard information about you and your preferences.” By 2008 the terms were plain. Microsoft’s Visual Studio 2008 documentation reads: “You must register your Express Edition to receive a key to unlock the product for long-term use,” after you “Sign in to Passport and then fill out the online registration form.” The FAQ allowed “30 days from when you install,” and the registration page conceded that the form “requires you to enter personal information” and “may include an e-mail to you to confirm your e-mail address.”

YearSoftwareWhat it asked of the user
1998Visual C++ 6.0Sold before Product Activation went worldwide
2001Office XP, Windows XPUnlock the copy through Microsoft (Product Activation)
2005Visual Studio 2005 Express (free)A registration key for “unlimited, ongoing use”; standard information about you
2006MinGW GCC 3.4.5Free software; no key to unlock
2008Visual Studio 2008 Express (free)Register within 30 days: Passport sign-in, personal information, e-mail confirmation

2. A circle that had already said what it thought

The cryptography mailing list, where Satoshi announced the paper in 2008, had heard a first-hand account of registration failing at the worst moment. In May 2002 a list member, Jeffrey Altman, described building a missing-persons database in downtown Manhattan after 9/11 on copies of Office XP that Microsoft’s New York office had donated. “During the crisis there was no method by which the copies could be registered,” he wrote, so the software stopped after a few runs. “I grabbed an old copy of Office 97 and used that instead since it didn’t have the limits.”

In August 2002 John Gilmore, who had founded the Cypherpunks with Timothy May and Eric Hughes, wrote to both the cypherpunks and the cryptography lists that Windows XP and Office XP “lock up and won’t let you access your locally stored data, until you put the computer on the Internet and ‘register’ it with Microsoft.” His message was part of the argument over Trusted Computing, the industry plan to have the machine itself vouch for what software was running.

That plan drew the same reaction from people close to Bitcoin. On his RPOW site, Hal Finney proposed to use Trusted-Computing-style attestation the other way round, so that users could check the server, and described the result as a technology that would become, “rather than a threat to individual privacy,” a boon to it (the rpow.net home page). Ray Dillinger, who reviewed Bitcoin’s code with Finney in November 2008, wrote in 2017 that “security professionals are aghast when people talk about ‘Trusted Computing Modules’ becoming a standard part of computers” (his LinkedIn essay). Going back to an older product to get away from registration was a move this circle had already described in writing.

3. What Satoshi built with

Satoshi’s own toolchain, laid out period by period in the Windows development environment analysis, is old Microsoft plus free software. The v0.1.3 readme lists Visual C++ 6.0 SP6, the final service pack of the 1998 compiler, beside MinGW GCC 3.4.5, the Windows port of GCC. Of the two, MinGW was the one he built with: “That’s the better compiler, I only used VC for debugging,” he told Martti Malmi in August 2009. When the newer Boost 1.37 would not compile under Visual C++ 6.0, he stepped Boost back to 1.35 rather than move the compiler forward. Two years later, on February 22, 2011, the PGP blocks he sent to Gavin Andresen and Martti Malmi still carried the header GnuPG v1.4.7 (MingW32) - WinPT 1.2.0, the free Windows build of GnuPG with its tray front end.

Nothing in that stack asked him to sign in. Visual C++ 6.0 predates the worldwide rollout of activation, and MinGW and GnuPG are free software with no key to unlock.

4. Where Satoshi did put a name down

Satoshi was not someone who avoided forms. Between August 2008 and June 2009 the record shows him signing up again and again, each time under the pseudonym or an address made for it.

DateWhere he signed upUnder what
August 18, 2008bitcoin.org, through AnonymousSpeech, a paid anonymous-registration serviceThe service’s own name as registrant
August–October 2008E-mail accounts for the first contacts and the papersatoshi@anonymousspeech.com, satoshi@vistomail.com
November 9, 2008The bitcoin project on SourceForgeA SourceForge user account
February 11, 2009P2P Foundationsatoshin@gmx.com
June 14, 2009The bitcoin.org siteThe username “satoshi”

He also knew a sign-up from the other side of the form. With bitcoin.org’s mail server on a spam blocklist, he turned on e-mail verification for new members of the Bitcoin forum and explained the trade-off:

Satoshi Nakamoto (email to Martti Malmi, July 29, 2010, 2:18:56 AM UTC)

I’m more inclined to disallow notifications or anything where the forum sends you e-mail. I kinda like not requiring e-mail verification. But if that’s the only way to make sure we don’t send e-mails to un-verified addresses, then we could do that.

The full message shows the order of his preferences: no verification if possible, verification when abuse left no other way.

5. Did registration keep him on Visual C++ 6.0?

The reading that ties the old compiler to pseudonymity has real support. The free route to a current Microsoft compiler ran through Passport and a personal-information form; his circle had written about leaving newer Microsoft products behind because of registration; and the compiler he kept had none.

The record cuts the other way on every point that matters. The same readme names a second compiler, MinGW, that was free and had nothing to register; if Microsoft’s form had been the obstacle, a compiler without one was already in his build, and it was the one he built his releases with. In November 2009 he even wrote that he “should see if I can upgrade MinGW to 4.3.x”; the compiler he meant to bring up to date was the free one. A Passport account under a throwaway address would have cost him less than any line in the table above, and he filled in every one of those.

Support for a newer Microsoft compiler came in Satoshi’s own commit. On February 12, 2010, he made Boost 1.35 or higher a requirement for the new command line and JSON-RPC, and in the same commit (98500d70a8 in the SVN history) Bitcoin “now compiles with MSVC 8.0.” His Windows build notes added that “MSVC 8.0 (2005) SP1 has been tested.” Which edition of the 2005 compiler is not recorded; the free Express edition would have needed the registration key from §1.

A registration form did not keep Satoshi on Visual C++ 6.0. In this archive, his posts and e-mails never mention Product Activation, Passport or Microsoft’s registration at all. The only reason in this archive that he gave for keeping VC6 is one sentence from July 2010: “I wanted to keep compatibility with MSVC6 at that time.” The same post gives the reason he stopped: “We don’t support MSVC6 anymore because we use something in Boost that doesn’t. We lost support for it after 0.2.0.”

6. What he built instead

The sign-up era matters to Bitcoin in a different place: not in the tools Satoshi used, but in what he made with them. The v0.1 announcement describes a system that is “completely decentralized with no server or central authority.” There is no one to register with. Section 10 of the white paper puts privacy in the same place:

Satoshi Nakamoto (whitepaper, October 31, 2008, 6:10:00 PM UTC)

The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous.

The paper goes on to advise “a new key pair” for each transaction. A user’s identity in Bitcoin is a key pair the user generates; nobody issues it, and no form stands between the user and the network.

Visual Studio 2008 ExpressBitcoin v0.1
Who lets you inMicrosoft, after a Passport sign-inNobody; the client joins the network
What you hand overPersonal information, a confirmed e-mail addressNothing
What identifies youA registration key tied to your accountKey pairs you make yourself, as many as you like

Satoshi did not need to flee registration; he signed up for whatever he needed under a name that led nowhere. What he did instead was build a money that has no place for the form at all. In the years when software started asking every user who they were, Bitcoin was the clearest answer anyone gave: not a refusal to fill in the field, but a system in which the field does not exist.

Reference external source

https://www.ic.unicamp.br/~stolfi/EXPORT/projects/bitcoin/satoshi-code/bitcoin/src/readme.txt
The readme.txt Satoshi shipped in the Bitcoin v0.1.3 source archive (mirror): the 'Compilers Supported' list and the Boost 1.35 note.

Other external sources

Show 6 more