Chapter 3:
Previous: Fiat Vs Bitcoin
Next: Using Bitcoin
Ever wonder how secret messages are sent? Cryptography is the science behind it all! It’s the math that makes sure secrets stay hidden, and it’s also what makes cryptocurrencies like Bitcoin possible.
In this chapter, we will look at three different cryptography methods so you can better understand how cryptocurrency works. The following chapters will focus on Bitcoin. We will then be able to use our Bitcoin knowledge as a reference point to begin understanding other crypto projects. Here are the topics we will cover:
Cryptography is extremely neat yet complex, but we’ll keep it simple. We won’t need to learn advanced math – that’s not what this website is about. But if you’re mathematically inclined, I’ll give you some resources for further reading.
Cryptography has already changed the world on more than one occasion.
Contents
Cryptography in history
During World War II, breaking the Enigma code was a monumental task undertaken by the British codebreakers at Bletchley Park. One fascinating anecdote involves the mathematician Alan Turing, who played a crucial role in deciphering Enigma messages.
Turing developed a machine called the “Bombe,” which helped decrypt Enigma-encrypted messages faster. One day, as the story goes, Turing and his team encountered a seemingly impossible situation. They had intercepted a message indicating an attack was imminent, but they lacked the specific details needed to prevent it.
In a stroke of brilliance, Turing realized that the Germans often used predictable phrases at the beginning of their messages, such as “Heil Hitler” followed by weather reports. Using this insight, he instructed his team to search for the phrase “Heil Hitler” in the Enigma-encrypted messages.
Their breakthrough came when they found a pattern: the message “Heil Hitler” was always followed by a string of letters representing the weather conditions. By analyzing these weather reports, the codebreakers were able to deduce the daily settings of the Enigma machine, allowing them to decrypt other intercepted messages and gain valuable intelligence.
This anecdote highlights Turing’s innovative thinking and how his team leveraged patterns to break the seemingly unbreakable Enigma code, making significant contributions to the Allied victory in World War II.
Cryptography is powerful and governments have often tried to control it.
In the 1990s, there was a notable attempt to ban or restrict the use of strong cryptography apps, primarily in the United States. The main concern behind this effort was that the widespread availability of strong encryption could hinder law enforcement and intelligence agencies ability to access communications for investigative purposes.
In 1993, the Clinton administration introduced the “Clipper Chip” initiative. The Clipper Chip was a government-developed encryption device that included a built-in “key escrow” system. This meant that while individuals could use the chip to encrypt their communications, a copy of the decryption key would also be held by the government. The intent was to provide law enforcement with a backdoor to access encrypted information when needed.
The proposal faced significant opposition from privacy advocates, civil liberties organizations, and the tech industry. Critics argued that such a system would undermine the security and privacy of individuals and create a potential vulnerability that malicious actors could exploit. The debate intensified, and ultimately the Clipper Chip initiative did not gain widespread acceptance or adoption.
Additionally, during this period, the U.S. government attempted to regulate the export of strong encryption software. The Arms Export Control Act categorized encryption as a weapon, subjecting it to strict export controls. This meant that American companies were limited in their ability to export encryption technology, and the software had to be deliberately weakened for international distribution. These export restrictions were also met with criticism from the tech industry, as they hindered the global adoption of strong encryption.
Over time, the concerns surrounding the ban on cryptography apps started to shift. Recognizing the importance of secure communication in an increasingly digital world, the U.S. government and other countries gradually eased export restrictions and revised their stances on encryption. Today, encryption is widely recognized as a crucial tool for protecting privacy and securing digital communications, although debates about lawful access to encrypted data for law enforcement purposes continue to this day.
Cryptocurrencies are currently battling the US administration and hopefully, they will come to realize that crypto is a force for good.
A straightforward and much older example of cryptography is the Caesar Cipher, which is said to have been used by Julius Caesar to send secret messages to Cleopatra. It’s easy to understand and easily cracked with a computer program. But it is effective as it can slow down someone trying to decrypt messages by hand. To break a Caesar Cipher, you first need to figure out that it’s a Caesar Cipher and then use a simple mathematical formula to shift the letters of the message to a certain number of places in the alphabet.
On the other hand, the SHA-256 method that Bitcoin uses is impossible to break with current computer systems. Let’s look more closely at the Caesar cipher before we move on to SHA-256.
The Caesar cipher
The Caesar Cipher works by shifting a message’s characters by a specific number of positions. If we know the number of positions the characters have been moved, we can decrypt the message, so we call this number the key. For example, below is the word Hello. Each letter has been shifted by two characters in the alphabet to produce the encrypted word known as the ciphertext.
Message = “hello”
h shifted two positions = j
e shifted two positions = g
l shifted two positions = n
o shifted two positions = q
Therefore, the ciphertext is jgnnq, and the key is +2.
You could use repetition to decipher the ciphertext. You could first shift all the letters back by one position to get ifmmp. Moving back by one character has failed. You could then shift all the letters in the cipher text back by two and arrive at hello. Of course, if he were clever, Caesar would use a higher number than two but not too high in case the enemy started their repetition tests from 26. It is called the brute force method when you attempt to break/decipher a ciphertext by repeatedly trying random values within the range of possibilities.
If you want to play with Caesar ciphers, you can do so with a pen and paper or explore it more visually with this handy web app: https://www.dcode.fr/caesar-cipher. As we have seen with the Caesar Cipher, cryptography can be simple. We can also see that it is mathematical. Now let’s see what cryptography can do when we raise the difficulty a little.
Today we have the advantage of using powerful computers and thousands of years of mathematical advances. First, let’s look at SHA-256, which is one of the cryptographic functions that Bitcoin uses.
The SHA-256 cryptographic function
SHA stands for Simple Hashing Algorithm. The -256 refers to its data length but more on that soon. It is from a family of mathematical/cryptographic functions. For example, SHA-256 is from the SHA-2 family. As shown in this next image, we can think of a function as a black box.
A function is like a black box.
It is called a black box because the user doesn’t need to know what happens inside it. Sometimes the function is a secret; sometimes, as in the case of SHA-256, the user can learn how the black box works if they are interested enough and intelligent enough.
We don’t need to know what happens inside the black box of the SHA-256 function. However, we care about what goes in and comes out and will fully explore its uses and properties to understand it thoroughly. If you want to know the complex math inside the SHA-2 family, please read more here: https://en.wikipedia.org/wiki/SHA-2.
What the SHA-256 function does
The SHA-256 function takes any data, regardless of size, and produces a fixed-length output of 64 characters. It is called SHA-256 and not SHA-64 because the 64 alpha-numeric characters are represented by 256 bits of computer data, 256 ones, or zeroes. The characters are Hexadecimal numbers. Hexadecimal is the base 16 number system where the numbers go from zero through f.
Crucially, SHA-256 is a one-way function. One-way means the mathematics that arrived at the fixed-length output cannot be reversed. To make this critical point another way, you cannot take the output of the black box and derive the input. This fixed-length output is called the hash. Another commonly used term for a hash is a fingerprint. It is often called a fingerprint because it almost uniquely identifies the data it is derived from; a bit like a human’s fingerprint almost uniquely identifies the person. You cannot derive a person if you have their fingerprint, but if you have a person and a fingerprint, you can reliably verify if it belongs to that person.
We verify and match fingerprints to people using a microscope. Likewise, we can verify and match SHA-256 hashes/fingerprints to the original data with mathematics, another function, or a black box. Another essential feature of SHA-256 is that despite its complexity it is fast for a computer to calculate. Let’s keep going; we will soon understand and demonstrate the power and utility of SHA-256.
One property of SHA-256 is that it is collision-resistant. Collision is the term used to describe when two different pieces of data produce the same hash. This means it is highly improbable that the same hash will be found for any two inputs to the function.
As we know, we often refer to hashes as fingerprints. This is because a hash can be used as an identifier for a digital file like a fingerprint can identify a person. Therefore, it is worth explaining further the immense extent to which SHA-256 is collision-resistant. There are some great analogies to help with this explanation, and here is my favorite.
A deck has 52 cards in it. If you thoroughly shuffle them, likely, nobody in history has held the same deck! This is because there are more ways to arrange a deck of cards than atoms on Earth. According to McGill University, there are about 8 x 10 ^ 67 possible permutations.
The number 8 x 10^67 can be represented as 80 octodecillion in words or 80,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 in standard notation.
The chance of collision with SHA-256 is 2^256, a number with 78 zeroes! However, the number with the deck of cards example was just 67 zeroes. So a collision is so unlikely you could bet your life on it – there is much more chance that a giant meteorite will land on your home – but – having said this – collision is possible.
You might think that randomness is involved because SHA-256 has such wildly varying and unique outputs. However, this is not the case. If you enter the same data repeatedly, it will always return the same 256-bit, 64-character output. The technical term for this type of consistent output from a function is deterministic.
There are many hashing algorithms, and some are even more secure and collision resistant than SHA-256. Bitcoin uses SHA-256 as a tradeoff between efficiency (fast to process) and security (unlikely to collide).
At this point, you might think that SHA-256 is impressive, but what use is it apart from some mathematical amusement? First, we know that SHA-256 can take any digital content/file and return a unique 64-character hash. Moreover, it does so with the level of certainty discussed.
Look at this next image, and then we will discuss it.
Fingerprint examples
As we can see from the preceding image, the SHA-256 function can create a fingerprint from a digital image, an entire book, a short phrase, a single word, or even a single character but will always return a unique 64-character hash. In the preceding image, I have faked the hashes for demonstration purposes and shortened their lengths with ellipsis … for presentation purposes.
The point is that they are all different. And as we will see, if you were to put in very similar data, perhaps, Secret message 2, the hash would be entirely different from the hash produced by Secret message, just as near-identical twins have different fingerprints. In the next section, we will demonstrate actual hashing with real data.
In summary, SHA 256 has the following properties:
- SHA-256 is deterministic. It is consistent. A given input will always produce the same hash/fingerprint.
- SHA 256 is very easy to compute and therefore verify. A budget laptop might calculate 2 million hashes per second. Hardware designed specifically for Bitcoin mining can compute around 119,000,000,000,000 (that’s 119 trillion) hashes per second. We will learn more about how this helps keep Bitcoin secure in Chapter 5: How Bitcoin Works.
- SHA 256 is a one-way function. Therefore, it cannot be reversed. This means the input cannot be derived from the output.
- SHA-256 outputs are almost impossible to collide. Therefore, it is extraordinarily improbable that two different inputs will ever produce the same hash.
- Even a tiny change in the input dramatically changes the output. I.e., If the input was ‘a’, the output will be indistinguishable from the output derived from an input of ‘b’. This is called the avalanche effect.
SHA-256 is used in multiple ways in the Bitcoin network. We will cover all the uses in Chapter 5 when we discover how Bitcoin works. But, first, to demonstrate SHA-256 in action, let’s look at a practical example.
A SHA-256 demonstration
To see SHA-256 in action, visit the following website. This is an application written by Anders Brownworth and kindly made freely available. I take no credit for this excellent app. https://andersbrownworth.com/blockchain/hash.
On the website, type Hello, SHA-256 into the input field labeled Data:. Type the text precisely, including uppercase, lowercase, a hyphen, and space. This is shown in the following image.
Hashing some text
If you type the text precisely, you will have the same 64-character, 256-bit hash as I got.
A quick and relatively safe way to verify that a hash is the same is to compare the characters from the beginning and the end. Taking the first and last five characters, the hash I generated was 2e631…7b97c.
The chances of the first and last five characters being verified correctly when a different text is typed in the Data: field is tiny – but more error-prone than checking the whole 64 characters. The reason that checking the beginning and end is an often-used technique is that it is likely that you would copy and paste a hash, not type it. Therefore the most likely error is to miss a character or two at the start or the end. The level of caution you wish to take will depend on the circumstances.
For example, in Chapter 4: Using Bitcoin, we will copy and paste 64-character hashes representing where some bitcoin will be sent. If you send a small amount of bitcoin to a regular address, you could check a few characters at the start and a few at the and that will likely be sufficient due diligence. However, if you are paying for a sports car or transferring your life savings, you would probably scrutinize the details more carefully.
Let’s play with the hashing app some more. First, change just one detail in the Data: field. I have changed the uppercase H in hello to a lowercase h. The following image shows the app with the changes highlighted.
A minor change to the text
After this small change, a quick inspection of the hash will show it is entirely different. We could not have predicted the hash just because the change was slight. If we examine the first and last five characters, the first of the original hash, followed by the hash from the text with the change, we will see no similarity or observable pattern.
2e631…7b97c Vs fc35e…d848d
For fun, let’s put a much more significant amount of text in the Data: field and see what happens. In the image below on the left, I pasted the entire Jane Austen classic Pride and Prejudice text into the Data: field. Next, I changed the text, as shown in the image below on the right, by adding a period after the author’s name. That’s just a single period difference between the book’s entire text.
Even more minor changes to the text
In the previous image, observe the completely different hashes, even from such a tiny change in a sea of identical data. The start and end of the two hashes are shown next for clarity.
A6f07…2316d Vs 6b377…c535e
We can also confirm that no matter how much data is entered, the algorithm always returns a 64-character, 256-bit hash. Furthermore, notice how quickly the hash is calculated if you conduct the same or similar experiment. If you want to try this out, the text file is available here: https://www.gutenberg.org/files/1342/1342-0.txt provided by Project Gutenberg.
Real-world uses for SHA-256
One everyday use for SHA-256 is for hashing passwords for a website. When you enter your password into a website, it will hash it and compare it to the hash in the database. Therefore, the database should not store your password in plain text as you typed it when you created an account on the website. Then, if the website is hacked, the passwords can’t be stolen as the password cannot be derived from the hash.
If you have ever downloaded a software application, perhaps an open-source app, the download website will often show a hash of the downloadable file. This enables you to get a hash of the downloaded file and verify that you have the genuine one.
The most exciting thing that SHA-256 is used for (in my opinion) is in securing the Bitcoin network. First, let’s move on to another area of cryptography that Bitcoin uses; then, we will be nearly ready to start using Bitcoin in the next chapter.
Public key cryptography
The precise algorithm Bitcoin uses for public key cryptography is ECDSA which stands for Elliptic Curve Digital Signature Algorithm. If you love math and want to understand it, read here: https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm.
In public key cryptography, there are a pair of keys. The owner should keep one private key secret and one public key that can be shared.
There are multiple combinations of uses for this pair of keys. We will look at two, and in the next chapter, we will see Bitcoin in action with key pairs.
Sending a secret message to the owner of the private key
First, you should know that each key pair are mathematically related. For example, the public key can encrypt some data, perhaps a secret message and only the private key can decrypt that message. This would mean that anybody could write and encrypt a secret message for the owner of the private key, but only the owner of the private key could read(decrypt) the message.
The public key encrypts – private key decrypts.
Note that the encrypted message format is for demonstration and is not a real ciphertext.
This usage is made possible because there is a one-way mathematical relationship between the private and the public key. The public key is mathematically derived from the private key, but the private key cannot be discovered from the public key.
This is powerful as a secret message could be left publicly, but only the private key owner can read it. Anybody who takes the trouble to discover the public key could write a message, encrypt it using it, and broadcast it to the whole world, but only the holder of the private key could read it.
Let’s look at a demonstration of encrypting and decrypting with key pairs.
Demonstrating encrypted messages with key pairs
Visit https://www.kerryveenstra.com/cryptosystem.html. The part of the web page that we will use is on the second half of the page. Scroll down to the heading Public-Key Encryption and click the Generate a Public/Private Key Pair button.
Generate a key pair
Note that the algorithm used by this demo app is a far less secure version of ECDSA, and the numbers are much smaller. However, the principles are the same, and we will see a real ECDSA example in the next exercise.
Next, scroll down the web page to Step 2b Optional Encrypt a Message. Type Hello World in the Plaintext or Signed Message: field. Type the public key from the previous step into the Recipient’s Public Key: field. Click the Encrypt Using Recipient’s Public Key button. This step is shown in the following image.
Enter a message and the public key.
Copy the generated ciphertext in the Ciphertext field by highlighting it and pressing the Ctrl–C keyboard combination.
Scroll down the web page to Step 3a: Decrypt a Message. First, paste the ciphertext into the Ciphertext field using the Ctrl-V keyboard combination. Next, enter the private key into the Recipient’s Private Key field and click the Decrypt Using Recipient’s Private Key button.
Use the private key to decrypt the ciphertext.
The preceding image shows that the original message “Hello World” has been revealed, indicating that the generated public/private key pair has a mathematical relationship. Feel free to play with the steps we skipped over on this web page, but we will soon move on to explore some more aspects of public key cryptography anyway.
This process can also be used in reverse to allow the private key to encrypt a message and anyone with the public key to decrypt the message. It is often a surprise to newcomers that Bitcoin data on the network is not encrypted. We will learn why this is a benefit and not a problem in a moment. But first, let’s discuss what Bitcoin uses public and private key pairs for in more detail.
Verifying a message was sent by the owner of the private key
The private key owner can encrypt a message, and anybody with the public key can decrypt it. At first, this might seem pointless, but let’s keep going. The most significant part of this relationship, where Bitcoin is concerned, is that anybody with the public key can also mathematically verify that the message’s sender is the private key’s owner. This is how anybody can verify that transactions on the Bitcoin blockchain are genuine.
The following diagram might at first appear to demonstrate the same encrypting and decrypting properties in the previous image. However, to be clear, in the following diagram, the public key is not encrypting the message; the message is open and in plain text for the world to read. What the private key is doing is creating a signature of this message. Then the public key can verify that the message’s signature can only have been generated by the holder of the private key. Therefore, anybody in the world can prove that the message is from the owner of the private key. This system of the private signing of messages and public verification enables transactions to be sent and verified on the Bitcoin network.
Signing a public message
Note that the format of the message’s signature is for demonstration purposes only.
Let’s look at a demo for signing and verifying with key pairs.
Demonstrating signing and verifying messages with key pairs
Public and private key cryptography can also be used to sign and verify a message. The message could be encrypted or just in plain text. In the Bitcoin network, all transactions are in plain text; they are public.
The private key can be used to sign a message. Then anyone with the public key can verify the signer’s authenticity using the public key and the message’s signature (created with the private key). By “verify the authenticity,” I mean mathematically guaranteeing that the transaction/message was signed with the private key.
Put another way, the owner of a private key can send a transaction including a signature, and anyone with the public key can mathematically verify that the signer was the owner of the private key. The tens of thousands of nodes on the Bitcoin network use signatures to prove that a transaction that spends some bitcoin came from the owner of the private key. Anyone on the network can verify that the transaction is genuine, but only the private key holder can initiate the transaction. This is security for the bitcoin owner and trust through verification for everyone else.
As we will explore in Chapter 5: How Bitcoin Works, Bitcoin uses unencrypted plain text messages that are public, to record transactions. Bitcoin is not a secret network. However, all transactions must be signed by the private key and can therefore be verified using the public key, guaranteeing ownership of any funds being spent. Exactly how this works will take some more explanation, but to solidify the idea of signing and verifying using key pairs, let’s play with these ideas in an app.
Visit https://andersbrownworth.com/blockchain/public-private-keys/keys, and we will explore a practical example of signing and verifying with key pairs. On the app, click the Random button to generate a new key pair, as shown in the following image.
Generate a new key pair.
Note that the private key is generated first because the public key is mathematically derived from the private key. Also, note that the public and private keys are way longer, more secure, less guessable, and less likely to collide with another randomly generated key than in the previous example.
Now click the Signatures link in the website’s top right-hand corner to navigate to the next app. In the app that appears, type a message. For example, I typed, Signatures are neat! Notice that it has saved the private key that you generated previously. Next, click the Sign button and notice in the Signature field that a new signature has been generated. This signature is based on the private key and the message. I have shown these steps in the following image.
Sign a message
Now click on the Verify tab located next to the Sign tab. Notice that the public key and the message are already filled in for you. If you click the Verify button, the app’s background will turn green, indicating that the public key has verified the signature generated by the private key from the message. This is shown in the following image.
The public key has verified that the private key signed the message
Try changing anything in any field, Message, Public Key, or Signature – even the tiniest detail, and the verification will fail, as demonstrated by the app showing a red background. For example, this is shown in the following image.
Verification failed
The only thing I changed was removing the exclamation mark from the message. As the message was changed, it was unverified. We will see this powerful algorithm in action when we see how the Bitcoin network verifies that transactions are valid in Chapter 5.
Bitcoin didn’t come out of nowhere; a small but dedicated group of cryptographers has been discussing and attempting solutions for a digital currency for some time. This next section talks about the projects that didn’t make it, but they wind an interesting technological path to Bitcoin.
Pre-Bitcoin technologies
Bitcoin wasn’t the first shot at digital/cryptocurrency. Let’s briefly examine the attempts before Bitcoin and why they didn’t get the same adoption and value that Bitcoin now enjoys.
DigiCash
DigiCash by David Chaum, a Berkley graduate student, thought controlling people’s information was vital, and he wanted people to keep control of their own information. So Chaum came up with the idea of digital cash in 1982.
Sharing a cubicle with Eric Schmidt (Google) (slightly ironic), he founded DigiCash in 1989. Unfortunately, it failed because all transactions needed to be validated by the company that controlled the currency. DigiCash indeed used the Internet but probably couldn’t be considered an application of the Internet because of the centralized need for validation.
I have watched many interviews with David Chaum. He is very impressive, talented, and probably honest but can you trust the validation of a global currency with just one company or individual? You probably shouldn’t.
Having just criticized DigiCash by comparing it to modern cryptocurrencies, it is worth saying that DigiCash did have some relative successes, at least commercially, with lots of interest from banks and software companies in the late 1980s and early 1990s.
David Chaum still works in cryptography and has recently released a quantum secure messaging app called XX Messenger, which is well worth checking out.
HashCash
HashCash was developed by Adam Back. HashCash was first proposed in 1997, the first proof of work system, and was designed to prevent email spam. A digital hash would be added to each email. As the hash required processing work, sending many spam emails would be costly and time-consuming. As we will see in Chapter 5, the proof of work (PoW) concept is used by Bitcoin to decentralize the verification of transactions on the Bitcoin network helping Bitcoin to become a decentralized application of the Internet, not just on the Internet. You can read more on HashCash.
Bit Gold
Bit Gold by Nick Szabo, proposed in 1997, was also fundamental to the evolution of Bitcoin because it recognized the concept of digital scarcity. Think about the problem of inflation. As we have discussed, the more you make of a currency, the less valuable it becomes. The same is true for digital currencies.
For example, Dogecoin, the cryptocurrency created by Billy Markus and Jackson Palmer as a joke, has a supply of approximately 132 billion. Also, roughly another 5 billion Dogecoin will be minted each year. Conversely, Bitcoin has a maximum supply of 21 million that will be gradually reached by 2140.
Just because something is a cryptocurrency doesn’t mean it automatically solves the inflation problem. In addition, critics of Bitcoin will say it is overly deflationary. The Bit Gold proposal had many similarities to Bitcoin, although it never got past the proposal stage. With compelling but circumstantial evidence, some suggest that Nick Szabo is Satoshi Nakamoto. Nick Szabo denies he is the legendary creator.
Nick Szabo said of Bit Gold in 2005, “The problem, in a nutshell, is that our money currently depends on trust in a third party for its value…all money humanity has ever used has been insecure in one way or another. This insecurity has been manifested in various ways, from counterfeiting to theft, but the most pernicious of which has probably been inflation…Bit Gold may provide us with a money of unprecedented security from these dangers.”
Nick Szabo was aware of the problems that needed to be solved, centralization, trust, and inflation. Still, he never got around to implementing the solution – unless he’s telling lies and he is Nakamoto. Here is a link If you want to learn more about Nick Szabo. He also had the idea for smart contracts which much of this website is dedicated to exploring.
Having just criticized Dogecoin for being inflationary, it is fair to point out that Dogecoin has a fixed inflation rate of a little under 5%. At the time of writing, this is below/better than most fiat currencies Western nations use. In addition, Dogecoin has the support of an entrepreneur, the world’s richest man, Elon Musk, a big group of fans known as the Doge Army, and perhaps most importantly it has a really cute dog as its emblem.
Image from https://dogecoin.com
At the time of writing, Dogecoin is the 11th biggest cryptocurrency when measured by market capitalization. Market capitalization is the number of coins in circulation multiplied by the price.
As stated at the start of the chapter, I offer no financial advice on this website, just a practical exploration of cryptocurrencies. Just because something is exciting, interesting, or cute doesn’t mean it is a good investment. The previous text was not advice to buy dogecoin, bitcoin, or anything else.
B-Money and RPoW
B-Money was a paper written in 1998 by Wei Dai. It featured a Proof of Work (PoW) system used to create money, and a distributed community of users that verified transactions. The list of transactions – the ledger was also maintained by a whole community in a distributed way. B-Money was never completed but Wei Dai had many other achievements in the field like writing reusable cryptographic programming libraries. Dai’s work (specifically PoW) was referenced by Satoshi in the Bitcoin Whitepaper although it is thought the similarities were a coincidence and Satoshi was just being polite to credit Dai.
The smallest unit of one bitcoin is called a Satoshi named after Satoshi Nakamoto and the smallest unit of the Ethereum cryptocurrency is called a wei named after Wei Dai.
The first usable project was Reusable Proof of Work (RPoW) by Hal Finney in 2004. RPoW solved the double spending problem that we will discuss further in Chapter 5. The fundamental problem is how you stop a user from spending the same digital coin twice. The problem with RPoW was that it ran on highly specific, centralized hardware. In addition, it lacked financial incentives to secure the system – so why would anyone who wasn’t an RPoW enthusiast get involved?
Hal also worked on the coding and received the first peer-to-peer Bitcoin transaction – 10 Bitcoin – on 12th January 2009. Some believe he is Satoshi Nakamoto, but he denies it. Either way, he had significant involvement. Hal was also a cryptography entrepreneur involved with the PGP corporation during the time when the US Government where fighting against cryptography, and interesting to me was that Hal was a game developer who made the Intellivision game The Adventures of Tron amongst others.
Hal was diagnosed with a neurodegenerative disease which caused him to become paralyzed and he died in 2014. A fascinating detail is that he was cryopreserved. If Hal gets a second shot at life sometime in the future and he was Satoshi, I hope he has his private key safe and sound.
The Bitcoin ethos
Satoshi Nakamoto had the same views as Szabo regarding the problems of the fiat monetary system. Nakamoto said, “The central bank must be trusted not to debase the currency, but the history of fiat currencies is full of breaches of that trust. Banks must be trusted to hold our money and transfer it electronically, but they lend it out in waves of credit bubbles with barely a fraction in reserve. We must trust them with our privacy, trust them not to let identity thieves drain our accounts.”
Nakamoto then outlined the solution, “…With e-currency based on cryptographic proof, without the need to trust a third-party middleman, money can be secure.”
On 1st November 2008, Satoshi Nakamoto revealed the Bitcoin whitepaper outlining how the system would work. Less than three months later, Hal Finney received that first transaction. We will soon see how to make what is perhaps your first Bitcoin transaction.
Bitcoin, in the beginning
The Bitcoin whitepaper is titled Bitcoin A peer-to-peer electronic cash system. It was met with enthusiasm but also noted imperfections, such as scalability, that we will discuss more in Chapter 5. A little over two months later the 3rd of January 2009, the first block was added to the Bitcoin blockchain, and the first 50 bitcoins were mined(minted) into existence. A block is a collection of transactions, and a blockchain is multiple ordered blocks, a financial ledger. Therefore, mining is competing to produce the next block while securing the network. We will understand these terms better as we proceed.
More developers joined forces with Satoshi to improve the code and port the code to run on more operating systems. Moreover, Bitcoin was soon being promoted through Websites like Bitcoin.org.
Initially, Bitcoin was valued by counting the cost of the electricity needed to generate – mine – a bitcoin and resulted in a value of a small fraction of 1 cent. However, the value of bitcoin soon soared into the multiple cents ranges as early exchanges appeared, starting with BitcoinMarket.com in early 2010, valuing one bitcoin at 3 cents. Silk Road, the highly controversial and illegal marketplace accepting bitcoins, also started trading in 2010, and the legal but ill-fated MtGox Bitcoin exchange launched in 2011.
Around this period, near the end of 2010, Satoshi Nakamoto made his penultimate public comments as multiple WikiLeaks scandals raged, and it was proffered that Bitcoin might be the solution to WikiLeaks funding.
WikiLeaks publishes classified information and leaks from anonymous sources. It was founded in 2006 by Julian Assange and has gained international attention for its controversial releases of classified documents related to government and corporate activities. It regularly caused senior politicians significant embarrassment or revealed atrocities. Some praise it for promoting transparency and holding those in power accountable. In contrast, others criticize it for endangering national security and the lives of individuals connected to the leaked documents.
Satoshi then disappeared from all online communication channels in 2011, at the time of writing, never to be heard from again until a brief reappearance years later to inform the press that they were wrongly attributing his identity to someone else.
Bitcoin was not used to fund WikiLeaks, but Satoshi was shrewd to bow out of the fast-growing storm.
Many have hypothesized who Satoshi might be, and some even claim they are Satoshi, but it would take a few chapters alone to have a thorough discussion. Unfortunately, it still wouldn’t yield any conclusions, so I will leave it to the reader to decide if they want to investigate further.
As we will see as we progress, the absence of a known founder is part of Bitcoin’s strength because if the government wants to prosecute someone or demand Bitcoin is shut down, who will they go to?
Summary
We have seen that cryptography has enormous potential to mathematically guarantee that a specific person sent a message. This is known as a trustless system. Trustless systems enable us to interact with anyone, even those we might otherwise not trust, and be sure they act within the system’s rules because cryptographic verification and certainty remove the need for trust. Finally, in this chapter, we looked at a few attempts at digital currencies that didn’t quite make it for one reason or another. In the next chapter, we will get to purchase and transact with the first successful, and at the time of writing, biggest market capitalization cryptocurrency, Bitcoin. I thought I would break up the technical discussion with some hands-on action using bitcoin. If you want to continue with the technical explanation of how Bitcoin works, you could skip to Chapter 5: How Bitcoin Works and return to buying and using some bitcoin in Chapter 4 another day.
Previous: Fiat Vs Bitcoin
Next: Using Bitcoin
Leave a Reply