Profile picture
Meni Rosenfeld @MeniRosenfeld
, 7 tweets, 1 min read Read on Twitter
1/7 The difficulty retarget algorithm in Bitcoin is terrible. It fails to achieve its stated goal - 2016 blocks every 2 weeks - in several ways:
2/7 1. It's not balanced over long periods of time. If hashrate is on a long-term upward trend, blocks will arrive faster than normal. Noticed how the 2012 block halving party was in November, but in 2016 it was in July? We will keep getting further ahead of schedule.
3/7 2. Even assuming constant hashrate, the timing isn't accurate. Blocks arrive 0.1% slower than intended. Half of that is due to an off-by-one bug in the implementation, half due to a probabilistic issue first discovered in my paper on predicting block halving party times.
4/7 3. It's very slow to react to changes in hashrate. This creates a positive feedback loop in some scenarios, such as a drop in price or competing chains with the same hash function, potentially leading to catastrophic failure.
5/7 It's not surprising that the algorithm is terrible - there's no indication that Satoshi knows anything about control theory, which is essential for designing systems like this.
6/7 Some alts have since experimented with other retarget algorithms. I've never really looked deeply into any of them, but perhaps there are some good ideas there.
7/7 Personally I'd support serious research into new retarget algorithms, with the goal of eventually implementing in Bitcoin. I might be holding a minority opinion, though.
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Meni Rosenfeld
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member and get exclusive features!

Premium member ($30.00/year)

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!