Simulating the Impact of UASF / BIP148 on Bitcoin

By | June 8, 2017

To get a better prediction of UASF impact on bitcoin, I wrote a quick and dirty bitcoin network simulator, which you can find here on GitHub. After playing around with all kinds of hash rate distributions and UASF/non-UASF nodes, my first conclusion is, that there is almost no impact  of UASF nodes on bitcoin, if their amount is below 80%.
But there are some more interesting results, I want to share. You can find the CSV files I've used in the examples folder.

net1.csv:
This basically simulates the bitcoin network as of current state. There are 30% of SegWit signalling miners, and roughly 10% UASF nodes. When UASF starts on August 1st and hash rate and UASF node distribution keeps the same, no chain split will occur. The bitcoin network remains intact.

net2.csv:
This example assumes a mining pool with hashing power of 5%, while the hashing power of SegWit signaling pools drops to 25%, the amount of UASF nodes is still 10%. This leads to a chain split, where the UASF pool mines on a minority chain, all other miners including SegWit signalling miners are on the main chain.

net3.csv:
Let's increase the amount of UASF nodes to 50%. The hash rate distribution is untouched as in net2.csv: 25% SegWit signalling, 5% UASF. As already stated, there is still no impact of UASF nodes on bitcoin, because UASF nodes are below 80%. We get the same result as of net2.csv, but slightly more reorgs an orphaned blocks.

net4.csv:
UASF nodes are at 80%. Something happens. All non-UASF miners including SegWit signalling miners mine on different chains. The bitcoin network seems to be corrupted.

net5.csv:
UASF nodes at 90%, USAF miners at 5%, SegWit signalling at 25%. Some magic happens. All miners are on the main chain, and it is a SegWit chain. Miners not signalling SegWit have a lot of reorgs, and of course all their mined blocks are worthless.

net6.csv:
Assumes that all SegWit signalling miners become UASF miners. So we have 30% UASF miners. Further we put the UASF nodes at 50%.  Result is a chain split, where UASF miners mine on there own minority chain.

net7.csv:
80% UASF nodes, 30% UASF miners, no SegWit signalling miners. UASF and non-UASF chains are abreast. Non-UASF miners have a lot of reorgs and orphaned blocks.

net8.csv:
70% UASF nodes, 49% UASF miners results in a chain split.

net9.csv:
70% UASF nodes, 40% UASF miners and 10% SegWit signalling miners. Again there is a chain split where SegWit signalling miners are on the main chain.

net10.csv:
100% UASF nodes, 0% SegWit signalling miners and 0% UASF miners. All miners are mining on their own chain, because they are surrounded by UASF nodes.

Leave a Reply

Your email address will not be published. Required fields are marked *