$80 Million Hack Shows the Dangers of Programmable Money
A huge digital heist is a reminder that when your code has direct control of millions of dollars of assets, it had better be free of errors.
Money is getting easier and easier to control via software and the Internet. A spectacular hack against an investment fund that put over $130 million of assets in the control of software shows that the concept comes with significant downsides.
The Decentralized Autonomous Organization—or DAO—was built on top of a system of digital currency called Ethereum and had become the largest crowdfunding project in history. The DAO’s software was designed to dole out funding to projects based on voting by people who had funded it. It was held up as an example of the incredible new things made possible by Ethereum, which was inspired by Bitcoin but intended to allow software to control money.
Early on Friday someone began exploiting a flaw in Ethereum’s design to extract more than 3.6 million Ether from the DAO—an amount worth around $80 million by the currency’s value immediately before the attack. (The price has since dropped significantly.)
The DAO had been heralded not just for its surprising scale, but as an example of the kind of thing Ethereum was created to enable—new forms of finance based on software able to control digital currency. Suddenly Ethereum and the idea of putting complex software in control of money doesn’t look so smart.
All software comes with bugs. And money is sometimes stolen via digital means from conventional financial institutions, for example in the recent attacks on the SWIFT system used for cross-border transfers.
But when software is empowered to directly control funds, as Ethereum was designed to allow, security becomes more critical.
Unfortunately, the designers of Ethereum and the DAO don’t appear to have drawn much on standard techniques that programmers and computer scientists have developed to contain the risk of security flaws. The DAO's code wasn’t accompanied with documentation explaining the design of its various pieces, for example. That could have helped someone spot and fix the flaw used in the DAO heist sooner, perhaps before it was released.
And the design and implementation of Ethereum’s programming language lacks features standard in frameworks used to program critical systems, according to a post mortem on the hack, by Emin Gün Sirer, an associate professor at Cornell. “A rethink seems called for,” he wrote.
There were many warnings that Ethereum’s design had security problems before today’s hack. The flaw used against the DAO was flagged earlier this month by Peter Vessenes, a Bitcoin entrepreneur who had previously cautioned that software built on Ethereum would be “candy for hackers.”
In a 2014 paper, researchers at University of Maryland who had asked students to build things with Ethereum concluded that “several subtle details about Ethereum's implementation make smart contract programming prone to error.”
And in May, Sirer and two people active in the cryptocurrency community, including a researcher with the Ethereum project, called for the DAO to be effectively frozen until security flaws in its voting mechanisms were fixed.
In the wake of the attack on the DAO, the value of Ether has plummeted. It’s not possible to simply fix the flaw used against the DAO by pushing out a software update, but attempts are being made to prevent further attacks using tricks such as jamming up Ethereum’s system for processing transactions.
A real fix for Ethereum’s problems will take a long time, and perhaps a complete redesign of much of its technology.
The psychological damage of the DAO hack will also take time to fix. If done right, software that can control money could open up many new business opportunities and extend financial services to people who cannot currently receive them. But seeing the consequences of security failings in such software could deter the investment needed to make good on that idea.