The Bitcoin Whitepaper simply explained
The speed at which new blocks are added depends on how many participants in the network are working on the validation or how much computing power is used. If too many blocks are generated within an hour, the complexity of the task – the “difficulty” is increased in order to deliberately delay the generation of new blocks.
The valid blockchain is the longest chain with the most computing power invested in this chain by honest network participants.
Mục lục bài viết
The Network
The next section of the Bitcoin Whitepaper outlines the transaction process.
A sender dispatches a transaction which is broadcast to all participants in the network (although not all transactions need to reach all nodes). Each participating node gathers the new transactions into a block and tries to find a Proof of Work for it.
Once it is found and it is clear that the transaction has not been previously spent (double-spent), the new block is again broadcast to the Bitcoin network and accepted as valid (or rejected) by the other computers that work on creating a new block using the hash of the last valid block. The longest chain in the blockchain is considered the correct chain.
It may happen that two nodes simultaneously broadcast different versions of the next block into the Bitcoin network. Consequently, other nodes receive either one version first or the other. In this case, the nodes will switch to the longest chain. If a node doesn’t receive a block, it requests the missing block once it realises that it missed it.
Incentive
To encourage computer nodes to participate in the network, Satoshi Nakamoto proposed that nodes supplying computing power should be rewarded if they are the first node to create a block. Users of the Bitcoin network would pay transaction fees, which at a later point would become the sole reward once enough coins were in circulation.
As it would take a huge amount of computing power to defraud the network, nodes are more likely to stay honest than defraud the network. The reason is that investing computing power in mining and generating new coins is more profitable than investing funds into gaining control of the network. Keep in mind that no single company or person is in charge of running the Bitcoin network. Instead, it is operated and verified by a large community of independent computers.
Reclaiming Disk Space
As the Bitcoin blockchain is immutable and can never be changed, it was evident that it would grow in size to reach a point which would require large amounts of memory for storage. In the Bitcoin Whitepaper, it is presumed that a single block header containing no transactions would have an approximate size of about 80 bytes.
To counter the issue of required memory, Satoshi Nakamoto proposed that once a transaction is “buried” under a sufficient number of blocks, the spent transactions before it could be “discarded” to save disk space.
In order to ensure that cryptographic structures – the hashes – would not be broken, the Whitepaper suggests reducing all transactions to a single hash – a root hash – which can efficiently be done by using a Merkle tree.
A Merkle tree or hash tree, named after the scientist Ralph Merkle is a hash-based data structure in cryptography and computer science. This structure assigns data to a key. A simple example of this concept is speed dialing on a phone – each telephone number is assigned to each key in a hash-based structure. In the Bitcoin network, Merkle trees are used for data verification which is efficient because hashes are used instead of a complete information file.
A Merkle tree or hash tree, named after the scientist Ralph Merkle is a hash-based data structure in cryptography and computer science.
Merkle trees typically use a binary-tree structure, meaning each node has at most two child nodes, but a higher level of output can be used as well. The root hash is the upper-most hash in the hash-based data structure and is part of the block header. It ensures which transactions are present.
At the time of the publication of the Bitcoin whitepaper in 2008, it was estimated that at least 4.2MB (megabytes) of memory storage would be needed per year. This was based on the assumption that blocks are generated every ten minutes and each block is equal to 80 bytes. Per hour, this would be equal to 80 multiplied by 6, then multiplied by the cost per day and then per year, i.e. equivalent to 80b multiplied by (6X24) multiplied by 365.
Typical computer systems were sold with 2GB (gigabytes) of RAM in 2008, and at the time Moore’s Law was predicting growth of 1.2GB per year, in the Bitcoin Whitepaper it was presumed that storage would not become a problem, even if block headers were to be kept in memory.
Simplified payment verification
Payments in the Bitcoin network can also be verified without a user running a full node in the network by building a Bitcoin implementation that relies on connecting to a trusted full node and downloading only the block headers.
After the download is completed, the client computer verifies the correct connecting of the chain headers and a sufficient level of difficulty to ensure that it is the correct blockchain. Finally, copies of transactions along with a Merkle branch linking them to their respective correct block are provided as proof of inclusion.
As long as honest nodes control a network and you are connecting to a node known to be reliable, this verification is reliable. However, to ensure that transactions are not being fabricated by an attacker on an invalid chain, Satoshi Nakamoto suggests that businesses utilising Bitcoin for frequent payments should run their own nodes for speed and increased security.
In very simple terms, this means you do not need the entire record of the chain to verify a transaction is correct. You only need to download one branch of the merkle tree and check if it has the same root hash.
Combining and Splitting Value
The lessons behind Bitcoin also apply to transactions containing multiple inputs and outputs – similar to how if you need to spend 35 cents, you need to combine 20 cents, 10 cents and 5 cents. In the Bitcoin network, transactions can have multiple inputs and outputs allowing for the splitting and combining of value.
Privacy
Traditional banks ensure the privacy of transactions by limiting information on transactions to the parties involved, including the third-party intermediary. The Bitcoin network on the other hand, announces all transactions publicly. Everyone can see that someone is sending a transaction but the transaction cannot be linked to anyone because no one knows who the acting parties are.
Users identify themselves to the network using a public key but need a private key to access the transaction. Therefore, the Bitcoin Whitepaper recommends to use a new key pair for each transaction in order to ensure that transactions cannot be tracked back or linked to a common owner.
Calculations
Finally, Satoshi Nakamoto wanted to illustrate the unlikelihood that the Bitcoin network would successfully be attacked by fraudsters. This section of the whitepaper contains calculations to show how complicated it would be for an attacker to start a new chain rivaling the valid chain. As honest nodes would not accept a matching transaction, a fraudster would need to race the valid chain and utilise massive amounts of computing power to catch up and the probability that they would ever breakeven is miniscule.
Conclusion
Bitcoin is a peer-to-peer system for trustless, electronic cash transfers that uses Proof of Work to record the public history of transactions and is highly safe against attacks as long as honest nodes control the majority of computing power. The network is made up of nodes that need little coordination and can join and leave at will and only accept valid blocks while rejecting invalid blocks based on a consensus mechanism.