Nu Ethereum definitief is overgegaan van Proof of Work (PoW) naar Proof of Stake (PoS) wordt verwacht dat nog meer mensen gebruik zullen gaan maken van het blockchainplatform. De crypto-miners die deelnamen aan het transactievalidatieproces en hun mining-activiteiten willen voortzetten, zullen op zoek moeten naar alternatieve blockchainnetwerken zoals bijvoorbeeld Ethereum Classic (ETC), Bitcoin (BTC), Dogecoin (DOGE), Litecoin (LTC), Dash, (DASH) Decred (DCR), Zcash (ZEC) of een van de vele andere Proof of Work blokketens. De overschakeling van PoW naar PoS (The Merge) was een belangrijke stap van Ethereum om de schaalbaarheid van het gedistribueerde netwerk de komende jaren aanzienlijk de vergroten. Het platform werkt nu verder aan verschillende schaaloplossingen die de snelheid, verwerkings- en opslagcapaciteit zullen verbeteren en de toegangsdrempels voor gebruikers verlagen.
Crypto-miners worden vervangen door validators
Het Proof of Stake consensus-mechanisme op de Ethereum-blockchain is een totaal andere aanpak van het valideren van blokken, dan bij Proof of Work het geval was. De transacties worden nu niet meer bevestigd door crypto-miners, maar door ‘validators’ die de blokken controleren en toevoegen aan het blockchainnetwerk. Iedere deelnemer die nieuwe blokken aan de blokketen wil toevoegen, moet minstens 32 ETH (de cryptocurrency van Ethereum) inbrengen in het netwerk. Deze ‘stake’ wordt ingezet met behulp van een digitaal stortingscontract en speciaal ontworpen ‘validatorsoftware’, die relatief eenvoudig op een gewone computer kan worden uitgevoerd. Op willekeurige wijze selecteert het blockchain-protocol een aantal validators om blokken voor te stellen, die vervolgens weer door andere validators in het netwerk nauwkeurig worden gecontroleerd en toegevoegd aan de blokketen.
Fork-keuzeregels
Als het blockchainnetwerk op de juiste manier functioneert, dan kan er in principe maar 1 nieuw blok boven aan de blokketen staan. Dit blok wordt door alle geselecteerde validators bevestigd. Er zijn echter situaties die ertoe kunnen leiden dat meerdere blokken zich op precies dezelfde positie in de buurt van de ‘kop’ van de blokketen bevinden. In dat geval worden er twee of meer blokken geproduceerd die verwijzen naar exact hetzelfde bovenliggende blok. Deze situatie kan zich voordoen bij vertragingen in het netwerk, maar er kunnen ook oneerlijke validators actief zijn die het validatieproces doelbewust proberen te beïnvloeden. De nodes binnen het netwerk moeten dan één van deze blokken selecteren als het juiste (canonieke) blok, omdat conflicterende blokken elkaar wederzijds uitsluitende transacties kunnen bevatten. Om dit probleem op te lossen gebruikt het blockchainnetwerk een speciaal algoritme dat slechts 1 canonieke set blokken selecteert. Het blockchain-protocol hanteert daarbij een bepaalde reeks regels, die de blockchain-nodes dan meestal zullen volgen. Deze regels worden aangeduid als ‘Fork-keuzeregels’.
Langste kettingregel
De Fork-keuzeregels hanteren onder meer de zogenaamde ‘langste kettingregel’. Daarbij worden de blokken geselecteerd die de ‘zwaarst’ mogelijke blokketen vormen. De zwaarte van de keten wordt ingegeven door het aantal validators die de blokken hebben bevestigd en de hoeveelheid ETH die zij als stake hebben ingezet. Binnen het Proof of Stake-protocol op de Ethereum-blockchain zit een mechanisme ingebakken waarbij eerlijke validators worden beloond met ETH en oneerlijke validators hun ingezette ETH juist kunnen kwijtraken. Hierdoor worden de validators in het netwerk continu gestimuleerd om legitiem te handelen. Dit mechanisme draagt bij aan de beveiliging van het netwerk.
Schaalbaarheidsproblemen
De voornaamste doelstelling van blockchaintechnologie is het ontwikkelen van een digitaal, betrouwbaar en veilig gedistribueerd digitaal ecosysteem, waarin interacties tussen gebruikers mogelijk worden gemaakt zonder de bemoeienis van een centrale autoriteit. Er is dus geen sprake meer van een centrale bestuursautoriteit en alle deelnemende nodes in het netwerk hebben dezelfde rechten. De ecosystemen worden automatisch bestuurd door de blockchain-protocollen. De afgelopen jaren is het aantal nodes binnen de verschillende blockchainnetwerken enorm toegenomen. Dat heeft geleid tot de nodige schaalbaarheidsproblemen, waardoor blockchaintoepassingen voorlopig nog niet geschikt zijn om op grote schaal in het bedrijfsleven te worden geïntegreerd. Aanvankelijk richtte blockchaintechnologie zich vooral op financiële toepassingen, maar al snel werd duidelijk dat de decentralisatie, de transparantie en het permanente (onveranderbare) karakter van blockchain-applicaties (dApps), de deur openden voor tal van nieuwe zakelijke en niet-zakelijke mogelijkheden.
Complexe tak van sport
Het ontwikkelen van dApps is een complexe tak van sport. In de eerste plaats zijn blockchainnetwerken kwetsbaar voor aanvallen van hackers, die op verschillende manieren proberen om de blockchain-protocollen te compromitteren. Daarnaast zijn er ook nog niet voldoende tools beschikbaar om echt innovatieve en in de praktijk bruikbare dApps te creëren. Blockchain-schaalbaarheid is niet in één zin te duiden. De mate van schaalbaarheid wordt bepaald door verschillende factoren zoals bijvoorbeeld:
Transactiekosten
Op sommige blockchain-platformen zijn de kosten erg hoog. Naarmate de populariteit van blockchaintechnologie toenam – vooral ingegeven door crypto-activa zoals Bitcoin en ETH – werden de validatieprocessen van transacties steeds complexer. Hierdoor was er ook steeds meer rekenkracht binnen de netwerken nodig, om het Proof of Work mining-proces te kunnen laten plaatsvinden. Door de toegenomen drukte op de netwerken blijven transacties vaak lang in de ‘wachtrij’ staan voordat ze worden verwerkt. Om de transacties toch sneller te kunnen uitvoeren betalen gebruikers meestal veel hogere transactiekosten, waardoor het uitvoeren van transacties op de blockchain veel minder aantrekkelijk wordt.
Netwerkcapaciteit
Blockchaintechnologie biedt nieuwe mogelijkheden voor de opslag, verwerking en beveiliging van informatie. Daarom richtten steeds meer blockchaintoepassingen zich op de integratie met IoT. In 2025 zullen er ruim 41 miljard IoT-apparaten op het internet zijn aangesloten, waardoor de noodzaak sterk toeneemt om al die data op een adequate manier te beveiligen. Met behulp van blockchaintechnologie zouden al deze apparaten met beperkte middelen, een integraal onderdeel kunnen vormen van blockchain-ecosystemen. Echter is de huidige blockchain-capaciteit daar nog niet voldoende op toegerust.
Netwerklatentie
Netwerklatentie verwijst naar de tijdsvertraging tussen de input (invoer) en de ontvangen output (uitvoer). Doordat er enorm veel informatie moet worden verzonden naar alle nodes binnen het gedistribueerde netwerk, worden veel netwerkbronnen gebruikt en ontstaan er vaak vertragingen in dataoverdracht.
Throughput
De throughput verwijst naar de doorvoertijd die nodig is om één enkele transactie binnen het netwerk te bevestigen, maar ook naar de grootte van een specifiek blok op de blockchain. Naarmate de hoeveelheid blockchain-transacties toeneemt, neemt ook de grootte van de blokken toe. En dat betekent dat er veel meer middelen nodig zijn om de transacties in goede banen te leiden. Iedere transactie binnen de blockchain doorloopt een validatieproces. Voordat een transactie kan plaatsvinden worden ze meestal een lange tijd in de wachtrij geplaatst. De wachttijd voor validatie neemt toe naarmate het drukker wordt op het netwerk en er dus meer transacties worden aangeboden. De ‘reactietijd’ is sterk verbonden met de hoogte van de transactiekosten. Doorgaans geldt: hoe hoger de transactiekosten, hoe sneller een transactie door het blockchain-protocol wordt gevalideerd. Deze lange responstijd draagt bij aan de schaalbaarheidsproblemen van blockchaintechnologie.
Waarborgen van de veiligheid en het vertrouwensniveau
Ethereum werkt momenteel aan verschillende schaaloplossingen, die deze beperkingen in de komende jaren moeten gaan verhelpen. Het oplossen van het schaalbaarheidsprobleem is nodig om ervoor te zorgen, dat het digitale ecosysteem niet uit zijn voegen barst en omvalt. Bovendien moet de Ethereum-blockchain in staat blijven om alle gegevens die binnen het netwerk worden verzonden nauwkeurig bij te houden, om zo de veiligheid en het vertrouwensniveau te kunnen waarborgen. Technische aanpassingen aan blockchain-protocollen mogen dan ook geen negatieve invloed uitoefenen op de beveiligingsaspecten van publiek toegankelijke gedecentraliseerde netwerken. Naast openbare (permissionless) blockchainnetwerken – zoals Ethereum – zijn er ook private (permissioned) blockchainnetwerken. Deze blockchains zijn niet vrij toegankelijk en er is altijd een controlerende partij bij betrokken om de gebruikerstoegang te autoriseren. Deze permissoned blockchains bieden weliswaar niet altijd duidelijkheid over de mate van decentralisatie, maar wel kunnen deze netwerken mogelijk deels een antwoord bieden op de schaalbaarheidsproblemen.
Wat is het blockchain trilemma?
Op het moment dat er binnen een openbare, populaire (en dus drukke) blockchain overeenstemming (consensus) moet worden bereikt over de geldigheid van een bepaalde transactie, dan heeft het netwerk meestal meer tijd nodig om die consensus te bereiken. Met andere woorden: de schaalbaarheid neemt af naarmate de decentralisatie toeneemt. Binnen de blockchain-community wordt vaak gesproken van het zogenaamde ‘blockchain trilemma’. Dit trilemma heeft betrekking op het feit dat het erg lastig is – volgens sommige experts binnen de community zelfs onmogelijk – om de factoren decentralisatie, beveiliging en schaalbaarheid tegelijkertijd te optimaliseren. Het trilemma verwijst naar de overtuiging dat blockchains op ieder moment maar slechts twee van deze drie factoren kunnen optimaliseren. Als een blockchainnetwerk volledig decentraal en schaalbaar is, dan zijn er meestal veiligheidsproblemen. Wanneer een blockchain schaalbaar en veilig is, dan is het netwerk meestal niet volledig gedecentraliseerd. Als een blockchainnetwerk volledig gedecentraliseerd en veilig is, dan is de schaalbaarheid meestal beperkt. Het optimaliseren van twee factoren heeft dus in principe bijna altijd invloed op de derde factor. Met andere woorden: het vergroten van de schaalbaarheid doet vaak afbreuk aan het veiligheidsniveau of de decentralisatie van het netwerk.
Welke schaaloplossingen worden er ontwikkeld voor de Ethereum-blockchain?
Het blockchain trilemma vormt een grote uitdaging bij de ontwikkeling van solide, efficiënte, veilige en betrouwbare blockchain-ecosystemen. Blockchain-engineers werken op dit moment aan verschillende veelbelovende oplossingen, om de schaalbaarheid van de Ethereum-blockchain te verbeteren. Het overschakelen van Proof of Work naar Proof of Stake was een belangrijke stap om het netwerk verder klaar te stomen voor de toekomst. Het PoS-consensus-protocol zou de netwerkcapaciteit van de Ethereum-blockchain aanzienlijk kunnen vergroten, terwijl ook de decentralisatie en het veiligheidsniveau gewaarborgd blijven.
Wat betekent on-chain schalen?
Het Ethereum-platform bestaat niet alleen maar uit één enkel netwerk. Naast het primaire hoofdnetwerk van Ethereum (het Mainnet) bestaan er ook nog verschillende Ethereum-testnetwerken, private netwerken die worden ingezet door bepaalde samenwerkingsverbanden uit het bedrijfsleven en zogenaamde ‘parallelle netwerken’ die Ethereum aanvullen. Bij het implementeren van schaaloplossingen voor blockchain-ecosystemen, moet onderscheid worden gemaakt tussen ‘on-chain’ schalen en ‘off-chain’ schalen. On-chain schaaloplossingen worden geïmplementeerd in het hoofdnetwerk van Ethereum en worden meestal ‘layer 1-oplossingen’ genoemd. De wijzigingen worden dan aangebracht in het Ethereum-protocol zelf (in de eerste laag van het Ethereum-netwerk). Met andere woorden: er wordt geschaald binnen de keten. Een voorbeeld van on-chain schalen is ‘sharding’.
Wat betekent off-chain schalen?
Een andere manier van schalen is off-chain schalen. Bij deze schaalmethoden wordt er geschaald buiten de keten. Deze schaaloplossingen vereisen geen wijzigingen in het Ethereum-protocol, maar worden buiten het hoofdnetwerk geïmplementeerd. Bij off-chain schaaloplossingen worden meestal extra lagen op het platform gebouwd, zonder dat daarbij gebruik wordt gemaakt van het Ethereum-Mainnet. De belangrijkste gedachte achter off-chain schaaloplossingen is dat het hoofdnetwerk van Ethereum in principe alleen mag worden gebruikt als een vertrouwens- en arbitragelaag. Sommige off-chain oplossingen ontlenen hun beveiliging rechtstreeks aan het consensus-protocol van het Mainnet, maar er zijn ook off-chain oplossingen die voor hun beveiliging niet afhankelijk zijn van het hoofdnetwerk. Deze laatste schaaloplossingen gaan wél een interactie aan met het Mainnet, maar organiseren hun beveiliging op een andere manier. Off-chain schaaloplossingen worden meestal ‘layer 2-oplossingen’ genoemd, omdat de transacties worden verplaatst naar extra lagen die bovenop het hoofdnetwerk (de eerste laag) zijn gebouwd. Voor deze laag 2-schaalmethoden is meestal extra hardware en software nodig. Voorbeelden van off-chain schaaloplossingen zijn onder meer ‘sidechains’, ‘rollups‘, Plasma chains’ en ‘state channels’.
Wat zijn layer 2-schaaloplossingen?
Layer 2 is een verzamelnaam voor oplossingen die zijn ontworpen om decentrale applicaties te helpen schalen, door transacties buiten het Ethereum-hoofdnetwerk te verwerken en tegelijkertijd toch gebruik te maken van het veiligheids-protocol van het hoofdnetwerk. Wanneer er veel activiteit is op de Ethereum-blockchain – en er dus veel transacties moeten worden gevalideerd – dan heeft dat een negatieve invloed op de transactiesnelheid. Een lagere transactiesnelheid doet de gebruikerservaring van decentrale applicaties (dApps) over het algemeen geen goed. Een ander nadeel van een overbelast blockchainnetwerk is dat de gasprijzen stijgen, omdat gebruikers elkaar bij het verzenden van transacties proberen te overbieden. Dit is een van de voornaamste redenen van de soms exorbitante transactiekosten op de Ethereum-blockchain. Layer 2-schaaloplossingen verhogen de transactiesnelheid, verbeteren de gebruikerservaring en verminderen de netwerkcongestie. Bovendien kunnen transacties worden samengevoegd tot één enkele transactie en worden verzonden naar het hoofdnetwerk van Ethereum. Hierdoor kunnen de gaskosten aanzienlijk worden verlaagd en wordt het Ethereum-ecosysteem aantrekkelijker en toegankelijker voor gebruikers.
Verschillende layer 2-implementaties
De meeste layer 2-oplossingen zijn gebouwd rondom knooppunten (zoals bijvoorbeeld nodes). Deze knooppunten worden doorgaans beheerd door particulieren, bedrijven of andere partijen die ze gebruiken. Meestal worden blockchain-transacties naar deze layer 2-knooppunten verzonden, in plaats van rechtstreeks naar layer-1. Echter zijn er ook oplossingen waarbij de transacties door layer 2 in groepen worden verdeeld en vervolgens verankerd in het hoofdnetwerk (layer 1), waar de transacties permanent worden vastgelegd en beveiligd. Er zijn verschillende implementaties van laag 2-technologieën.
Wat is sharding?
Binnen de Ethereum-community geven de meeste leden de voorkeur aan off-chain schaaloplossingen, boven on-chain oplossingen. De voornaamste reden daarvoor is dat het schalen buiten de keten de decentralisatie beter kan waarborgen. Bovendien is het schalen binnen de keten technisch gezien erg complex, omdat er wijzigingen moeten worden aangebracht aan het kernprotocol van Ethereum. Desondanks werkt Ethereum momenteel aan een veelbelovende innovatieve on-chain schaaloplossing: sharding. Bij sharding worden de transacties opgesplitst in kleinere datasets die shards (scherven) worden genoemd. Deze ‘shard-ketens’ worden door het gedistribueerde netwerk tegelijkertijd parallel verwerkt, waardoor meer transacties kunnen worden gevalideerd. Met sharding kan de transactiedata over verschillende nodes binnen het netwerk worden verdeeld, terwijl de consistentie van die specifieke informatie wordt gegarandeerd. Hierdoor kan netwerkcongestie beter worden tegengegaan en kan de TPS (transacties per seconde) aanzienlijk worden verhoogd. De shards geven het netwerk in feite meer capaciteit om informatie op te slaan en te verwerken.
Cross-shard-communicatieprotocollen
Met behulp van sharding hoeft niet iedere validator alle informatie op te slaan, waardoor de belasting op de validators wordt verminderd. Met sharding kunnen de transactiegegevens over verschillende nodes worden verdeeld, terwijl de consistentie van de gegevens gewaarborgd blijft. De shards dienen in principe als bewijs (proof) voor de hoofdketen en zorgen voor de interactie met elkaar voor het delen van informatie zoals bijvoorbeeld adressen, status en ETH-saldi. Daarbij wordt gebruikgemaakt van zogenaamde ‘cross-shard-communicatieprotocollen’, die voor de juiste manier van informatieoverdracht zorgen. De cross-shards stellen de gebruikers in staat om te interageren met meerdere shards.
Wat is danksharding?
Sharding wordt beschouwd als een efficiënte schaaloplossing die de decentralisatie van blockchain-transacties bevordert en de veiligheid vergroot. Een variatie op sharding is het zogenaamde ‘danksharding’. Danksharding is een techniek waarmee nodes (of andere knooppunten binnen het netwerk) grote hoeveelheden informatie kunnen verifiëren door maar enkele stukjes data te gebruiken. Hierdoor wordt de Ethereum-blockchain in staat gesteld om veel meer informatie te verwerken dan eerder mogelijk was. Bij danksharing hebben de shards maar één enkele blokaanbieder in plaats van verschillende blokaanbieders, zoals bij het originele sharding-proces het geval is. De blokbouwers hebben vervolgens de plicht om de gegevens en transacties te kiezen, die in ieder ‘slot’ van een transactieblok gaan.
Blokaanbieders vs blokbouwers
Het verschil tussen blokaanbieders en blokbouwers is dat de blokaanbieders de zogenaamde ‘transactieheaders’ selecteren die aan het blok moeten worden toegevoegd en moeten worden uitgezonden. Blokbouwers daarentegen zorgen voor de daadwerkelijke blokconstructie. De bouwers voegen de transacties samen in zogeheten ‘slots’, zodat ze aan een bepaald blok kunnen worden toegevoegd. Vervolgens worden de blokken door de blokbouwers voorgelegd aan de blokaanbieder om te worden geselecteerd. Nadat een blokaanbieder een blok met succes heeft geselecteerd, wordt het blok door de blokbouwers verder verwerkt.
Wat zijn shard-blobs?
Bij danksharding wordt geen gebruikgemaakt van ‘shard-ketens’, maar van ‘shard-blobs’ om de informatie te fragmenteren (opsplitsen). Blob staat voor ‘Binary Large Objects’ en is een verzameling binaire gegevens, die als één enkele entiteit is opgeslagen. De blobs – die bestaan uit een body en een header – worden voorgesteld door de blokaanbieders. In de body worden de gegevens opgeslagen die direct betrekking hebben de transacties. In de header worden kleinere stukjes informatie opgeslagen zoals bijvoorbeeld handtekeningen. De Ethereum Virtual Machine (EVM) heeft in principe alleen toegang tot de gegevens die in de blobs zijn opgeslagen en niet tot de blobs zelf. Dat komt doordat de transacties bij danksharding niet in de gebruikelijke mempool worden opgeslagen, maar in een andere mempool. Sharding en danksharding zijn ingewikkelde concepten, maar worden zeker gezien als zeer interessante schaaloplossingen voor het Ethereum-platform.
Wat zijn rollups?
Rollups zijn geavanceerde ‘layer 2-oplossingen’ waarmee decentrale applicaties transacties kunnen samenvoegen of ‘oprollen’, in één enkele transactie buiten de keten (off-chain). Vervolgens kunnen de dApps een cryptografisch bewijs genereren (proof) en dit bewijs vervolgens indienen bij het hoofdnetwerk van Ethereum. Op het hoofdnetwerk (het Mainnet) wordt vervolgens consensus over de transactie bereikt. Omdat het consensus-mechanisme op laag 1 plaatsvindt en de transacties zijn opgenomen in laag 1-blokken, worden de rollups beveiligd door het blockchain-protocol van Ethereum. Rollups kunnen worden gecombineerd met sharding waardoor nog meer informatie kan worden uitgewisseld en verwerkt en het aantal transacties per seconden nog verder omhoog kan. Ook rollups kennen verschillende variaties. Zo zijn er de zogenaamde ‘optimistic rollups’ en de zogeheten ‘zero-knowledge rollups’. Deze rollups hebben allebei een ander beveiligingsmodel.
Wat zijn optimistic rollups?
Optimistic rollups zijn speciaal ontworpen om de doorvoer van de hoofdlaag van het Ethereum-platform verder uit te breiden. Deze rollups verminderen de berekeningen op het Ethereum-Mainnet door bloktransacties buiten de keten (dus off-chain) te verwerken, waardoor transacties sneller kunnen worden gevalideerd. De optimistic rollups ontlenen hun beveiliging wél aan het hoofdnetwerk van Ethereum, door de transactieresultaten binnen de keten (dus on-chain) te publiceren. De rekenprocessen op de Ethereum-blockchain zijn complex en kosten tijd. Doordat optimistic rollups ervoor zorgen dat de berekeningen op het hoofdnetwerk worden verminderd, kan de schaalbaarheid aanzienlijk worden verbeterd. Ook kunnen met deze schaaloplossing de gaskosten voor gebruikers flink worden verlaagd.
Off-chain virtual machine
Bij optimistic rollups worden verschillende transacties buiten de keten samengevoegd in grote ‘batches’, voordat ze worden ingediend bij het Mainnet. Hierdoor kunnen de vaste transactiekosten worden gespreid over meerdere transacties in iedere batch, waardoor de uiteindelijke kosten voor transactieverzenders sterk kunnen worden gereduceerd. Bij optimistic rollups wordt ook gebruikgemaakt van verschillende data-compressiemethoden, om de hoeveelheid informatie die op het Ethereum-platform wordt gepubliceerd te verminderen. De optimistic rollups worden beheerd door smart contracts die op het Ethereum-Mainnet zijn geïmplementeerd. En hoewel deze smart contracts op het hoofdnetwerk worden uitgevoerd, voert het rollup-protocol de berekeningen en statusopslag uit op een andere virtuele machine buiten de keten. Deze off-chain virtuele machine staat volledig los van de EVM. De virtuele machine buiten de keten voert de decentrale applicaties en statuswijzigingen uit en dient in feite als de bovenste laag voor een optimistic rollup.
Wat zijn zero-knowledge rollups?
Een andere schaaloplossing zijn de zogenaamde zero-knowledge rollups (ook wel ZK-rollups genoemd). Dit is een off-chain layer 2-protocol dat bovenop het Mainnet is geplaatst en wordt beheerd door smart contracts die binnen de keten (dus on-chain) worden uitgevoerd. De zero-knowledge rollups voeren de transacties uit buiten het hoofdnetwerk van Ethereum (dus off-chain), maar verbinden transactie-batches aan een smart contract binnen de keten. De ZK-rollups verhogen de doorvoer op het hoofdnetwerk van Ethereum door de berekeningen off-chain uit te voeren en de statusopslag buiten de keten te verplaatsen. De ZK-rollups bundelen talloze overschrijvingen van data off-chain en genereren vervolgens een cryptografisch bewijs. Een voorbeeld van zo’n cryptografisch bewijs is een ‘zk-SNARK’.
Nulkennisbewijs
De rollups kunnen vele duizenden transacties in één enkele batch verwerken en hoeven vervolgens maar een kleine hoeveelheid gegevens naar het hoofdnetwerk te verzenden. Deze minimale hoeveelheid samenvattende gegevens omschrijven de exacte wijzigingen die moeten worden aangebracht in de status van Ethereum en het cryptografische bewijs (proof) dat de omschreven wijzigingen ook daadwerkelijk juist zijn. Een zero-knowledge-proof-protocol is een manier waarmee de ene partij (de partij die een bewering moet bewijzen) aan een andere partij (die de bewering moet verifiëren), kan bewijzen dat bepaalde informatie waar is, zonder daarbij extra informatie te onthullen. Het bevestigen of de bewering juist is is voldoende. Dit principe wordt ook wel ‘nulkennisbewijs’ genoemd.
Validiteitsbewijzen
Ook bij zero-knowledge rollups worden net zoals bij optimistic rollups verschillende transacties samengevoegd in batches, die buiten de keten worden uitgevoerd. Doordat ook hier de berekeningen off-chain plaatsvinden kan de hoeveelheid informatie die normaliter naar het Ethereum-Mainnet moet worden verzonden drastisch worden verminderd. Zogenaamde ‘zero-knowledge-operators’ dienen een samenvatting in van de specifieke wijzigingen die nodig zijn om alle in de batch opgeslagen transacties weer te geven, in plaats van dat iedere transactie apart moet worden verzonden. ZK-rollups produceren ook zogenaamde ‘validiteitsbewijzen’ om de juistheid van de wijzingen te kunnen bewijzen. Deze geldigheidsbewijzen tonen met cryptografische zekerheid aan, dat de voorgestelde wijzigingen in de Ethereum-status, ook daadwerkelijk het eindresultaat zijn van het uitvoeren van alle transacties in de batch.
Exacte status wordt onderhouden door een smart contract
De exacte status van een ZK-rollup wordt onderhouden door een smart contract op het Mainnet. Om deze status bij te werken moeten nodes het validiteitsbewijs (dat door cryptografische zekerheid wordt ondersteund) ter verificatie indienen. De zero-knowledge rollups hoeven alleen validiteitsbewijzen te leveren om transacties op de Ethereum-blockchain af te ronden, in plaats van alle transactiegegevens op het hoofdnetwerk te publiceren, iets dat bij optimistic rollups wel gebeurd. Optimistic rollups publiceren echter géén cryptografische validiteitsbewijzen voor transactiebatches die binnen de keten zijn gepubliceerd.
Call-data
Zero-knowledge rollups verzenden transacties naar de Ethereum-blockchain als zogenaamde ‘call-data’. Deze data heeft betrekking op de opslaglocatie van gegevens die zijn opgenomen in externe oproepen naar smart contract-functies. Deze informatie wordt gepubliceerd op het hoofdnetwerk van Ethereum, zodat de status van de rollup door iedere gebruiker kan worden gereconstrueerd. Net zoals bij optimistic rollups maken ook ZK-rollups gebruik van verschillende data-compressiemethoden, om de hoeveelheid transactiegegevens die op het Ethereum-platform worden gepubliceerd sterk te verminderen.
Smart contracts beheren het ZK-rollup-protocol
De smart contracts die op het Mainnet worden uitgevoerd spelen een zeer belangrijke rol bij de zero-knowledge rollups, omdat ze het ZK-rollup-protocol beheren. Ze bevatten het hoofdcontract dat onder meer de rollup-blokken opslaat, de ETH-stortingen bijhoudt en de statusupdates controleert. Een ander smart contract dat op het hoofdnetwerk wordt uitgevoerd – het zogeheten verificatiecontract – verifieert de zero-knowledge-proofs (nulkennisbewijzen), die zijn ingediend door de blokproducenten. Het ZK-rollup-protocol wordt weliswaar op het Ethereum-Mainnet uitgevoerd, maar de uitvoering van de transacties en de statusopslag vinden net zoals bij optimistic rollups plaats, op een externe virtuele machine die volledig onafhankelijk van de EVM functioneert. Deze off-chain virtuele machine is de uitvoeringsomgeving voor transacties en dient als een tweede laag voor het ZK-rollup-protocol. De eerdergenoemde cryptografische validiteitsbewijzen die worden geverifieerd op het hoofdnetwerk van Ethereum, garanderen de juistheid van statusovergangen van de virtuele machine buiten de keten.
Hybride schaaloplossingen
De zero-knowledge rollups worden beschouwd als hybride schaaloplossingen. Ze voeren taken uit buiten de keten (off-chain), maar hebben het hoofdnetwerk van Ethereum (on-chain) nodig om de transacties adequaat te beveiligen. Daarom zijn ZK-rollups in de basis veiliger dan schaaloplossingen die volledig buiten de keten worden uitgevoerd. De ZK-rollups hebben altijd het Mainnet nodig om een transactieproces af te ronden. Layer 2-transacties worden alleen afgerond als het smart contract op het hoofdnetwerk het cryptografische validiteitsbewijs accepteert. Hierdoor kan het risico dat malafide operators de keten op de een of andere manier compromitteren worden verminderd. Het Ethereum-protocol garandeert dat uitgevoerde gebruikersbewerkingen later niet meer kunnen worden teruggedraaid. Informatie die in de Ethereum-blockchain wordt vastgelegd, ligt permanent vast.
Wat zijn state channels?
Een andere schaaloplossing zijn de ‘state channels’. Dit zijn relatief eenvoudige P2P-protocollen, waarmee twee handelende partijen onderling veel transacties kunnen uitvoeren, maar waarvan in principe alleen de definitieve resultaten van transacties op het Mainnet worden geplaatst. Ook bij deze schaaloplossing vindt de meeste rekenbelasting plaats in een layer 2-netwerk in plaats van op het Mainnet. De channels maken gebruik van cryptografie om te bewijzen dat de samenvattende gegevens die ze produceren, ook daadwerkelijk het resultaat zijn van een geldige reeks tussentransacties. Deze schaaloplossingen maken gebruik van zogeheten ‘multisig-contracten’ om gebruikers in staat te stellen om snel transacties uit te voeren buiten de keten (off-chain), waarna de transacties worden afgerond op het hoofdnetwerk van Ethereum. Hierdoor kan netwerkcongestie worden verminderd, kunnen transactievertragingen worden geminimaliseerd en kunnen de transactiekosten aanzienlijk worden verlaagd. Naast een hoge doorvoer kennen state channels een hoge mate van privacy, omdat transacties niet publiekelijk worden uitgezonden. Alleen het openen en sluiten van de channels vindt op het Mainnet plaats.
Multisig-contract
Een multisig-contract is een smart contact met meerdere handtekeningen. Bij de uitvoering van deze contracten zijn meerderde handtekeningen nodig van verschillende adressen. Multisig-contracten helpen onder meer bij het voorkomen van ‘single points of failures’ en splitsen de verantwoordelijkheid voor het eigendom van adressen. Daarnaast zorgen de multisig-contracten ervoor dat alle transacties door de juiste partijen worden ondertekend.
Ondertekenen van de statusupdate
Als Ethereum-gebruikers een channel willen openen dan kunnen zij een channel-contract opzetten op het Mainnet en daar vervolgens een bepaalde hoeveelheid ETH in storten. De twee handelende partijen ondertekenen samen een ‘statusupdate’ om de channel-status te initialiseren. Vervolgens kunnen de twee partijen transacties uitvoeren buiten de keten (off-chain). Om het channel weer te sluiten moeten gebruikers de laatst overeengekomen status van het channel bij het Mainnet indienen. Daarna verdeelt het smart contract de vergrendelde ETH (volgens het saldo van iedere individuele gebruiker) in de eindstatus van het channel.
Openen en sluiten op het Mainnet
De state channels stellen Ethereum-gebruikers in staat om veilige transacties uit te voeren buiten de keten (off-chain), terwijl de interactie met het hoofdnetwerk tot een minimum wordt beperkt. Zogenaamde ‘channel peers’ kunnen een willekeurig aantal transacties buiten de keten uitvoeren, terwijl ze slechts twee transacties op het Mainnet indienen. Eén om het ‘channel’ te openen en één om het ‘channel’ te sluiten. Met state channels kan er een zeer hoge transactiedoorvoer worden bereikt en kunnen de transactiekosten aanzienlijk worden verlaagd. De state channels publiceren in principe geen transactiegegevens of status-toezeggingen aan het hoofdnetwerk.
Wat zijn sidechains?
Naarmate er meer blockchain-ecosystemen worden ontwikkeld, wordt het steeds belangrijker dat deze blockchains op een efficiënte manier met elkaar kunnen interageren. De mate van interoperabiliteit van gedistribueerde netwerken is voor een groot deel bepalend voor de schaalbaarheid van decentrale applicaties. Sidechains (zijketens) maken een snelle uitwisseling van gegevens mogelijk tussen het hoofdnetwerk van Ethereum en secundaire blockchainnetwerken. Zijketens zijn onafhankelijke blockchains die verenigbaar zijn met de Ethereum Virtual Machine en lopen parallel aan het hoofdnetwerk. Sidechains spelen inmiddels een zeer belangrijke rol bij het vergroten van de schaalbaarheid van blockchain-ecosystemen. Deze zijketens maken verbinding met andere blockchainnetwerken – zoals het Mainnet – door middel van zogenaamde ‘tweerichtingsbruggen’ en hebben meestal hun eigen blokparameters, consensus-protocollen en beveiliging. Omdat sidechains hun eigen consensusregels bepalen kunnen ze de privacy beter waarborgen en de veiligheid van blockchain-transacties verbeteren. Bovendien kunnen sidechains het extra vertrouwen dat nodig is om een blockchainnetwerk adequaat te onderhouden, tot een minimum beperken
Verschillende blokparameters
In tegenstelling tot bijvoorbeeld rollup-schaaloplossingen ontlenen sidechains hun beveiliging niet aan het Ethereum-Mainnet, waardoor de veiligheid binnen de eigen keten moet worden georganiseerd. Zijketens verzenden geen statuswijzigingen of transactiegegevens terug naar het hoofdnetwerk. Sidechains hebben meestal hun eigen nodes die zelf transacties kunnen verwerken, blokken kunnen produceren en de status van het blockchainnetwerk kunnen opslaan. In tegenstelling tot het Ethereum-protocol hanteren sidechains meestal verschillende blokparameters (zoals snelle bloktijden en grote blokgroottes) om de doorvoer en snelheid te verhogen en de transactiekosten te verlagen. Hierdoor wordt het uitvoeren van een ‘full node’ moeilijker, waardoor een paar gevanceerde ‘supernodes’ (die wel in staat zijn om de gegevens snel te verwerken) verantwoordelijk worden voor het beveiligen van het netwerk. In dat geval ligt het gevaar van centralisatie op de loer. Om de schaalbaarheid van blockchainnetwerken te vergroten zonder afbreuk te doen aan de decentralisatie, moet iedere Ethereum-gebruikers in principe een node kunnen laten draaien zonder dat hij of zij beschikt over dure geavanceerde apparatuur.
Verenigbaar met de Ethereum Virtual Machine
Zijketens kunnen zowel openbaar (permissionless) als privé (permissioned) zijn en er kunnen meerdere sidechains met het hoofdnetwerk worden verbonden. Sidechains kunnen ook worden verbonden met andere schaaloplossingen. Doordat de decentrale applicaties buiten de hoofdketen worden uitgevoerd kan het Ethereum-Mainnet worden ontlast. Niet alle sidechains werken op precies dezelfde manier. Alleen sidechains die verenigbaar zijn met de Ethereum Virtual Machine kunnen Ethereum-smart contracts uitvoeren. Smart contracts die binnen de EVM worden uitgevoerd zijn geschreven in verschillende programmeertalen waaronder Solidity en Vyper. Als een Ethereum-gebruiker zijn of haar dApp op een sidechain wil uitvoeren, dan kan hij of zij een smart contract uitvoeren op dezelfde zijketen. In principe werken de smart contracts op de sidechains op dezelfde manier als de smart contracts op het hoofdnetwerk.
Tweerichtingsbruggen
Om een afzonderlijk blockchain-ecosysteem te laten werken als een sidechain van het Ethereum-hoofdnetwerk, moet er een manier worden gecreëerd om de overdracht van gegevens tussen de zijketen en het Mainnet mogelijk te maken. Daarvoor wordt gebruikgemaakt van ‘tweerichtingsbruggen’ die de blockchainnetwerken op een efficiënte manier met elkaar verbinden. Blockchain-ecosystemen bestaan vaak in afgesloten geïsoleerde silo-omgevingen, waardoor een interactie tussen blockchains niet mogelijk is. De data wordt opgeslagen in afzonderlijke datasystemen en kan meestal niet worden uitgewisseld met andere datasets.
Minting en burning
Tweerichtingsbruggen lossen dit probleem op en zorgen voor meer interoperabiliteit tussen gedistribueerde netwerken onderling. De bruggen maken gebruik van smart contracts die zijn geïmplementeerd op zowel het hoofdnetwerk van Ethereum als op de sidechains. De bruggen spelen een belangrijke rol bij het verzenden van ETH tussen de twee platformen, maar de crypto-activa wordt niet fysiek tussen de twee blockchains verplaatst. Er zijn verschillende soorten tweerichtingsbruggen en voor het overdragen van waarde wordt gebruikgemaakt van verschillende speciale protocollen, zoals bijvoorbeeld minting (het creëren van nieuwe tokens) en burning (het verbranden van crypto-activa). Tweerichtingsbruggen zorgen ervoor het eenvoudiger wordt voor dApp-ontwikkelaars om met elkaar samen te werken, waardoor de ontwikkeling van blockchaintoepassingen wordt bevorderd. Doordat ontwikkelaars in staat worden gesteld om intensiever met elkaar samen te werken, kunnen er innovatievere decentrale applicaties worden ontwikkeld tegen veel lagere kosten.
Meer risico op fraude
Sidechains worden beschouwd als efficiënte schaaloplossingen die bijdragen aan het vergroten van de schaalbaarheid van blockchaintechnologie. De zijketens verlagen echter vaak wel de mate van decentralisatie en de betrouwbaarheid van blockchaintransacties. Dat komt deels doordat sidechains gebruikmaken van hun eigen afzonderlijke consensus-algoritmen, waardoor ze niet profiteren van het geavanceerde beveiligingsprotocol van het Ethereum-Mainnet. En dat betekent dat het risico op fraude bij transacties groter is, dan wanneer transacties volledig on-chain worden uitgevoerd.
Wat is Polygon?
Polygon werkt aan verschillende protocollen die kunnen worden geïmplementeerd, om de interoperabiliteit en schaalbaarheid van blockchain-ecosystemen (waaronder Ethereum) te vergroten. Polygon werkt aan een breed scala aan schaaloplossingen waaronder Polygon PoS (een sidechain die verenigbaar is met de EVM), Polygon Avail (een schaalbare databeschikbaarheids-blockchain) en Polygon ID (een op blockchaintechnologie gebaseerd identiteitsplatform). Daarnaast werkt Polygon aan verschillende zero-knowledge rollups. Polygon PoS voert de transacties off-chain uit op een afzonderlijk Proof of Stake blockchainnetwerk, dat verenigbaar is met het Ethereum-protocol. Vervolgens worden de transacties verzonden naar het Mainnet waar ze verder worden verwerkt. Hierdoor kan de netwerkbelasting op het hoofdnetwerk van Ethereum flink worden verlaagd, kan de transactiesnelheid worden verhoogd en kunnen de transactiekosten aanzienlijk worden verminderd.
Wat zijn Plasma chains?
Plasma chains (Plasma-ketens) zijn schaaloplossingen die als het ware kleine kopieën maken van het Ethereum-Mainnet. Het zijn afzonderlijke ketens die zijn geïntegreerd binnen het hoofdnetwerk, maar de transacties buiten de keten (off-chain) uitvoeren. Plasma chains hanteren hun eigen intrinsieke validatieprotocollen en maken gebruik van zogenaamde ‘fraudebewijzen’ om geschillen te beslechten. De eerdergenoemde optimistic rollups zijn een vorm van een dergelijk fraudebewijs. Een belangrijk element bij cryptografische transacties zijn de zogenaamde ‘Merkle-trees‘. Deze Merkle-trees (hash-bomen) maken een efficiënte en veilige verificatie van de inhoud van een grote datastructuur mogelijk. Met behulp van deze hash-bomen kan er een hele reeks aan plasma chains worden gecreëerd, die het hoofdnetwerk van Ethereum aanzienlijk kunnen ontlasten. De plasma-ketens ontlenen een deel van hun beveiliging aan het Mainnet, maar hun beveiliging en efficiëntie worden beïnvloed door verschillende ontwerpbeperkingen.
Kinderketens
De Plasma chains (die ook wel ‘kinderketens’ worden genoemd) worden bovenop een ander blockchainnetwerk gebouwd – een zogenaamde ‘rootketen’. De Plasma-ketens zijn verankerd in het Ethereum-Mainnet en worden meestal beheerd door een smart contract die op de bovenliggende blockchain wordt geïmplementeerd. Dit smart contract fungeert als een brug tussen het hoofdnetwerk en de Plasma-keten, waardoor Ethereum-gebruikers relatief eenvoudig gegevens tussen beide platformen kunnen uitwisselen. Plasma chains lijken in een aantal opzichten veel op sidechains, maar er is een belangrijk verschil. De Plasma-ketens ontlenen een deel van hun beveiliging aan het Ethereum-protocol op het Mainnet, dit in tegenstelling tot de zijketens die zelf volledig voor hun beveiliging moeten zorgen.
Eén enkele operator
De consensus-algoritmen spelen een cruciale rol bij de beveiliging van transacties. Het consensus-protocol van het Ethereum-mainnet vereist de aanwezigheid van veel nodes en andere knooppunten, die alle statusupdates binnen het netwerk moeten controleren. Dit heeft doorgaans een negatieve invloed op de verwerkingssnelheid van transacties. Niet alle blockchain-transacties vereisen wellicht altijd het hoge beveiligingsprotocol van het hoofdnetwerk. Er kunnen situaties zijn waarbij er tussen bepaalde partijen al een bepaald vertrouwensniveau aanwezig is, waardoor het niet altijd noodzakelijk is dat transacties door het Mainnet worden geverifieerd. Deze transacties kunnen vaak veilig buiten de keten (off-chain) worden verwerkt, waardoor nodes niet alle transacties hoeven te valideren. De berekeningen worden in dat geval volledig buiten de keten uitgevoerd. Omdat een Plasma-keten doorgaans gebruik maakt van één enkele operator om de transacties te beheren en te verifiëren, kan de verwerkingssnelheid flink worden verhoogd. Tegelijkertijd kan het Mainnet worden ontlast.
Status-toezeggingen
Plasma chains voeren de transacties buiten de keten uit, maar ze worden afgerond op het Mainnet, zodat ze kunnen profiteren van het beveiligingsprotocol van Ethereum. Het afronden van transacties die buiten de keten zijn uitgevoerd zonder kennis te hebben over de exacte status van de Plasma chain, kan ervoor zorgen dat het beveiligingsmodel wordt aangetast, waardoor ongeldige transacties mogelijk worden gemaakt. Daarom is de blokoperator binnen de Plasma-keten verplicht om periodiek status-toezeggingen op het Mainnet te publiceren. Daarbij wordt met behulp van cryptografie een bepaalde waarde of verklaring vastgelegd, zonder dat deze elementen aan een andere partij worden prijsgegeven. De periodieke toezeggingen zijn bindend en dat betekent dat deze waardes en verklaringen niet meer kunnen worden gewijzigd, als deelnemers zich er eenmaal aan hebben verbonden. De status-toezeggingen hebben de vorm van zogeheten ‘Merkle-roots’.
Merkle-root
Een Merkle-root is de hash van alle hashes van alle transacties die deel uitmaken van een blok binnen een blockchainnetwerk. Het is een cryptografische methode om de gegevens op de eerdergenoemde hash-boom (Merkle-tree) te verifiëren. De Merkle-roots kunnen periodiek naar het Plasma-smart-contract op het Mainnet worden verzonden. Merkle-roots maken het mogelijk om grote hoeveelheden data op een relatief eenvoudige manier te comprimeren en cryptografisch versleuteld te versturen. In principe kan de Merkle-root álle transacties in een blok vertegenwoordigen. Bovendien maken Merkle-roots het aanzienlijk eenvoudiger om efficiënt te verifiëren dat een kleine hoeveelheid data deel uitmaakt van een grotere dataset. De Merkle-root kan worden gebruikt om de opname van een transactie in een specifiek blok binnen het blockchain-ecosysteem, op een doeltreffende manier te bewijzen. De Merkle-roots spelen dan ook een belangrijke rol bij het doorgeven van de status van de Plasma-ketens aan het Mainnet van Ethereum.
Fraudebewijzen
Plasma-ketens gebruiken het smart contract op het hoofdnetwerk om de gegevens van Ethereum-gebruikers te verwerken. Daarnaast is het smart contract verantwoordelijk voor het volgen van de eerdergenoemde status-toezeggingen en het sanctioneren van oneerlijk gedrag via fraudebewijzen. Net zoals ieder ander blockchain-ecosysteem hebben Plasma chains een protocol nodig, om de integriteit van transacties af te dwingen en te voorkomen dat malafide gebruikers frauduleuze handelingen kunnen verrichten. Daarom gebruiken Plasma chains fraudebewijzen waarmee ontstane geschillen over de geldigheid van bepaalde ‘status-overgangen’ kunnen worden beslecht en oneerlijk gedrag kan worden bestraft. Een fraudebewijs kan worden beschouwd als een bewering dat een bepaalde specifieke status-overgang ongeldig is.
Voorbeeld van een geschil
Karin wil graag een transactie met crypto-activa uitvoeren naar Ronald. Echter probeert Karin de dezelfde crypto-activa voor de tweede keer uit te geven, waardoor sprake zou zijn van ‘double spending’. Ze heeft deze cryptocurrency’s al eerder uitgegeven bij een transactie met Mark. Bij crypto-transacties vertegenwoordigt niet-uitgegeven transactie-output, een hoeveelheid digitale valuta die door de ene rekening is geautoriseerd, om door de andere rekening te worden uitgegeven. Dit wordt Unspent Transaction Output (UTXO) genoemd. Een UTXO is de hoeveelheid digitale valuta die overblijft nadat een cryptocurrency-transactie is uitgevoerd. Om opname te voorkomen zal Mark (die de crypto-activa bezit) een fraudebewijs opstellen door het bewijs te leveren, dat Karin de crypto-activa die ze naar Ronald wil verzenden al in een eerdere transactie met hem (Mark) heeft uitgegeven. Daarnaast levert Mark ook een Merkle-bewijs van de eerder uitgevoerde bloktransactie. Als Mark erin slaagt om aan te tonen dat er sprake is van double spending, dan zal het opnameverzoek van Karin worden geannuleerd. Deze aanpak is echter afhankelijk van het vermogen van Mark om de blokketen te blijven monitoren op opnameverzoeken. Als Mark offline is dan zou Karin de dubbele uitgave alsnog kunnen verwerken.
Beschikbaarheid van informatie
Schaaloplossingen zoals Plasma chains kunnen een flinke boost geven aan de schaalbaarheid van Ethereum, maar er zijn ook een aantal nadelen. Zo is er bijvoorbeeld het ‘mass exit probleem’, dat zich voordoet op het moment dat een groot aantal Ethereum-gebruikers tegelijkertijd probeert om ETH op te nemen. Eén van de grootste moeilijkheden met Plasma chains heeft te maken met de zogenaamde ‘gegevensbeschikbaarheid’, of liever gezegd: het gebrek daaraan. Gegevensbeschikbaarheid heeft betrekking op de mogelijkheid om te verifiëren dat de gegevens voor een voorgesteld transactieblok binnen het netwerk, ook echt op de blockchain zijn gepubliceerd. Een transactieblok is ‘niet beschikbaar’ als een blokproducent het blok zelf publiceert en tegelijkertijd gegevens achterhoudt die zijn gebruikt om het specifieke blok te maken.
Blokproducenten dwingen om transactiedata te publiceren
Blokken moeten in principe altijd ‘beschikbaar’ zijn als de nodes binnen het netwerk het blok willen downloaden en de geldigheid van transacties willen verifiëren. Blockchains zorgen voor de beschikbaarheid van informatie door blokproducenten te dwingen om alle transactiegegevens binnen de keten (on-chain) te publiceren. Gegevensbeschikbaarheid is dan ook een belangrijke factor bij het beveiligen van off-chain schaaloplossingen die voortbouwen op het Mainnet van Ethereum. Door operators in deze ketens expliciet te dwingen om de transactie-informatie op het hoofdnetwerk te publiceren, kan iedereen ongeldige blokken aanvechten, door fraudebewijzen te maken die verwijzen naar de juiste status van de keten. Daarbij kan bijvoorbeeld gebruik worden gemaakt van rollups.
Legitiem en eerlijk handelen
De Plasma chains slaan voornamelijk transactiegegevens op bij de operator en publiceren in principe geen informatie op het hoofdnetwerk, afgezien van de periodieke status-toezeggingen. Dat betekent dat Ethereum-gebruikers de operator moeten vertrouwen bij het verstrekken van blokinformatie, wanneer ze fraudebewijzen moeten creëren waarmee ze ongeldige transacties kunnen aanvechten. Als dit mechanisme op de juiste manier werkt en de operator legitiem en eerlijk handelt, dan kunnen Ethereum-gebruikers altijd gebruikmaken van fraudebestendige middelen, om de ETH veilig te stellen. Maar als het systeem niet goed werkt dan kunnen er problemen ontstaan.
Prikkels die oneerlijke gedrag uitlokken
De operator van de Plasma chain heeft doorgaans de volledige controle over het netwerk. Hierdoor wordt deze sneller geprikkeld om ongeldige status-overgangen te stimuleren, om zo bijvoorbeeld ETH van Ethereum-gebruikers te kunnen stelen. In deze situatie werkt het gebruik van het fraudebestendige systeem niet. De operator kan eenvoudig een ongeldige transactie uitvoeren, door de ETH naar crypto-wallets van gebruikers over te schrijven en vervolgens de gegevens die nodig zijn om een fraudebewijs te maken te verbergen. Deze situatie kan zich voordoen omdat een operator in principe niet verplicht is om informatie aan gebruikers of het hoofdnetwerk van Ethereum beschikbaar te stellen.
Mass exit
Een van de oplossingen die dit probleem zou kunnen tackelen is een zogenaamde ‘mass exit’ van gebruikers uit de Plasma chain. In deze situatie nemen Ethereum-gebruikers massaal hun crypto-activa op. De mass exit vertraagt de malafide acties van de operator en biedt een zekere mate van bescherming voor ETH-bezitters. De uitbetalingsverzoeken worden normaliter geordend op basis van de leeftijd van de crypto-activa (wanneer het activum is gemaakt), waardoor malafide operators daar geen invloed op kunnen uitoefenen. Desondanks is er nog wel een manier nodig om de geldigheid van opnameverzoeken tijdens een mass exit te verifiëren, om zo te voorkomen dat opportunistische gebruikers binnen het netwerk misbruik maken van deze chaotische situatie, door ongeldige exit-transacties te verwerken. Daarom zou van de deelnemers altijd moeten worden geëist dat ze de laatste geldige status van de keten publiceren, voordat ze hun ETH kunnen opnemen. Echter is deze oplossing allesbehalve ideaal.
Ernstige netwerkcongestie
Als er zich een situatie voordoet waarbij gebruikers van een Plasma chain het netwerk snel moeten verlaten – bijvoorbeeld in het geval van een malafide operator – dan moet de volledige geldige status van de Plasma-keten, in één keer op het Ethereum-Mainnet worden achtergelaten. En gezien het verschil tussen de throughput van Plasma chains (een hoge doorvoer en transactiesnelheid) en de throughput van het hoofdnetwerk (dat lagere verwerkingssnelheden kent) is dit niet de beste oplossing. In de praktijk zullen mass exits waarschijnlijk leiden tot ernstige netwerkcongestie op het Mainnet. Hierdoor wordt niet alleen de functionaliteit van Ethereum aangetast, maar een slecht gecoördineerde mass exit kan er ook voor zorgen dat gebruikers wellicht niet meer in de gelegenheid zijn om ETH op te nemen, voordat de operator alle accounts in de Plasma chain heeft leeggemaakt.
Probleem aanpakken met rollups
Het ‘mass exit probleem’ kan ook worden aangepakt met behulp van zero-knowledge rollups en optimistic rollups. Zo kan het gebruik van ZK-rollups er bijvoorbeeld voor zorgen dat malafide operators in géén enkel geval ETH van Ethereum-gebruikers kunnen stelen. De optimistic rollups leggen een vertragingsperiode op voor ETH-opnames, waarin iedere gebruiker een ‘challenge’ kan starten om zo malafide opnameverzoeken te voorkomen. Dit mechanisme is enigszins vergelijkbaar met Plasma, maar het grote verschil is echter dat verificateurs in principe altijd toegang hebben, tot de gegevens die nodig zijn om een fraudebewijs te maken. Rollup-gebruikers hoeven dus niet deel te nemen aan een mass exit naar het hoofdnetwerk van Ethereum.
Aangepast aan specifieke gebruikssituaties
Nadat het concept van de Plasma chains in de zomer van 2017 was voorgesteld door Vitalik Buterin (de mede-oprichter van Ethereum) en Joseph Poon van Lightning Labs (een platform dat werkt aan een gedecentraliseerde, flexibele, financiële infrastructuur), werd deze schaaloplossing door veel mensen beschouwd als veelbelovend. Op dit moment geven veel leden binnen de Ethereum-community echter de voorkeur aan Layer 2-oplossingen, omdat deze de beveiliging volledig ontlenen aan het veiligheids-protocol van het Ethereum-Mainnet. Desondanks bieden Plasma-ketens toch de nodige voordelen. De ketens hebben immers een zeer hoge doorvoer en de transactiekosten zijn laag. Daarnaast lenen ze zich prima voor transacties tussen willekeurige gebruikers. Bovendien kunnen Plasma chains vrij eenvoudig worden aangepast aan specifieke gebruikssituaties, die volledig los staan van het Ethereum-Mainnet.
Wat is de beste schaaloplossing voor Ethereum?
Welke schaaloplossingen de meeste potentie hebben om de schaalbaarheid van het Ethereum-ecosysteem te vergroten is niet eenduidig te zeggen. De oplossingen Sharding, Plasma chains en sidechains lijken in bepaalde opzichten op elkaar, omdat ze allemaal een interactie aangegaan met het hoofdnetwerk van Ethereum. Echter is de manier waarop ze met het Mainnet communiceren verschillend, waardoor iedere oplossing een ander veiligheidsniveau kent. Zo bieden sidechains en tweerichtingsbruggen een efficiënte manier om crypto-activa uit te wisselen tussen twee afzonderlijke platformen, waardoor de belasting op het Mainnet kan worden gereduceerd en de schaalbaarheid wordt vergroot. Echter maken de sidechains gebruik van hun eigen beveiligings-protocollen en niet van het solide veiligheids-protocol van Ethereum. Wanneer activa van het Mainnet naar de sidechains wordt verzonden, dan is er een verhoogd risico dat gebruikers bij een aanval hun ETH kwijt raken.
Waarom is Plasma is minder veilig dan sharding?
Omdat Sharding een layer 1-oplossing is wordt deze algemeen beschouwd als een van de veiligste schaaloplossingen. De shardketens publiceren periodiek cryptografische bewijzen (proof) aan het hoofdnetwerk van Ethereum en communiceren gedetailleerde informatie over alle ‘datashards’ naar het Mainnet. De nodes binnen de Ethereum-blockchain verifiëren en handhaven vervolgens de geldigheid van de shards, waardoor de kans op ongeldige ‘shardovergangen’ aanzienlijk wordt verkleind en het netwerk adequaat kan worden beschermd tegen malafide activiteiten. Dit in tegenstelling tot Plasma chains waarbij het hoofdnetwerk van Ethereum slechts minimale informatie ontvangt, over de status van de onderliggende ketens. Hierdoor kan het Mainnet de transacties op de onderliggende ketens niet effectief verifiëren, een gegeven dat Plasma chains minder veilig maakt dan sharding.
Waarom zijn Plasma chains zijn veiliger dan sidechains?
Aan de andere kant zijn Plasma chains weer veiliger dan bijvoorbeeld sidechains, omdat Plasma zijn veiligheid ontleent aan het hoofdnetwerk van Ethereum. Plasma chains maken tevens gebruik van hun eigen validatie-mechanismen en hanteren fraudebewijzen (zoals rollups) om geschillen te beslechten. Bovendien publiceren de Plasma-ketens Merkle-roots voor ieder blok op het Mainnet. Wanneer de Plasma chain wordt aangevallen door malafide actoren, dan kunnen Ethereum-gebruikers hun ETH toch veilig overbrengen naar het hoofdnetwerk.
Gebrek aan privacy
De beperkte mate van schaalbaarheid van blockchain-ecosystemen is één van de voornaamste obstakels voor een brede acceptatie van blockchaintoepassingen. Zoals eerder gezegd is het vergroten van de schaalbaarheid, zonder daarbij inbreuk te maken op de decentralisatie, heel erg lastig (blockchain trilemma). Zonder de decentralisatie enigszins op te offeren kunnen er nog geen blockchaintoepassingen worden gerealiseerd, die een brede acceptatie kunnen bereiken. Ook het gebrek aan privacy is een factor die grootschalige blockchain-adoptie in de weg staat.
Verifieerbare activiteitsbewijzen
De transparantie van openbare blockchains biedt weliswaar verschillende voordelen, maar die openheid gaat wel gepaard met een aantal grote risico’s. Iedere transactie op een publiek blockchainnetwerk laat immers een duidelijk spoor achter, waardoor iedereen op ieder moment alle transacties kan controleren. Openbaar toegankelijke transactierecords op de blockchain zijn zeer bruikbaar als ze ter goeder trouw worden gebruikt als ‘verifieerbare activiteitsbewijzen’, maar wanneer deze transparantie wordt misbruikt door partijen die andere motieven hebben, dan wordt het algauw een heel ander verhaal. Een malafide partij kan de blockchain-transacties koppelen aan de echte identiteit van gebruikers en vervolgens hun ‘on-chain geschiedenis‘ uitbuiten voor frauduleuze handelingen en andere criminele activiteiten.
Wat zijn zero-knowledge proofs?
Zero-knowledge proofs (nulkennisbewijzen) bieden een oplossing voor de schaalbaarheidsproblemen en het gebrek aan privacy, waar veel blockchainnetwerken mee te maken hebben. Deze ZK-proofs stellen gebruikers in staat om een bepaalde bewering te verifiëren dat een bepaalde specifieke transactie geldig on ongeldig is, zonder dat daarbij extra aanvullende informatie over de transactie is vereist. Met andere woorden: ZK-proofs zijn een cryptografische methode om de authenticiteit van een transactie op de blockchain te bewijzen, zonder andere gevoelige gegevens kenbaar te maken.
Interactieve ZK-proofs en niet-interactieve ZK-proofs
Er zijn in principe twee zero-knowledge proof-modellen: interactieve ZK-proofs en niet-interactieve ZK-proofs. De interactieve ZK-proofs vereisen een continue interactie tussen de bewijzende partij en de verifiërende partij, totdat de verifiërende partij de waarheid van de bewering van de bewijzende partij bevestigt. Bij de niet-interactieve ZK-proofs is géén continue interactie tussen de bewijzende en verifiërende partij vereist, maar is één enkele uitwisseling van gegevens voldoende om beide partijen tevreden te stellen. Bij de niet-interactieve ZK-proofs kan het ‘bewijs’ offline plaatsvinden. Vervolgens kan het bewijs (de proof) worden verzonden en geverifieerd, door te verifiëren dat de simulatie van de verifiërende partij op de juiste wijze is uitgevoerd. De meest belangrijke zero-knowledge proofs die op dit moment als validiteitsbewijs worden gebruikt zijn de zogenaamde zk-SNARKs en zk-STARKs. Dit zijn allebei niet-interactieve ZK-proofs.
Wat zijn zk-SNARKs?
zk-SNARKs (dat staat voor Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) is een niet-interactieve ZK-proof, die extra geen aanvullende informatie deelt met het netwerk, maar alleen informatie deelt die de geldigheid van de bewering van de bewijzende partij bevestigt. De andere informatie – zoals bijvoorbeeld transactiegegevens, gebruikersinformatie of de waarde van de crypto-activa – wordt niet met de verifiërende partij gedeeld. Zk-SNARKs maken een snelle en relatief eenvoudig verificatie mogelijk, zonder dat daarbij de privacy van gebruikers wordt geschonden. Bovendien is er nauwelijks interactie nodig tussen de bewijzende en de verifiërende partij. Het hele verificatieproces vanaf het genereren van de ‘proofs’ tot aan het controleren, vindt plaats binnen één enkele transactie. De zk-SNARKs maken het vervalsen van informatie door malafide partijen een stuk moeilijker en wellicht onmogelijk. De zk-SNARks-oplossingen vereisen een vertrouwde setup tussen de bewijzende en de verifiërende partij. Om de nulkennisbewijzen te creëren is een set openbare parameters nodig en moeten er cryptografische sleutels worden aangemaakt. Deze parameters zijn in feite de ‘gecodeerde regels’ van het netwerkprotocol.
Wat zijn zk-STARKs?
Ook zk-STARKs zijn niet-interactieve zero-knowledge proofs. Zk-STARKs (dat staat voor Zero-Knowledge Scalable Transparant Argument of Knowledge). Deze proofs werden later ontwikkeld dan de zk-SNARKs, maar hebben in de basis dezelfde werking en doelstelling. Ook met zk-STARKs kunnen ze transacties (of andersoortige interacties) bewijzen zonder enige aanvullende informatie te onthullen, behalve de informatie die aan de verifiërende partij bevestigt, dat de bewering van de bewijzende partij juist is. Doordat ontwikkelaars in staat worden gesteld om de berekeningen buiten de keten (off-chain) op te slaan, kan de schaalbaarheid aanzienlijk worden verbeterd. De nulkennisbewijzen controleren de off-chain handelingen, waarna deze vervolgens binnen de keten (on-chain) worden geverifieerd. Met behulp van zk-STARKs kunnen zeer veel transacties in batches buiten de keten worden berekend, waarna één enkele zkSTARK-proof wordt ingediend om de geldigheid van de transacties binnen de keten (dus on-chain) te onderschrijven.
Wat is het verschil tussen zk-SNARKs en zk-STARKs?
Een groot verschil tussen zk-SNARKs en zk-STARKs is dat de laatstgenoemden gebruikmaken van zogenaamde ‘openbaar beschikbare willekeur’ om paramaters te genereren, waardoor een vertrouwde setup in principe niet meer nodig is. zk-SNARKs daarentegen hebben een initiële vertrouwde setup nodig om de willekeur te genereren, die nodig is om zero-knowledge proofs te genereren. Dat betekent dat iemand de initiële sleutels moet maken die worden gebruikt om de bewijzen te genereren. Daarbij worden de parameters meestal in bewaring gehouden door een kleine groep mensen en dat gaat gepaard met een aantal veiligheidsrisico’s. Wanneer de parameters terechtkomen in de handen van malafide actoren, dan kunnen zij de parameters gebruiken om valse bewijzen (proofs) te creëren.
Andere digitale structuur
zk-SNARKs en zk-STARKs hebben ook een andere digitale structuur. zk-STARKs maken gebruik van zogenaamde ‘botsingsbestendige hashfuncties’, waardoor een vertrouwde setup niet meer nodig is. zk-SNARKs daarentegen zijn gebouwd op zogenaamde ‘elliptische curven’. Elliptische curve-cryptografie (ECC) is een cryptografische methode die vertrouwt op de eigenschappen van elliptische curven, om veilige cryptografische sleutels te genereren. Deze sleutels kunnen vervolgens worden gebruikt voor het proces van coderen en decoderen.
Opkomst van quantumcomputers
Bij de ontwikkeling van blockchain-ecosystemen wordt rekening gehouden met de mogelijke opkomst van supersnelle quantumcomputers, die in staat zullen zijn om in één keer dezelfde berekeningen te kunnen uitvoeren, over een zeer grote hoeveelheid data. Dergelijke razendsnelle computers kunnen waarschijnlijk in een fractie van een seconde talloze beveiligingssystemen kraken, waardoor talloze digitale systemen in een zeer kort tijdsbestek worden aangetast. Daarom is het belangrijk dat blockchainnetwerken ‘quantumproof’ worden gemaakt. Zoals ik hierboven al vermeldde maken zk-SNARKs gebruik van een initiële vertrouwde setup om parameters te genereren. zk-SNARKs zijn afhankelijk van hun setup en worden beschouwd als rekenkundig correct.
Enorme rekenkracht
Echter gaan zk-SNARKs ervan uit dat bewijzende partijen maar een beperkte hoeveelheid rekenkracht hebben. Wanneer een bewijzende partij een onbeperkte en gigantische hoeveelheid rekenkracht kan gebruiken, dan kan deze partij zeer geavanceerde algoritmes gebruiken, die zeer snel parallelle berekeningen kunnen uitvoeren. Dergelijke algoritmen kunnen, door malafide actoren bijvoorbeeld worden gebruikt om een private sleutel van een publieke sleutel af te leiden. En dat betekent dat deze malafide actoren in staat zijn om het ‘bewijs-mechanisme’ te compromitteren. zk-SNARKs zijn dan ook niet bestand tegen aanvallen (en de enorme rekenkracht) van quantumcomputers.
Verschillende bytegroottes
Een ander verschil tussen zk-SNARKs en zk-STARKs zit hem in de bytegrootte. zk-SNARKs hebben een kleinere bytegrootte dan zk-STARKs, maar hebben meer rekenkracht nodig om ‘proofs’ te genereren dan zk-STARKs, waardoor het proces langzamer verloopt. Daarnaast verbruiken zk-SNARKs minder Ethereum gas en verifiëren ze de ‘proofs’ sneller dan zk-STARKs. Dit laatste komt vooral door het verschil in bytegrootte. zk-STARKs zijn in de basis beter schaalbaar dan zk-SNARKs. Bij zk-SNARKs verloopt de bewijsverificatie weliswaar sneller, maar zk-STARKs genereren sneller bewijs en kunnen daardoor sneller schalen. Daarom worden zk-STARKs veel gebruikt bij schaaloplossingen zoals bijvoorbeeld ZK-rollups. Bovendien verbruiken zk-STARKs minder gas wanneer ze in de keten (on-chain) komen, doordat de meeste berekening en opslag al off-chain hebben plaatsgevonden. Aan de andere kant is het zo dat tijdens een periode met een lage doorvoer – wanneer er dus weinig ‘proofs’ worden gecreëerd – het doorgaans ook veel langer duurt voordat het verificatieproces wordt uitgevoerd.
DID’s
Op dit moment (oktober 2022) zijn zk-SNARKs de meest populaire niet-interactieve zero-knowledge proof-modellen. Ze worden dan ook volop gebruikt bij de ontwikkeling van decentrale applicaties, om de schaalbaarheid en privacy van gebruikers te vergroten. Een van de toepassingsmogelijkheden van zk-SNARKs richt zich op identiteitsverificatie door middel van zogeheten decentralized identifiers (DIDs). Deze DIDs kunnen worden gebruikt voor ‘self-sovereign identity’ dat het verifiëren van decentrale digitale identiteiten mogelijk maakt. Met behulp van DIDs kunnen gebruikers online voldoen aan de ‘Ken-uw-klant-bepalingen’ en de ‘Anti-witwasrichtlijnen’, zonder hun gevoelige informatie te onthullen.
Wat is Validium?
Ook Validium chains (Validium-ketens) zijn schaaloplossingen die bovenop het Mainnet zijn gebouwd en die gebruikmaken van validiteitsbewijzen, zoals bijvoorbeeld ZK-rollups. De transactiegegevens worden echter niet opgeslagen op het Mainnet. Hierdoor kan de transactiesnelheid enorm worden verhoogd en kunnen er meerdere ketens naast elkaar worden uitgevoerd. Deze schaaloplossingen kunnen de integriteit van bloktransacties afdwingen met behulp van validiteitsbewijzen (net zoals de zero-knowledge rollups), maar slaan in principe geen transactiegegevens op op het hoofdnetwerk van Ethereum. Een Validium chain is in staat om 9000 transacties per seconden (TPS) te verwerken, waardoor de schaalbaarheid aanzienlijk verbetert.
Proof of proofs
Bij de Validium-oplossingen wordt gebruikgemaakt van zogenaamde ‘recursieve bewijzen’. Dit zijn validiteitsbewijzen die de geldigheid van andere bewijzen verifiëren. Ze leveren in feite ‘bewijs van bewijzen’ oftewel ‘proof of proofs’. Recursieve bewijzen worden gegenereerd door recursief (zichzelf herhalend) meerdere bewijzen (proofs) te verzamelen totdat één definitief bewijs is geconstrueerd, dat alle voorgaande bewijzen verifieert. Recursieve bewijzen schalen de verwerkingssnelheden van blockchainnetwerken door het aantal transacties te verhogen, die kunnen worden geverifieerd per validatiebewijs. Doorgaans valideert ieder validiteitsbewijs dat door de Validium-operator ter verificatie bij het Ethereum-Mainnet wordt ingediend, de integriteit van een enkel transactieblok. Een enkel recursief bewijs daarentegen kan worden gebruikt om de geldigheid van meerdere Validium-blokken tegelijkertijd te bevestigen. Dit is mogelijk omdat het ‘proof-circuit’ meerdere blokbewijzen recursief kan samenvoegen tot één definitief bewijs. Nadat het verificatiecontract op het Ethereum-Mainnet het recursieve bewijs heeft geaccepteerd, worden alle onderliggende transactieblokken direct afgerond.
Snelle ETH-opnames
De Validium-ketens maken gebruik van databeschikbaarheid en berekeningen buiten de keten (off-chain), waardoor het Mainnet wordt ontlast. Net zoals ZK-rollups genereert Validium nulkennisbewijzen om transacties die buiten de keten zijn uitgevoerd, op het hoofdnetwerk van Ethereum te verifiëren. Hierdoor kunnen ongeldige statusovergangen effectief worden voorkomen. De nulkennisbewijzen die bij Validium worden gebruikt kunnen zowel de vorm hebben van zk-SNARKs als van zk-STARKS. De fondsen van Validium-gebruikers worden beheerd door een smart contract dat op het Mainnet wordt uitgevoerd. Validium-ketens bieden net zoals ZK-rollups snelle ETH-opnames.
Merkle-bewijzen
Meteen nadat het validiteitsbewijs is geverifieerd op het hoofdnetwerk, kunnen gebruikers vrijwel direct ETH opnemen door Merkle-bewijzen te verstrekken. Deze Merkle-proofs valideren de opname van de opnametransactie van gebruikers in een geverifieerde ‘transactiebatch’. Vervolgens kan het smart contract op het Ethereum-Mainnet de opname verder verwerken. Binnen de Validium-ketens bestaat er voor gebruikers een mogelijkheid om hun ETH te laten bevriezen en de ETH-opnames te laten beperken. Dit kan bijvoorbeeld nodig zijn als er off-chain (dus buiten de keten) statusinformatie van gebruikers wordt achtergehouden door databeschikbaarheids-beheerders. Zonder toegang tot deze belangrijke transactiegegevens zijn Validium-gebruikers niet in staat om het Merkle-bewijs te construeren, dat vereist is om het eigendom van de ETH-fondsen te kunnen aantonen en opnames te kunnen uitvoeren. Validium-protocollen en zero-knowledge rollups (ZK-rollups) lijken veel op elkaar, maar pakken de gegevensopslag anders aan.
Verificatiecontract en hoofdcontract
Hoewel de transacties buiten de keten worden uitgevoerd, worden Validium chains beheerd door een verzameling van smart contracts die op het hoofdnetwerk zijn geïmplementeerd. Zo wordt er gebruikgemaakt van een ‘verificatiecontract’ en een ‘hoofdcontract’. Het verificatiecontract controleert de geldigheid van bewijzen (proofs) die door een operator van de Validium-ketens zijn ingediend bij het maken van de statusupdates. Deze proofs omvatten validiteitsbewijzen (die de geldigheid van off-chain transacties bevestigen) en gegevensbeschikbaarheidsbewijzen (die het bestaan van off-chain transactiegegevens verifiëren). Het hoofdcontract slaat de status-toezeggingen (Merkle-root) op die zijn ingediend door blokproducenten en werkt de status van de Validium chain bij, op het moment dat een validatiebewijs op het Mainnet is geverifieerd. Het hoofdcontract verwerkt ook ETH-stortingen naar en opnames uit de Validium-keten.
Afwikkelingsgaranties
Validium-transacties kunnen worden bevestigd totdat het Ethereum-Mainnet hun geldigheid heeft geverifieerd. Alle activiteiten die op een Validium-keten worden uitgevoerd moeten uiteindelijk allemaal worden afgerond op het hoofdnetwerk. Het Mainnet bekrachtigt de transacties vervolgens met zogenaamde settlement guarantees (afwikkelingsgaranties) voor gebruikers. Deze garanties garanderen dat de off-chain uitgevoerde transacties niet meer kunnen worden teruggedraaid of worden gewijzigd, als ze eenmaal op het hoofdnetwerk zijn vastgelegd. In die hoedanigheid fungeert het Ethereum-Mainnet als een betrouwbare afwikkelingslaag.
Geldigheidsvoorwaarden van het Ethereum-protocol
Het Mainnet garandeert ook de geldigheid van de status-overgangen op de Validium-ketens. Transacties die worden uitgevoerd op de keten worden op het hoofdnetwerk geverifieerd door het smart contract. Als het verificatiecontract op het Mainnet het bewijs (de proof) als ongeldig aanmerkt, dan worden transacties resoluut afgewezen. Dat betekent dat operators van de Validium chain altijd moeten voldoen aan de strikte geldigheidsvoorwaarden van het Ethereum-protocol, voordat de status van de Validium-keten wordt bijgewerkt.
Proof-circuit
Op het moment dat een gebruiker een transactie wil uitvoeren op een Validium-keten dan dient hij of zij deze in bij de operator, een knooppunt (zoals een node) die verantwoordelijk is voor het uitvoeren van transacties op een Validium chain. Niet alle Validium-ketens hebben dezelfde aanpak. Sommige Validium-platformen maken gebruiken van één enkele actieve operator die actief is, maar er zijn ook ketens die een Proof-of-Stake-protocol hanteren voor zogenaamde ‘roterende operators’. De operator verzamelt verschillende transacties in een ‘batch’ en verzendt deze naar een ‘proof-circuit’. Het proof-circuit accepteert de transactiebatch als invoer en voert vervolgen een validatiebewijs uit om te verifiëren dat de bewerkingen op de juist manier zijn uitgevoerd.
Gehasht
De status van de Validium-keten wordt ‘gehasht’ als een Merkle-tree (hash-boom), met de Merkle-root opgeslagen op het Mainnet. De Merkle-root – de ook wel ‘status-root‘ wordt genoemd – fungeert als een cryptografische koppeling met de actuele stand van de accounts en ETH-saldi op de Validium chain. Om de status-update uit te voeren moet de Validium-operator na het uitvoeren van transacties een nieuwe Merkle-root berekenen en deze vervolgens indienen bij het smart contract op het Mainnet. Als het validiteitsbewijs de transacties bevestigt, dan wordt de voorgestelde status van de Validium-keten geaccepteerd en schakelt het off-chain platform over naar de nieuwe Merkle-root.
Crypto-activa storten en opnemen
Validium-gebruikers kunnen waarde naar de Validium-keten verzenden door ETH of andere ERC-20 crypto-activa in het hoofdcontract op het Mainnet te storten. ERC-20 is de token-standaard voor alle op Ethereum gebaseerde tokens. Het smart contract geeft de transactiegebeurtenis door aan de Validium-keten, waar het gebruikersadres wordt bijgeschreven met een bedrag dat precies gelijk is aan het verzonden bedrag. De operator verwerkt de transactie vervolgens in een nieuwe transactiebatch. Als een gebruiker geld wil verzenden van de Validium-keten naar het Ethereum-Mainnet, dan initieert hij of zij een opnametransactie en dient deze in bij de Validium-operator die het opnameverzoek valideert en vervolgens in een transactiebatch opneemt. De ETH van de gebruiker (of andere ERC-20-activa) wordt vernietigd voordat deze de keten kunnen verlaten. Direct nadat het validiteitsbewijs – dat aan de transactiebatch is gekoppeld – is geverifieerd, kan de gebruiker het hoofdcontract op het Mainnet verzoeken, om de resterende hoeveelheid crypto-activa van zijn of haar storting op te nemen.
Anti-censuurmechanisme
Bij het opname-protocol zit een ‘anti-censuurmechanisme’ ingebakken. Dit mechanisme stelt Validium-gebruikers in staat om zich rechtstreeks uit het Validium-contract terug te trekken, zonder bemoeienis van de Validium-operator. Daarvoor moeten gebruikers een Merkle-bewijs voor het verificatiecontract overleggen, waaruit blijkt dat een gebruikersaccount ook daadwerkelijk is opgenomen in de status-toezeggingen (Merkle-root). Als het Merkle-bewijs wordt geaccepteerd kan de gebruiker de opnamefunctie van het hoofdcontract op het Mainnet oproepen en verzoeken om zijn of haar crypto-activa uit de Validium-keten op te nemen.
Validium draagt bij aan een betere schaalbaarheid en minder kosten
Na de uitvoering van een reeks transacties dient de Validium-operator het bijbehorende validiteitsbewijs in bij het verificatiecontract op het hoofdnetwerk van Ethereum en stelt hij een nieuwe status-root op voor het hoofdcontract. Als blijkt dat het bewijs geldig is werkt het hoofdcontract de status van de Validium chain bij en rond het de resultaten van de transacties af. De Validium-schaaloplossingen maken gebruik van een off-chain ‘gegevensbeschikbaarheidsmodel’ waarbij Validium-operators alle transactie-informatie buiten het hoofdnetwerk opslaan. Hierdoor wordt het Mainnet veel minder belast en wordt de schaalbaarheid sterk vergroot. Validium draagt niet alleen bij aan een betere doorvoer van transacties, maar ook aan het verlagen van de gebruikerskosten. De kosten voor het publiceren van de eerdergenoemde ‘call-data’ zijn een stuk lager.
Niet voldoende gegevens beschikbaar voor het verifiëren van Merkle-bewijzen
Echter kunnen zich bij het gebruik van Validium-ketens problemen voordoen (net zoals bij de Plasma-ketens) met de gegevensbeschikbaarheid. Er kan zich een situatie voordoen waarbij de off-chain informatie die nodig is voor het creëren of verifiëren van Merkle-bewijzen niet beschikbaar is, omdat Validium-operators verkeerde intenties hebben en doelbewust malafide handelingen verrichten, zoals het verbergen van gegevens. In dat geval kunnen Validium-gebruikers waarschijnlijk geen crypto-activa opnemen. Er zijn verschillende manieren waarop dit probleem kan worden getackeld. Zo kan bijvoorbeeld de opslag van status-informatie worden gecentraliseerd, waardoor blokproducenten worden gedwongen om de onderliggende gegevens naar zogenaamde ‘gegevensbeschikbaarheids-managers’ te versturen.
Gevensbeschikbaarheids-managers
Deze gevensbeschikbaarheids-managers zijn verantwoordelijk voor het opslaan van gegevens buiten de keten (off chain) en stellen de informatie op verzoek beschikbaar aan Validium-gebruikers. De gegevens-managers bevestigen de beschikbaarheid van de benodigde data voor transacties op de Validium-keten, door iedere transactiebatch te ondertekenen. Deze digitale handtekeningen vormen een ‘beschikbaarheidsbewijs’ dat het verificatiecontract op het Mainnet controleert, voordat de status-updates worden goedgekeurd. Validium-schaaloplossingen kennen verschillende benaderingen van gegevensbeschikbaarheidsbeheer. Sommige Validium-ketens vertrouwen op vertrouwde partijen om de status-informatie op te slaan, maar er zijn ook Validium-ketens die gebruikmaken van willekeurige toegewezen validators.
Gegevensbeschikbaarheids-commissie
Een ander manier waarop het gegevensbeschikbaarheids-probleem kan worden aangepakt is gebruikmaken van een zogenaamde ‘gegevensbeschikbaarheid-commissie’. In dat geval benoemen Validiums een aantal vertrouwde entiteiten die samen een commissie vormen. Deze commissie slaat kopieën van de status-root op, zodat altijd bewijs kan worden geleverd voor de beschikbaarheid van gegevens. Deze commissies zijn vrij eenvoudig binnen het protocol te implementeren en vereisen doorgaans weinig coördinatie. Echter is deze oplossing niet zonder risico’s. De mogelijkheid bestaat dat leden van de gegevensbeschikbaarheid-commissie worden gecompromitteerd door malafide actoren, die daardoor alsnog kans zien om off-chain informatie te verbergen.
Gebonden databeschikbaarheid
Het databeschikbaarheids-probleem kan ook worden getackeld met zogenaamde ‘gebonden databeschikbaarheid’. Hierbij wordt van Validium-deelnemers die zijn belast met het opslaan van off-chain data vereist, dat ze een bepaalde hoeveelheid tokens als ‘stake’ inzetten middels een smart contract. Deze stake moet worden ingezet nog vóórdat ze hun rol als gevensbeschikbaarheids-manager of lid van een gegevensbeschikbaarheid-commissie op zich nemen. De stake dient als een onderpand om eerlijk gedrag van de data-managers en commissieleden te stimuleren en vermindert vertrouwensaannames. Oneerlijk gedrag kan er immers toe leiden dat de stake wordt vernietigd.
Crypto-economische stimulansen stimuleren eerlijk gedrag
Als de data-managers en commissieleden de gegevensbeschikbaarheid niet kunnen bewijzen, dan wordt de als onderpand ingezette ETH (of andere ERC-20-activa) verlaagd. Bij gebonden databeschikbaarheid kan in principe iedere deelnemer worden aangewezen om off-chain informatie vast te houden, zodra ze de vereiste stake hebben ingezet. Hierdoor kan de hoeveelheid in aanmerking komende gevensbeschikbaarheids-managers worden uitgebreid, waardoor ‘centralisatie’ – die van invloed is op de gegevensbeschikbaarheid-commissie – aanzienlijk kan worden verminderd. De gebonden databeschikbaarheids-oplossing waarbij gebruik wordt gemaakt van crypto-economische stimulansen (oneerlijk gedrag leidt tot verlaging van de stake), is een flink stuk veiliger dan het aanstellen van vertrouwde entiteiten – zoals een gegevensbeschikbaarheid-commissie – die de gegevens in de Validium-keten moeten beveiligen.
Volitions: schakelen tussen schaaloplossingen
Schaaloplossingen zoals Valadium-ketens bieden grote voordelen te aanzien van de schaalbaarheid. Echter blijft het gegevensbeschikbaarheids-probleem een grote uitdaging. Valadium chains zijn net zoals veel andere schaaloplossingen die door Ethereum worden ontwikkeld, toepasbaar voor verschillende gebruiksmogelijkheden. Daarom werden de zogenaamde ‘Volitions’ geïntroduceerd. Volitions combineren zero-knowledge rollups (ZK-rollups) met Validium-ketens en stellen gebruikers op een innovatieve manier in de gelegenheid, om te schakelen tussen deze twee schaaloplossingen. Met de Volitions-oplossing kunnen gebruikers optimaal profiteren van de off-chain databeschikbaarheid van Validium-ketens, terwijl ze de mogelijkheid hebben om over te schakelen naar een databeschikbaarheids-oplossing op het Mainnet (zoals bijvoorbeeld een ZK-rollup). Deze mogelijkheid om tussen schaaloplossingen te schakelen geeft gebruikers de vrijheid om oplossingen te kiezen, die beter aansluiten op hun eigen specifieke omstandigheden.
Interoperabiliteit met de Ethereum Virtual Machine
Validium-ketens en zero-knowledge rollups lenen zich prima voor relatief eenvoudige toepassingen, zoals bijvoorbeeld betalingen. Echter is het implementeren van de ondersteuning van smart contract-functionaliteit bij Validium-ketens een complexe tak van sport. Dat komt vooral vanwege de aanzienlijke systeembehoefte van het bewijzen van EVM-instructies (instructies binnen de Ethereum Virtual Machine) in een zero knowledge (nulkennis) proof-circuit. Daarom compileren sommige Validium-oplossingen veelgebruikte EVM-programmeertalen om aangepaste bytecode te creëren. Deze aanpak is omstreden binnen de Ethereum-community omdat nieuwe ZK-proof-vriendelijke virtuele machines, mogelijk geen belangrijke EVM-opcodes ondersteunen. Bovendien worden ontwikkelaars van decentrale applicaties op deze manier gedwongen om met hogere programmeertalen aan de slag te gaan, om een optimale ontwikkelaarservaring te kunnen blijven behouden. Deze situatie is dan ook allesbehalve ideaal omdat dApp-ontwikkelaars dan moeten gaan werken in een geheel nieuwe ontwikkelingsomgeving. Bovendien wordt de verenigbaarheid met het Ethereum-ecosysteem verbroken.
zkEVM
Sommige ontwikkelaars proberen bestaande EVM-opcodes te optimaliseren voor zero-knowlede bewijzende circuits. Daarbij wordt gebruikgemaakt van een zogenaamde ‘zero-knowledge Ethereum Virtual Machine (zkEVM). Een zkEVM is een EVM-verenigbare virtuele machine die bewijzen (proofs) produceert om de juistheid van de uitvoering van het programma te verifiëren. Met een zkEVM worden Validium-ketens in staat gesteld om smart contracts buiten de keten (dus off-chain) uit te voeren en validiteitsbewijzen in te dienen, om zo een off-chain berekening te kunnen verifiëren op het Ethereum-Mainnet, zonder dat deze berekening opnieuw hoeft te worden uitgevoerd.
Nieuwe mogelijkheden voor de ontwikkeling van dApps
zkEVM’s maken deel uit van zero-knowledges rollups. De eerste ZK-rollups hadden nog geen mogelijkheid om smart contracts uit te voeren en waren in feite beperkt tot eenvoudige crypto-transacties. Door de implementatie van zkEVM’s zijn ZK-rollups ook in staat om Ethereum-dApps te ondersteunen, waardoor nieuwe mogelijkheden ontstaan voor de ontwikkeling van decentrale applicaties. Schaaloplossingen zoals rollups verruilen in feite de oneindige schaalbaarheid van off-chain schalingsmodellen, voor de beveiliging van het on-chain Ethereum-protocol. Dat betekent echter wel dat de specifieke schaalbaarheidseigenschappen van rollups aanzienlijk worden beperkt, door de bandbreedte van het hoofdnetwerk. Om die reden richt een schaaloplossing zoals ‘sharding’ zich op het vergroten van de opslagcapaciteit van het Mainnet.
Meer veiligheidsgaranties
De Validium chains bereiken een grotere schaalbaarheid doordat ze in principe alle transactie-informatie buiten de keten opslaan en alleen status-toezeggingen en geldigheidsbewijzen publiceren, wanneer ze status-updates doorgeven aan het hoofdnetwerk. Het gebruik van validiteitsbewijzen geeft Valadium-ketens meer veiligheidsgaranties dan andere schaaloplossingen, zoals bijvoorbeeld Plasma-ketens en sidechains. Doordat Valadium-ketens de hoeveelheid data die het Ethereum-protocol normaliter zou moeten verwerken sterk reduceert, worden deze ketens beschouwd als veelbelovende schaalbaarheidsoplossingen. Validium biedt een goede balans tussen transactie-privacy en schaalbaarheid en is daarom zeer geschikt voor toepassingen, waarbij een hoge mate van anonimiteit gewenst is. Validium-ketens versterken de integriteit van off-chain transacties, voorkomen vertragingen bij het opnemen van geld naar het Ethereum-Mainnet en zijn minder kwetsbaar voor aanvallen. Daarnaast verlagen Validium-oplossingen de gaskosten voor gebruikers.
Nadelen van Validium-ketens
Er zijn echter ook een aantal nadelen ten aanzien van deze schaaloplossingen. Zo is er voor het creëren van validiteitsbewijzen speciale (duurdere) hardware nodig, iets dat centralisatie in de hand werkt. Het produceren van zero-knowledge bewijzen vereist meestal veel rekenkracht, waardoor Validiums meestal niet kosteneffectief zijn voor toepassingen met een lage doorvoer. Daarnaast is er nog maar een beperkte ondersteuning voor smart contract-functionaliteit en speciale programmeertalen, die nodig zijn voor de ontwikkeling van decentrale applicaties. Bovendien kunnen gebruikers worden gedwarsboomd om ETH of andere ERC-20 tokens op te nemen, aangezien het genereren van Merkle-bewijzen de continue beschikbaarheid van gegevens vereist. Een ander mogelijk nadeel is dat het beveiligingsmodel van Validium-ketens is gebaseerd op vertrouwensaannames en crypto-economische stimulansen (incentives). Dit biedt in principe minder veiligheid dan beveiligingsmodellen die volledig afhankelijk zijn van cryptografische beveiligingsmechanismen (zoals bijvoorbeeld ZK-rollups).
Nieuwe innovatieve schaaloplossingen
Het is duidelijk dat schaalbaarheid een diepgaande beperking is voor de ontwikkeling van nieuwe innovatieve decentrale applicaties. De toenemende vraag naar blockchain-applicaties heeft dan ook geleid tot een aantal grote uitdagingen voor blockchainontwikkelaars. Het schaalbaarheidsprobleem is een van de belangrijkste factoren die een wereldwijde acceptatie van blockchaintechnologie in de weg staan. De bovengenoemde schaalbaarheidsoplossingen dragen in ieder geval sterk bij aan het verminderen van netwerkcongestie op het Ethereum-Mainnet en dragen bij aan het bevorderen van de transactiesnelheid van blockchain-ecosystemen in het algemeen. Sommige oplossingen versterken elkaar wanneer ze met elkaar worden gecombineerd. Naarmate het Ethereum-platform verder evalueert zullen er nieuwe innovatieve schaaloplossingen worden ontwikkeld.
Op de hoogte blijven van de ontwikkelingen op het gebied van blockchaintechnologie? Meld je dan nu aan voor de blogpost!
Laat een reactie achter