1/ A short thread on the accidental Ethereum hard fork from a distributed systems perspective:

This event isn't really a big deal. It's normal for Nakamoto consensus to split. This should, in no way, weaken everyone's trust in Ethereum. However, it highlights an important issue. https://twitter.com/nikzh/status/1326465592841351168
2/ Nakamoto consensus prioritizes liveness over safety, meaning that it will always make progress as long as there is set of nodes online to generate blocks. However, because of this feature (maybe a bug?), it means that if partitions happen ...
3/ ... we need to wait sufficiently long until we are able to heal the partition, which means waiting until the majority of the *current* globally recognized hash power has accepted your transaction.
4/ However, the problem is that the current Ethereum dev tooling doesn't do such a thing. This tooling typically waits for "block confirmations", which is not equivalent to waiting for majority of hashpower. It is ONLY equivalent if there are NO partitions.
5/ In the quest to make Ethereum "feel" instant, we've relied on huge trust assumptions. Your transactions are NOT final until majority of hashpower accepts it, and that could take a very long time. But Infura makes strong assumptions, and thus we faced this issue.
6/ Unfortunately, there's no silver bullet solution to this issue besides a hack-y one which requires upgrading dev tooling to make a best-effort guess at how much hashpower (percent wise of the total globally known one) has accepted a transaction.
7/ Doing this method of transaction finalization is superior to the block-confirmation number by a long-shot, but it doesn't guarantee safety nonetheless because you could never know what the exact global hash-power is.

Fin.
You can follow @kevinsekniqi.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.