De tekortkomingen van bestaande blockchains: Ethereum

4e bericht in een serie over de grondgedachte achter Themelio

(Eric (Yuhao Dong)) (31 aug.2020)

Een gedistribueerde computer met endogeen vertrouwen

Toen Ethereum voor het eerst werd uitgebracht in 2015, bedoeld om een ​​blockchain te zijn die radicaal verschilt van Bitcoin. In plaats van een enkele applicatie te implementeren, wil Ethereum het equivalent zijn van een besturingssysteem voor endogeen betrouwbare apps, of “dApps” (gedecentraliseerde apps). Deze functionaliteit wordt mogelijk gemaakt door een Turing-complete taal (EVM) voor in blockchain ingebedde programmas, of “slimme contracten”, die toegang hebben tot willekeurige staat binnen de blockchain en deze kunnen opslaan. Ethereum is in feite een ‘wereldcomputer’ die iedereen met vertrouwen kan gebruiken.

In de daaropvolgende jaren is een breed scala aan Ethereum-apps ontwikkeld, waaronder nieuwe cryptocurrencies zoals Dai , gedecentraliseerde gokplatforms zoals Augur , en zelfs virtuele verzamelobjecten zoals cryptokits. Het meest interessante is dat er een ecosysteem van on-chain gedecentraliseerde financiering (DeFi) is ontstaan, met steeds meer liquide kapitaalmarkten die toegankelijk zijn voor iedereen met een netwerkverbinding. De veiligheid van al deze applicaties hangt af van het endogene vertrouwen dat Ethereum biedt.

Helaas is dit vertrouwen enigszins misplaatst. Het endogene vertrouwen van Ethereum lijdt onder vergelijkbare, misschien wel ergere, problemen in vergelijking met dat van Bitcoin.

Complexiteit schaadt het vertrouwen

In zijn whitepaper , bedenker Vitalik Buterin verwoordde de visie van Ethereum als een “eenvoudig” platform met “geen functies” op basis van een simpele slimme contracttaal (EVM) die “elke gemiddelde programmeur kan implementeren”. Tegenwoordig is Ethereum echter een extreem complex systeem met een referentie-implementatie van bijna een miljoen regels code. Een dergelijke complexiteit vereist constant onderhoud en frequente veranderingen. Elke consensusbrekende protocolupdate (of “hard forks”) in blockchains impliceert echter een vervanging van het vertrouwen in de externe protocolontwikkelaar door endogeen vertrouwen. Vanaf augustus 2020 bevat de volgende tabel elke keer dat het Ethereum-protocol “hard fork” heeft.

Zoals hierboven is aangetoond, vereist Ethereums model van een complex dApp-besturingssysteem het regelmatig omzeilen van endogeen vertrouwen.

Meer alarmerend is dat de ontwikkelaars en de gemeenschap van Ethereum eenvoudigweg geen sterke geloof in het belang van endogeen vertrouwen. Vlad Zamfir, een kernontwikkelaar van Ethereum, schreef zelfs een (bekende blogpost) waarin hij pleitte tegen ‘de wet van Szabo’, wat het idee is dat blockchains niet moeten worden geüpgraded tenzij om kritische, niet-controversiële redenen. In dezelfde post beweert Zamfir ook dat externe interventie in een blockchain een legitieme vorm van cryptowetgeving is.

Het is niet verwonderlijk dat de combinatie van protocolcomplexiteit en sociale onverschilligheid ten opzichte van endogeen vertrouwen heeft geleid tot grove schendingen van endogeen vertrouwen dat het ecosysteem aanzienlijk ontwrichtte. Het bekendste voorbeeld hiervan is de “DAO-reddingsoperatie” van 2016.

Een casestudy: de DAO-reddingsoperatie

Op 17 juni 2016 werd een kwetsbaarheid in de slimme contractstroomvoorziening De DAO, een van de meest populaire Ethereum-applicaties op dat moment, werd kwaadwillig uitgebuit. De aanvaller stal een ongekend bedrag van meer dan 3,6 miljoen ETH – bijna 5\% van alle bestaande ETH – van het contract.

De Ethereum-gemeenschap brak uit in een verhit debat over wat te doen met de aanval. Uiteindelijk werd er op 15 juli 2016 op korte termijn een muntstemming gehouden. 87\% stemde voor een hard fork om de aanval ongedaan te maken en investeerders in The DAO te vergoeden, hoewel slechts 5,5\% van alle uitstaande ETH bleek op de stem. Vier dagen later werd een nieuwe versie van Ethereum uitgebracht die de harde vork uitvoerde.

Deze zeer controversiële DAO-vork ondermijnde de onveranderlijkheid, een cruciale blockchain-beveiligingseigenschap, volledig. Een deel van de Ethereum-gemeenschap bleef de oorspronkelijke transactiegeschiedenis van Ethereum erkennen en vormde een afzonderlijke blockchain die bekend staat als Ethereum Classic. Net als met de splitsing van Bitcoin in 2017 naar Bitcoin en Bitcoin Cash, moesten gebruikers uiteindelijk beslissen welke fork ze konden vertrouwen, terwijl applicatieontwikkelaars de grond onder hun applicaties moesten verwerken en plotseling in tweeën splitsten.