🍴 What the fork? — Issue No. 21

🗞 News

The planned Ethereum hardfork, codenamed Constantinople, activated on the Ropsten test network on Saturday, October 13th. Numerous issues emerged almost immediately. To start, there was barely any hashpower mining the upgraded consensus rules when the forking blockheight was reached. More seriously, though, the upgraded chain itself split when the two dominant node implementations charged different gas fees for a smart contract transaction. The issue was eventually identified as an underflow bug in the Parity client. Core Deveveloper Lane Rettig did an amazing job writing a post-mortem of the event. Link.

Amusingly, it was later determined that the transaction that caused the split was a Donald Trump tweet endorsing a House candidate in my home state of Pennsylvania. It was being submitted as part of a DApp that archives tweets on the blockchain. Link.

A Core Deveveloper's meeting was subsequently held to discuss the issue and make plans for moving forward. A few interesting points were discussed, including whether it was acceptable to break the Ropsten testnet, and whether it should now be rolled back so another test could be carried out. The most important decisions made were that 1) The hardfork would be pushed back to no earlier than January 2019, and 2) because of the delay, a change of hashing algorithm would also be considered for inclusion. Link.

In particular, the algorithm being considered is called ProgPow, for "Programatic Proof-of-Work." The algorithm is constructed similarly EthHash, which is currently used by the network, but adjusts various parameters to (theoretically) reduce the advantage a purpose built miner could have over commodity hardware to a mere 10-20%. Link.

What can we take away from this incident? For starters, there are folks who are playing this up as some kind of disaster, which I find silly. Ropsten is a testnet, and the hardfork was being executed on the testnet to, well...test. The process worked, inasmuch as it uncovered a flaw before it went live on mainnet and did any real damage. It is true that the parties involved seemed a bit unprepared to handle a consensus failure on the testnet, but thats a less serious issue.

On the other hand, it is a bit concerning that a bug of this nature made it this far in the process at all. I covered the Constantinople hardfork in issue 19, and while I wouldn't call the upgrade trivial, it's pretty minor compared to the grand plans for Proof-of-Stake and sharding being proposed for the next year or two. Software engineering is hard enough, even with comparatively simple systems running on your own servers. I've got the scar tissue from my own career to prove that. The scale of the upgrades being proposed for Ethereum-- a fully decentralized network of literal money-- is simply unprecedented.

To be honest, I'm extremely skeptical that we'll see the Ethereum 2.0 upgrades land in the next two years. A 3-5 year timeline feels more realistic to me, but in the fast moving world of crypto, so much will have changed before we get there. I would love to be proven wrong. As usual, the one thing we can be certain of is that interesting times are ahead. Buckle up and stay tuned!

🙏 A Favor

Can you help me out this week by forwarding this email to anyone you know who might enjoy it? I love writing it, and with a consistent ~50% open rate, it seems many of you get value out of it as well. Help me reach the biggest audience I can with no-nonsense, technical takes on the crypto world. Subscription Link.

📊 Statistics

800,000 ETH. The amount of Ether locked in DAI smart contracts to collateralize the decentralized stable coin. This amounts to about 1% of the total supply of ETH, with $3 worth of ETH currency backing each dollar's worth of the stable coin. Link.