In 2008, Satoshi Nakamoto wrote a revolutionary whitepaper on bitcoin, a digital currency that could potentially change the world as we know it for good. Blockchain is the system on which bitcoin runs. It’s the foundation for bitcoin and all cryptocurrencies that were created afterwards.
But how does blockchain really work? To be able to understand this, it’s important to read Satoshi’s whitepaper. In this article we will dive deeper into the history of blockchain, and discuss the various ideas that led to its development.
In this article we’ll discuss:
- Private keys and public keys
- Payments without a third party
- Double spending
- Digital scarcity
- Reusable proof-of-work
How did the blockchain start?
Bitcoin and blockchain are inextricably linked. Bitcoin is the currency that runs on blockchain technology. Bitcoin uses the blockchain as a sort of general ledger in which all transactions are kept.
During the economic crisis of 2008, confidence in the banking world fell to an absolute low. Banks fell, the housing market collapsed, and many people were faced with usury policies. This must change, Satoshi Nakamoto thought. In 2008, he (or she) devised a way to manage money in a decentralized manner: without the intervention of a bank or government.
A year later, the very first blockchain transaction was a fact!
Timestamp, verifying authenticity without disclosing content
Let’s take a few steps back first. Nakamoto invented bitcoin in 2008, and it is the first practical implementation of the blockchain technology. But the blockchain technology itself is based on a combination of different ideas developed in the nineties. Satoshi refers to these in the footnotes of his whitepaper.
In 1991, Stuart Haber and W. Scott Stornetta described the basics of what later would become the blockchain technology. They wrote about a chain of blocks, secured by cryptography. Cryptography is a technology that is used to encrypt information. Encrypted information becomes unreadable unless you have the key to decrypt it.
Both Haber and Stornetta were aware of the dangers that lie in storing and sharing documents on a computer; they felt like better security was needed. However, security measures shouldn’t be in the hands of a central authority, such as a bank or government. It would be better if the general ledger of all sent, shared, and stored documents was divided among different parties.
Haber and Stornetta shared their ideas in a paper called ‘How to Time-Stamp a Digital Document. They describe a way to check the authenticity of data, without disclosing the content of that data.
According to the paper, when someone sends a document to a timestamp server, the server will sign the document with a timestamp. This is a sequence of characters or encoded information, identifying when a certain event occurred. Next, the server will link the document to the previous document, which also has a timestamp. The data in the timestamps refer to specific details of the previous documents in the chain of data.
If someone tries to change data, the next input will be declared invalid. This mechanism ensures that no one is able to manipulate data that has been signed by the server.
Private and public keys
In the same year of Haber and Stornetta’s article, David Chaum, a futurist that focused on privacy, said:
“Current developments in applying technology are rendering hollow both the remaining safeguards on privacy and the right to access and correct personal data. If these developments continue, their enormous surveillance potential will leave individuals’ lives vulnerable to an unprecedented concentration of scrutiny and authority.”
By then, Chaum had already been involved with privacy in the digital world for quite a while. Privacy was very important to him and thus began his obsession with cryptography.
In 1982 he invented the concept of private and public keys. Chaum published his findings in a revolutionary paper called ‘Blind Signatures’. Years later, that paper became the foundation for blockchain technology.
Let’s briefly discuss what he published in that paper:
Let’s take a random series of digits (for example 72631519), this is now our private key. We run this series through a mathematical algorithm, and we call the new series that emanates from the original our public key. It’s important to remember that you can only generate a public key from a private key and not the other way around.
This might sound quite abstract, but you can do beautiful things using this technique. For example, imagine you would like to send some confidential data to someone. You create a private key and convert it into a public key. The public key can be shared with the entire world, since you can’t trace it to the original data. The new dataset is unreadable.
But if the recipient has the private key, these two keys could be used to view the original content.
Let’s fast forward to the nineties: David Chaum has founded the company DigiCash and developed eCash. ECash is the world's first shot at a digital currency. Unfortunately the company had to file for bankruptcy just one year after it was founded. An important difference between eCash and bitcoin is that eCash was managed centrally by the DigiCash company.
Proof-of-work against spam
The next step towards the blockchain technology was taken in 1997. Spam mails drove Adam Back absolutely crazy, so he decided something needed to be done. At the time, Adam was a member of a cypherpunk mailing list, and with this group he shared his idea for hashcash. Cypherpunks are individuals who deal with privacy and (online) safety. The cypherpunk manifesto states:
“Privacy is necessary for an open society in the electronic age. We cannot expect governments, corporations, or other large, faceless organizations to grant us privacy out of their beneficence. We know that someone has to write software to defend privacy, and since we can't get privacy unless we all do, we're going to write it.”
Back to hashcash: the idea behind hashcash is that emails can be encrypted, using private keys and public keys. Once you press send, your computer has to solve a mathematical puzzle before the email can be sent. This process is called hashing, hence the name hashcash.
That works like this: all data is mixed together (address of the recipient, address of the sender, etc.) and a random number is added. This data gets hashed, which leads to a certain number.
Now your computer needs to get to work. If you convert the ‘normal’ hash to binary code, the number becomes a series of zeros and ones. Your computer needs to find a hash with a certain number of zeros at the start of the series.
Your computer knows all the data (address of the recipient, address of the sender, etc.) but it doesn’t know the random number that was added to the mix. The computer needs to keep trying to add a random number until it finds the right one. This process is called ‘brute-forcing’.
When it’s just one email you need to send this isn’t a problem; your computer will find the solution relatively quickly. But if you want to send spam to thousands or maybe even millions of email addresses at the same time, this is going to take a lot of time and computing power. That power costs energy and that needs energy needs to be paid for.
Sounds familiar? That’s because this process is called proof-of-work, an important part of the blockchain technology and bitcoin.
B-money, paying without the need for a third party
We already briefly discussed the cypherpunks mailing list. Many renowned names in the crypto scene were a member of this mailing list, for example David Chaum, Adam Back, Hal Finney, Satoshi Nakamoto, and Wei Dai.
In 1998, Wei Dai developed b-money. Dai described b-money like this:
“…a scheme for a group of untraceable digital pseudonyms to pay each other with money and to enforce contracts amongst themselves without outside help.''
In other words, a payment system without the need for third parties. Wei Dai is using the ideas of Stuart Haber and W. Scott Stornetta for a chain of blocks that is secured by cryptography. He alters the concept slightly so it can be used as a payment system.
How does this work? For starters, everyone that joins the system is an accountant. So instead of one central accountant that keeps track of all transactions, in this system everyone is an account. All transactions are visible for everyone, because everyone has a copy of the ledger that contains these transactions.
All transactions in the system are encrypted using private keys. It is completely transparent how many transactions have been done, but the transactions themselves can’t be viewed.
Solving Double Spending centrally
But, Wei Dai anticipated that double spending would be a problem. There will always be fraudsters who will try to spend money twice. For example: I send a message to accountant A that I’ve sent my money to Frank. I send a message to accountant B that I’ve sent my money to Steve. Now I’ve spent the same money twice.
Because Dai saw this coming, he had already thought of a solution. He decided the ledgers needed to be managed by a few large parties. These parties needed to be neutral servers. This way not just anyone is able to access the ledgers anymore.
The neutral servers needed to keep a little bit of their own b-money stored online, if they wouldn’t do their job well enough that money could be taken from them.
Wei Dai also thought about the value of his b-money. He reasoned that his money would only work if the value was stable. He wanted to achieve this by linking the value to products. Is a certain product worth 5 euros this year? Then the coin is now also worth 5 euros.
To make sure the value of the coin doesn’t fluctuate too much, new coins must be put into circulation. The person on the network who could prove that he had done just as much work as the coin was worth (for example, 5 euros this year) received a coin. This idea is very similar to the previously mentioned proof-of-work concept.
Unfortunately, b-money never became a reality.
Scarcity, digital, and no trust in third parties
Another member of the cypherpunk mailing list, Nick Szabo, came up with BitGold. Szabo previously worked at DigiCash, David Chaum's company. Here he learned a lot about the positive sides of digital money, but also its downsides. One of those downsides was the centralized system of DigiCash. The E-cash coin was completely dependent on the DigiCash company.
Szabo noticed that he could view and adjust users’ accounts with great ease.
That position of DigiCash as a central, necessary, and fundamental part of E-cash is the core problem according to Szabo. Not just for E-cash, but for the entire financial system worldwide.
What if you have a payment system without the need for so-called trusted third parties?
A third party is an entity that you need in order to use a particular service and that is part of a process. Think of all the payments you’ve made in stores with your debit card. You couldn’t have made those without your bank and the bank of the recipient as intermediaries.
Nick Szabo wrote a very interesting essay about this, called ‘Trusted Third Parties Are Security Holes’.
He states that trusting third parties requires time and effort. You need to keep assessing if you trust a certain party, time after time. For example banks or credit card companies.
Back to BitGold. Szabo chose this name because he wanted to link all the good qualities of gold to the benefits of the digital world.
With the unique properties of gold (scarce, divisible, safe, valuable, and measurable) in mind, Szabo wanted to make something that was both scarce and digital. But, he didn’t want the scarcity to depend on trust in third parties. This new payment method had to be safe as well, so it couldn’t be stolen or taken away. In short, he wanted to make digital gold.
In 1998, he shared his idea with the cypherpunk mailing list for the first time, but it took seven more years before he worked out the idea completely.
Szabo based his concept on all the work of his predecessors. A secure chain of blocks, private and public keys, hashing, and proof-of-work to put new coins into circulation.
He also foresaw a problem with proof-of-work. To earn new coins (now we call that mining) you need to prove that you’ve done work by finding a certain number first. You need a lot of electricity for that, and you have to pay for it. Computers continue to increase in power and efficiency, making it easier and faster to deliver proof-of-work, without it costing more energy (thus; work).
His solution was to make older hashes (found coins) more valuable. That was possible by giving everything a timestamp. Newer hashes yielded fewer coins, because it is simply easier and cheaper to find them. This concept is very similar to bitcoin’s block halving. In Bitcoin, the block rewards gets halved every four years.
Just like b-money, BitGold remained a concept as well. It was never actually realized.
Reusable proof-of-work, spending funds more than once
It shouldn’t come as a surprise anymore, the next influencer we will discuss was also a member of the now well known cypherpunk mailing list. Hal Finney had been working on encryption software since the nineties. His software was so powerful, the American government forbid Finney to export it to other countries.In fact he couldn’t even show it to foreigners.
This software is the basis for what we now call the Tor network.
Finney was a huge fan of digital currencies, he especially liked the work of Nick Szabo. Finney combined the idea behind digital currencies with proof-of-work. He wasn’t the first to do this, but his execution made the difference.
Like we’ve described earlier, proof-of-work was intended to combat email spamming. You had to prove that you’ve put in work (energy and therefore money), before you were able to send your email. But if you replace email with digital money, it would mean thatyou could only use a coin once. In a normal economy you can spend money in a store, and the store is able to spend the exact same coins or bills it received again later at a wholesaler for example. With the first form of proof-of-work, this wasn’t possible.
You were only able to transfer the funds to the store, the store itself was unable to send it any further. That’s why Finney came up with the concept of reusable proof-of-work, it works like this:
You send a proof-of-work coin to the store. That store exchanges this coin on a central server for a reusable proof-of-work coin. The retailer can send this to the wholesaler for example. The wholesaler can exchange the reusable proof-of-work coin on the central server for another reusable proof-of-work coin again etc.
From a technical point of view, each coin is only used once, but it won’t feel that way for users of the network.
The original transaction starts a chain of RPOW transactions. This is already starting to look like blockchain.
At first, this technology wasn’t intended as currency or to save value, but rather to represent a certain amount of computer effort.
Another important property of the blockchain is that it’s peer-to-peer. Internet was initially designed as a peer-to-peer system, which means that different computers communicate directly from one computer to another. The internet’s precursor is called Arpanet. This was developed by the US Defense Department. Using this network, you were able to send messages from one computer to the next without any intermediary. Over the years, this model slowly changed into a so-called client-server model
In a client-server model, computers do not communicate directly to each other. There are a few big servers all computers are connected with to get their data from. This system was changed drastically at the start of the year 2000. Peer-to-peer became immensely popular because media files could now be shared directly without the need for a third party.
All the technical aspects we’ve discussed in this article can be subdivided in three categories:
Eventually, all these projects and ideas led to the birth of Bitcoin and blockchain as we know it today. Nakamoto combined all the concepts above in his legendary white paper, which interestingly enough doesn’t mention the work blockchain once.
The first paragraph of Satoshi’s white paper says it all:
“A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network.
The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power.”