Wat is ETC?

ETC is de afkorting voor de cryptocurrency van Ethereum Classic. Deze crypto-coin ontstond in de zomer van 2016, toen de Ethereum-blockchain na de uitvoering van een hard fork in tweeën splitste. De uitvoering van de hard fork was nodig omdat een hacker misbruikt had gemaakt, van kwetsbaarheden binnen een zogenaamde Decentrale Autonome Organisatie (DAO). Deze DAO kan worden beschouwd als een decentraal gedistribueerd investeringsplatform, waarbij de inzameling van de fondsen voor de financiering van projecten, wordt georganiseerd met behulp van blockchaintechnologie. Eén van de twee blokketens ging na de splitsing verder als Ethereum Classic (ETC).

 

Digitale tokens op de blockchain

De DAO-Hack

Bug in de smart contact-code

Bewaarperiode

Mogelijke oplossingen om de ETH terug te krijgen

De Ethereum-blockchain splitst in tweeën

 

Digitale tokens op de blockchain

Het verhaal van ETC begon in 2016 toen er een bijzonder investeringsplatform op de Ethereum-blockchain werd gerealiseerd: The DAO. Het investeringsplatform maakte gebruik van smart contracts om de fondsenwerving te organiseren. Het project werd volledig gerund door smart contract-code. In ruil voor financiering in de vorm van ether/ETH (de cryptocurrency van Ethereum), ontvingen de investeerders digitale tokens die een bepaalde waarde (stemrecht) vertegenwoordigden. Daarbij werden er voor iedere ETH, 100 tokens uitgewisseld. De tokens die tijdens de financieringsperiode door de beleggers waren gekocht werden vervolgens samengevoegd.

 

Voorstellen

De beleggers konden voorstellen indienen voor het financieren van projecten, met een deel van de ETH die in The DAO was opgeslagen. Deze investeerders werden aangeduid als zogenaamde ‘contractors’. Nadat een investeerder een voorstel had ingediend, werd er een identiteitsverificatie uitgevoerd door een zogenaamde ‘curator’. Deze curatoren waren vrijwilligers die werden gekozen, uit vertrouwde leden van de Ethereum-community. Naast het controleren van de identiteit van een contractor zorgden de curatoren er ook voor, dat de projecten die werden voorgesteld voor financiering legaal waren, voordat ze op de ‘whitelist’ werden gezet.

 

 

Stemmen

De deelnemers aan het investeringsproject konden met behulp van de tokens op de ingediende voorstellen stemmen. Wanneer 20 procent van de beleggers vóór het voorstel zou stemmen, dan werd de ether in The DAO automatisch vrijgegeven, aan het smart contract-adres van de ‘contractor’. De vrijgegeven ETH kon vervolgens worden gebruikt, voor de financiering van de voorgestelde projecten. De winsten van de investeringen in de projecten, zouden automatisch terugvloeien naar de beleggers. De ethers die werden genereerd op basis van de door The DAO gefinancierde voorstellen, werden als beloningen uitgedeeld aan de deelnemende nodes (knooppunten) binnen het blockchainnetwerk. Al snel na de lancering van het investeringsplatform, bleek dat er veel animo was om deel te nemen aan het project.

 

De DAO-Hack

De tokensale was een groot succes want nog geen twee maanden later, was er door The DAO een megabedrag bij elkaar gesprokkeld, van maar liefst 150 miljoen dollar aan ether. De ETH was bijeen gebracht door meer dan 11.000 geïnteresseerde beleggers. Nooit eerder was er bij een crowdfuding-project zoveel geld ingezameld op zo’n korte termijn. De vreugde binnen de Ethereum-community over het succes van het autonome investeringsproject verstomde echter, toen enkele weken later bleek dat The DAO door een hacker was aangevallen.

 

Bug in de smart contract-code

De hele fondsenwerving van The DAO werd automatisch gemanaged door smart contracts (slimme digitale overeenkomsten). Bij de hack had de aanvaller had gebruikgemaakt van een bug in de smart contract-code van het project. De achterliggende gedachte van het project was om de gedelegeerde macht van bestuurders – die het normaal gesproken voor het zeggen hebben – te verwijderen en de macht rechtstreeks in de handen van de beleggers te plaatsen. Bij traditionele investeringsvormen bestaat altijd de mogelijkheid dat bestuurders of fondsbeheerders, de investeringsfondsen op een verkeerde manier beheren of spenderen. The DAO was bedoeld om dergelijke situaties te voorkomen. De transacties werden permanent en transparant binnen de Ethereum-blockchain vastgelegd.

 

 

Transparantie

De ontwikkelaars van het project beweerden dat het autonome gedecentraliseerde investeringsplatform volledig transparant was. Alle processen binnen The DAO werden gecoördineerd en uitgevoerd door code, die iedereen kon bekijken en controleren. Door de complexiteit van de smart contract-code en de snelle lancering van The DAO, zagen de ontwikkelaars een aantal kwetsbaarheden over het hoofd. Kwetsbaarheden die al gauw werden ontdekt door de hacker.

 

Bewaarperiode

De bug in de smart contract-code gaf de hacker de gelegenheid om in zeer korte tijd 3,6 miljoen ether – dat neerkwam op ongeveer 50 miljoen dollar – uit The DAO te onttrekken. De fondsen werden overgemaakt naar een onderliggende DAO (een zogenaamde child-DAO). De hacker maakte daarbij misbruik van de zogenaamde ‘splitsingsfunctie’. Omdat er in de smart contract-code een bewaarperiode van 28 dagen was opgenomen, bleven de fondsen gedurende die 28 dagen in de child-DAO opgeslagen. Pas na die periode zou de aanvaller de fondsen definitief over kunnen maken naar een – niet door The DAO beheerde – eigen rekening.

 

Escape

De splitsingsfunctie van The DAO was een soort van ‘uitgangsmogelijkheid’ voor beleggers die het project wilden verlaten, wanneer ze vonden dat er verkeerde beslissingen waren genomen, bij het accepteren van een bepaald voorstel. Investeerders konden de splitsingsfunctie gebruiken om de ETH die ze naar The DAO hadden verzonden, terug te draaien. Om af te splitsen van het project moesten de beleggers een child-DAO creëren. Deze onderliggende kleine DAO had in principe dezelfde digitale structuur als de hoofd-DAO en hanteerde in feite ook hetzelfde beleid. Nadat een voorstel binnen The DAO was goedgekeurd, zouden de beleggers – en andere tokenhouders die zich achter het voorstel schaarden – hun ETH naar de child-DAO verzenden, waar het vervolgens 28 dagen zou worden bewaard. Deze splitsingsmogelijkheid beschermde de houders van minderheidstokens als het ware tegen beslissingen van de houders van meerderheidstokens, en bood hen een ‘escape’.

 

 

Recursieve aanroep-functie

De splitsingsfunctie was gecodeerd binnen de smart contracts, maar had een aantal kwetsbaarheden. Nadat er een splitsingsfunctie was gestart, haalde de code eerst de ETH op en werkte pas later het saldo bij. Daarnaast bood de smart contract-code de mogelijkheid, om misbruik te maken van een zogenaamde ‘recursieve aanroep-functie’. De term recursieve aanroep wordt gebruikt om een functie aan te duiden, die zichzelf aanroept. De hacker die The DAO aanviel slaagde erin om de splitsingsfunctie recursief aan te roepen. De smart contract-code haalde vervolgens de fondsen op, maar controleerde echter niet of er sprake was van recursieve aanroepen. Daardoor kon de aanvaller zijn of haar ether meerdere keren ophalen, voordat de code het saldo bijwerkte. De blockchain-engineers die bij The DAO betrokken waren hadden geen rekening gehouden met het gegeven, dat de smart contract-code eerst de ETH-tegoeden zou overmaken naar de child-DAO en pas daarna het saldo zou bijwerken.

 

Mineur

Toen duidelijk werd dat de (altijd onbekend gebleven) aanvaller 3,6 miljoen ETH had weten weg te sluizen naar een child-DAO, was de verontwaardiging binnen de Ethereum-community groot. Het enthousiasme over de succesvolle crowdfunding van The DAO sloeg om in mineur. De ontwikkelaars van The DAO en de leden van de Ethereum-community verschilden onderling van mening over wat er precies moest gebeuren, om de gevolgen van de aanval terug te draaien. Een deel van de community was van mening dat er niets moest gebeuren. Volgens hen was de hacker weliswaar ‘onethisch’ te werk gegaan, maar had hij simpelweg alleen maar gebruikgemaakt, van de mogelijkheden die de smart contract-code hem of haar bood. Daarmee zou de aanvaller de ether op een legitieme manier hebben verkregen. Een ander deel van de Ethereum-community was het daar niet mee eens en vond dat de hacker de ETH onrechtmatig had verkregen. Volgens hen was het gewoon een ordinaire roof en daarom moest de ether zo snel mogelijk worden teruggestort, vanuit de child-DAO naar de hoofd-DAO. Daarna moest het investeringsproject op de blockchain zo snel mogelijk worden beëindigd.

Mogelijke oplossingen om de ETH terug te krijgen

Doordat er binnen The DAO een bewaarperiode van 28 dagen was gecodeerd, hadden de ontwikkelaars nog even de tijd om zich te buigen over mogelijke oplossingen. In principe had de Ethereum-community drie mogelijkheden. Ze konden de situatie zo laten als dat hij was en verder geen actie ondernemen. De Ethereum-blockchain zou dan ongewijzigd blijven, maar dan waren de beleggers hun ether wel definitief kwijt. De blockchain zou ‘onaangetast’ verder gaan als één blokketen.

 

Soft fork

Een andere optie was het uitvoeren van een ‘soft fork’. Daarbij zou de gestolen ether in de child-DAO als het ware worden bevroren. Vervolgens zou de child-DAO met behulp van de crypto-miners worden vernietigd, door een regel aan de DAO-code toe te voegen. Die bewuste regel zou alle transacties – die opriepen tot het verminderen van de hoeveelheid ether in de child-DAO – als ongeldig verklaren. Een soft fork zou verder geen enkele invloed hebben op de geldigheid van de ether-transacties, die plaatsvonden tot het moment van de fork. De soft fork zou in tegenstelling tot een hard fork, een relatief mildere ingreep zijn in het blockchainnetwerk, dan een hard fork.

 

Achterwaartse compatibiliteit

Wanneer er een soft fork wordt uitgevoerd dan vindt er een wijziging plaats van het softwareprotocol. Bij een soft fork is sprake van zogenaamde ‘achterwaartse compatibiliteit’. Dat betekent dat er  ondersteuning blijft voor de oudere versies van bepaalde software. Als de Ethereum-community zou besluiten tot het uitvoeren van een soft fork, dan hoefde alleen een kleine meerderheid van de crypto-miners hun software te upgraden, om het nieuwe software-protocol door te voeren en de nieuwe regels af te dwingen. De ‘oude nodes’ zouden de nieuwe blokken binnen de blockchain in dat geval nog gewoon herkennen als ‘geldig’.

 

Hard fork

Als derde optie kon de Ethereum-community besluiten om een zogenaamde ‘hard fork’ uit te voeren. Deze optie was echter een stuk ingrijpender dan een soft fork. Bij een hard fork is namelijk géén sprake van achterwaartse compatibiliteit. In dat geval moeten alle nodes binnen de blockchain een upgrade uitvoeren en consensus bereiken, over de regels van het nieuwe software-protocol. Met andere woorden: alle nodes binnen het netwerk moeten worden geüpgraded, om de blockchain te kunnen voortzetten. De oude nodes die géén upgrade van het protocol hebben doorgevoerd, zullen de nieuwe blokken – die door de wél geüpgraded nodes worden gecreëerd – niet meer herkennen en als ongeldig verklaren. Een hard fork zou verregaande consequenties hebben voor de Ethereum-blockchain. In dat geval zou de gestolen ETH worden teruggestort naar The DAO, maar doordat niet alle nodes nog dezelfde informatie accepteren, zou het het blockchainnetwerk in tweeën splitsen.

 

De Ethereum-blockchain splitst in tweeën

Ondanks de consequenties voor het blockchainnetwerk koos de Ethereum-community uiteindelijk toch voor het uitvoeren van een hard fork. Door de hard fork van de Ethereum-blockchain splitste het netwerk in tweeën en ontstonden er twee aparte blokketens. De nieuwe blokketen (waarin alle nodes waren geüpgraded en dus het nieuwe software-protocol volgden) ging verder onder de oude vertrouwde naam ‘Ethereum’. Daarbij bleef de naam van de cryptocurrency ether (ETH) gewoon hetzelfde. De ‘oude’ blockchain (waarbinnen niet alle nodes waren geüpgraded) ging verder onder de nieuwe naam ‘Ethereum Classic’ en hanteerde de valutacode ETC. Tot aan het moment van de hard fork hadden Ethereum en Ethereum Classic exact dezelfde geschiedenis. ETC is in principe de voortzetting van de oude Ethereum-blockchain.

Pijlen, afsplitsing ETC van de Ethereum blockchain.

 

Terug naar boven ↑

 

Op de hoogte blijven van de ontwikkelingen op het gebied van blockchaintechnologie? Meld je dan nu aan voor de blogpost!

 

Meld je aan voor de blogpost!
Ik ga ermee akkoord dat mijn naam en e-mailadres worden gedeeld met Mailchimp.
Met de blogpost van Uitleg Blockchain blijf je automatisch op de hoogte van de nieuwste ontwikkelingen omtrent de blockchain technologie.
We hebben een hekel aan spam. Uw e-mailadres zal niet worden verkocht of gedeeld met anderen (afgezien van het marketing automation platform dat wij gebruiken voor onze e-maillijst).