L5 - Bitcoin Evolution and Challenges Flashcards
Which two parts of the network are affected by updates?
- software relying on full nodes (wallets)
- blockchain network (full node implementation)
Two well-known issues with software updates
- Incompatibility btw. old and new software components
- Incompatibility between historic data and current data scheme expected by the software components
-> Bitcoin network inherits these standard problems
3 stages in the process of Bitcoin Protocol Update
- Design
- Signaling
- Results
Design stage.
Which layers can proposals target?
- Consensus Layer
- Peer Services Layer
- API/RPC Layer
- Applications Layer
How are proposals in Bitcoin referred to?
as Bitcoin Improvement Proposals (BIP)
What does a final BIP contain?
detailed description and reference implementation.
What can happen in the design stage?
A soft or hard fork can result.
When is a hard fork created?
Structures that are invalid under old rules become valid under new rules.
Can it happen that there is a chain split with a soft fork?
Yes. If a majority sticks with the old version
–> You have some people following the old and some the new vesion
What is the disadvantage of a chain split?
That both chains compete for users
How to find out whether a chain split would occur?
The signaling phase is used.
What is signaling and who does it?
Signaling is the process that is used to vote on proposals. Miners are the only network participants who can cast their votes. They gain the right to vote only when they mine a new block. They signal their vote by including a special value in the header of the blocks they mine.
How is a proposal accepted in the signaling phase?
A: If the overall support for the proposal is higher than a certain threshold (usually 1916 out of 2016 blocks = 95%) in one difficulty period. The proposal is then accepted so locked in. The rules then apply after further 2016 blocks to allow the remaining miners to update as well.
B: If the support is too low the proposal is rejected.
What can the results be?
- If the signaling leads to acceptance, the proposal is automatically implemented.
- Upon a rejection the community can split (chain split)
Two main problems with the creation of a second chain
- If the community behind the hard fork has less than 50% of the computational power, the new chain will not work, as the new software will switch back to the old chain, as the old chain will probably have the higher weight.
- One transaction can be executed on both chains –> Replay attack
What is a hard fork?
A hard fork occurs when rules are removed from the protocol. This makes previously invalid blocks valid.
What is a soft fork?
Adds extra rules to the protocol making some structures that were valid before now invalid.