Los juegos de cadena completa/mundos autónomos son una de las narrativas más importantes de Web3. A finales de octubre, los usuarios activos diarios (DAU) de juegos web3 alcanzaron los 5.3 millones, mostrando un enorme potencial de mercado. A diferencia de las aplicaciones Web2.5, los juegos de cadena completa/mundos autónomos despliegan toda la lógica del juego en la blockchain, utilizando directamente la blockchain como servidor de juegos y asegurando que cada operación de usuario ocurra realmente en la cadena. Esto trae ventajas significativas como la descentralización, la confianza y una alta combinabilidad, pero los juegos tradicionales aún enfrentan desafíos significativos en términos de cuellos de botella de rendimiento, escalabilidad y privacidad al abrazar Web3. Nova es un esquema de plegado que promete redefinir el estado del juego y guiar a los juegos Web3 hacia una nueva era.

¿Qué es Nova?

Nova [1] es un sistema de prueba recursiva basado en esquemas de plegado, diseñado específicamente para R1CS, que puede implementar de manera eficiente el cálculo verificable incremental (IVC). IVC es un primitivo criptográfico que asegura la integridad del proceso de ejecución de un programa informático dado, al demostrar la corrección de cada resultado paso a paso, garantizando que cada paso se ejecute correctamente en base a todos los resultados anteriores.

Primero, ¿qué es IC (Cálculo Incremental)? IC se refiere a la aplicación recursiva de la misma función F para realizar cálculos, es decir, mediante la entrada de un estado inicial, se obtiene un estado después de esta iteración, como se muestra en la figura 1.a. Si la función F también incluye un circuito de verificación, entonces se obtiene IVC (Cálculo Verificable Incremental). IVC permite que el Prover demuestre al Verifier, generando una prueba concisa en cada paso, asegurando que el proceso de cálculo desde el inicio hasta el paso es correcto, como se muestra en la figura 1.b. Se puede observar que este método puede dividir cálculos/declaraciones grandes en bloques más pequeños, que luego pueden ejecutarse de manera más eficiente al repetir el mismo bloque de código.

Nova propone un esquema de plegado altamente innovador, que fusiona dos instancias R1CS y sus respectivas instancias de testigo en una sola. En comparación con el IVC basado en Snark, Nova no necesita verificar las pruebas Snark anteriores en cada recursión, por lo que tiene las siguientes características:

  • Sin configuración de confianza

  • Sin operaciones FFT y sin necesidad de curvas elípticas amigables con pares

  • Tiempo de verificación constante

  • Solo para instancias R1CS, fusionará 2 instancias R1CS en 1 instancia R1CS

¿Por qué Nova?

Los juegos web3 tienen un futuro brillante, pero también enfrentan muchos desafíos. Primero, para los juegos de ritmo rápido en tiempo real, el tiempo de respuesta de las instrucciones de operación suele ser medido en milisegundos. Sin embargo, la mayoría de las blockchains aún no tienen la capacidad de soportar juegos de alto rendimiento. En segundo lugar, con el aumento del volumen de transacciones, la blockchain puede volverse congestionada, lo que lleva a retrasos y afecta la experiencia.

Para abordar estos problemas, exploramos un método llamado Game Rollup. Game Rollup agrega las instrucciones de operación del juego en el mismo circuito a través del sistema de prueba Groth16, y luego genera una prueba y la sube a la cadena para su verificación. Con este enfoque, los jugadores pueden realizar más operaciones antes de interactuar con la blockchain, disfrutando de una experiencia de juego más prolongada y evitando tener que esperar la confirmación en la cadena para cada operación.

Específicamente, nuestro circuito Rollup también se puede representar en forma de IVC:

Donde F es la función de turno del juego.

Tomemos como ejemplo nuestro juego 2048, que es una adaptación en cadena de un clásico juego de deslizamiento de rompecabezas. El mayor desafío en el diseño de 2048 radica en el diseño de la función F. Dado que en el juego 2048, cada turno tiene cuatro posibles entradas de instrucciones (arriba, abajo, izquierda, derecha), el diseño de la función F (circuito) debe ser bastante ingenioso para manejar estas cuatro entradas, ya que es esencialmente diferente de la lógica de 2048 implementada en la cadena a través de contratos inteligentes, que generalmente maneja las instrucciones mediante simples sentencias if (por ejemplo, if up {}, else if down {} ...). Sin embargo, no se admite el uso directo de estructuras if-else en el circuito, y hablaremos de esto en el siguiente artículo.

Solana es una cadena pública de alto rendimiento que puede ofrecer una velocidad de confirmación de transacciones relativamente rápida, pero aun así, la experiencia del juego 2048 [2] desplegado en ella no ha alcanzado la fluidez ideal. En contraste, nuestro enfoque basado en Game Rollup proporciona una experiencia de juego más fluida, lo que demuestra la ventaja de Game Rollup en la mejora del rendimiento del juego. Sin embargo, este método aún tiene algunas limitaciones, ya que es solo una de las implementaciones más sencillas de IVC:

  • El probador requiere Ω (i * |F|) memoria

  • La prueba no es actualizable de manera incremental

Hasta que encontramos y estudiamos en profundidad Nova, sentimos una especie de 'lamento por no haberlo encontrado antes', ya que supera las limitaciones de Game Rollup y promete resolver los cuellos de botella de rendimiento y escalabilidad en los juegos Web3. A continuación, presentamos pruebas de referencia de rendimiento entre Game Rollup y Nova utilizando el juego 2048 como ejemplo:

Resumen

Nova no solo tiene un rendimiento superior, sino que también es altamente eficiente en memoria, lo cual es muy importante para circuitos grandes, ya que Groth16 requiere un SRS grande y agota la memoria. Nova aún puede funcionar de manera eficiente en entornos de baja memoria. Actualmente, algunos ZKVM también han comenzado a construir sobre Nova, como Nexus [3]. Creemos que Nova traerá un rendimiento y escalabilidad sin precedentes a los juegos Web3, convirtiéndose en una tecnología clave para impulsar el desarrollo de juegos Web3. Zypher ya ha establecido una estrecha asociación estratégica con Nexus y está colaborando activamente en la adopción de ZKVM basado en el sistema Nova para crear la infraestructura de aplicaciones descentralizadas de próxima generación en la cadena.

Referencia:

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

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

[3] https://nexus.xyz/