Bitcoin Read online

Page 12


  Coders all agree that a huge amount of work went into it. ‘Satoshi was working on this idea for quite a while,’ said one coder. ‘I don’t think this was something he threw together in a couple of months…He may have been working on it for several years. He took great pains to ensure it was sufficiently evolved such that it wouldn’t simply die shortly after its release.’131

  Italian coder Alessandro Polverini tells me in an email, ‘He created the initial work to let the community verify that the idea was sound and functional, and then left to the community the burden of evolving and improving it, of making it more modular and documented. Some of the people he left it to are very, very competent and skilled.’

  There are hundreds of different programming languages, but Satoshi chose to code in C++.

  In C++, programmers have to do things for themselves that are automated in later languages – they are working with ‘nuts and bolts’, close to the hardware of the computer. This means there are many who don’t go near C++, finding it too complicated, though it remains popular with games designers – and cryptographers. Other coders, such as Wei Dai, think it is ‘a pretty standard choice for anyone wanting to build such a piece of software’.132 C++ is a computing subculture in itself.

  Dan Kaminsky – the hacker who tried to crack Bitcoin – was initially dismissive about the choice to use C++. He thought it was a weakness. His attempts to hack Bitcoin changed his mind: ‘in the context of actual security paranoia, C++ is actually a great choice. It allows for clean infrastructure, and if you know what you’re doing, you actually know what you’re doing. Modern languages like JavaScript and Ruby are great, in that they do a huge amount for you under the surface, but then you don’t actually know what they’re going to do.’133

  So, C++ offers little by the way of shortcuts, but it also offers more control and predictability. You are not relying on other people’s code. Instead you are ‘close to the metal’. So, C++ might have been chosen for its resilience. But it is also the obvious – if not the only – choice for a Windows programmer like Satoshi.

  Hal Finney said it’s ‘hard to master C++ if you didn’t learn it while you’re young’.134 A veteran programmer, who preferred to remain anonymous, said to me, ‘C++ is somewhat unique. Mastering it is very time-consuming and, while many programmers have some familiarity with it, I believe it’s becoming increasingly rare for one to truly be proficient in it as Satoshi undoubtedly is.’ Moreover the Bitcoin code doesn’t ‘have the more modern style of current expert C++ programmers’. A younger coder might have chosen Java, Ruby or Python, but even if they chose C++, the style would be more modern.

  So Satoshi was not a young man – and he learnt his coding craft a while back.

  But merely knowing C++ is a far cry from being a world-class programmer. ‘Whoever coded Bitcoin’, says my anonymous veteran programmer, ‘was an expert C++ coder.’ To reach that level of competence would require a ‘5–10 year obsession’. And, as Wei Dai notes, ‘to have implemented Bitcoin (and to do it securely to boot)’ their programming skills would have to have been ‘kept sharp’.135

  This immediately rules out many Satoshi candidates.

  Hal Finney does not code in C++ but in C.

  Adam Back also too favours C – and his coding style is ‘wildly different’, says one of my coder sleuths. Back himself tells me, ‘I did know C++ about 15 years back. I prefer C. I just think C++ is unhelpfully complex.’ (See the footnote for more on why Back is not Satoshi.136)

  Which prominent Cypherpunk had not only the interest, but also the specific C++ coding skills to develop Bitcoin?

  I returned to my anonymous veteran programmer. We were looking at the C++ code of prominent Cypherpunks. With Finney and Back ruled out, he says, ‘I looked at Ben Laurie, Zooko, and even Richard Clayton and came up with nothing interesting’.

  But there was one obvious candidate.

  Wei Dai.

  He’s an academic. He was a Cypherpunk. His b-money paper actually describes the ledger that would become the Bitcoin block chain. He had the interest. He’s supremely intelligent. He is a Windows Visual C++ programmer. And he even has a C++ library, which Satoshi used.

  The vet says to me, ‘Wei Dai’s Crypto++ library is written in C++. It contains implementations of all the cryptographic primitives required to build Bitcoin and a deep familiarity with most of them would be required…the original bitcoin lifted the SHA256 implementation directly from Wei’s library. Both codebases targeted Windows and even the structure of both projects is very similar. And then you have b-money…I challenge you to even find one other Cypherpunk who writes C++ at that level.’

  Have I found my man, at last?

  Nope.

  Satoshi actually emailed Dai prior to Bitcoin’s release.

  ‘I was very interested to read your b-money page,’ he said. ‘I’m getting ready to release a paper that expands on your ideas into a complete working system. Adam Back (Hashcash.org) noticed the similarities and pointed me to your site.’137

  Dai has shown me the emails. I doubt Satoshi would have faked a correspondence with an alter ego before the paper had even been published – and then shared it with people like me.

  I then found these remarks by Wei Dai in the comments section of a blog discussing how to make money by mining bitcoins.

  ‘I didn’t create Bitcoin,’ he says, ‘but only described a similar idea more than a decade ago. And my understanding is that the creator of Bitcoin, who goes by the name Satoshi Nakamoto, didn’t even read my article before reinventing the idea himself. He learned about it afterward and credited me in his paper. So my connection with the project is quite limited.’138 Wei Dai went on – with rather more enthusiasm – to describe how he had just started mining coins.

  This could all be an elaborate ruse to throw people off the scent, so I had three different coders compare Satoshi’s code with Dai’s. They might be coding in the same language, but the style is different.

  It’s pretty clear that Wei Dai is not Satoshi.

  I’m starting to think that the whole Cypherpunk theme might be another huge red herring. As Wei Dai says, ‘My guess is that he’s not anyone who was previously active in the academic cryptography or Cypherpunk communities, because otherwise he probably would have been identified by now based on his writing and coding styles.’

  But there is one last Cypherpunk possibility.

  Uncovering Satoshi Nakamoto: the real man behind Bitcoin

  ( N.B. There are many other names that have been put forward as possible Satoshis. I address all those who have not so far been mentioned in Appendix II . )

  Of all those on whose shoulders Bitcoin is standing, there is one man who ticks an uncanny number of boxes.

  He’s a shy, retiring computer coder based in California. He’s been heavily involved in digital cash systems almost all his working life. He is an intellectual heavyweight and polymath. And his knowledge of money is second to none.

  Everything about his work screams, ‘Bitcoin!’

  This man is Nick Szabo.

  But there is one crucial issue: every bit of evidence that suggests he’s Satoshi is circumstantial.

  Born in 1964, Szabo graduated from the University of Washington in 1989 with a degree in computer science.139 In 2006 he was awarded a professional degree (Juris Doctor) in law from George Washington University. We have a computer scientist and a postgraduate, born smack in the middle of my ideal target age range (between 1960 and 1970).

  Szabo was a Cypherpunk. As early as 1993 he was active on the Cypherpunks mailing list. Another box ticked.

  Even then he was obsessed with the idea of digital cash. ‘The future of Cypherpunks’ goals,’ he wrote in 1993, is ‘most obviously digital cash’.140 It is a theme which would never leave his work.

  He is a veritable polymath. The array of papers and essays he has written on his blog, Unenumerated, and on his website (szabo.best.vwh.net) is breathtaking. Here are just some of the subjec
ts he covered: ecommerce, commodity speculation, internet security, mining the ocean beds, the hourglass, micropayments, insurance, smart contracts, law, distributed systems, financial engineering, software architecture, technology product management, algorithmic information theory, intrapolynomial cryptography, gold, politics, even the United States Constitution.

  But the subjects that he returns to most are money, money systems and smart contracts. In this area, his knowledge is deeper than almost anyone’s.

  His 2002 paper, Shelling Out: The Origins of Money,141 is, as he himself says, ‘almost essential reading’ if you want to understand Bitcoin. Central to Szabo’s theory on money is that it emerged from collectibles (valuable jewellery and so on), which have a cost of production to them. ‘Collectible’ is an unusual word both he and Satoshi (bitcoins are ‘more like a collectible or commodity’142 he said) use repeatedly – and we already know about Bitcoin’s cost of production. He also seems to have been a bit of a gold bug.

  His academic brilliance at the intersection of money, computer science, law, economics and, of course, Cypherpunk means he is one of the few people in the world, perhaps the only person, with the breadth, depth and specificity of knowledge to design Bitcoin.

  He has a deep understanding of anonymity, he designed the precursor to Bitcoin and he has the same writing style

  In the late 1990s and throughout the 2000s Szabo would propose and develop his idea for bit gold. It’s uncannily similar to Bitcoin, even in name.

  He says, for example, ‘The basic idea of bit gold is for “bit gold miners” to set their computers to solving computationally intensive mathematical puzzles, then to publish the solutions to these puzzles in secure public registries, giving them unique title to these provably scarce and securely timestamped bits…bit gold will be entirely public: no one gains secure title to any puzzle solutions until they are published.’143 If that’s not Bitcoin in a nutshell, I’ll eat my hat.

  I found this from him, written back in 1993 to the Cypherpunks:

  In my limited experience creating Internet pseudonyms, I’ve been quite distracted by the continual need to avoid leaving pointers to my True Name lying around – excess mail to/from my True Name, shared files, common peculiarities (eg misspellings in written text), traceable logins, etc…All kinds of security controls – crypto, access, information, inference – have to be continually on my mind when using pseudonymous accounts. The hazards are everywhere. With our current tools it’s practically impossible to maintain an active pseudonym for a long period of time against a sufficiently determined opponent, and quite a hassle to maintain even a modicum of decent security.144

  This shows a deep understanding of what is required to stay anonymous. Fifteen years after writing this post, he might have mastered the art.

  Despite publishing a blog and copies of all his papers online, I could find just one photograph of him on the internet – a still from a 1997 video, which I found on Twitter. Information about his private life is scarce.

  One glance at his blog shows he’s an accomplished and practised writer, both online and in academia. We have another box ticked.

  What’s more, Satoshi and Szabo’s writing styles are similar. I am not the first person to observe this. An anonymous blogger by the name of Skye Grey has posted two blog entries145 in which he drew the same conclusion, saying, ‘analysis of the content-neutral expressions found in the Bitcoin whitepaper indicates a match with NS’s writing tics, at a level that only has a one in a thousand chance to be a coincidence’.146 Others – the blogger Gwern, in particular – have debunked Grey’s methodology147 and its ‘one in a thousand’ conclusion, but there are still commonalities.

  Grey tends to focus on Szabo’s use of particular words and phrases. ‘Trusted third party’ is one such unusual expression that both often use, ‘shenanigans’ is another. (Szabo even wrote a paper in 2001 called ‘Trusted Third Parties Are Security Holes’.)

  I’ve also noticed some similarities in their punctuation. Their use of the hyphen, for example (good but not perfect) and of bullet points is similar. They both use the same double inverted commas as speech marks. They both write ‘90’s’ with an apostrophe, rather than ‘90s’.

  There is also the curious issue of the spaces after full stops. In his early work Szabo used to use English spacing – two spaces after a full stop. In his later work, he switched to one. So he was aware of both conventions. Indeed, in an email to me, written in haste, Szabo used both French and English spacing. That is another box ticked.

  Of course, there are many aspects of their writing that are different. Szabo does not use British spelling. He does not use British expressions like mobile phone, flat and bloody. There is a lot more humour to his work than Satoshi’s. He spells ‘ideological’ correctly. His sentences are longer. These can all be explained.

  Szabo has extensive knowledge of Britain and British history (gained while developing his legal and money theories). It’s not so hard to affect British-isms. The sole purpose of the Satoshi persona was to develop Bitcoin – why would he crack jokes? As for the spelling mistake – they happen sometimes. One in 80,000 words is forgivable.

  Stylometrics expert John Noecker Jr. analysed some of Nick Szabo’s work for me, having already run tests on the writing of Satoshi and various others. He tells me:

  In July of last year we found that Neil King [following a Fast Company article, King was thought to be Satoshi 148 ] was a pretty good stylistic match, but it wasn’t close enough to make any kind of real call. So we just stop working on it. Then we looked at Hal Finney and Nick Szabo. What we found was that Nick Szabo was a much closer match. He is a better candidate than King in every single experiment that we did. Normally we see like a mixture for example King was the best in 80% and then we would get some other candidate that came through, so that is quite conclusive. In this Hal Finney or Nick Szabo are always the top performer .

  So, stylistically, Nick Szabo and Hal Finney are the closest matches. Many, including me, have given great credence to the idea that Szabo did the writing and Finney did the coding – that Satoshi is Nick Szabo and Hal Finney. But we know now that Finney was not Satoshi.

  The similarities in their writing styles are no surprise. Their areas of interest are similar, of course, but Finney was also something of a mentor to Szabo. They had known each other since the early 90s and, with some searching, you can find conversations between the two on archived Cypherpunk mailing lists. There is more to the Szabo-Finney-Satoshi relationship than is openly stated.

  When Satoshi wrote to Dai, he was excited that Finney had given him a ‘high-level overview,’ which he then quoted in full.149 Remember, Finney was the first to reply to Satoshi’s announcements. Finney was the one with high price projections, it was his critique and, more importantly, his coding abilities that Satoshi wanted to access when he went to the cryptography mailing list in the first place and it was he who would mine the first coins after Satoshi, debug the system and become one of the first developers.

  So, back to Szabo’s writing.

  In the spring of 2014, students and researchers from Aston University ran linguistic tests on the Bitcoin white paper against the writing of 11 different authors. They also concluded that Szabo was probably the author.150

  There is plenty more yet.

  Like Satoshi, Szabo had a Windows machine – a 2004 slide show151 posted on Szabo’s site was put together in Windows. Another box ticked.

  George Washington University in Washington DC, where Szabo studied for his law degree, is based in the EST zone. That would fit his work-sleep schedule, but he is actually based in California. In the PST zone, it is definitely conceivable he kept the hours that he did (he is an early riser). More importantly, it is where the computer that Satoshi used to mine coins is located. We have another box ticked.

  A small thing: both Szabo and Satoshi reference economist Carl Menger in their discussions about money.

  Then, what for me is a hu
mdinger: Szabo actually worked for Chaum’s Digicash in the 1990s152 – so he had hands-on experience. I even found his old Digicash email address. He also wrote a paper on Chaum’s groundbreaking blind signatures technology and how digital cash works.153

  When timing is everything

  Satoshi says he had been working on Bitcoin for 18 months prior to 2009. This takes us back to 2007, when Szabo had just completed his law degree. There was room in his life for another big project.

  Indeed, in spring 2008, Szabo was actively looking for work. He wrote on his blog, ‘I am now publicly offering my consulting services. Besides topics I regularly blog about, my expertise includes technology product management (especially for e-commerce and wireless products and services), smart contracts, financial engineering, software architecture and engineering, and computer/network security. I can travel just about anywhere.’154 All of these, incidentally, are areas of expertise Bitcoin’s inventor would have needed.

  The circumstantial evidence continues.

  In April 2008, Szabo wrote on his blog about bit gold, ‘I suspect this is all obscure enough that (a) it may require most people to sit down and work it out for themselves carefully before it can be well understood, and (b) it would greatly benefit from a demonstration, an experimental market (with e.g. a trusted third party substituted for the complex security that would be needed for a real system)’. This echoes Satoshi’s concern that explaining Bitcoin to people is ‘bloody hard’,155 but more important was Szabo’s next remark. ‘Anybody want to help me code one up?’

  This came just at the point when Szabo was looking for work – when he had a gap in his life.

  Four months after asking for ‘help coding one up’ the website bitcoin.org was registered. Four months later it was mentioned on the cryptography mailing list. Another two months after that, the first coins were mined. This was a ten-month period. It could just be coincidence, of course. But the timing is right.