ZK-rollup
Een ZK-rollup is een layer-2-netwerk dat een basisblockchain schaalt door transacties off-chain uit te voeren en elke batch te plaatsen samen met een zero-knowledge-geldigheidsbewijs – een compact cryptografisch bewijs dat elke transactie in de batch de regels heeft gevolgd. Het smart contract op de basisketen verifieert het bewijs voordat het de batch accepteert, zodat een ongeldige toestandsovergang wiskundig onmogelijk naar binnen kan worden gesmokkeld, wat de operators van de rollup ook doen.
Dit staat in contrast met optimistic rollups, die ervan uitgaan dat batches geldig zijn en vertrouwen op een betwistingsperiode voor fraude van ongeveer een week. Omdat de batches van een ZK-rollup vooraf correct bewezen zijn, kunnen opnames naar de layer 1 definitief worden zodra het bewijs is geverifieerd – minuten tot uren in plaats van dagen. De keerzijde is technische complexiteit: het genereren van bewijzen voor willekeurige uitvoering van smart contracts is rekenintensief, en daarom duurde het jaren langer voordat "zkEVM's" (ZK-rollups die standaard Ethereum-contracts draaien) werden opgeleverd dan optimistische ontwerpen. Voorbeelden op Ethereum zijn zkSync Era, Starknet, Linea en Scroll; een tokenoverdracht daar kost centen terwijl de beveiliging van Ethereum wordt geërfd via de bewijzen en data die on-chain worden geplaatst.
Een veelvoorkomende misvatting is dat het "zero-knowledge"-deel betekent dat transacties privé zijn; de meeste ZK-rollups gebruiken de bewijzen puur voor geldigheid en compressie, en hun transactiedata is openbaar – privacy is een aparte functie die slechts enkele systemen toevoegen. Op de lange termijn beschouwen veel onderzoekers geldigheidsbewijzen als het eindspel voor het schalen van blockchains, omdat één goedkope verificatie daarmee de plaats kan innemen van het opnieuw uitvoeren van enorme hoeveelheden rekenwerk.