Both individually and collectively we learn more from our failures than from our successes. Failures make us question our assumptions, successes generally don’t. I therefore welcome the hack of the DAO (even if I wind up losing the 0.5 BTC I had converted to Ether and invested). It is exposing a lot of assumptions and that is the path to learning. The hack will not be the end of smart contracts or blockchains. Instead it will be more like the early failures in aviation. They are what gave us today’s safe air travel (I wrote this post on a flight earlier today).
What are some key assumption that are being exposed? For one it is assuming that it would be easy to understand and verify smart contracts. The DAO was a fairly complex piece of code. It turned out to have a flaw that allowed for the money to be used in a way quite different from the intention of the contract. The lesson here is that we need to walk before we run when it comes to smart contracts. We need to make some relatively simple contracts work and work well and be widely used. We probably also need to work harder on formal and provable specifications of contracts.
A more fundamental assumption that this exposes is the relationship of smart contracts and code to surrounding law. Some people with an anarchic outlook were hoping that smart contracts could do away with a need for law and hence also for law enforcement (which in turn requires some power of society over individuals). I believe that to be a flawed assumption. I believe instead that technology and society need to work together for us to get the best out of technology. For instance, locks are great for keeping an opportunistic thief out of a house, but the law and law enforcement (along with cultural norms and economic conditions) make it possible to live in a home that’s not Fort Knox and not have stuff routinely stolen. The same will be true in a world with smart contracts. Things will go wrong with them and then we need a way to deal with it that lives outside the technology (you may want to watch my GEL talk or read my draft book World After Capital for more on that).
A related fundamental assumption is that about the role of irreversibility. The power of blockchains are that they give us logical centralization (aka consistency / consensus) while being organizationally decentralized. To achieve this we need a certain level of irreversibility. For instance, if in the DAO everyone could have individually reversed their original contribution at any time and without a new consensus being computed, well then there would not have been an actual pool of capital in the first place. But does that mean things should be completely irreversible even by say a fork? I don’t think so. If the consensus protocol is sufficiently decentralized, then a fork is a way of voting to reverse. And there is huge value in any system from ultimate reversibility. In fact we should be deeply careful with anything that is not reversible. For instance, irreversibility to me is one of the strongest arguments against the death penalty.
Blockchains and smart contracts are amazing new tools in our overall technological toolset. We have to learn how to deploy them to the best uses (many of which have yet to be invented). That will take failures. The DAO is not the first one (e.g., Mt. Gox) and won’t be the last one.