Wat is ether?

Deze blogpost beschrijft het oude consensus-protocol van Ethereum. Het Ethereum-platform is op 15 september 2022 overgeschakeld van het Proof of Work-protocol, naar het Proof of Stake-protocol. Ether (ETH) is de cryptocurrency van het blockchainplatform Ethereum. De ETH kan worden beheerd met een eigen crypto-wallet en de peer-to-peer transacties worden beveiligd door middel van cryptografie. Wanneer je een transactie met ETH wilt uitvoeren of een decentrale applicatie (dapp) wilt gebruiken, dan betaal je daarvoor een vergoeding in ether. Net zoals bij het Bitcoin-netwerk maakt de Ethereum-blockchain gebruik van een ‘mining-proces’, waarbij transactie-blokken aan een digitale blokketen worden toegevoegd. Zo ontstaat er en solide en betrouwbare transactiereeks.

 

Transactieblokken

Ethereum Virtual Machine

Smart contracts

Dapps

Wat is het verschil tussen smart contracts en dapps?

Het mining-proces van Ethereum

Ether-transacties

ERC20-standaard

Ethereum-adressen

GAS-kosten

GAS-limiet en GAS-prijs

Van Proof of Work naar Proof of Stake

 

Transactieblokken

Elke nieuwe transactie wordt vastgelegd in een nieuw blok, dat is verbonden met eerdere en toekomstige blokken van de blokketen. Wanneer iemand met een transactieblok zou willen frauderen, dan is dit erg lastig. De fraudeur zou dan namelijk alle voorgaande en volgende transactieblokken moeten manipuleren. De vergoeding voor het uitvoeren van transacties wordt gebruikt als stimulans voor de ‘crypto-miners’, om nieuwe transacties te verifiëren en tegelijkertijd de Ethereum-blockchain te beveiligen. Na het genereren van nieuwe transactie-blokken binnen het netwerk, worden de miners beloond met een bepaalde hoeveelheid ether.

Ethereum logo

 

Ethereum Virtual Machine

De crypto-miners en de beloning in ether zijn erg belangrijk voor de beveiliging van Ethereum-transacties. Met behulp van een speciaal blockchain-protocol (Proof of Work) controleren de miners continu of de transacties legitiem zijn en leveren daarvoor ook het bewijs. Door deze Proof of Work blijven transacties op de Ethereum-blockchain veilig en gedecentraliseerd. Ether is dan ook de drijvende kracht achter de transacties en dapps die op het netwerk van Ethereum worden uitgevoerd. De Ethereum-blockchain maakt gebruik van de zogenaamde Ethereum Virtual Machine (EVM), een digitale omgeving waarbinnen scripts worden uitgevoerd en de ‘regels’ voor de berekening van nieuwe geldige transactie-blokken worden gedefinieerd. De EVM zorgt ervoor dat transacties, dapps en smart contracts op de juiste manier worden uitgevoerd.

 

Statusverandering

De EVM is één enkele virtuele machine die wordt onderhouden op talloze actieve nodes (knooppunten) binnen de Ethereum-blockchain. Wanneer iemand een transactie uitvoert dan verandert de ‘status’ van de Ethereum Virtual Machine. Deze ‘statusverandering’ moet worden gecommuniceerd naar alle nodes binnen het netwerk, zodat alle knooppunten kunnen worden bijgewerkt en over exact dezelfde transactie-informatie beschikken. Het Ethereum-protocol maakt gebruik van smart contracts (digitale overeenkomsten) die gecodeerde instructies kunnen communiceren naar de EVM. Hierbij wordt bytecode uitgevoerd als een set EVM-opcodes die standaard bewerkingen uitvoeren. De smart contracts worden enkel en alleen uitgevoerd, wanneer aan alle vooraf in het contract gedefinieerde voorwaarden is voldaan.

 

 

Smart contracts

De smart contracts kunnen worden gebruikt om overeenkomsten tussen verschillende deelnemers geautomatiseerd te bekrachtigen. Het zijn in principe geautomatiseerde computerprogramma’s die workflows kunnen voortzetten door een volgende instructie of opdracht uit te voeren, wanneer aan de voorwaarden uit het smart contract is voldaan. De precieze taken die het smart contract moet uitvoeren zijn geschreven in smart contract-code. In de programmeerinstructies is exact beschreven wat er op welk moment moet gebeuren. Voor het schrijven van de smart contract-code die door de EVM kan worden verwerkt, maakt de Ethereum-blockchain gebruik van verschillende programmeertalen, waaronder Solidity, LLL, Vyper, JavaScript, Python, C++ en Rust. Solidity is de meest gebruikte scripttaal omdat deze de meest geavanceerde compiler heeft.

 

Dapps

Vanwege de smart contract-functionaliteit wordt Ethereum door veel mensen beschouwd als het meest stabiele en schaalbare blockchainnetwerk van allemaal. Ether wordt gezien als een veelbelovende cryptocurrency. Alle decentrale applicaties van Ethereum – de dapps – zijn volledig gebaseerd op de EVM en de smart contract-functionaliteit. Dapps zijn het gedeelte van de software dat samenwerkt met het blockchainnetwerk en ‘regelen’ de ‘status’ van alle netwerkleden. De smart contracts overleggen de ‘kernlogica’ van de dapps. De gebruikersinterface van gedecentraliseerde applicaties is vrijwel identiek aan een gewone website of mobiele app. De front-end van een dapp is gebouwd om weer te geven wat Ethereum-gebruikers zullen zien. De back-end is gebouwd voor de ‘bedrijfslogica’, die niet zichtbaar is voor gebruikers. De bedrijfslogica van decentrale applicaties wordt weergegeven door smart contracts, die een interactie aangaan met het onderliggende blockchain-protocol.

 

Wat is het verschil tussen smart contracts en dapps?

Veel mensen denken dat smart contracts en dapps precies hetzelfde zijn, maar dat is niet zo. Dapps zijn als het ware door blockchaintechnologie aangedreven websites en smart contracts werken als Application Programming Interfaces (API’s) die de decentrale applicaties verbinden met het blockchainnetwerk. In feite is een smart contract een klein stukje dapp in de vorm van bytecode. In dapps draait de backend-code ‘bovenop’ het gedecentraliseerde programma. Een dapp maakt dus gebruik van smart contracts om te kunnen functioneren. Dapps zijn een combinatie van smart contracts en front-end-functionaliteiten die werken als een compleet computerprogramma.

 

Ethereum, ether

 

Het mining-proces van Ethereum

Net zoals de cryptocurrency Bitcoin worden transacties op de Ethereum-blockchain gevalideerd met behulp van een mining-proces. Net zoals het Bitcoin-netwerk maakt ook het netwerk van Ethereum gebruik van het ‘consensus-protocol’ Proof of Work (PoW). Bij dit consensus-mechanisme leveren crypto-miners computerkracht aan het netwerk waarmee de zware cryptografische berekeningen kunnen worden uitgevoerd, die nodig zijn om nieuwe blokken aan de blokketen te kunnen toevoegen. Voordat er een nieuw transactieblok aan de blockchain wordt toegevoegd, moet er binnen het netwerk consensus (overeenstemming) zijn over de geldigheid van het nieuwe blok. Door het mining-proces en de cryptografische berekeningen kan de legitimiteit van nieuwe transacties worden gewaarborgd en wordt de blockchain beveiligd tegen aanvallen. De PoW zorgt ervoor dat er consensus bestaat over rekeningsaldi en voorkomt dat ether dubbel kan worden gespendeerd.

 

 

Minen van ether

In principe kan iedereen die dat wil ether minen op de Ethereum-blockchain. De mining-software kan op iedere computer worden geïnstalleerd. Maar om echt winstgevend te kunnen zijn en grote hoeveelheden ether te kunnen verdienen, moet een crypto-miner beschikken over speciale krachtige mining-hardware: de zogenaamde mining-rigs. Een computer die niet krachtig genoeg is levert niet voldoende ‘hashrate’ aan het netwerk en kan ook niet genoeg ‘hashes’ uitvoeren, om cryptografische puzzels op te lossen en nieuwe blokken te genereren. De eventuele magere beloningen met ETH staan dan niet meer in verhouding tot de hoge kosten en de hoeveelheid geleverde inspanningen aan het mining-proces. Niet alleen zijn er hoge kosten verbonden aan de aanschaf en het onderhoud van mining-rigs, maar ook de elektriciteitskosten zijn enorm hoog. Daarom stapt Ethereum over van Proof of Work naar een ander soort consensus-protocol: Proof of Stake.

Ethereum mining, ether

 

Ether-transacties

Als een Ethereum-gebruiker een transactie met ether wil uitvoeren dan ondertekent deze gebruiker het transactieverzoek met de private sleutel van zijn of haar account. Het transactieverzoek wordt vervolgens door de gebruiker verzonden vanaf een node naar alle andere nodes binnen het blockchainnetwerk. Op het moment dat het nieuwe transactieverzoek naar de nodes is gecommuniceerd, dan voegt iedere node het verzoek toe aan hun lokale ‘mempool’. Dit is een lijst met alle transactieverzoeken die binnen het netwerk circuleren, maar die nog niet in een transactieblok zijn vastgelegd. Een crypto-miner voegt talloze transactieverzoeken samen in een potentieel transactieblok en verifieert vervolgens de geldigheid van ieder transactieverzoek. Als alle transactieverzoeken zijn geverifieerd, dan worden ze uitgevoerd op de lokale EVM-kopie van de nodes. Met behulp van de Proof of Work zal uiteindelijk het voltooide transactieblok met de specifieke transactie, door de crypto-miner aan de blockchain worden toegevoegd.

 

Canonieke status

De Proof of Work zorgt voor een nieuwe EVM-status, die vervolgens door de andere nodes binnen de Ethereum-blockchain wordt geverifieerd. Na de verificatie voeren de nodes alle transacties uit op hetzelfde blok. Hierbij zit ook de specifieke transactie van de Ethereum-gebruiker. De nodes controleren of de controlesom van de nieuwe EVM-status na de uitvoering van alle transacties, overeenkomt met de controlesom van de status, die wordt geclaimd door het transactieblok van de crypto-miner. Als dit klopt dan voegen de nodes dit nieuwe blok toe aan de blokketen en accepteren ze de nieuwe EVM-status als zogenaamde ‘canonieke status’. Met andere woorden: de transactie wordt door het netwerk geaccepteerd als ‘uniek’ en geldig. De canonieke blokketen is altijd de langste van de concurrerende ketens.

Blockchain

EVM-kopie

Nadat het nieuwe blok aan de blockchain is toegevoegd, verwijderen de nodes alle transacties in het nieuwe blok uit hun lokale geheugen van ‘onvervulde’ transactieverzoeken. Nieuwe nodes die worden aangesloten op de Ethereum-blockchain, downloaden alle transactieblokken in de juiste volgorde, inclusief het transactieblok dat de specifieke transactie van de Ethereum-gebruiker bevat. Vervolgens laden de nodes een lokale EVM-kopie en doorlopen ze het hele proces van het uitvoeren van elke transactie, in ieder transactieblok bovenop hun lokale EVM-kopie. Daarbij worden de ‘statuscontrolesommen’ bij elk blok geverifieerd. Ieder transactieblok bevat een identificatie van de keten die eraan voorafgaat.

 

ERC20-standaard

Ether is de intrinsieke cryptocurrency van Ethereum waarmee transacties kunnen worden uitgevoerd, maar ETH kan ook worden gebruikt om andere op Ethereum gebaseerde tokens te creëren. Op de Ethereum-blockchain worden inmiddels duizenden verschillende tokens gebruikt. Echter zijn ze niet allemaal even succesvol. Deze tokens voldoen aan de zogenaamde ERC20-standaard, die speciaal voor het netwerk van Ethereum is ontwikkeld. Ether kan worden aangeschaft via een cryptobeurs of een crypto-wallet.

 

Ethereum-adressen

Ieder Ethereum-gebruikersaccount heeft een ETH-saldo en kan ether naar andere gebruikersaccounts verzenden. Om geldig te zijn moet een Ethereum-transactie worden ondertekend met een privésleutel van het account van de verzender van de ether. Dit is een hexadecimale tekenreeks van 64 tekens, waarvan het adres van het gebruikersaccount is afgeleid. Bij Ethereum zijn twee soorten accounts: de gebruikersaccounts en de contracten. Beide accountvormen beschikken over ETH-saldi, kunnen ether versturen, de openbare functie van een contract aanroepen en nieuwe contracten maken. De identificatie van de accounts gebeurt met behulp van een ‘accountadres’. Deze adressen zijn samengesteld uit het voorvoegsel ‘0x’ en de meest rechtse 20 bytes van de zogenaamde ‘Keccak-256-hash’ van de openbare ‘ECDSA-sleutel’. ECDSA staat voor ‘Elleptic Curve Digital Signature Algorithm’ en is een complex cryptografie-encryptie-algoritme voor publieke sleutels. Ethereum-adressen bevatten 40 hexadecimale cijfers. Voorbeelden van Ethereum-adressen zijn:

 

0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7

0x220866b1a2219f40e72f5c628b65d54268ca3a9d

0x8103683202aa8da10536036edef04cdd865c225e

0x1db92e2eebc8e0c075a02bea49a2935bcd2dfcf4

0x19184ab45c40c2920b0e0e31413b9434abd243ed

0x8b83b9c4683aa4ec897c569010f09c6d04608163

 

GAS-kosten

De kleinste eenheid van ETH wordt ‘WEI’ genoemd. Eén WEI is gelijk aan 10−18 ETH. Bij het uitvoeren van transacties binnen de Ethereum-blockchain speelt het zogenaamde ‘GAS’ een hele belangrijke rol. Dit GAS is een rekeneenheid binnen de Ethereum Virtual Machine, die wordt gebruikt bij de berekening van de transactiekosten. Deze transactiekosten zijn het bedrag aan ether dat de verzender van een transactie betaalt als beloning, aan de crypto-miner die de transactie aan de blockchain toevoegt. Iedere bewerking die door de EVM kan worden uitgevoerd is gecodeerd met een bepaalde hoeveelheid aan GAS-kosten. Deze GAS-kosten zijn evenredig aan de hoeveelheid inspanningen (computerberekeningen en opslag) die een crypto-miner moet leveren, om de transactie te valideren. Op het moment dat iemand een transactie wil verzenden op de Ethereum-blockchain, dan moet hij of zij een ‘GAS-limiet’ en een ‘GAS-prijs’ specificeren.

 

 

GAS-limiet en GAS-prijs

De GAS-limiet is de maximale hoeveelheid GAS die de verzender bereid is te verbruiken bij een transactie. De GAS-prijs is de hoeveelheid ether die de verzender aan de crypto-miner wil betalen per verbruikte eenheid GAS. Daarbij geldt het principe: hoe hoger de GAS-prijs, hoe meer crypto-miners worden gestimuleerd om de desbetreffende transactie in hun blok op te nemen. Dat betekent doorgaans dat de transactie ook sneller kan worden uitgevoerd. De verzender van een transactie koopt de volledige gewenste hoeveelheid GAS (de GAS-limiet) voordat de transactie wordt uitgevoerd. Het GAS dat niet wordt verbruikt – het GAS dat dus niet nodig is om de transactie te voltooien – wordt na de uitvoering van de transactie aan de verzender terugbetaald. Soms kan het gebeuren dat er voor een bepaalde transactie niet voldoende GAS beschikbaar is. In dat geval wordt de transactie teruggedraaid. De verzender betaalt echter wél nog steeds voor het verbruikte GAS. De GAS-prijzen worden uitgedrukt in ‘GWEI’, een subeenheid van ether en is gelijk aan 10−9 ETH. Het aantal GAS-eenheden wordt zeer nauwkeurig bijgehouden.

Ethereum, ether

 

Van Proof of Work naar Proof of Stake

Omdat het mining-proces gepaard gaat met een zeer hoog energieverbruik – en dus allesbehalve milieuvriendelijk is – schakelt de Ethereum-blockchain over van Proof of Work (PoW) naar Proof of Stake (PoS). Deze PoS is net zoals PoW een consensus-mechanisme om transacties te valideren, maar bij PoS wordt geen gebruik meer gemaakt van crypto-miners. In plaats daarvan wordt gebruikgemaakt van zogenaamde ‘validators’. Ethereum-gebruikers zetten hun ether in als ‘stake’ om nieuwe transactieblokken te genereren. De stake wordt vervolgens gebruikt als onderpand en malafide deelnemers kunnen hun ether kwijtraken als ze blockchain-transacties proberen te manipuleren. Bezitters van ether valideren de transactieblokken op basis van de hoeveelheid ETH die zij als onderpand hebben ingezet.

 

Sharding

De validators worden willekeurig geselecteerd om nieuwe blokken te valideren. Hoe meer validators, hoe veiliger het blockchainnetwerk is. Om validator te worden bij de Ethereum-blockchain moet er een minimale hoeveelheid van 32 ETH als stake worden ingezet. Transactieblokken worden gevalideerd door meerdere validators en wanneer een specifiek aantal validators verifiëren dat het transactieblok geldig is, dan wordt het aan de blokketen toegevoegd. Er kunnen verschillende PoS-protocollen worden gebruikt voor het validatieproces. Ethereum zal zogenaamde ‘shards’ gaan gebruiken voor het indienen van transacties. ‘Sharding’ verwijst naar het opsplitsen van de hele Ethereum-blockchain in meerdere delen: de shards. Daarbij bevat iedere shard zijn eigen onafhankelijke ‘staat’. Een validator verifieert de transacties en voegt ze toe aan een ‘shard-blok’, waarvoor minimaal 128 validators moeten ‘getuigen’. Zodra de shards zijn gevalideerd en het transactieblok is gecreëerd, dan moet tweederde van de validators ermee instemmen dat de desbetreffende transactie geldig is. Vervolgens kan het blok aan de blockchain worden toegevoegd.

 

Validators kunnen hun ether verliezen

In tegenstelling tot de crypto-miners die voor de Proof of Work zorgen, hoeven de validators bij Proof of Stake geen enorme hoeveelheden computerkracht – en dus energie – te leveren, omdat ze willekeurig worden geselecteerd. Ook hoeven de validators niet onderling met elkaar te concurreren zoals bij de crypto-miners. De validators hoeven immers geen transactieblokken te minen. Ze hoeven alleen blokken te creëren als ze worden gekozen. De validators ontvangen hun beloning in ether voor het voorstellen van nieuwe transactieblokken en voor het bevestigen van degenen die ze hebben gezien. Wanneer een validator ‘getuigt’ van malafide transactieblokken, dan kan hij zijn hele ingezette stake verliezen. Dit gegeven zorgt ervoor dat validators niet snel bereid zullen zijn om ongeldige blokken te bevestigen.

 

Meer gedecentraliseerd

De overgang van Proof of Work naar Proof of Stake is niet alleen bedoeld om een milieuvriendelijker en duurzamer blockchainnetwerk te creëren, maar moet ook de schaalbaarheid van Ethereum gaan vergroten. Doordat er bij PoS geen dure en krachtige hardware nodig is kunnen meer mensen transactieblokken gaan genereren en wordt de blockchain beter bestand tegen centralisatie. Met PoS kunnen meer nodes aan het netwerk worden toegevoegd, waardoor de Ethereum-blockchain nog meer wordt gedecentraliseerd.

 

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).