DAO

DAO; ultieme vorm van een decentrale applicatie

Hoe kan een organisatie worden gerund op basis van smart contracts? Dit is de vraag die uiteindelijk leidde tot het ontstaan van DAO; oftewel decentralized autonomous organization. Binnen een DAO is er geen raad van bestuur of een managementteam. De leiding binnen deze organisatie verloopt op basis van vastgelegde voorwaarden vanuit smart contracts. Een gedecentraliseerde leiding over een organisatie waarin veel geld omgaat kan zeker een zeer interessante testcase genoemd worden.

Dao Ethereum

Hoe werkt een DAO?

Een managementfunctie beschouwt men als een taak met een zware verantwoordelijkheid waarvoor jarenlange ervaring vereist is. Daarnaast dient een manager over een uitstekende besluitvaardigheid, subliem organisatorisch en analytisch vermogen te beschikken. Ook is het een must dat de manager goed kan plannen. Puur mensenwerk dus zou je zeggen. Daar dacht Vitalik Buterin anders over. In 2013 startte hij een initiatief dat het werk van managers en bestuurders vervangt door middel van smart contracts.

Dankzij deze slimme contracten konden opdrachten en afspraken gedecentraliseerd worden opgeslagen en uitgevoerd. Binnen het Ethereum-netwerk investeer je in een DAO door middel van Ethers. Wanneer deze DAO succesvol blijkt krijg jij als aandeelhouder een winstpercentage uitbetaald, oftewel dividend. Door de achterliggende code is exact vastgelegd wie, wat en wanneer uitgekeerd krijgt. Uiteraard ben jij als aandeelhouder ook eigenaar van stemrecht binnen de organisatie. Je hebt dus het recht om voorstellen in te dienen. Over deze voorstellen wordt gestemd door andere aandeelhouders, waarna vervolgens een beslissing wordt genomen. Wanneer alle aandeelhouders akkoord gaan vindt er een consensus plaats.

Feitelijk kan je zeggen dat Ethereum ook een DAO is. Beslissingen en transacties worden bestuurd, gecontroleerd en uitgevoerd door de nodes en miners. Deze twee partijen kan je zien als de aandeelhouders. Belangrijk om te weten is dat niemand Ethereum bestuurt. Er is een decentrale leiding en de stakeholders vormen een belangrijke pion binnen de structuur.

DAO Ethereum

De eerste DAO

In 2016 werd de eerste DAO in het leven geroepen. Het werd geïntroduceerd als een revolutionair businessmodel dat zonder een centraal bestuur en managementstructuur te werk ging. De organisatie was feitelijk een investeringsfonds en werd gefinancierd op basis van een crowdfunding. Er werden DAO-tokens uitgegeven die werden aangekocht door middel van Ether.

Het idee achter de organisatie was om start-ups te stimuleren om met de DAO-organisatiestructuur te werken. De gecreëerde code kon gekopieerd worden om nieuwe Dapps of andere business te ontwikkelen. Had jij een briljant idee en wilde jij dit uitvoeren op basis van deze nieuwe structuur? Dan kon je het voorstel indienen. Aandeelhouders van het investeringsfonds stemden vervolgens of het project waardig was voor een investering. Voor het gebruik van de verkregen code werd een vergoeding betaald aan het fonds. Deze vergoeding in Ethers kon worden gebruikt om het fonds te laten groeien of uit te betalen als dividend.

Dé Dao-hack

Het experiment leek geslaagd tot in juni 2016 het noodlot toesloeg. Er vond een hack plaats en de investering van zo’n 11.000 mensen stond op het spel. Dit scenario werd onderschat en legde de kwetsbaarheid van de ‘onaantastbare’ blockchain bloot. De hack heeft geleid tot discussie rondom de blockchain en de systemen die dit gebruiken. Denk aan Bitcoin en Ethereum.

Dé Dao hack

De uitvoering van de hack

Het ontstaan van de hack begon feitelijk al bij het schrijven van de code. De zwakke plekken werden niet of nauwelijks gecontroleerd en opgelost. De dreiging voor een hack werd onderschat. Aangezien de distributie binnen de DAO door middel van slimme contracten verloopt is het essentieel dat deze uitvoerig getest zijn. Deze contracten vormen de leidraad binnen de organisatie.

Falend beveiligingsmechanisme

Een beveiligingsprotocol dat met goede bedoelingen was opgezet deed het fonds uiteindelijk de das om. De fatale bug bevond zich specifiek in dit beveiligingsmechanisme van de code. Dit mechanisme voorkwam dat er een meerderheid de volledige macht kreeg binnen het fonds. In theorie werkte dit subliem. Het fonds bleef decentraal; niemand bezat en bestuurde het fonds. Was er een groep binnen de meerderheid die het oneens was met de beslissing? Dan kon deze groep een afsplitsing maken. Dit werd een ‘child-DAO’ genoemd. In deze afsplitsing werd een aantal tokens gestort afhankelijk van wat de individuen binnen deze groep bezaten. Deze tokens werden dan overgeschreven vanuit het fonds naar deze afsplitsing.

De bug in de child DAO

Helaas ontdekte een hacker een bug binnen dit laatste deel van het proces. De tokens die normaliter werden overgeschreven vanuit het fonds naar de afsplitsing bleven in het fonds. Door het herhalen van deze afsplitsing bleef de Ether weglekken in de child-dao van deze digitale inbreker. Vergelijk het met de volgende situatie; stel dat je €10.000 op je spaarrekening hebt. Je kan slechts eenmalig geld overschrijven naar de betaalrekening. Je besluit om €5000 over te schrijven. Tot je blijde verbazing zie je dat er nog steeds €10.000 op je spaarrekening staat, terwijl de €5000 keurig op je betaalrekening is gestort. Uiteraard neem jij nu nog een betaalrekening waarop je weer €5000 stort. Op deze wijze wist de hacker voor circa. €3.500.000 aan Ether te ‘stelen’.

Reactie van Ethereum

Het fonds was in gevaar. De eerste reactie van de aandeelhouders was om een afsplitsing te maken. Op deze wijze werd de ‘buit’ verdeeld en kon de hacker niet meer bij het volledige bedrag. Echter moest er eerst gestemd worden om deze maatregel uit te voeren. Dit lukte niet snel genoeg.

Een ander voorstel werd gedaan; het uitvoeren van een zogeheten ‘soft-fork’. Over het algemeen worden bij een soft-fork de regels strenger, maar kan een gebruiker ook software gebruiken met de oude protocollen. Bij een hard-fork is dit juist andersom. De regels worden versoepeld, maar een gebruiker kan enkel nog deze protocollen gebruiken.

Soft-fork

Met de voorgestelde soft-fork wilden de ontwikkelaars voorkomen dat de gestolen Ethers voorgoed in de digitale zakken van de inbreker verdween. Door deze fork uit te voeren werd de gestolen Ether als het ware bevroren. Er moest wel een akkoord worden bereikt tussen de miners binnen Ethereum om deze maatregel uit te voeren. Bij uitvoering van de fork werden de miners namelijk beperkt in hun functioneren door de verandering van de regels. Nodes en andere gebruikers hadden hier geen last van. In tegenstelling tot een hard-fork. Hierbij krijgt iedere gebruiker binnen het netwerk te maken met de verandering en worden eerdere transacties teruggedraaid.

Op vrijdag 24 juni 2016 was het dan zo ver; de soft-fork werd gelanceerd. Zoals gezegd houdt een soft-fork in dat er geen transacties worden teruggedraaid, maar dat een deel van de gestolen Ether werd bevroren. Na een stemming onder een groot deel van de aandeelhouders werd besloten dat een select clubje gebruikers de bevroren Ether kon teruggeven aan de oorspronkelijke eigenaren.

De fork als oplossing voor de DAO hack

Er bleken echter een aantal haken en ogen te zitten aan de soft-fork maatregel. Ten eerste zouden alle bestaande DAO’ geen transacties meer kunnen verwerken. Dit zou later met een nieuwe fork worden opgelost. Ten tweede kreeg het smart contract waarop het DAO-fonds draaide te maken met een nieuwe aanval. De aanvaller stuurde een zeer zware transactie naar het fonds. De zware berekening kostte veel Ether om uit te voeren. Om voldoende ‘brandstof’ te verkrijgen werd de child-DAO van de hacker gebruikt. Doordat deze ongeldig was verklaard werd de transactie door de miner geannuleerd. Dit resulteerde in een ‘fatal error’ binnen het netwerk, waardoor het crashte.

Hard-fork

Het invoeren van een hard-fork werd onvermijdelijk. Hiermee werden alle transacties ongedaan gemaakt en kreeg het netwerk een update die alle gebruikers moesten uitvoeren. Uiteraard zal iedereen die de basis van blockchain begrijpt twijfels krijgen bij het overwegen van zo’n besluit. De transacties binnen de blockchain en smart contracts zijn niet te wijzigen. Dit was altijd één van de kerneigenschappen. Dit betekende dus dat in noodsituaties wel mogelijk was. Het overboord gooien van een belangrijke USP stuitte veel gebruikers van het Ethereum netwerk tegen de borst. Zeker bij een systeem dat zich nog moet bewijzen als een potentieel primair systeem voor transacties was deze situatie zeker niet wenselijk. Het is zeer interessant om te zien hoe het systeem omgaat met eventuele toekomstige hacks. Ongeacht de oplossing die Ethereum voor zijn DAO kiest; de gehele wereld zal over de schouder meekijken.