Schaalbaarheid is zonder twijfel het grootste probleem waar Bitcoin (BTC) en andere cryptomunten mee zitten. Dankzij de aard van de meeste blockchains hebben cryptocurrency last van lage transactiesnelheden en hoge transactiekosten. Ethereum (ETH) is daar geen uitzondering op. Sterker nog, sinds de opkomst van DeFi en NFTs is het Ethereum netwerk verstopt geraakt.
Een hoop andere crypto-projecten proberen doormiddel van een andere infrastructuur Ethereum van de troon te stoten. Cryptomunten zoals Polkadot (DOT), Cardano (ADA) en de blockchain van Binance (BSC) claimen sneller en schaalbaarder te zijn dan Ethereum, maar Etherereum zelf zit ook niet stil.
De DeFi gigant is op dit moment namelijk druk bezit met het schaalbaarder maken van het netwerk. Alle oplossingen voor het schaalbaarder maken van het netwerk vallen onder het mom: "Layer 2 Solutions". Eén van die Layer 2 Solutions zijn ZK Rollups. In dit artikel kom je alles te weten over ZK Rollups; wat het zijn, hoe ze werken en wat je er van kunt verwachten.
Maak je borst maar nat, want ZK Rollups zijn geen gemakkelijke materie. Het is niet voor niks dat ZK Rollups nog niet in het netwerk geïmplementeerd zijn.
Bekijk snel:
Wil je meer weten over layer 2 scaling solutions? In onderstaande video, gemaakt door AllesOverCrypto, leggen we meer uit over dit type schaalbaarheidsoplossing.
Wat zijn ZK Rollups?
ZK Rollups zijn Layer 2 Solutions, oftewel tweede laags oplossingen. Layer 2 is een verzamelnaam voor oplossingen die zijn ontworpen om netwerken verder te helpen opschalen door transacties buiten de main-chain (laag 1) van het netwerk af te handelen. De main-chain is de hoofdketting waar tot nu toe alle transacties van Ethereum afgehandeld worden.
De transactiesnelheid lijdt wanneer het netwerk bezet is. Naarmate het netwerk drukker wordt, stijgen de transactiekosten, omdat afzenders van transacties elkaar willen overbieden. Dit kan het gebruik van Ethereum erg duur maken, zoals in real-time ook te zien is op de gastracker van Ethereum.
De DeFi en NFT hype is overigens niet de eerste keer dat het Ethereum netwerk overbelast is. In de bullrun van 2017 tijdens de ICO hype en de CryptoKitties bubbel zagen we hetzelfde gebeuren. Omdat het overgrote deel van de ICO's op de Ethereum blockchain gemaakt zijn, zorgde dit toentertijd voor een vergelijkbare stijging in transactiekosten.
Layer 2 Solutions zijn er dus voor om het netwerk op te schalen zodat het gebruik van Ethereum goedkoper wordt.
ZK Rollups zijn één van de opties die worden ontwikkeld voor een 2-laagse-constructie die de schaalbaarheid vergroot door massaoverdrachtsverwerking in een enkele transactie te stoppen. ZK Rollups bundelen honderden overschrijvingen in één enkele transactie.
Vervolgens zorgt een smart contract voor de deconstructie en de verificatie van alle overschrijvingen die in die ene transactie zitten.
Een "zero knowledge proof"-benadering (ZK) wordt gebruikt om de geldigheid van het blok op de Ethereum-blockchain te presenteren en openbaar vast te leggen. Het Zero Knowledge protocol vermindert computergebruik en opslagbronnen voor het valideren van het blok door de hoeveelheid gegevens die in een transactie wordt bewaard te verminderen; er is geen kennis van de volledige gegevens nodig. Later gaan we dieper in op zero knowledge proof.
ZK Rollups zijn dus een oplossing voor blockchains om verder te kunnen opschalen, zodat ze sneller en meer transacties kunnen uitvoeren. Net als andere Layer 2 Solutions, zijn ZK Rollups een oplossing in de vorm van een "laag" bovenop (off-chain) de hoofdketting, zodat de hoofdketting minder werk te verrichten heeft.
In de afbeelding hieronder is dat schematisch weergeven.
Hoe werken ZK Rollups?
We weten nu dat ZK Rollups een oplossing voor schaalbaarheid is die als tweede laag op de hoofdketen ligt. De volgende stap is hoe ZK Rollups precies werken.
ZK Rollups zijn oplossingen die transacties uitvoeren buiten de mainchain, maar transactiegegevens in de mainchain plaatsen. Omdat transactiegegevens zich dus op de mainchain bevinden, kunnen Rollups worden beveiligd door laag 1. De beveiligingseigenschappen van de hoofdketen van Ethereum overnemen voor de transactiegegevens, terwijl uitvoering buiten laag 1 wordt uitgevoerd, is een bepalende eigenschap van ZK Rollups.
Drie vereenvoudigde eigenschappen van Rollups zijn:
- Transactie uitvoering niet op laag 1, maar off-chain op de Rollup Chain.
- Bewijs van transacties bevindt zich op laag 1.
- Een ZK Rollup is een smart contract in laag 1 die een correcte transactie-uitvoering kan afdwingen door de transactiegegevens van laag 1 te gebruiken.
ZK Rollups vereisen dat de uitvoerders (relayers) een deel van hun ETH staken in het Rollup-contract. Dit stimuleert de uitvoerders om transacties correct te verifiëren en uit te voeren, zodat het netwerk veilig blijft.
Er zijn meerdere soorten Rollups, namelijk:
- Zero Knowledge (ZK) Rollups: voert berekeningen buiten de keten uit en dient een validiteitsbewijs in bij de hoofdketting.
- Optimistic Rollups: veronderstelt dat transacties standaard geldig zijn en voert alleen berekeningen uit, via een fraudebewijs, in het geval van een uitdaging.
Dit artikel gaat over ZK Rollups in het specifiek, dus ik zal Optimistic Rollups hier kort behandelen. Optimistic Rollups zijn gemakkelijker te implementeren in de Ethereum blockchain, maar brengen bij lange na niet dezelfde voordelen met zich mee op het gebied van schaalbaarheid als ZK Rollups.
ZK Rollups bundelen, oftewel "roll-up", honderden overschrijvingen van data off-chain en genereren een cryptografisch bewijs, bekend als een zk-SNARK. zk-SNARK staat voor "zero-knowledge succinct non-interactive argument of knowledge". Een hele mond vol. In het Nederlands vertaalt dat zich naar "kennisloos beknopt niet-interactief argument van kennis". De zk-SNARK is het geldigheidsbewijs van honderden overschrijvingen in de vorm van een hash en wordt uiteindelijk op de hoofdketen geplaatst.
Een ZK Rollup wordt gevormd aan de hand van een redelijk technisch concept. Het ZK Rollup-schema bestaat uit twee soorten gebruikers: transactors en relayers.
Transactors
Transactors zijn eigenlijk gewoon deelnemers van het smart-contract binnen het Ethereum-netwerk. Zij doen hun transactie en zenden de transactie naar het netwerk uit. De transactiegegevens bestaan uit:
- Een "naar" en een "van" adres
- Een transactiewaarde
- De netwerkkosten
- De nonce
Het smart-contract slaat de gegevens op in twee Merkle Trees; één voor de adressen en één voor de transactiebedragen en de nonce.
Relayers
Relayers verzamelen een groot aantal transacties om hiervan een Rollup te maken; een oprolling van transacties. Het is de taak van de relayers om het zk-SNARK-geldigheidsbewijs te genereren.
Iedere deelnemer van het Ethereum-netwerk kan een relayer worden, zolang ze het vereiste aantal ETH gestaked hebben in het smart contract.
zk-SNARK
Het ZK Rollup smart contract zorgt voor het behoud van de status van de overschrijving die gedaan zijn op laag 2. De status kan alleen worden bijgewerkt met een geldigheidsbewijs; de zk-SNARK. De zk-SNARK is een hash die de geldigheidsstatus van de blockchain representeert.
De zk-SNARK wordt als volgt gevormd:
- De zk-SNARK vergelijkt de momentopname van de blockchain van vóór een nieuwe bundeling aan transacties, met de momentopname van de blockchain van ná een nieuwe bundeling aan transacties. Het doel is het voorkomen van de aanpassing van de transacties op de blockchain.
- Het ZK Rollup smart contract accepteert alleen een nieuwe transactiebundeling wanneer de vorige momentopname-hash overeenkomt met de meest recente opgeslagen momentopname-hash (0x1f59b49c).
- Als dit wordt geaccepteerd, dan wordt de nieuwe bundeling aan transacties in het contract opgeslagen met een, op dat moment, nieuwe recente momentopname-hash (0x862ae48).
- De zk-SNARK bewijst dat als de vorige momentopname-hash een waarde 0x1f59b49c heeft, en de data van de nieuwe transactiebundeling hieraan wordt toegevoegd, dan is het resultaat dat de nieuwe momentopname-hash 0x862ae48 is.
- De zk-SNARK rapporteert alleen de veranderingen in de controleerbare hashes aan het mainnet van Ethereum.
- Hierdoor kunnen alleen bundelingen worden toegevoegd aan een Rollup waarvan de root-gegevens overeenkomen met die van de vorige geaccepteerde momentopname.
Hieronder is schematisch weergeven waar een Rollup uit bestaat en hoe de zk-SNARK wordt gevormd.
Dit zorgt er uiteindelijk voor dat ZK Rollups het netwerk sneller maken. Het Zero Knowledge protocol vermindert namelijk de computerkracht en opslagbronnen die nodig zijn voor het valideren van het blok, waardoor er geen kennis meer nodig is van alle gegevens, maar alleen van de zk-SNARK.
Met een ZK Rollup zijn er geen vertragingen bij het verplaatsen van fondsen van laag 2 naar laag 1, omdat het geldigheidsbewijs van het ZK Rollup-contract de fondsen al heeft geverifieerd. Dus een ZK Rollup maakt het valideren van een blok sneller en goedkoper omdat er minder data wordt opgenomen.
Wat is een Zero Knowledge protocol?
We hebben het telkens over ZK Rollups, maar je vraagt je daarom waarschijnlijk af wat het ZK gedeelte betekent. ZK staat voor Zero Knowledge proof, oftewel bewijs zonder kennis.
In cryptografie is Zero Knowledge proof een methode waarmee de ene partij (de bewaarder) aan een andere partij (de verificateur) kan bewijzen dat ze een waarde X kennen, zonder enige informatie over te brengen.
Simpel gezegd, Zero Knowledge is een situatie waarin elk van twee partijen bij een transactie in staat is om aan elkaar te verifiëren dat ze bepaalde informatie hebben, terwijl ze niet hoeven te onthullen wat die informatie is.
Zero Knowledge is beslist geen simpele techniek, dus om het zo eenvoudig mogelijk te houden leg ik het concept uit aan de hand van een simpel voorbeeld.
Stel een situatie voor met twee personen en twee verschillende kleuren appels; rood en groen.
De ene persoon is kleurenblind, maar wilt weten of de andere persoon weet welke kleuren de appels hebben. De persoon die niet kleurenblind is moet dus aan de andere persoon bewijzen dat hij de kennis heeft over de verschillende kleuren appels.
Het gaat overigens niet om de precieze kleuren van de appels, maar het gaat er om dat de niet-kleurenblinde persoon kan bewijzen dat de appels verschillen van elkaar, ze zouden ook paars en oranje kunnen zijn. Op dat moment weet de kleurenblinde persoon dat de appels verschillen van elkaar, zonder de kleuren te weten.
Dit werkt als volgt:
- De persoon die kleurenblind is pakt in beide handen één appel en houdt ze achter zijn rug. Hij mag er vervolgens voor kiezen of hij de appels omwisselt of dat hij ze in dezelfde hand laat zitten.
- Als de kleurenblinde persoon vervolgens de appels laat zien aan de niet-kleurenblinde persoon, dan kan de niet-kleurenblinde persoon precies aanwijzen welke van de twee appels groen is, en welke rood is.
- De eerste keer dat hij dat doet heeft de kleurenblinde persoon nog geen bewijs. De niet-kleurenblinde persoon kan immers gewoon gokken. De proef levert pas bewijs op bij herhaling van de proef.
- De kleurenblinde persoon weet namelijk of hij de appels omwisselt of niet. De kans dat de niet-kleurenblinde achter elkaar de juiste kleur aan de appels geeft wordt per proef kleiner.
- Hier kan ook een berekening aangekoppeld worden: de eerste keer dat de proef wordt afgenomen is de kans 1 op 2, oftewel 50%, dat de niet-kleurenblinde persoon het goed gokt. Bij de tweede proef is dit al: 50% x 50% = 25% kans. Na 10 keer is de kans dat de niet-kleurenblinde persoon alles goed gokt nog maar: 2^-10 = 0,09%.
Deze kans is zo klein dat de niet-kleurenblinde persoon heeft bewezen dat hij weet welke kleuren de appels zijn, zonder dat de kleurenblinde persoon weet welke kleuren de appels hebben. Hij weet immers alleen dat de appels verschillen van elkaar.
Dit is een erg vereenvoudigde situatie. Bij crypto ligt het nog een stuk ingewikkelder omdat er niet maar één validator is (de kleurenblinde persoon), maar duizenden.
Bij ZK Rollups is het Zero Knowledge gedeelte dus gedaan door de zk-SNARK. Deze rapporteert namelijk kennis te hebben dat de root-gegevens van de voorlaatste geaccepteerde momentopname overeenkomen met de root-gegevens van de nieuwe momentopname, zonder de rootgegevens aan de validator te laten zien: de SNARK rapporteert namelijk alleen de hashes.
Ethereum en ZK Rollups
ZK Rollups hebben dus de kracht om het netwerk van Ethereum verder op te schalen zodat gebruikers van het netwerk niet meer de hoge transactiekosten hoeven te betalen zoals ze dat nu doen. Wanneer ZK Rollups door Ethereum zelf geïmplementeerd wordt is nog niet duidelijk. De uitrol van Optimistic Rollups is onlangs ook verschoven naar Juli 2021.
Vitalik Buterin, de oprichter van Ethereum, geeft aan dat Rollups waarschijnlijk de belangrijkste schaalbaarheidsoplossing is totdat Ethereum 2.0 volledig uitgerold is. Verder geeft hij ook aan dat Ethereum 1.0 rond de 2000 tot 3000 transacties per seconden aan moeten kunnen met Rollups.
Loopring (LRC) een protocol dat op de Ethereum blockchain loopt, heeft al succesvol ZK Rollups geïmplementeerd in hun protocol, waardoor ze volgens eigen zeggen 2000 transacties per seconde aankunnen.
Nadelen van ZK Rollups
Toch zitten er ook nadelen aan ZK Rollups. ZK Rollups kunnen namelijk niet gebruikt worden door de Ethereum Virtual Machine (EVM) waar alle DApps op gebouwd zijn. Bestaande DApps kunnen dus geen ZK Rollups implementeren in hun huidige ecosysteem.
Ten tweede is de eerste opzet van ZK Rollups een gecentraliseerd proces, want de eerste status kan niet geverifieerd worden. Een kleine groep ontwikkelaars zal dus in eerste instantie over de eerste status van de Rollup gaan. Dit ondermijnt de decentralisatie van Ethereum en opent bovendien het risico van hackaanvallen via social engineering.
Conclusie
ZK Rollups zijn een oplossing voor blockchains om verder te kunnen opschalen, zodat ze sneller en meer transacties kunnen uitvoeren. Net als andere Layer 2 Solutions, zijn ZK Rollups een oplossing in de vorm van een "laag" bovenop de hoofdketting (off-chain), zodat de hoofdketting minder werk te verrichten heeft.
ZK Rollups bundelen, oftewel "roll-up", honderden overschrijvingen van data off-chain en genereren een cryptografisch bewijs, bekend als een zk-SNARK.
Door het Zero Knowledge protocol hoeft niet alle data in de main chain opgenomen te worden, waardoor het valideren van blokken sneller en goedkoper wordt.
Voordelen
- Verlaagde kosten per gebruikersoverdracht;
- Sneller dan Optimistic Rollups en Plasma;
- Minder gegevens in elke transactie verhogen de doorvoer en schaalbaarheid van laag 2;
Nadelen
- Niet (vooralsnog) compatibel met de Ethereum Virtual Machine.
- De eerste opzet van ZK Rollups bevordert een gecentraliseerd proces.
Dit artikel bestaat uit een hoop ingewikkelde technische termen en processen. Hopelijk is het duidelijk en eenvoudig genoeg uitgelegd zodat je het kunt begrijpen. Als je toch nog vragen hebt, nodigen we je graag uit om in onze AllesOverCrypto Facebook groep een balletje op te gooien. Daar zijn AOC’ers en leden van de groep altijd bereid om je vragen te beantwoorden. Zie je daar dan!
Met dank aan kkssr/shuttershock voor de bannerafbeelding.