There has been much debate and significant coverage of The DAO Attack however, no surprise, more questions have been raised than answers. There isn’t an easy answer because we can’t predict how people and markets will react to the proposed solutions, and even if this entire anomaly was orchestrated, the exposure of Ethereum combined with its autonomous nature makes controlling an outcome unlikely. Alas, a network decision must be made and I believe there is a perspective which is overlooked, yet important to recognize.
First let’s take a peak at what the future holds for Ethereum. Specifically, EIP#86 is a set of changes proposed for Metropolis. Here is a high level summary of what has been proposed:
- Some block data will be moved into Ethereum’s “World State”
- Today, blocks are stored outside the data structure which represent the Merkle state root.
- This is the first step towards moving all state data accessible by the EVM into the world state.
- Medstate removal
- Today, all transactions are executed serially and after a transaction is executed the state root is calculated and stored in the transaction receipt.
- This collapses state transitions into blocks, which increases efficiency and is a step forward towards parallel execution of transactions.
- “we take initial steps toward a model where in the long term all accounts are contracts“
The proposal, posted by Vitalik in April, is an important change that moves toward all accounts having code. When all accounts are code, state transitions such as balance transfers are initiated by account code instead of the underlying implementation of Ethereum.
This a win for censorship resistance and it means that in Metropolis we will have a high level account interface which is vetted and capable of employing fail-safe mechanisms such as multisig.
With respect to the attack, principles, immutability, code vs consensus, etc., the most pragmatic path forward becomes clear when we also consider the currency and crypto abstraction in Serenity. From EIP#101:
2. Moving ether up a level of abstraction, with the particular benefit of allowing ether and sub-tokens to be treated similarly by contracts
In Serenity a token contract like The DAO will be a first-class account in Ethereum. Naturally, if the functionality of token abstraction is compromised, the immediate course of action would be a hard fork. Fortunately by the time we get to Serenity, we will have battle-tested and formally verified code to power these first class token accounts.
How Metropolis and Serenity are implemented isn’t final and its not clear how the market will react to a hard fork, but one thing is clear – the future protocol of Ethereum is inclusive of secure token contracts.