Last week many of us celebrated the 10th anniversary of the bitcoin white paper. And there are many more of these that are going to follow, 10 years for: the Bitcoin software, the mining of the genesis block, the first bitcoin transaction to Hal Finney, the first commercial transaction when two pizzas were bought, the first BIP (Bitcoin Improvement Protocol) and so on…
In the midst of celebrating these decade old ‘firsts’, we might be forgiven to think that these events were like big-bang and everything started from this point onwards. In fact quite the opposite is true. Though a very important one, the white paper was the next step in a journey which started long back and took many routes, some successful and some not so much.
Objective of this piece is to highlight some of the important innovations which came before and have had direct or indirect impact on the inception of Bitcoin and therefore on the crypto-verse in general. This should help us appreciate the less celebrated predecessors of Bitcoin.
“Protocols for public key cryptosystems” by R.C. Merkle, 1980
Public and Private keys is how you ascertain the ownership of coins (UTXOs in reality) in Bitcoin. This is how you sign messages to transact.
A cryptographic system uses pairs of keys: public keys which may be disseminated widely, and private keys which are known only to the owner. This accomplishes two functions: authentication, where the public key verifies that a holder of the paired private key sent the message, and encryption, where only the paired private key holder can decrypt the message encrypted with the public key.
“Proof-of-Work (PoW)” by Cynthia Dwork & Moni Naor, 1993
Bitcoin uses a variation of this to ensure randomness and costliness of the mining operation without which anyone would have been able to spam it.
A system or protocol which ensures that there is some work verifiably performed by an entity. It can be used as an economic measure to deter denial of service attacks and other service abuses such as spam on a network by requiring some work from the service requester, usually meaning processing time by a computer. An early example of the proof-of-work system used to give value to a currency is the shell money of the Solomon Islands.
Proof-of-work system - Wikipedia
A Proof-of-Work ( PoW) system (or protocol, or function) is an economic measure to deter denial of service attacks and…
“An introduction to probability theory and its applications” by W. Feller, 1957
This is essentially the math behind Bitcoin and how a double spend attack is extremely unlikely to succeed.
Applications of probability have been widely used in many cases where math has to be trusted more than any individual. This is the backbone of longest proof of work chain and the high probability behind honest miners eventually winning the game.
“Hashcash” by Adam Back, 1997
As mining is distributed in Bitcoin, it needs to be easily verifiable by anyone. This is what Hashcach does as a specific POW algorithm.
Hashcash is a proof-of-work system used to limit email spam and denial-of-service attacks, and more recently has become known for its use in bitcoin (and other cryptocurrencies) as part of the mining algorithm.
“B-Money” by W. Dai, 1998
Using computer processing costliness produced by PoW systems as money was for the first time mentioned by W. Dai as B-Money.
Dai helped to spark interest in cryptocurrencies with the publication of “b-money, an anonymous, distributed electronic cash system”. In the paper, Dai outlines the basic properties of all modern day cryptocurrency systems: “…a scheme for a group of untraceable digital pseudonyms to pay each other with money and to enforce contracts amongst themselves without outside help”. RPoW by Hal Finney and Bit-gold by Nick Szabo had similar aims
“How to time-stamp a digital document” by S. Haber and W.S. Stornetta, 1991
Blockchain or the chain of blocks is essentially a way to timestamp the blocks to ensure sequencing. In fact the white paper uses the term Timestamp Server.
This proposes computationally practical procedures for digital timestamping documents so that it is infeasible for a user either to backdate or to forwarddate the document even with the collusion of a timestamping service The procedures maintain complete privacy of the documents themselves and require no recordkeeping by the timestamping service.
“Secure names for bit-strings” by S. Haber and W.S. Stornetta, 1980
As there is no party involved in controlling any part of Bitcoin, it was important to figure out a way of how to name or identify entities like blocks in a way that is unique, permenant and independent of other blocks. There is no party which can provide these identifiers unlike a domain name provider for internet. This is where this study comes in.
Using a one-way hash function to call by their hash values is cryptographically verifiable, but the resulting names are unwieldy, because of their length and randomness, and are not permanent, since as time goes on the hash function may become vulnerable to attack. This study introduces procedures to create names that are short and meaningful, while at the same time they can persist indefinitely, independent of the longevity of any given hash function.