Groundwork for Satoshi Nakamoto to create Bitcoin
15 / 10 / 2021
Before Hal Finney passed away, he written one final (and very sad) post called Bitcoin and Me. Hal said:
Fast forward to late 2008 and the announcement of Bitcoin I've noticed that cryptographic graybeards (I was in my mid 50's) tend to get cynical. I was more idealistic; I have always loved crypto, the mystery and the paradox of it. When Satoshi announced Bitcoin on the cryptography mailing list, he got a skeptical reception at best. Cryptographers have seen too many grand schemes by clueless noobs. They tend to have a knee jerk reaction.
I don't blame them for being skeptical. The Cypherpunks had been trying to build a decentralized payment network for about 20 years and kept failing. They were losing faith as they were growing old and grey.
Anyways, I thought I'd make a thread crediting and sourcing all of those who contributed to building Bitcoin. I think sometimes Satoshi unfairly gets too much credit, there were dozens of people who came before him who laid down the academic ground work, he just was the one who was finally able to put all the pieces together.
-
In 1974, Ralph C. Merkle published a paper called "Secure Communications Over Insecure Channels", which invented public-key cryptography. You can read the paper here.
-
In 1977, Ron Rivest, Adi Shamir, and Leonard Adleman published a paper called "A Method for Obtaining Digital Signatures and Public-Key Cryptosystems", inventing the world's first digital encryption standard, called RSA (based on their initials). You can read their paper here. RSA is an algorithm used by computers to encrypt and decrypt messages using a public key and a private key.
-
In 1978, Ralph C. Merkle published a paper called "Protocols for public key cryptosystems". You can read the paper here. Ralph proposes different methods to create protocol networks using public-key cryptography.
-
In 1981, David Chaum published a paper called "Untraceable Electronic Mail, Return Addresses, and Digital Pseudonyms" You can read it here. David essentially lays out some mathematical proofs for encrypted anonymous messages between two parties.
-
In 1982, Leslie Lamport published a paper called "Byzantine Generals Problem". You can read it here. The Byzantine Generals Problem describes a condition of a computer system where components may fail and there is imperfect information on whether a component has failed. This academic paper paved the way for consensus algorithms in distributed ledgers.
-
In 1982, David Chaum published another paper called "Blind signatures for untraceable payments " You can read it here. It essentially lays down a mathematical concept, that is somewhat similar to what's used in Bitcoin wallets.
-
In 1987, Ralph C. Merkle published a paper called "One Way Hash Functions and DES", where he invents cryptographic hashes. You can read it here. Cryptographic hashes are used to verify the authenticity of a piece of data. They are a one-way function, which is practically infeasible to invert or reverse the computation.
-
In 1988, David Chaum published another paper called "Untraceable Electronic Cash". You can read it here. He proposes the idea of electronic anonymous payment channels.
-
In 1990, David Chaum announced the start of eCash, a project from his company DigiCash that allows anonymous payments though his internet network. Development continued into the late 90s and David received a lot of investor funding, however, like most 90s internet companies, the project flopped and he filed for bankruptcy. You could call eCash the world's first VC cryptocurrency.
-
In 1991, Stuart Haber and W. Scott Stornetta published a paper on a concept of a cryptographically secured chain of blocks whereby no one could tamper with timestamps of documents. You can read their paper here. While they didn't call it "blockchain", they essentially invented the core concept that Satoshi ended up expanding upon.
-
In 1992, Hal Finney had been invited to a mailing list of San Francisco tech enthusiasts, which would later be known as Cypherpunks. He sends an email to the group referencing David Chaum's 1981 paper and wants to figure out how to apply it to build a decentralized, private, and permissionless internet. You can read his email to the Cypherpunk mailing list here. Hal Finney's email essentially kickstarted the Cypherpunks' mission to build bitcoin.
-
In 1993, Cynthia Dwork and Moni Naor published "Pricing via Processing or Combatting Junk Mail" You can read their paper here. They found a way to deter denial-of-service attacks and other service abuses such as spam on a network by requiring some work from a service requester, usually meaning processing time by a computer. They are often credited for creating the mathematical proofs behind Proof of Work.
-
In 1993, Hal Finney sent an email exposing the double spending flaw in David Chuam's 1988 paper, and brainstorms of ideas to fix it. Read his email to the Cypherpunk Mailing list here.
-
In 1993, Eric Hughes penned the "Cypherpunk Manifesto". You can read it here. Eric Hughes outlined his opinion on the core principals of being a Cypherpunk, which he believed were people who built software to create a private, decentralized internet. He believed that privacy in the digital age is a human right and Cypherpunks must fight to protect that at all costs.
-
In 1993, Hal Finney proposed the concept of what would become the modern N.F.T. You can read the email to the Cypherpunk mailing list here. He suggested using the cryptographic proof not just to cash, but also to validate digital collectables like baseball cards.
-
In 1994, Hal Finney proposed a decentralized remailing network that pays people for performing the work necessary to keep the network running. You can read his email to the Cypherpunk mailing list here.
-
In 1997, Nick Szabo published a paper called "The Idea of Smart Contracts". You can read it here. In his paper he coins the term Smart Contracts, which he says code can become legal law by enforcing social contracts through immutable code.
-
In 1997, Adam Back invented the Proof of Work consensus algorithm that was used in Hashcash, which was a program designed to fight email spam and DDoS attacks. Before sending an email, a Hashcash user would need to generate a hash (a seemingly random string of numbers) using parts of the email and some extra data, and send this hash along with the email to the recipient. The recipient would only accept the email if it included a “valid” hash, otherwise the email would bounce. The trick was that only a subset of potential hashes based on the email would be considered valid. This meant that users had to spend some computing power--essentially, energy--to generate Hashcash. 5 years later, Adam Back published a retrospective paper on Hashcash. You can read it here.
-
In 1998, Nick Szabo proposed a digital payment Network called "Bit Gold". Bit Gold would use the concepts of David Chaum, Stuart Haber and W. Scott Stornetta, and Adam Back into a single decentralized digital payment network. On a technical level, Nick Szabo envisioned many of the core concepts that Bitcoin later implemented, but he didn't build a working product, largely because he couldn't overcome the double spending problem in an effective way.
-
In 1998, Wei Dai published a paper called "B Money", which was a concept of a decentralized digital payment network using a distributed ledger. While he provided no code or product, he essentially described in words exactly what Bitcoin became to be 10 years later on a philosophical level. You can read his paper here.
-
In 2002, John R. Douceur published the paper "The Sybil Attack". You can read the paper here. John coins the term: Sybil Attack, which he defines as bad actors who exploit the game theory of a decentralized network by creating and using multiple identities to spam the network. John states that networks without a logically centralized authority will inherently always be vulnerable to Sybil Attacks, but there are ways to alter game theory to minimize it.
-
In 2004, Hal Finney invented Reusable Proof of Work (RPoW). You can read his email to the Cypherpunk mailing list here. l Reusable proof of work resolved the double spending issue by permitting the random exchange of tokens without repeating the work required to generate them. After someone had "spent" a PoW token at a website, the website's operator could exchange that "spent" PoW token for a new, unspent RPoW token, which could then be spent at some third-party website similarly equipped to accept RPoW tokens. While Bitcoin did not use RPoW, Hal Finney was the first to come up with a working solution to the double spending problem.