Hoe werkt Ethereum?

Zoals uitgelegd bij Wat is Ethereum, is Ethereum een gedecentraliseerd smart contract platform gebaseerd op blockchain technologie waarop iedereen om het even welke dApp kan ontwikkelen.

De structuur van de Ethereum blockchain is zeer vergelijkbaar met die van Bitcoin: elke node in het netwerk bewaart een kopie van de volledige transactie geschiedenis. Het verschil met Bitcoin is dat Ethereum nodes, naast de volledige transactie geschiedenis, ook de meest recente toestand van elke smart contract en elke dApp bijhoudt. Dit impliceert dat dApps op het Ethereum netwerk niet gebonden zijn aan 1 enkele entiteit voor het bewaren en controleren van hun data.

De public keys zijn net iets anders zoals bij bitcoin en beginnen steeds met ‘0x’. Een voorbeeld van een Ethereum adres is onderstaande donatie adres voor deze website:

 0xD96217AAF10760772efAd904b2AEC073F2452bB8

Om alle mogelijke vormen van dApps te kunnen toelaten op het netwerk, is Ethereum geschreven in een ‘Turing-complete’ programmeertaal, wat betekent dat elke mogelijke gegevensbewerking of berekening kan worden geprogrammeerd! Deze enorme flexibiliteit is één van de grootste innovaties van het Ethereum netwerk.

Omdat elke smart contract op het Ethereum netwerk moet worden verwerkt door het volledige netwerk (duizenden computers), dient dit proces te worden gestroomlijnd. Daarom worden alle smart contracts omgevormd in ‘bytecode’ die zeer makkelijk kan worden gelezen en uitgevoerd door “the Ethereum Virtual Machine (EVM)”. Alle nodes voeren deze bewerkingen dan ook uit met behulp van hun EVMs.

De EVM voert dus alle contracten uit met de specifieke regels die geprogrammeerd zijn door degene die ze ontwikkelt heeft. Het daadwerkelijke schrijven en ontwikkelen van smart contracts gebeurt echter in programmeertalen zoals Solidity en Serpent, die veel gemakkelijker te schrijven en lezen zijn door mensen.

De enige limitatie die EVM heeft ten opzichte van andere Turing-complete machines is dat EVM gelimiteerd is door de hoeveelheid ‘gas’ die wordt voorzien. Gas wordt gebruikt om te betalen voor een bepaalde berekening op de EVM. Elke transactie en berekening op het Ethereum netwerk heeft immers een bepaalde kostprijs om te voorkomen dat het netwerk wordt overbelast met nutteloze data. De prijs van Gas varieert constant, en is afhankelijk van de hoeveelheid Ether die je ervoor wilt betalen. Deze prijs wordt uitgedrukt in “gWei”, waarbij Wei de kleinste eenheid is van Ether, (1 Ether = 1⁰¹⁸ Wei). 1 gWei is dus 1.000.000.000 Wei.

Bij elke transactie op het Ethereum netwerk moet de zender een gas limiet en een gasprijs instellen. Het product van beide is dan de maximale prijs (in Wei) die de zender wil betalen voor de transactie. bvb: Iemand wil een transactie van Ether verrichten, en stelt een gas limiet in van 50.000 met een gas prijs van 20 gWei. Dit impliceert dus dat de zender bereid is om maximaal 50.000 x 20 gWei = 1.000.000.000.000.000 Wei = 0.001 Ether te spenderen om de transactie te laten opnemen in de blockchain.

Indien de zender voldoende Ether bezit in hun account om dit maximale bedrag te betalen, dan kan de transactie worden verricht. Eventuele gas die overblijft na de transactie (het was immers een maximale prijs die de zender wou betalen) wordt automatisch teruggestuurd naar de zender aan de originele wisselkoers.

Indien de zender onvoldoende gas bezit om de transactie te voltooien, wordt deze afgebroken en wordt er geen gas teruggestuurd naar de zender (omdat de EVM al ‘moeite’ heeft verricht om de transactie uit te voeren en daarvoor dus gas nodig had).

De reden waarom gas wordt gebruikt voor de kosten (en niet rechtstreeks Ether) is omdat dit zorgt voor een ontkoppeling tussen de prijs van Ether en de prijs van een berekening op de EVM. Een hogere prijs van de Ether munt zou er anders voor zorgen dat het Ethereum netwerk gebruiken enorm duur zou worden, wat op zijn beurt zou zorgen voor minder innovatie en ontwikkeling op het platform!

Hoe hoger de maximale gas prijs van een transactie wordt ingesteld, hoe meer kans (en hoe sneller) dat deze zal worden opgenomen in de blockchain. De gas kosten worden immers gebruikt om miners te betalen die de transacties en berekeningen valideren. Het is immers interessanter voor miners om de transacties op te nemen met het meeste gas.

Om gemakkelijk te kunnen bepalen wat de beste gas prijs voor een transactie op dit moment zou zijn, kun je best surfen naar ETH Gas Station.

Het Ethereum netwerk berust dus op miners die, vergelijkbaar als bij Bitcoin, voorkomen dat er geen Ether meerdere malen wordt gebruikt, of dat er smart contracts worden uitgevoerd waarvoor er niet betaald is geweest. Dit gebeurt via het Proof Of Work consensus mechanisme door middel van minen.