Zk roll ups staat voor zero knowledge gebundelde transacties. Met deze technologie worden layer1 netwerken goedkoper en meer schaalbaar, omdat transacties samengebundeld worden en als 1 transactie worden verwerkt op de main chain. Vandaag gaan we het hebben over zk rollups. Het is niet een van de gemakkelijkste onderwerpen, dus zet je schrap!
✔️ De Zk Rollup is een laag 2 oplossing die de snelheid van een blockchain verhoogt door meerdere transacties in één blok te bundelen en te verwerken.
✔️ Zero knowledge proof houdt in dat men bewijst dat men een bepaald iets weet, zoals een hash (code) van een blok, zonder meer informatie prijs te geven.
✔️ Een zk rollup wordt vaak toegepast wanneer het hoofdnetwerk te traag en te duur wordt. Hierdoor wordt het netwerk ontlast waardoor het sneller en goedkoper wordt.
✔️ Zk Rollups zullen vaker voorkomen door hun schaalbaarheid en kostenbesparende voordelen, hoewel ze nog moeilijk te implementeren zijn.
Er zijn twee onderdelen in een zk rollup. Zk is de afkorting van zero knowledge. In het Nederlands betekent dat geen informatie hebben. Bij zero knowledge proof wordt het bewijs geleverd dat je een bepaald iets weet, bijvoorbeeld een hash (code) van een block, zonder dat je meer informatie weet, zoals naam, adres, e.d.
Het gedeelte rollup betekent oprollen. In dit kader wordt hiermee bedoeld dat er meerdere transacties samengebundeld worden en in één block verwerkt.
Beide gedeelten gaan over de snelheid. Met zk rollups wordt de snelheid van een blockchain behoorlijk verhoogd.
Een zk roll up is een layer 2 oplossing. Vaak wordt hij geïmplementeerd als het hoofdnetwerk te traag en te duur wordt, zoals bij Ethereum. Het hoofdnetwerk van de blockchain, layer 1, wordt dan ondersteund door zk rollup, zodat het ontlast wordt en het sneller en goedkoper wordt.
Stel je voor dat je een ontwikkelaar bent bij Ethereum. Je moet het netwerk sneller maken en minder kostbaar om mee te werken. Je besluit zk rollups te implementeren om de main chain te ontlasten.
Als er nu transacties worden gedaan zullen ze off-chain gebundeld worden in een rollup op een sub-chain. Op deze sub-chain wordt dan de nieuwe staat van het netwerk aan de main chain (Ethereum) medegedeeld plus nog wat data (zero knowledge proof) om te bewijzen dat dit correct is.
Hierdoor zal de main chain slechts de rollup en de zk proof te verwerken krijgen en geen duizenden transacties. Zo kun je Ethereum opschalen van 10-15 transacties naar duizenden per seconde.
De transactiegegevens zullen dus wel opgeslagen worden op de main chain, zodat de staat van de blockchain nog steeds correct is en aan iedereen die het netwerk bijhoudt medegedeeld worden. Zo weet iedere validator nog steeds hoeveel ETH iedereen heeft.
De zk rollup status wordt bijgehouden op het Ethereum netwerk door een smart contract. Om deze status te bewijzen moeten ze cryptografisch bewijs leveren dat ze ook al deze transacties doorgevoerd hebben. Zk roll ups maken ook gebruik van het comprimeren van data, zoals adressen, zodat het allemaal nog sneller en goedkoper wordt. Zodra het bewijs geleverd is zal de bundel transacties die verzameld zijn instant uitgevoerd worden op de main chain.
Aangezien de veiligheid van de status updates op de main chain (Ethereum) doorgevoerd worden zijn zk rollups een stuk veiliger dan sidechains.
De meeste zk rollups gebruiken een supernode, een soort superuser die alle transacties bundelt. Het risico bestaat dat er iemand gecensureerd wordt, hetgeen in dit geval betekent dat de superuser je transacties niet wil valideren. Als dat gebeurt kan iemand zijn transacties direct naar het roll up contract sturen op Mainnet.
Gebruikers kunnen zich opgeven voor inclusie in de volgende roll up en dus goedkoper uit zijn op deze manier.
De operators of superusers checken een transactie en kijken of een gebruiker onderdeel is van de status van het netwerk. Verder kijken ze of er genoeg fondsen in een account zijn. De transactie moet correct zijn en de publieke sleutel moet overeenkomen met die van de zender in de roll up. Ook wordt de nonce (om double spending te voorkomen) opgenomen in de roll up.
Als de roll up genoeg transacties heeft verzameld bundelt hij ze. Een zk SNARK wordt gebruikt om een bewijs te leveren dat de gegevens correct zijn.
Hierna gaat een “proving circuit” aan de slag met deze gegevens en kijkt of alles correct is. Zodra dit gedaan is stuurt de operator de gegevens door naar het verificatie smart contract op layer 1 van de blockchain. Hier wordt alles nogmaals op correctheid getest, waarna de transacties in het grootboek gezet worden en de nieuwe staat van de blockchain bekend is.
Het is zelfs mogelijk dat er proof of proof ontstaat. Deze zogenaamde recursive proofs bundelen zk proofs samen op layer 2, waarna er op layer 1 alle proofs samen worden geaccepteerd, waarna er instant een batterij blocks worden geaccepteerd, hetgeen verdere schaalbaarheid toevoegt aan een roll up netwerk.
Als je ook als gebruiker mee wilt doen aan een roll up om je transactiekosten te beperken, moet je fondsen in een roll up smart contract steken op layer 1. Zodra de operator je fondsen geaccepteerd heeft kun je goedkopere transacties in deze roll up uitvoeren.
Zk roll ups verhogen dus de schaalbaarheid en reduceren de kosten voor de gebruiker. Ze zijn echter behoorlijk lastig te implementeren, waardoor ze nog maar mondjesmaat toegepast worden. De kans dat malafide superusers het netwerk bedreigen is ook hoger. Naarmate de ontwikkelaars er handiger in worden zal de zk roll up zeker vaker toegepast worden, aangezien veel gebruikers van bepaalde netwerken de transactiekosten en de snelheid onaanvaardbaar vinden.