De DAO hack - Hoe Ethereum en Ethereum Classic tot stand kwamen

- 5 minute read

Ted Maas
Digital Marketeer
Ted Maas

Het is het jaar 2017 en de DAO (Decentralized Autonomous Organization) heeft meer dan 12,7 miljoen Ethereum verzameld. Op dat moment was één ETH 20 dollar waard, wat betekent dat de DAO een collectieve waarde had van 250 miljoen dollar. Het zag er rooskleurig uit voor het onafhankelijke venture capital fonds. Tot 17 juni, toen een hacker 3,5 miljoen ETH (ter waarde van 70 miljoen dollar) via het DAO-protocol had weggesluisd middels foutieve code. In het artikel van vandaag duiken we dieper in deze beruchte DAO hack. Dit is het eerste deel van een serie waarin we ons richten op de Ethereum en Ethereum Classic splitsing.


dao hack


Wat is de DAO?

DAO staat voor decentralized autonomous organization en zou fungeren als durfkapitaal in een gedecentraliseerde omgeving. Draaiend op het Ethereum netwerk, konden commerciële- en non-profit ondernemingen hun idee 'pitchen' aan de community. Als mensen wilden investeren, konden ze dat via de DAO doen en een aandeel in het project kopen. DAO kreeg een korte financieringsperiode om alles op een rijtje te zetten. Het duurde niet lang voordat het project een gecumuleerde waarde van 150 miljoen dollar had bereikt, een duizelingwekkend succes. Techcrunch, een toonaangevend technologisch magazine gericht op high-tech en startups had het volgende te zeggen over het DAO-project:


"a paradigm shift in the very idea of economic organization. ... It offers complete transparency, total shareholder control, unprecedented flexibility, and autonomous governance.”
TechCrunch

Op het hoogtepunt, was de DAO 250 miljoen dollar waard en had het 14% van alle beschikbare Ethereum tokens op het netwerk tot zijn beschikking. Er kwamen echter ook bepaalde nadelen naar voren. Zo werd er in mei 2016 een paper gepubliceerd waarin bepaalde kwetsbaarheden in de DAO-broncode werden gedetailleerd. Investeerders werd aangeraden om nog niet te investeren totdat de problemen waren verholpen. Op 9, 14 en 16 juni vonden meerdere ontwikkelaars "recursive calls" fouten in de code. Patches werden beloofd en wachtte enkel op goedkeuring van de DAO leden. Helaas kwamen de waarschuwingen te laat, want op 17 juni vond de DAO-hack plaats.

Een loophole

Op 17 juni 2016 vond een hacker een ‘loophole’ in de broncode van DAO die hij kan uitbuiten. Via deze achterdeur, kon hij in slechts één dag 3,6 miljoen Ethers wegsluizen. Op dat moment hadden 3,6 miljoen Ethers een gezamenlijke waarde van 70 miljoen dollar. Via de foutieve broncode was de hacker in staat een groot aantal ETH’s te versturen om vervolgens de smart contract te verzoeken om dit terug te sturen (wat ook gebeurde). De hacker herhaalde dit verzoek en herhaalde dit verzoek en herhaalde dit verzoek, waardoor de blockchain meerdere keren dubbel spendeerde. Deze 'recursive call' kwetsbaarheid is nooit gepatcht. Tevens was het smart contract zo geprogrammeerd dat het eerst de fondsen vrijgaf om vervolgens het tokensaldo pas bij te werken. De hacker kon in principe het proces oneindig herhalen, maar stopte toen hij 3,6 miljoen dollar had verzameld. Deze foutieve broncode was overigens geschreven door de DAO (niet Ethereum zelf) en werd uiteindelijk hun ondergang.


De wachtperiode

Het smart contract had echter ook een andere regel geïmplementeerd die hen uiteindelijk redde. Het DAO smart contract stelde dat overgemaakte fondsen op een holding account moesten worden gezet, waar het 28 dagen moest wachten op vrijgave. Deze maatregel werd ingevoerd voor het geval bepaalde deals onverwacht niet doorgingen. Uiteindelijk gaf deze wachtperiode van 28 dagen Ethereum, de DAO en de hele cryptocurrency-gemeenschap de tijd om te debatteren over wat er nu moest gebeuren. De hacker zelf bemoeide zich ook met de discussie en meldde op Github dat hij niets verkeerds had gedaan. Hij zei dat hij slechts gebruik maakte van de regels die het smart contract implementeerde. De hacker had de volgende boodschap:

===== BEGIN SIGNED MESSAGE =====

To the DAO and the Ethereum community,

I have carefully examined the code of The DAO and decided to participate after finding the feature where splitting is rewarded with additional ether. I have made use of this feature and have rightfully claimed 3,641,694 ether, and would like to thank the DAO for this reward. It is my understanding that the DAO code contains this feature to promote decentralization and encourage the creation of "child DAOs".

I am disappointed by those who are characterizing the use of this intentional feature as "theft". I am making use of this explicitly coded feature as per the smart contract terms and my law firm has advised me that my action is fully compliant with United States criminal and tort law. For reference please review the terms of the DAO:

"The terms of The DAO Creation are set forth in the smart contract code existing on the Ethereum blockchain at 0xbb9bc244d798123fde783fcc1c72d3bb8c189413. Nothing in this explanation of terms or in any other document or communication may modify or add any additional obligations or guarantees beyond those set forth in The DAO’s code. Any and all explanatory terms or descriptions are merely offered for educational purposes and do not supercede or modify the express terms of The DAO’s code set forth on the blockchain; to the extent you believe there to be any conflict or discrepancy between the descriptions offered here and the functionality of The DAO’s code at 0xbb9bc244d798123fde783fcc1c72d3bb8c189413, The DAO’s code controls and sets forth all terms of The DAO Creation."

A soft or hard fork would amount to seizure of my legitimate and rightful ether, claimed legally through the terms of a smart contract. Such fork would permanently and irrevocably ruin all confidence in not only Ethereum but also the in the field of smart contracts and blockchain technology. Many large Ethereum holders will dump their ether, and developers, researchers, and companies will leave Ethereum. Make no mistake: any fork, soft or hard, will further damage Ethereum and destroy its reputation and appeal.

I reserve all rights to take any and all legal action against any accomplices of illegitimate theft, freezing, or seizure of my legitimate ether, and am actively working with my law firm. Those accomplices will be receiving Cease and Desist notices in the mail shortly. I hope this event becomes an valuable learning experience for the Ethereum community and wish you all the best of luck.

Yours truly, "The Attacker"

===== END SIGNED MESSAGE =====

Tijdens de wachtperiode moesten er beslissingen worden gemaakt. Deze discussie leidde tot een hoop argumenten, controverse en uiteindelijk de geboorte van een gloednieuwe coin. In het volgende deel van deze serie gaan we kijken naar de discussie die plaatsvond. Het voorstel, de oplossing en de nasleep kun je over een aantal weken hier lezen!

Wil je meer weten over Ethereum?

Lees dan onze uitgebreide 'Wat is Ethereum?' info pagina