By now everyone on has come across Bitcoin or any of it's crypto derivatives. But the number one question I still see people ask is “OK, but what exactly is it?” Even if they don't ask that explicitly, it's obvious that a lot of people don't really know. Everywhere from crypto naysayers to advocates people can be found who don't really understand the underlying technology. “Monopoly money,” or “internet points” are often about as deep as a lot of people get. And that's probably fine to an extent. You don't have to get the concept of Bitcoin to work them if you follow the instructions of people who do know what they're doing. But it would be nice if more people understood a little, even if they're not really good at maths.
So I've decided to write a little bit on what exactly IS a Bitcoin and how it works. This isn't for the mathematicians or the programmers or anyone who wants to really get deep into the technicalities. For those people I recommend reading the original Bitcoin paper by Satoshi Nakamoto himself on which all the Bitcoin stuff in here is based ( bitcoin.org/bitcoin.pdf ) or any of the numerous articles or videos on the internet that carefully go through it. That's not what this is. I won't get too technical, I won't get into the mathematical weeds, but hopefully this will at least allow you to know what it is you're dealing with and how it operates.
Part 1: But what even is Money?
Before we begin with Bitcoins or blockchains, we just have to very briefly go over the concept of money itself. Books can and have been written about this topic, but I just want to get one idea across. Money is a valued token. That applies to everything from a lump of gold to casino chips to the USD. A token should be hard to create, ideally not consumable, portable for both large and small amounts (or otherwise easily storable and transferable for any desired transaction) and a few other minor desirable features. It should also be divisible enough for both large and small values and have fairly consistent value across samples. This is why gold coins make for a good currency but gold jewellery doesn't really. Two pieces of varying age and design even if of the same mass don't necessarily have the same value. While two regular minted coins or ingots of the same purity and mass do, typically speaking.
The utility of such a token is that it is something desirable that everyone we're interested in trading with will accept and spend. So we don't have to barter for eggs and bread or pay our labourers in food and lodging. But it doesn't necessarily have to widely accepted for all transactions, just some of them is also acceptable.
The concept of money as a token is important. Important because I don't want the reader here to ascribe to any money an inherent or special value, not any more than a Pokemon card or a rare seashell (they've been used as money too). These have limited or not actual utility from which to derive their value but rather are valued merely because people want them. When it comes to tokens used as currencies part or all of why people want them may be derived from the mere fact that they may be traded. Either way the inherent utility is of little concern and often non-existent.
One example is gold. Generally useless outside of jewellery and gilding, with its electronic advantages only discovered long after its use as currency had mostly faded. What culinary advantages it may possess remains dubious. Gold makes for useful currency in that a small mass of the stuff is very valuable and easy to carry around. Counterfeit detection was relatively simple except for very advanced schemes and foolproof with modern technology. It's very inert so oxidation or most other chemical destruction isn't an issue. And its international acceptance as a thing of value throughout the ages means that it was always something relatively useless that you could swap for something relatively useful. That remains true to this day.
The second example I'll point out is that of casino chips. Casino chips are interesting to look at because they function very much like most currencies within their context, but they're privately issued and only actually used in a very limited set of transactions. They also derive their value directly from a fiat currency. If you go to a casino a $100 chip is worth $100 because you trust that the casino will give $100 in exchange for it. But they are quite useable as tokens of value. Casino goers will happily accept them as payment for gambling debts, and probably anything else. In the Vegas spirit I'd happily wager that someone has probably bought a sports car or something using the things. Now there also actual instances of privately issued currencies for general use, including banknotes, but that's a fascinating different topic for a different day.
The final example I'd like to look at are fiat currencies themselves such as the USD. Much like casino chips and, to a lesser extent, gold, USD bills don't actually have any inherent usefulness from which to derive their value. They derive their value from the fact that we want them. You could say it's because taxes are demanded in them or because they were once gold backed so people learned to desire them, but either way we want them. And there are enough of them that we can all have some, enough that you might trade a few for a cup of coffee or many more for a house, but not so many that we can all have as many as we would like. This is how they keep their relative value. Now the suppliers, if they don't know what they are doing, may upset this balance leading to inflation. That's the situation where there are many more of them than there used to be so people can have more of them and aren't as willing to accept them leading to higher prices. Because their suppliers are also lawmakers, they can also be subject to unnatural regulation regarding their transfer, storage or ownership. These are some of the problems that decentralised currencies aim to address. However, like all other currencies, the USD is simply a valued token.
So valued tokens do not have any or much inherent value. They are usually desired specifically because of what we can exchange them for, not what they are. Value often flows contrary to these tokens. We can give up a token for some valuable item like food, in which case the value flows in and the tokens flow out. Or we can accept it in exchange for value like performing a service (your job) or selling a car in which case the tokens flow in and the value flows out. They are then a means of transmitting, converting and storing value potential, even if they have none of their own. I have something of value, perhaps skills and time, but what I want are other things of value, perhaps at a different time. So I can exchange my skills and time for tokens, giving up the value for some tokens which have none, then later exchange them for different things of value which I desire, like food. In both cases the real value flows counter to the tokens.
In any case, tokens do not need inherent value. They merely need to be widely desired amongst your intended trading partners.
Part 2: Quick maffs
Now that we've gone over money, let's quickly discuss two important mathematical concepts that we'll need. I promise to be brief and make this as accessible as possible to the lay reader who hasn't touched maths since high school. It should also be noted that both of these concepts are crucial to computing and security even before and outside of cryptocurrencies.
The first one we need to know is called a hash or a digest. The purpose of a digest is to somehow reduce a large string of numbers (the data) down to a smaller one that uniquely identifies it (the digest or hash.) That way I could send you a large file and you could verify that it has not been accidentally corrupted or, even worse, intentionally tampered with if it came from any other source than myself. I could simply send you the digest and you could calculate it for the file to make sure they match. In fact you can test this right now in Windows, if you have it enabled. Right click on any file and select the CRC SHA option. All of the options are various hashing or digest algorithms. The one that's of interest for us is called SHA-256. Select it and it will show you the digest for that file. It should just look like a long string of random numbers and letters.
Now there are many hashing algorithms with various properties and of various quality. For example, I could take the string of numbers and simply add them all up to get a total. This would be a very simple and very bad digest algorithm, but perhaps it helps you get the idea. One of the problems with it would be that it would be very easy to select the string of numbers so that it produces a desired digest. What we really want is some algorithm that produces a digest that is very difficult to predict without actually calculating it so that tampered files cannot be engineered to have a certain digest. This means that any slight alteration to the data should produce a radical change in the digest. The digests should always be the same length. They should be long enough that we can uniquely identify more pieces of data than are ever likely to be produced on this Earth. So all of that would mean that someone who wants to intentionally alter some data would find it nearly impossible to do without also having the digest be radically different. They cannot predict what effect their alterations would have and even the slightest change anywhere in the data would produce a radically different digest. So the digest acts much like a unique fingerprint of the data. I'm not going to get into the details of what such an algorithm would look like, but suffice to say that we use good one.
The second thing you should know about is called asymmetric encryption. Hopefully the idea of encryption is simple enough. You have some password, or encryption key. You use it to process some data in some way and it produces an unreadable encrypted data. To retrieve the data you simply use the encryption key in reverse as a decryption key on the encrypted data and you get the original data back. Well, asymmetric encryption is the same idea except it uses some mathematical magic to have the encryption key and the decryption key be completely different. You generate both from something called a “seed,” and you cannot work out what one is from the other. Once you have encrypted something you cannot use the same key to then decrypt that data. Only the matching decryption key can do that. And conversely the decryption key can only be used for decryption, trying to use it for encryption only produces only produces a unusable jumble of data. This is part of the foundation of all modern digital security.
Suppose you wanted to prove that you had written or sent something. You could generate a pair of encryption and decryption keys from a secret seed. You keep the encryption key a secret, but widely publish the decryption key. Then, when you want to prove that you sent something, you could encrypt it with your secret encryption key. Because you published the decryption key, everyone would be able to decrypt and read it. But because only the secret encryption key can encrypt, they know that you had to encrypt it. The fact that your public decryption key will decrypt it proves that because it will only decrypt data that was encrypted with your secret key. This is called signing your message.
On the other hand, suppose that you wanted to send a secret message to your friend. But you don't have a secure way of swapping a secret encryption key with them. That isn't a problem, they can simply generate a set of encryption and decryption keys. This time they keep secret the decryption key but publish publicly the encryption key. You may use this encryption key and send it publicly. The fact that only the secret decryption key can decipher the message means that even though everyone has the encryption key, they cannot read the message.
So, we can also combine the two for secure communication. Everyone generates two sets of keys. One for signing their own messages and one for other people to send them encrypted messages. Everyone can widely publish their public keys and no secret key-swapping is ever required. So sending a message to someone means signing that message with your own signing key and then encrypting it again with their public encryption key. That means that the final message is secret and also signed. Only they can read and they know it was sent by you and hasn't been tampered with. This is the foundation of much of modern secure communication. Your computer will deal with it for you, but communication with websites, end-to-end encrypted messages and other usecases all use this model.
Part 3: Off the chain
So now let us get to the meat of the matter: the block chain. Suppose we want to store a list of chronological information. In the case of Bitcoin this would be a list of transactions, but it could be any information. And suppose that there is a lot of it. We can break it up into groups of transactions. For example, we could process and store every few thousand transactions together. We shall call these blocks. Each block of transactions except for the first one is preceded by exactly one block. And may be followed by only one. Then we have all of our information in batches in chronological order.
The first thing that we need to do is ensure that each block is linked to the chain of blocks that proceeds it in such a way that we may be certain what the chain of blocks is up to that point. We do this by beginning each block with the digest of the previous block. Now consider how this ensures that we know how the chain of blocks we have is the correct one. The previous block itself is begun with the digest of the block that precedes it. That means that its own digest is dependant on the digest of the previous block. And, if you recall, even a slight change to the data will radically alter the digest. That means that we can easily verify the entire chain of blocks. If you ever alter any block its digest will be radically different. And so will that of the next one because its digest includes and depends on the one of the current block. And the next block depends on that one's, and the one after that the next one's and so on and so on. Changing any piece of data even slightly radically changes the digest of every subsequent block as well as its own.
What can be done then is to demand that the digest of each block conform to certain rules. For example, we could say that the digest must begin with a zero. So we could include a random piece of data in the block that specifically has no function other than to make that true. We call this a nonce. You could keep guessing what this nonce should be until you eventually find one that makes it begin in a zero. Because any minor change to the data radically and unpredictably changes the digest, you would have to keep guessing until you found one that did it.
So if you have a long chain of blocks for which you have this requirement then altering them would be very difficult. Because any change would radically alter the digests of every subsequent block you would have to go through the chain and again guess from scratch the nonce for each block. If this is too easy then you can simply increase the number of zeros that you require at the beginning of the digest of each block. Every additional zero makes it take exponentially more guesses before you get it right. In practice, that number is dynamically altered based on the computing power of the entire network in order to make sure that the nonce of each block takes a certain amount of time to guess.
And so we have made it very difficult, practically impossible, to alter past information in the blockchain. In order to alter a past block and create a valid altered blockchain we would need to alter the block, guess its nonce again, guess the nonce of every subsequent block (which has been made intentionally difficult with the digest requirements) and you can only start guessing the nonce of the subsequent block once you have it for the current block because each one depends on the digest of the previous block. So if everyone agrees to only accept the longest valid chain of blocks then the would-be attackers will never be able to catch up to it as everyone else is still adding to the current chain.
This is also completely decentralised because anyone can start assembling and guessing the nonces of the current block. The first person to get it right now has the longest valid blockchain so we all accept their version and start working on the next one. We have here a network maintained ledger of information that is practically impossible to alter and that we can all agree, to a great extent, on the information in it right up until the most recent blocks. There is no centralised server. There is no central authority on what's right. No one gets to go back and change what is written in past blocks. There are no laws that prevent them from doing so, merely mathematics and raw computational power.
But next comes the question of what to write in each of these blocks. It's all well and good to have it so that no one can alter what is written in a valid block, but how do we determine what's in a valid block and how do those guessing the nonces (called miners) know what to put in each block when they're assembling it? Well, this is where signing and asymmetric encryption comes in. You see, you wouldn't want people to write in transactions for you with your money or to make any other sort of statements on your behalf.
So, if the case of cryptocurrencies, you can write instructions on what to do with your money and sign these with your secret encryption key. We can use your corresponding public key to verify the signature. In fact, we can just use your public key as your address. Each wallet on the Bitcoin blockchain is just a public decryption key from a asymmetric encryption key pair. The bitcoin associated with that key can be used by anyone who signs a valid transaction with the corresponding private key. As we discussed earlier, knowing the public key allows anyone to decrypt and verify the signature, but they would need the private key to actually encrypt and sign something. This means it is very quick and easy to generate new wallets and the original paper actually suggest using a new one for each transaction.
Once you have written and signed your transaction, you broadcast it and wait for a miner to include it in a block. Once that block has become part of the blockchain and has a few blocks following it you may rest assured that it is securely part of the record.
Part 4: So what, finally, is a Bitcoin?
Bitcoin is a currency. As discussed above, a currency is just a valued token. Currencies typically have little inherent value, they are valued precisely because we can exchange them for things that do. And Bitcoin, along with pretty much all other cryptocurrencies is just such a token. What makes it special as opposed to casino chips or gold coins is that it's an electronic only currency that stores all data as to who has how many on one those blockchains described above. The original blockchain, in fact.
The finer details of bitcoin are as follows. Bitcoin is minted by giving a little to each miner when they successfully calculate the next block. A miner may add a final transaction to each block giving themselves an amount of Bitcoin specified in the protocol. If this amount is too much everyone else will simply reject the block. If it is correct and they're the first to guess the correct nonce for that block then that block will enter the blockchain and that amount for them with it. The award diminishes as the blockchain grows so that the amount of Bitcoin minted slowly approaches 21 million. This is not true for all cryptocurrencies, they may have their own ideas and may have the reward remain constant or change depending on different factors.
In order to transfer bitcoin to any other user you must write a transaction that references the incoming transactions where you got the coin to begin with. You prove that it is yours with a signature using the private key matching the public key to which the money was originally sent. You may reference multiple transactions but all the coin they reference must be used up and that transaction only referenced once. So any “change” left over from the amount you wish to transfer must go to a different recipient. That recipient may be yourself. So, for example, if you owe someone 3 BTC but only have two incoming transactions, both for 2 BTC for a total of 4 BTC, you may specify 3 go to your recipient and 1 to yourself. Your Bitcoin wallet software will manage all of these details for you.
As you may only reference each transaction once the miner will verify that the transaction is valid and only includes unused incoming money. If they do not, and include money spent twice, the rest of the network will simply reject their block. Either way, an attempt to spend the same money twice will not enter the blockchain. They will also verify your signatures and, likewise, the network will reject blocks that contain transactions spending unsigned money. This way an attempt to spend other people's money will not enter the blockchain.
But a single Bitcoin is a large amount of money these days thanks to high adoption. Luckily, Bitcoin is specified down to eight decimal places, with the smallest value called Sats. Sats are the practical units of the currency used daily for transactions.
You may also question why a miner would include your transactions that you broadcast. You may encourage them by specifying some of the payout of the transaction to go to the miner, a transaction fee. Not all cryptocurrencies use this system. Miners will mine until the price of the energy and hardware makes the Bitcoin reward for each block unprofitable. Then, as investment into mining stops for this reason, the ease of mining each block will become greater as the network dynamically adjusts (as discussed above.) This will encourage more people to mine and so the energy and reward to mine each block will dynamically adjust with time.
The reason people love it so much is because the blockchain makes it as decentralised and government independent as gold or silver. But it has the ability to be quickly transferred around the world across the internet without the use of banks or central services. It defeats the fed. It means malicious actors in DC or elsewhere can't print your money into nothingness with inflation. It's difficult for them to seize or move without your permission. No one can freeze your account. It provides solutions to the problems of the massively centralised and government controlled modern fiat and transaction systems with all of the convenience of internet banking.
And so, Bitcoin is a token. Created and dished out for maintaining the network in accordance with a predictable protocol, trade-able by anyone for anything. All you need is a set of public and private keys which may be easily and endlessly generated on any device. It's not a stock, there is no underlying asset or company.
Those making money off of cryptocurrencies are actually engaging in FOREX, which is a perfectly fine thing to do but the massive gains that crypto FOREX especially enjoys won't last forever as we approach a point where everyone who was going to adopt it has. But right now it is relatively simple to simply buy on the principle that adoption must always grow in the long term. More complex FOREX strategies will eventually be required as they are for modern fiat trading.
Storing is as simple as securely storing your keys or the seed from which they were generated. You could store them on an air-gapped device, on a secure dedicated storage medium such a Coldcard or an Opendime. You could write them down on a piece of paper or even stamp them into a metal sheet (a real product called a seedplate.) Whatever happens just remember that if you don't control the keys you do not control the coin.
Part 5: Wait, go back, all that blockchain thing can do is money?
Ah, well, no. It can do so much more. Recall that the blockchain merely stored some valid information in chronological order. Who said it could only be used to store transactions? In fact, the blockchain technology is the most important thing here. With blockchains we can securely and verifiable store a decentralised set of statements and this can be used to transform the internet. To decentralise it's most fundamental parts.
I have become convinced that decentralising communication, from social media to instant messaging, is just as important as decentralising currency. I do not like nor trust Twitter, Facebook, TikTok or any of their competitors. They not only have the power to censor and bar, they can also do so slyly and hide when they are doing it. Or even if they are good actors they can be banned by governments, governments can force them to disclose their data or worse. A decentralised communication system would sidestep all of these issues by never having any centralised components to begin with. That isn't to say that there wouldn't be innovation in these areas, but they could be built onto reliable blockchains and histories of information could never be erased. All operation would have to be transparent as it must be processed on the blockchain. You would encrypt all secret data yourself and no one unintended could ever have access to it. This will encounter resistance, more than the currencies ever did. And the exact people resisting it will be proof enough that it is a thing worth doing.