Dans une VM traditionnelle, le consensus repose sur "l'exécution répétée de chaque transaction par tous les nœuds", ce qui limite le débit global du réseau au nœud le plus lent et gaspille également la puissance de calcul dans de nombreux calculs redondants. Dans le zkVM, le processus est divisé en "exécution + preuve + vérification" : le programme et les entrées n'ont besoin d'être exécutés qu'une seule fois dans le zkVM, générant un résultat et une preuve à connaissance nulle ; les autres nœuds n'ont pas besoin de recalculer, ils doivent simplement vérifier cette preuve. Ainsi, la charge de calcul est considérablement allégée. Prenons l'exemple du zkVM de RISC Zero (ci-après R0VM) : 🔹 Il est basé sur l'ensemble d'instructions RISC-V, les développeurs n'ont qu'à écrire des programmes invités en Rust / C / C++, puis à les compiler en fichiers ELF RISC-V ; 🔹 Chaque fichier ELF correspond à un ID d'image unique, utilisé pour garantir que "l'exécution est bien ce code" ; 🔹 Le résultat de l'exécution génère un reçu, qui comprend : Journal : sortie publique ou résultat d'engagement ; Seal : preuve ZK courte pouvant être vérifiée sur ou hors chaîne. Finalement, les nœuds du réseau n'ont besoin que de vérifier ce reçu, sans avoir à réexécuter tous les calculs. Ainsi, le coût de "l'unanimité du réseau" passe d'une exécution répétée à la vérification d'une courte preuve.