Les jeux sur blockchain / mondes autonomes sont l'un des récits les plus importants de Web3. À la fin octobre, le nombre d'utilisateurs actifs quotidiens (DAU) des jeux Web3 a atteint 5,3 millions, montrant un immense potentiel de marché. Contrairement aux applications Web2.5, les jeux sur blockchain / mondes autonomes déploient toute la logique du jeu sur la blockchain, utilisant directement la blockchain comme serveur de jeu, garantissant que chaque action de l'utilisateur se produit réellement sur la chaîne, ce qui apporte des avantages significatifs tels que la décentralisation, la confiance et une forte combinabilité. Cependant, les jeux traditionnels rencontrent encore d'importants défis en matière de performances, d'évolutivité et de confidentialité en adoptant le web3. Nova est une solution de pliage qui a le potentiel de transformer l'état des jeux, conduisant les jeux Web3 vers une nouvelle ère.

Qu'est-ce que Nova

Nova [1] est un système de preuve récursive basé sur des schémas de pliage, spécialement conçu pour R1CS, capable d'implémenter efficacement le calcul vérifiable incrémental (IVC). L'IVC est un primitif cryptographique qui garantit, en prouvant la correction de chaque résultat d'étape, que chaque étape a correctement exécuté tous les résultats précédents, permettant ainsi à une partie de démontrer l'intégrité du processus d'exécution d'un programme informatique donné.

Tout d'abord, qu'est-ce que IC (Calcul Incrémental) ? IC fait référence à l'application récursive de la même fonction F pour effectuer des calculs, c'est-à-dire obtenir un état en entrant un état initial, après cette itération, comme montré dans la figure 1.a. Si la fonction F contient également un circuit de vérification, cela donne l'IVC (Calcul Vérifiable Incrémental). L'IVC permet au Prover de prouver au Vérificateur et de générer une preuve à chaque étape, ce qui garantit que le processus de calcul de l'étape initiale à l'étape en cours est correct, comme illustré dans la figure 1.b. On peut voir que cette méthode peut décomposer des calculs / instructions de grande taille en blocs plus petits, puis exécuter de manière plus efficace des blocs de code identiques.

Nova propose un schéma de pliage très innovant, qui fusionne deux instances R1CS ainsi que leurs instances de témoin respectives en une seule. Comparé à l'IVC basé sur Snark, Nova n'a pas besoin de vérifier les preuves Snark précédentes à chaque itération, donc elle présente les caractéristiques suivantes :

  • Aucun paramétrage de confiance nécessaire

  • Pas de calcul FFT, et pas besoin de courbes elliptiques amicales pour le couplage

  • Temps de vérification constant

  • Uniquement pour l'instance R1CS, fusionnera 2 instances R1CS en 1 instance R1CS

Pourquoi Nova

Les jeux Web3 ont un avenir prometteur, mais ils font également face à de nombreux défis. Tout d'abord, pour les jeux en temps réel à rythme rapide, le temps de réponse des instructions d'opération est généralement mesuré en millisecondes, mais la plupart des blockchains n'ont pas encore la capacité de prendre en charge l'exécution de jeux à haute performance. Deuxièmement, avec l'augmentation du volume des transactions, la blockchain peut devenir encombrée, entraînant des retards et affectant l'expérience.

Pour résoudre ces problèmes, nous avons exploré une méthode appelée Game Rollup. Game Rollup agrège les instructions d'opération de jeu dans le même circuit à l'aide du système de preuve Groth16, puis génère une preuve et la télécharge sur la chaîne pour vérification. Grâce à cette approche, les joueurs peuvent effectuer plus d'actions avant d'interagir avec la blockchain, profiter d'une expérience de jeu prolongée et éviter d'attendre la confirmation sur la chaîne à chaque action.

Concrètement, notre circuit Rollup peut également être exprimé sous forme IVC :

où F est la fonction de tour du jeu.

Prenons notre jeu 2048 comme exemple, qui est une adaptation en chaîne d'un classique jeu de puzzle à glissement. Le plus grand défi dans la conception de 2048 réside dans la conception de la fonction F. Dans le jeu 2048, chaque tour a quatre instructions d'entrée possibles : haut, bas, gauche, droite. Pour prendre en charge ces quatre entrées, la conception de la fonction F (circuit) doit être assez sophistiquée, car elle diffère fondamentalement de certaines logiques 2048 mises en œuvre sur la chaîne via des contrats intelligents, qui traitent généralement les instructions par des instructions if simples (par exemple, if up {}, else if down {} ...). Cependant, le circuit ne prend pas en charge l'utilisation directe de structures if-else, nous en parlerons plus en détail dans le prochain article.

Solana est une blockchain à haute performance, capable de fournir une vitesse de confirmation des transactions rapide, mais même ainsi, l'expérience du jeu 2048 [2] déployé dessus n'atteint toujours pas le niveau de fluidité souhaité. En revanche, notre méthode basée sur Game Rollup offre une expérience de jeu plus fluide, ce qui prouve l'avantage de Game Rollup en matière d'amélioration des performances de jeu. Cependant, cette méthode présente encore certaines limitations, car elle n'est qu'une mise en œuvre très basique de l'IVC :

  • Le prouveur nécessite Ω ( i *∣ F ∣ ) mémoire

  • La preuve n'est pas incrémentalement mise à jour

Ce n'est que lorsque nous avons rencontré et étudié en profondeur Nova que nous avons eu un sentiment de "rencontre trop tard", car elle surmonte les limitations de Game Rollup et a le potentiel de résoudre les goulets d'étranglement de performances et d'évolutivité dans les jeux Web3. Voici un test de référence sur les performances entre Game Rollup et Nova, en prenant le jeu 2048 comme exemple :

Résumé

Nova non seulement offre des performances supérieures, mais est également efficace en termes de mémoire, ce qui est crucial pour les grands circuits, car Groth16 nécessite un SRS volumineux et épuise la mémoire. Nova peut toujours fonctionner efficacement dans des environnements à faible mémoire. Actuellement, certains ZKVM ont également commencé à être construits sur la base de Nova, comme Nexus [3]. Nous croyons que Nova apportera des performances et une évolutivité sans précédent aux jeux Web3, devenant une technologie clé pour propulser le développement des jeux Web3. Zypher a établi un partenariat stratégique étroit avec Nexus et collabore activement à l'adoption du ZKVM basé sur le système Nova pour créer une infrastructure d'applications décentralisées de nouvelle génération.

Références :

[1] https://eprint.iacr.org/2021/370

[2] https://solplay.de/solana-2048/

[3] https://nexus.xyz/