Note: This is a reading note of chapter 2 in the book Bitcoin and Cryptocurrency Technology.
The key achievement and selling point of Bitcoin is decentralization. Decentralization means the system can function without a central authority. The technical difficulty that cryptocurrency designers face is how to achieve consensus in a distributed environment.
Bitcoin is a currency system and it needs to figure out how to verify if a transaction is valid and make sure there is no double-spend. Because there is no central authority, it means each participant needs to be able to verify transactions and protect itself from double-spend attack independently.
To solve the distributed consensus problem, Bitcoin takes an eventual consensus view and introduces incentives for participants to be honest. Here, a honest participant means a node that follows the Bitcoin protocol.
Each node has the freedom to choose the view it believes and it is not forced to take any specific view. The consensus is that the longest block chain at any given point of time is the valid one and transactions in this chain are valid. The consensus is implicit because the validity is not decided by anyone, instead, it's the result of a majority of nodes decide to follow the rule.
Eventual Consensus View
As usual, in a distributed system no one can be 100% sure about anything. The network is not perfect and nodes do not have perfect information due to latency. It can happen that different nodes have different views and at a given point of time there are several longest block chains co-existing in the system.
Similar to eventual consistency concept in distributed system, the eventual consensus view taken by Bitcoin system means over time all participant will converge to the same view. There is a trade-off between efficiency and accuracy here. The longer we wait, the more confident we are of the ledge (e.g. the longest block chain).
This is also a fundamental component of transaction time in Bitcoin. Participants in a transaction need to wait for a while before they gain confidence on the transaction details and they cannot make decision immediately.
The 51 Percent Attack
There are three main types of attacks
- stealing bitcoins
- denial-of-service attack
- double-spend attack
If a bitcoin is stolen, it means the cryptographic system is compromised. Acquiring 51 percent computing power alone doesn't give the attacker the ability to steal bitcoins. However, having 51 percent computing power does give the attacker enough power to perform DoS attack and to attempt to double-spend bitcoins because the attacker essentially controls the block chain now and can decide which block he wants to add to the ledger.
However, acquiring 51 percent computing power requires huge capital and if Bitcoin users lose confidence in the system, the Bitcoin price will drop sharply and it's not a clear win for the attacker. Here again we see some game theory components built into the system.
Incentives and Proof of Work
There are two sources of reward
- Block reward
- Transaction fee
Block reward is given to the proposer of new blocks. It halves with every 210K blocks. That's why the second source - transaction fee - will play more important role in the future. To become a propose of new blocks, a node needs to solve a hash puzzle, which has the following three properties
- difficult to compute
- parameterized cost
- trivial to verify
Bitcoin system adjust the difficulty of the hash puzzle automatically every 2016 blocks so that the average time to produce a new block is about 10 minutes and that this interval is independent of the total computing power in the system.
How is block chain built?
----- END -----
©2019 - 2021 all rights reserved