8 Minute Read
April 8th, 2019
School Of Block Blog Series: #3
The latest blog of our new series “School of Block”, takes a look at the origins and some key concepts of Bitcoin. Bitcoin was the original digital currency, and still the most popular and used digital currency as of the time of writing, almost 11 years later. In this article, we will take a deeper look at the origins and key concepts of Bitcoin, so that you can know what it’s all about before you start buying, selling, investing in and using this amazing technological feat.
In 2008, Satoshi Nakamoto released a whitepaper called “Bitcoin: A Peer-to-Peer Electronic Cash System.” It’s a technical read, but it describes a method for people to send money to each other, without requiring a bank, financial institution, company, or other intermediary to facilitate the transaction. One person sending money to another person, without a middleman.
The “peer-to-peer” part of the title simply means that the system works through person-to-person interactions. Participants in the ecosystem primarily interact with each other, instead of with a company or facilitator. For the most part, there are no supervisors, controllers or other people in the system to validate or regulate activity. Two, or more, people can send and receive this “electronic cash” without requiring outside assistance.
Because peer to peer systems spread information evenly throughout the network, if one computer goes down, the network can still operate. Contrast this to other services like banks or popular websites, which can be brought down by maintenance, weather events, power outages, hackers, or other means.
It can also be faster to have networks share new information evenly, than to have one company push new information to each computer separately. In a 1,000-computer network, it’s quicker to have ten computers share a new file to 10 other computers, which share with another ten, than to have one computer send to all 1000 computers. In a network with 5 computers, the difference is negligible. But, the larger the network grows, the greater the difference becomes. The Bitcoin network now has over 100,000 connected computers, or nodes, to share information between.
The closest accessible analogy to Bitcoin, and “peer-to-peer” is torrent files. Before Netflix and other streaming options became the standard, torrents were a popular (and borderline illegal) way to download and consume music and movies. In a torrent program, software files – like .mp3 music files, .pdf documents, or .exe programs – are broken into thousands of tiny pieces. When someone wants to download a movie, they search for a torrent file. The torrent program will then open that torrent file, which contains instructions on where to find all those little pieces. The program then begins downloading the pieces of that movie, from tens, hundreds, or thousands of other computers. Once all the little tiny pieces have been downloaded, the program assembles all the pieces together to create a perfect, watchable copy of the movie.
Torrent files, like Napster and other “peer-to-peer” programs before it, are simply ways to transfer information or code from one owner to another, without requiring payments, or any involvement from companies or regulators. Technically, Bitcoin doesn’t work in exactly the same way. It’s close, but we’ll get in to *how* it works later in the post. But the peer-to-peer (aka p2p) system and ideology is largely the same.
The electronic part is easy – it involves computers, and the transmission of electrons. Not much explanation needed there. The choice of the word “cash,” however, is very interesting and deliberate. Not “money” or “currency” or “exchange” – all of which would seem equally fitting. Cash.
When you think about cash, you might think about a wad of bills in your purse or wallet. You might think about that jumble of loonies and quarters in your cup holder, earmarked for some Tim Horton’s. Or, you might imagine a transfer; a cashier dumping these coins into your hand or sliding them across a counter. This is real money: Tangible, familiar, instantly accepted (mostly) everywhere, by (mostly) everyone. If you sell your old couch online through Craigslist or Kijiji, you’re not taking a cheque from a stranger, you’re taking cash. When it’s in your hands, you know it’s real. You can pay with it, you can get paid with it. Cash is king.
When you can feel coins jangling in your pocket, or a bill in your hands, you have little doubt that they are real. You can walk to the store and buy stuff with them. But how do you count your digital coins? How do you send them, receive them, buy stuff with them?
If we forget about cash for a moment, let’s think about money in a bank account. You can log in to your bank account online, and see how much money you have in your savings account. Your computer shows $3604.21. If you want to send money to a friend, you can use a wire transfer or Interac transfer (in Canada.) If you send $100 to your friend, your screen will soon show $3504.21, and your friend’s bank account will have an additional $100.
Updating Ledgers Take Time
It takes a bit of time from when you hit “send money,” to the time your friend sees money show up in her account. That’s not because the bank is moving $100 in bills from a little box with your name on it, to a little box with your friend’s name on it. The bank needs to verify that you actually have $100 to give to your friend, that the details of your friend’s account are correct, and then update both account balances to reflect the change. It’s really just math, some security checks, and updating a ledger. A ledger is basically a huge database or spreadsheet with all the account names and balances.
In this example, a bank’s ledger:
The bank’s ledger is the ultimate record of all accounts and balances. It is the master record. If you try to buy something, but don’t have enough money in your account, it triggers the system at the checkout counter to give that dreaded “insufficient funds” notification.
A “distributed ledger” is simply a ledger that is not centralized (located) on
a single computer or server. It is copied and shared (distributed) throughout a computer network, so that all computers on the network (“nodes”) can view and edit it.
Together, this makes sense: Bitcoin is an attempt at making digital cash, created and distributed through a peer-to-peer system. It sounds complicated, but sending Bitcoin to friends is actually quite easy. If you want to try it out, Bitbuy is an easy way to buy bitcoin in Canada, and from the exchange you can send it directly to a friend’s address.
In Bitcoin, there are no “accounts” that have personally identifying information – your name, email, street address, postal code, social insurance number – there are just “addresses”. Addresses are simply a string of letters and numbers that look like this: 127tHmXCL58LvtUTsGm5oniVmaKr4Jdye5.
It’s kind of like a really long, detailed postal code that tells the system where to send or receive money.
When people talk about anonymity on the Bitcoin network, this is how anonymity is created. People can see addresses, and which addresses are sending and receiving money, but there is no other information shared.
Like a bank, Bitcoin has a ledger that details all of the addresses in the network, and how many Bitcoin are in each account. A bank’s ledger is controlled and updated by a single entity – the bank. Bitcoin can’t let a single entity or group control the ledger; This would defeat the purpose of using a peer-to-peer system. Instead, Bitcoin uses a distributed ledger. Whenever a transaction occurs in the network, all nodes update their ledger, and compare the address balances to maintain consistency. Again, it sounds complicated but when you make a transaction and follow it on the blockchain, it will be an easier concept to grasp. If you are looking to get started, research how to buy bitcoin in Canada before you do.
To let users, send and receive money, and update address balances, a consensus must be formed with a majority of nodes on the network. The majority must agree that any changes are legitimate and update all accounts to reflect the addition or subtraction of funds. If one ledger reports that an address suddenly has 5 million Bitcoin in it, but no other ledgers recognize that transaction, there will not be consensus among the ledgers. The ledger fraudulently showing an extra 5 million Bitcoin will soon be overwritten with a ledger that the majority has agreed upon.
This consensus model is what gives Bitcoin users trust in the system and secures the system against theft and other threats. Any changes that are made to accounts are published in a permanent record, inside a “block.”
Bitcoin uses the SHA-256 algorithm (Secure Hash Algorithm – 256 bits) that was developed by the NSA, and has since been published into the public domain. Yes, if this is your first time reading this, you are probably pretty surprised to see that the controversial US agency actually invented the tech that Bitcoin sits on.
The algorithm (“hash function”) takes regular information, like a sentence or a number, and turns it into a “digest,” commonly referred to as the “hash.”
Bitcoin uses hash values for many things. Bitcoin accounts (addresses), transaction verifications (signatures), verifying block contents (block hashes) and transaction info. In many cases, there are hashes of hashes of hashes.
The key points about this cryptographic algorithm:
Points 2 and 3 mean that someone couldn’t change “10 Bitcoins” to “50 Bitcoins” in one of the hashes by changing a single digit in the hash. (ie., 5fo53fa9-10 to 5fo53a9-50). This feature means tampering with blocks to change addresses or amounts being sent is virtually impossible.
Point 3 means that the Bitcoin system can quickly package up the transactions, some random number (the nonce), and create a hash of it. The miners must then try to take that same data, and the hash, and reverse engineer the system to figure out what the nonce is.
Point 4 means that determining what the nonce is is very hard. The harder the problem gets, the more processing power (or time) is needed to solve the problem. The more computers/ nodes there are in a system, the harder it is for a rogue network of computers to join the system and try to create a fake consensus among the nodes that are comparing ledgers – a “majority attack.” Although a majority attack would be next to impossible on the Bitcoin network, unfortunately we’ve seen this happen with some lesser known and lesser used cryptocurrencies by nefarious actors. Majority attacks can wipe out a coins value in a matter of minutes.
Understanding the basic concepts of Bitcoin is important for those who want to learn before they use a new technology. You probably wouldn’t buy a stock without understanding how the stock market works, so understanding this new asset class is something we highly recommend. Blockchain and cryptography aren’t exactly the easiest concepts to grasp, but we hope we provided enough real world examples for you to understand something that may be brand new to you.