In traditionele VM's is consensus afhankelijk van "alle knooppunten die elke transactie herhaaldelijk uitvoeren", waardoor de doorvoer van het netwerk wordt beperkt door het langzaamste knooppunt en rekenkracht wordt verspild aan een grote hoeveelheid herhaalde berekeningen. In zkVM daarentegen wordt het proces opgesplitst in "uitvoering + bewijs + verificatie": programma en invoer hoeven slechts één keer in de zkVM te worden uitgevoerd, wat resulteert in een resultaat en een nul-kennisbewijs; andere knooppunten hoeven geen herberekeningen uit te voeren, maar hoeven alleen dit bewijs te verifiëren. Hierdoor wordt de rekenlast aanzienlijk verminderd. Neem als voorbeeld de zkVM van RISC Zero (hierna R0VM genoemd): 🔹 Het is gebaseerd op de RISC-V instructieset, ontwikkelaars hoeven alleen maar een gastprogramma te schrijven in Rust / C / C++, dat vervolgens wordt gecompileerd naar een RISC-V ELF-bestand; 🔹 Elk ELF-bestand heeft een unieke Image ID, die ervoor zorgt dat "de uitvoering inderdaad deze code is"; 🔹 Het uitvoeringsresultaat genereert een Receipt (ontvangstbewijs), dat het volgende bevat: Journal: openbare uitvoer of beloofde resultaten; Seal: een kort ZK-bewijs dat op of buiten de keten kan worden geverifieerd. Uiteindelijk hoeven de knooppunten in het netwerk alleen dit ontvangstbewijs te verifiëren, zonder alle berekeningen opnieuw uit te voeren. Hierdoor dalen de kosten van "netwerkconsensus" van herhaalde uitvoering naar verificatie van korte bewijzen.