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.
Changes in which layer create forks?
Changes in the consensus layer.
Is the hard fork compatible with the old chain?
No.
Is the soft fork compatible with the old chain?
Yes. The soft fork is always compatible with the old chain. The reason for this is that when you have a new block with more rules so that is more restrictive then the new structures are still valid under the previous more lenient rules. (You have to think from new to old)
How can the two problems of a second chain be avoided?
The new community has to make the new chain incompatible with the old chain. This is done via the creation and adaptation of new parameters. Another possibility is to create a second genesis block which has to be contained in the longest chain. If the second block contains the new rules (rejected by the old software), the chains are split indefinitely and cannot merge together.
Two major upgrades in the Bitcoin network (both soft forks)
- Segregated Witness
- Taproot
SegWit
- increase transaction throughput by reducing weight of transaction in a block
Taproot
Introduced a new signature scheme