Bitcoin was first released by its creator Satoshi Nakamoto on January 3, 2009. Its purpose was to provide an alternative to the existing banking and financial systems of the day by allowing users to store and exchange currency without relying on the trustworthiness of institutions like banks and governments.
Satoshi Nakamoto defined the first cryptocurrency, which uses the principles of the blockchain to save information in a decentralized, trustless fashion. The blockchain allows anyone to easily verify the authenticity of a copy of the blockchain without needing to trust the person providing it. Bitcoin was the first cryptocurrency and many existing cryptocurrencies are derivatives or “forks” of Bitcoin. This means that many alternative coins use the same underlying structure as Bitcoin but with modifications to different features to achieve desired goals. In this guide, we’ll describe and explain the features and limitations of Bitcoin.
Bitcoin and the blockchain that it uses are a revolution in technology. It enables information to be stored in a distributed manner so that no-one has control over the network and that no-one is required to trust anyone else in the network.
Bitcoin’s creator, Satoshi Nakamoto, did an excellent job of designing Bitcoin to have the necessary amount of complexity and no more. Despite this, there are several details of Bitcoin that are necessary to its functionality. In this section, we’ll describe the functionality and underlying purpose of the nuts and bolts of the Bitcoin protocol.
Cryptocurrency is based on the blockchain, a data structure consisting of a series of blocks chained together using cryptographic hash functions. One of the key features of a Bitcoin block is the block size.
In the original Bitcoin protocol, the maximum size of a block in the blockchain was not specified. However, this left the protocol potentially vulnerable to Denial of Service attacks where attackers flood the network with tons of transactions to make block creation and blockchain storage impossible. In order to prevent Denial of Service attacks, the decision was made to limit Bitcoin blocks to a maximum size of one megabyte, ensuring that blocks did not become too large to effectively transmit and store in network nodes.
This decision places an upper limit on the number of transactions that can fit within a single block. This can cause delays in processing transactions since any transactions that cannot fit in the current block must wait until the next block to be included in the blockchain.
Bitcoin Cash, an altcoin forked from the Bitcoin protocol increases the block size from 1 MB to 8 MB. This is intended as a simple change to the protocol that nonetheless increases the maximum number of transactions that can be processed by a factor of eight.
Proof of Work
Bitcoin uses an algorithm called Proof of Work to provide security for the blockchain. The main security concern in cryptocurrency is that someone could create a fake version of the blockchain that could replace the original blockchain as the “accepted” version. This is possible because there is nothing about the “true” blockchain that makes it any different from any other valid version of the blockchain. Each block in the blockchain is composed of a list of transactions and it’s equally probable that a transaction did or did not occur. For example, if you own Bitcoin, there is nothing forcing you to send some to your friend at a given time, so a blockchain containing such a transaction is not any more likely than one that does not.
It’s possible for the Bitcoin network to have divergent blockchains, where different parts of the network believe that different versions of the blockchain are the “correct” one. This can happen accidentally (two miners create different versions of the next block at the same time and send it out to the network) or maliciously (an attacker creates an alternative blockchain where they didn’t perform a transaction so they get their money back). Since Bitcoin is decentralized, there is no authority to tell one group that they’re right and the other that they’re wrong.
The way that Bitcoin protects against divergent blockchains is using Proof of Work. In a Proof of Work system, each block contains the solution to a hard cryptographic puzzle that can only be solved by guessing. This protects against divergent blockchains because it is possible to estimate the amount of work put into each blockchain based on the “difficulty” of the provided solution to the problem. When divergent blockchains exist, the more difficult blockchain to create is selected as the authoritative version. This helps to prevent malicious divergent blockchains since the attacker would have to create a blockchain with more difficulty (and using more computational resources) than the entire rest of the network (which is very hard to do).
In most Proof of Work systems, the “hard computational problem” that needs to be solved to create a block is finding a block that, when used as the input to a hash function, creates an output with certain properties. Hash functions are designed so that it’s impossible to guess the input to the hash function that would create a given output. This means that the best way to find a possible solution for a block is random guessing.
Bitcoin uses the double SHA-256 hash algorithm for its Proof of Work calculations, meaning that it applies the SHA-256 algorithm and then does it again to the result. This Proof of Work calculation is applied only to the header of the block; however, this header contains the output of hashing the remainder of the block (including the transaction list). This allows Proof of Work calculations to take the same amount of time regardless of the number of transactions (since the hash of the transactions will be the same length for one or one million transactions).
Another important feature of the Bitcoin blockchain is the rate at which blocks are created and added to the blockchain. While no authority enforces that blocks be added to the blockchain at set intervals, the protocol is designed so that blocks are added approximately every ten minutes.
How? The Proof of Work calculations we talked about in the previous section include “hard” problems with a set difficulty. The difficulty of problems is defined by the number of zeros that have to be at the beginning of the output of the hash function. If you’re randomly guessing inputs to get outputs, then it’s a lot easier to find an output with at least one zero at the beginning than it is to find one that starts with at least twenty zeros.
Bitcoin uses this to set the rate at which blocks are created on the blockchain. Based on the rate at which blocks are being added to the blockchain, the entire Bitcoin community periodically agrees to modify the current difficulty level to move the block rate closer to the ten minute goal. This is enforced by consensus where no member of the network will accept a block whose difficulty is lower than the set difficulty level (at its time of creation).
Bitcoin doesn’t have infinite capacity. Each block is set to a maximum size of 1 megabyte and blocks are created once every ten minutes on average. This means that Bitcoin has a maximum transaction speed and if this rate is exceeded, transactions will not be included in the next block created after the transaction is performed. The network needs some way to determine which transactions should be included in the current block and which ones to force to wait until the next block.
Bitcoin also requires money to run. While there is no central organization running the network and storing the blockchain, multiple nodes contributing to network maintenance by storing the blockchain and participating in Proof of Work and block creation. Since it costs money to do these things, it makes sense that these nodes will want to be compensated for their efforts. To address both of these issues, Bitcoin introduced the concept of processing fees. As part of each Bitcoin transaction, there is a processing fee set by the sender. This fee is paid to the miner (person who creates the block) and is used to determine which transactions should be included in a block. It’s like a bribe to “expedite” processing paperwork. The bigger the bribe, the more likely that a decision will be made quickly. The same goes for Bitcoin’s transaction fees: a larger transaction fee increases the probability that a transaction will be included in the next block.
Limitations of Bitcoin
Bitcoin is the first cryptocurrency and has consistently lead the market in terms of total value throughout its entire lifecycle. However, this does not mean that it is perfect. The security of the underlying protocol has never been breached and the implementation has only had one successful attack, meaning that Bitcoin is most likely secure against attackers.
However, security is only one necessary aspect of a successful payment system. Over time, several concerns have been raised regarding Bitcoin’s efficiency and its ability to compete with credit/debit cards and banking as an effective daily payment system. In this section, we will discuss some of these issues and the ways that Bitcoin and other cryptocurrencies have been designed and modified to address them.
One of the major limitations of Bitcoin in terms of its ability to become an alternative to existing infrastructure (like the credit/debit card payment network) is the network’s scalability. As we discussed in the previous section, the number of transactions that can be performed on the Bitcoin network is limited by the maximum block size and the block rate. Bitcoin is implemented with a maximum block size of one megabyte and blocks created every ten minutes.
While this protects against Denial of Service attacks, it limits the number of transactions that Bitcoin can process to a maximum of about seven transactions per second. Since credit cards can process up an average of 20,000 transactions per second, the ability of Bitcoin to replace credit cards is extremely limited.
Other cryptocurrencies have been developed to fix this issue with Bitcoin. Some (like Bitcoin Cash) simply increase the maximum block size, creating an increase in the capacity of M times, where M is the ratio of the block sizes (8 for Bitcoin Cash). Others increase the block rate, so that more blocks are created in the same period of time. For example, Ethereum’s block rate is around 15 seconds as opposed to 10 minutes.
Another issue of the Bitcoin cryptocurrency is the speed at which transactions can be processed and trusted. Because of the possibility of divergent blockchains, it’s usually recommended that the people involved in a transaction wait until it has been included in three blocks of the blockchain before fully trusting it. Since Bitcoin’s blocks are created every ten minutes, this could mean waiting half an hour for a transaction to process (which is a bit long to wait for a cup of coffee).
The Lightning Network mentioned in the previous section also helps to alleviate the issues around transaction speed on Bitcoin. The Lightning Network is designed to provide instantaneous, trusted transactions by default. If something goes wrong, the transaction is simply performed on the blockchain itself. The theoretically infinite scalability of the Lightning Network means that the Bitcoin network can grow to meet user demand while providing security backed by blockchain technology.
Another common complaint about Bitcoin revolves around privacy. In Bitcoin, the blockchain includes the details of every transaction including source, destination, and amount. The source and destination here are the public keys of the sender and recipient of the money.
While no-one can directly tie your public key to your identity, it’s possible to make some educated guesses. To complete a transaction, you need to know the other person’s public key. So anyone you’ve sent or received money from knows your public key and can see how much Bitcoin is in your wallet and the public keys of other people you’ve received or paid money too. Since organizations may publicly post their public keys (to let customers pay them), someone could put together a picture of your habits based on who you interact with. Understandably, many users are not a fan of this level of publicity regarding their finances.
While you can achieve some level of additional privacy on the Bitcoin network using several different addresses (since there is no limitation on the number of addresses that you can create), this can be a complicated and unwieldy solution.
To solve Bitcoin’s privacy issues, several alternative cryptocurrencies have been developed whose primary purpose is ensuring privacy. These cryptocurrencies include the capability to hide the source and destination addresses and the amounts of transactions using cryptographic operations that still allow the validity of the transaction (that the sender has sufficient funds to complete the transaction) to be verified on the blockchain.
Processing FeesBitcoin includes processing fees for two main reasons: helping to incentivize the miners that keep the network running and allowing users to pay for priority for their transactions. Since the network has a limited capacity, the ability to pay for priority makes it possible for users to ensure that urgent transactions are added to the blockchain as part of the next block to be created. However, when the load on the network is high, this means that transaction fees can rise to ridiculous levels as users in a hurry bid higher and higher for priority. In December 2017, average Bitcoin transaction fees rose as high as 28 USD. This made Bitcoin completely unusable for small transactions like buying a cup of coffee as the fee amounts exceeded the value being transferred. Other cryptocurrencies have been designed to operate in a feeless manner to allow users to perform transactions more similar to credit card transactions.
Bitcoin uses the Proof of Work algorithm to help secure the blockchain. The security of this type of system is based on having miners randomly guess solutions to a cryptographic puzzle until they stumble across an acceptable solution. Since possible solutions to the puzzle are completely unrelated, a miner can try as many options in parallel as are possible on the machines under their control.
While this is an effective method of making it difficult for anyone to gain control of the cryptocurrency (since an attack needs to control a significant percentage of the network’s resources in order to mount an effective attack), it burns through a lot of energy. In fact, if Bitcoin was a country, it would have the 58th highest energy consumption at the end of 2017 (just behind Hungary). That is a lot of power and it has no other use than securing the Bitcoin blockchain, which bothers a lot of people.
Other algorithms like Proof of Stake are designed to secure the blockchain without the energy requirements of Proof of Work. Ethereum, another leading cryptocurrency, currently uses Proof of Work but plans to move to Proof of Stake soon.
Bitcoin was developed first and foremost as a means of performing financial transactions in a secure, decentralized manner. While it does have some level of support for developers to write scripts that run on the blockchain, the intention is for these scripts to be used to define how financial transactions operate. For example, a transaction may be designed to only go through when a set of conditions have been met (perhaps being signed by more than one party). Bitcoin was never designed to have the complete functionality of a standard computer and this limits what it can do.
Other cryptocurrencies have been designed to give developers the ability to run any program on the blockchain that they can run on a standard computer. These “smart contract” platforms, like Ethereum and Cardano, expand the potential applications of the blockchain and have enabled the wave of new cryptocurrencies designed to provide certain functions or services. These systems have revolutionized how business is done by allowing old systems to be revised to make use of the advantages provided by the blockchain and by enabling previously impossible services and organizations to be created.