Code is Cruel
by Dr Bryant Joseph GILOT — 19 June 2016
Recent events at the Decentralized Autonomous Organization (DAO) are unfortunate. Despite the gravity of the consequences; we, the cryptocurrency community, must be certain to proceed in a very thoughtful, prudent and deliberate manner. A reactive and emotional response will have a long lasting impact on the entire cryptocurrency community, including Bitcoin.
I wish to offer my condolences to all those who have been negatively impacted. What has happened has been perpetrated by a cruel individual or individuals, is unfair, and is not consistent with the true spirit of the DAO smart contract code. A vulnerability of the DAO contract code has been exploited causing the DAO, its courageous participants and the Ethereum community much pain. Surely, anyone truly committed to the true vision of cryptocurrency, Ethereum and the DAO would have attempted to remedy rather than exploit this vulnerability in the DAO smart contract code.
I must formally disclose that I hold no ether and that I am not a DAO stakeholder. I am someone committed to cryptocurrency and only want Ethereum, the DAO and similar experiments to continue. The ‘failure’ of the DAO will have a lasting impact on the community as a whole, but I am convinced we will survive. Together, we have overcome many past challenges and are as a result a more robust community today. Secondly, what I write in this essay reflects my personal thoughts alone. What follows is largely an opinion since I have no stake in Ethereum or the DAO. I nonetheless stand in solidarity and desire nothing but the best resolution even if that demands the loss of funds.
We must first define what has happened. As I understand, the Ethereum Virtual Machine (EVM) has performed as designed in a perfectly predictable fashion. There is no flaw in the EVM. The current situation arises from a flaw of the code submitted to the EVM. Remember the EVM is a Turing complete system that predictably executes instructions. The instruction set in question is the smart contract code establishing the DAO. It is described in the white paper authored by Christoph Jentzsch titled: Decentralized Autonomous Organization To Automate Governance Final Draft — Under Review.
The ‘human’ implementation of the DAO code unfortunately included a vulnerability which allowed a malicious actor to redirect substantial ether from the DAO to himself, herself or themselves. This DAO smart contract code ‘bug’ went unrecognised until, to everyone’s great surprise, the DAO had accumulated a quantity of ether equivalent to in excess of one-hundred fifty million USD based on exchange rates at the time. This is a truly shocking sum which has proven to be a rich reward for the malicious attacker first able to successfully attack the integrity of the DAO code.
An important fact that we must not forget is that this was a flaw in the DAO smart contract code and not in the EVM. I repeat this again to emphasize its importance as the Ethereum Foundation and DAO stakeholders ponder how to proceed. We must accept the brutality of the facts in order to overcome them:
- Upwards of 3.6 million ether have fallen into the hands of an attacker.
- The DAO smart contract code has failed.
- Ethereum is still maturing. We are currently at the Homestead release with the Metropolis and Serenity releases expected in the future.
- The DAO smart contract code, although carefully coded and thoroughly reviewed can only be prudently described as untested alpha code which had generated enormous enthusiasm and unexpectedly accumulated 8.26 million ether.
- The integrity of the Ethereum protocol is entirely intact.
- The DAO has confirmed that “Code is Law” as Lawrence Lessig titled the first chapter in his 2006 publication Code.
- Implemented on an immutable Ethereum blockchain, code can also be cruel.
As a community this is our second Lehman Brothers moment. Risk was ignored, unrecognised, uncontrolled and under-priced ending in an unfavourable outcome. Bitcoin’s MtGox failure was the first. Ethereum’s ‘failure’ of the DAO is the second. Again we are fortunate though. MtGox’s failure had nothing to do with the underlying Bitcoin protocol. The DAO’s failure has nothing to do with the underlying Ethereum protocol. In dollars, MtGox was worse, but I expect the fallout to be equivalently painful. Many have lost substantial sums. The media headlines will be negative. There will be calls to outlaw these important activities. Smart contracts will likely come under pressure to be directly regulated. However lessons will be learned and experimentation will continue.
The Ethereum Foundation has been thrust into a horrible situation not of their own making. The EVM is performing exactly as it was designed to do so. Many DAO stakeholders are looking to the Foundation for a remedy. I can understand that many are anxious to prevent the attacker from walking away with 3.6 million ether. This has encouraged the Foundation to propose a soft fork and a hard fork of the Ethereum blockchain with the goal of recovering the funds. This is a drastic measure that has real potential to harm Ethereum. The Ethereum blockchain is designed to be trust-less and immutable. Will the Foundation again be asked to roll-back the blockchain when the next smart contract is ‘hacked’? Will such actions encourage moral hazard? What will happen when a government is not pleased with the outcome of a smart contract? Will Ethereum continue to be trust-less and immutable?
I argue that we should not introduce bailouts and roll-backs into the cryptocurrency space and that the solution should come solely from the DAO stakeholders. Hard forks of blockchains should be limited to protocol functionality and performance. If the Ethereum Foundation were to proceed down the path of suggesting or enabling a fork intended to recover funds from a hacker, it would amount to at best a bailout and at worse a precedent for introducing a blacklist into the underlying protocol. It would demolish the claim that the Ethereum blockchain is immutable. This would be tragic in light of the fact that there is no bug in the EVM. The Foundation maintains the code and the protocol. Are we ready to allow the Foundation and miners to exercise police power, to confiscate assets, or to adjudicate? Going forward we must trust that the EVM will act predictably. To intervene today will likely harm the Ethereum network. I understand that the miners must agree to implement any soft or hard fork, however it might be best if the Foundation and the miners remain focused on the EVM and not on the correction of unfavourable smart contract code outcomes.
The Bitcoin developers were forced to orphan (with agreement of the miners) an unintentional hard fork resulting from a bug introduced with the upgrade of Bitcoin Core to Version 0.8.0. This was a very different case. Version 0.8.0 was able to produce blocks incompatible with earlier versions. As a result, on 11 March 2013, a fork with two chains were active. One chain had to be orphaned. The core developers chose to revert to version 0.7.2 to which the miners also agreed. Unlike what is today proposed for the Ethereum blockchain, this was directly targeted at remedying a bug in Bitcoin Core Version 0.8.0 and not at arbitrarily making things ‘right’. I add that the core developers did not consider any changes aimed at making MtGox account holders whole following its failure.
The Ethereum Foundation may be considering this a systemic crisis that may jeopardize the Ethereum project at large. That is the only justification I can find to support the proposals for soft and hard forks to the Ethereum blockchain. Essentially, some are thinking that the DAO is too big to fail!! Others simply want to recover their funds. I can only hope that the Ethereum Foundation and the miners who will decide are not motivated by a desire to make themselves whole again. That would be tragic and likely not survivable. Even the suspicion or perception of a self serving intervention by the Foundation and the miners would be damaging.
On 15 September 2008, Lehman Brothers was forced to declare bankruptcy. They had accumulated imprudent risk and leverage which was unsustainable. The worldwide banking system came under systemic pressure. This was as a result of a monetary and banking system largely based on credit, not on assets. With uncertain counter-party credit worthiness and uncertain knowledge of counter-party exposure to worthless financial instruments, interbank activity froze. Lehman Brothers wanted to be bailed out. Lehman’s competitors refused to come to the rescue and simultaneously expected governments to make things ‘right’. Lehman Brothers did declare bankruptcy. The credit based monetary and banking system nearly collapsed causing governments to reluctantly come to the rescue assuring the future of many financial institutions who had behaved badly in the run up to the financial crisis of 2007–2008. These firms went on to ungratefully deploy that money in ways that disgusted many citizens and even many politicians who had consented to the bailouts. The US Senate’s Levin–Coburn Report concluded that the crisis was the result of “high risk, complex financial products”. Is the DAO analogous to a high risk, complex financial product? Should the DAO be bailed out?
On 31 October 2008, Satoshi Nakamoto released his paper describing Bitcoin on The Cryptography Mailing list at metzdowd.com. The timing of his publication should not be overlooked.
On 3 January 2009, the genesis block was released into the wild as block #0 formally launching the Bitcoin network. The coinbase parameter of block #0 contains, along with the normal data, the following text:
The Times 03/Jan/2009 Chancellor on brink of second bailout for banks
Being neither a DAO or Ethereum stakeholder, I personally have no direct vote in the matter. As a student of and advocate for cryptocurrencies and blockchains; I am an interested party. I am a concerned member of the community that wants Ethereum and smart contract activities to continue. I take the text in block #0 published by Satoshi to be a reminder of what is unique about blockchains and cryptocurrencies, a subtle suggestion of what we may face as a community and a warning that we must proceed carefully.
I urge the Ethereum Foundation to demonstrate restraint following the example of the Bitcoin Core developers in response to the failure of MtGox rather than follow the example of the government, the treasury and the central bank in response to the failure of Lehman Brothers. As a community deciding how to move forward, I would consider the following:
- We will survive if we are thoughtful, deliberate and prudent.
- We should incorporate the lessons learned from the failure of MtGox.
- The necessarily imperfect remedy should come solely from the DAO community.
- The Ethereum Virtual Machine performed as designed in a perfectly predictable manner.
- The Ethereum Foundation and the miners should not disturb the immutability of the Ethereum blockchain.
- There are undefined costs to forking the Ethereum blockchain simply because we do not like the outcome of a particular smart contract.
- Code is Cruel.
I conclude with the raw hex version of block #0 of the Bitcoin blockchain which is assumed to have been mined by Satoshi Nakamoto and which as of today (19 June 2016) has survived 7 years, 5 months, 17 days.
Originally published at blog.cryptoiq.ca on June 19, 2016.