Lea la actualización de zkSync Boojum en un artículo: un zkEVM más seguro y eficiente

Autor original: zkSync

Recopilación del texto original: Deep Tide TechFlow

Comprenda la actualización de zkSync Boojum en un artículo: zkEVM más seguro y eficiente

TLDR

  • Actualización: zkSync Era está en transición al nuevo sistema de prueba Boojum sin regeneración.
  • Rendimiento: Boojum demuestra un rendimiento de prueba de vanguardia, que complementa al clasificador zkSync Era, que ya puede manejar más de 100 TPS.
  • Descentralización: los probadores Boojum solo necesitan 16 GB de RAM, lo que puede realizar la descentralización de probadores a gran escala en el futuro.

La misión de zkSync es promover la libertad personal para todos: hacer que la autopropiedad digital sea universalmente accesible mediante la construcción de una red de cadena de bloques que sea confiable, segura, sin permisos, asequible, fácil de usar, resistente e infinitamente escalable.

De acuerdo con esta misión, la versión alfa de zkSync Era se abrió al público hace poco más de tres meses y la respuesta ha sido fenomenal. Aspectos destacados de la red:

  • Valor total bloqueado TVL 577 millones de USD (Fuente: L 2B eat);
  • 23,750,000 transacciones en los últimos 30 días - la mayor cantidad de cualquier L2 (fuente: L 2B eat);
  • 9.735 contratos inteligentes verificados con código fuente.

En marzo de 2023, nació la Era zkSync basada en SNARK, utilizando el marco de circuito probado en batalla que ha sido compatible con zkSync Lite en la red principal durante casi tres años. Sin embargo, sabíamos que esta no sería la versión final del sistema de prueba zkSync Era y, por lo tanto, diseñamos el sistema para permitirnos realizar cambios fundamentales sin regenerarlo. Esto significa que podemos implementar importantes actualizaciones de criptografía sin interrumpir a los desarrolladores y usuarios.

Detrás de escena, hemos estado trabajando en actualizaciones de criptografía durante mucho tiempo. Hoy, nos complace anunciar la primera actualización: la Era zkSync está en transición a un nuevo sistema de prueba de STARK llamado "Boojum".

Conoce a Boojum

Boojum es nuestra biblioteca de restricciones y aritmética basada en Rust que usamos para implementar circuitos ZK, una versión mejorada de zkSync Era y ZK Stack.

¿Qué es Boojum?

Características de Boojum:

  • PLONK Aritmética: En el contexto de los protocolos de conocimiento cero, la aritmética es el proceso de convertir cálculos generales en forma matemática. Al igual que el sistema de prueba actual, el sistema de actualización todavía emplea aritmética de estilo PLONK. Con este enfoque, los circuitos ZK son más simples de escribir que algunas alternativas, lo que hace que el sistema sea más fácil de desarrollar, auditar, mantener y actualizar.
  • Esquema de compromiso robusto: en el corazón de Boojum se encuentra el esquema de compromiso FRI, un componente clave que nos permite comprometernos con polinomios acotados y luego probar de manera eficiente que la apertura reclamada (de un polinomio) es de hecho un polinomio de bajo grado.
  • Eficiencia del sistema: aunque la generación de testigos a veces se pasa por alto cuando la gente habla sobre el rendimiento del probador, en la versión actual del sistema de prueba hemos llegado a un punto en el que un probador de GPU optimizado es tan eficiente que el tiempo de generación de testigos es comparable al de la generación de pruebas. el tiempo es bastante. Con Boojum, proporcionamos generación de testigos que se paraleliza automáticamente (si el gráfico de dependencia lo permite), manteniendo la simplicidad de definir funciones de generación de testigos.
  • Facilidad de extensibilidad: la abstracción básica del sistema de restricciones es muy limpia, pero permite al usuario agregar tipos de puerta personalizados de varias maneras, como agregarles algunos polinomios especializados o reutilizar las llamadas "columnas genéricas". Después de que los usuarios definan geometrías simples para sus circuitos, la interfaz de extensión brinda la capacidad de generar probadores, verificadores y verificadores recursivos automáticamente. Esto permite un proceso de desarrollo muy eficiente; si el usuario cambia la estructura del circuito y elige un tipo diferente de puerta para usar, simplemente puede volver a llamar a la interfaz y regenerará las claves y se asegurará de que esté usando el comprobador y el verificador correctos.
  • Single stack: con Boojum, todo lo anterior se puede expresar usando solo Rust idiomático estándar, aprovechando el poder expresivo de su sistema de tipos. Las partes computacionalmente intensivas de GPU Prover están escritas en CUDA C++, pero proporcionamos enlaces de Rust para la composición.

Boojum usa un campo de números primos de tamaño 2^64 - 2^32 + 1 (llamado "campo Ricitos de oro") de forma predeterminada, y proporciona implementaciones de primitivas de enlace de campo correspondientes, como funciones hash de Poseidón 2 e implementaciones basadas en tablas de búsqueda de primitivos criptográficos más estándar, como SHA 256, Keccak 256 y Blake 2 s.

Es importante destacar que, en el paso final, envolveremos la prueba STARK con un SNARK basado en emparejamiento no transparente y verificaremos este SNARK en Ethereum. Esta prueba es mucho más pequeña y menos costosa de verificar; este paso reduce el costo del sistema de prueba y, por lo tanto, la transacción en sí.

¿Por qué elegir Boojum?

Al diseñar Boojum, hubo dos factores clave detrás de la decisión: (1) rendimiento de prueba de clase mundial y (2) requisitos de hardware reducidos para la descentralización.

Desempeño de clase mundial

El sistema actual basado en SNARK, aunque efectivo por el momento, no puede escalar a transacciones de gran volumen casi en tiempo real en ZK Stack. El objetivo futuro de zkSync Era funcionando como Hyperchain es admitir estos sistemas en los años venideros. Nuestra visión para estos sistemas es que las pruebas se puedan generar y verificar de manera económica y rápida, lo que permite una finalidad e interoperabilidad rápidas entre Hyperchains.

El desempeño del sistema de prueba afecta directamente las tarifas que pagan los usuarios por sus transacciones, y estos costos deben aproximarse a cero con el tiempo. La versión actual del sistema de prueba es lo suficientemente eficiente como para crear un zkEVM y procesar millones de transacciones en solo unos meses, ¡pero con Boojum podemos hacerlo aún mejor!

Para medir el tiempo de generación de pruebas de la red (y otras métricas clave relacionadas con el rendimiento), nos asociamos con Celer, cuyo equipo tiene una amplia experiencia en la evaluación comparativa y el análisis de múltiples sistemas de pruebas. En la imagen a continuación, puede ver que Boojum funciona muy bien en la mayoría de los sistemas que están perfilados. Los resultados hablan por sí solos: nuestra implementación demuestra un rendimiento de prueba de clase mundial y, hasta donde sabemos, es el sistema de prueba más rápido actualmente en uso en producción.

Para una comparación justa, Celer ejecutó estos puntos de referencia en un probador basado en CPU, pero nuestro sistema de red principal usa un probador basado en GPU, que es mucho más rápido.

Comprenda la actualización de zkSync Boojum en un artículo: zkEVM más seguro y eficiente

Pasar a un sistema de prueba basado en STARK representa un aumento significativo del rendimiento y ayudará a garantizar la finalidad y la baja latencia en apoyo de mayores niveles de actividad para zkSync Era y otros sistemas basados en ZK Stack.

Reducción de los requisitos de hardware descentralizados

Estos resultados de rendimiento son especialmente impresionantes cuando se considera que esta no es la única métrica para la que estamos optimizando: queremos aumentar el rendimiento del sistema y reducir los requisitos de hardware para ejecutarlo.

Los sistemas de prueba comúnmente utilizados en la actualidad, incluido nuestro sistema existente, tienen requisitos de hardware relativamente altos. Nuestro sistema de prueba actual se ejecuta en un conjunto de GPU A100 con 80 GB de RAM cada una. La necesidad de máquinas caras y potentes plantea un obstáculo importante para nuestro objetivo: el futuro de la generación de pruebas descentralizada impulsada por el usuario. Para lograr este objetivo, no es suficiente hacer que la generación de pruebas no requiera permiso; los usuarios no deberían necesitar una máquina costosa con cientos de gigabytes de RAM para participar.

¡Esta es otra área en la que hemos logrado un progreso extremadamente impresionante! Nuestro probador de GPU para Boojum requiere solo 16 GB de RAM, y este umbral bajo es un paso importante para el futuro que imaginamos. Las pruebas basadas en CPU también pueden usar tan solo 64 GB de RAM, que esperamos reducir a 32 GB y aprovechar al máximo los procesadores multinúcleo modernos.

Finalmente, el secuenciador basado en Rust de zkSync Era ya puede manejar más de 100 transacciones por segundo (TPS). La introducción de un nuevo sistema de prueba no solo mejora el rendimiento, sino que también reduce los requisitos de hardware, lo que lo convierte en un complemento ideal para los secuenciadores. El aumento de rendimiento generado por Boojum significa que el sistema puede probar transacciones más rápido, mientras que los requisitos de hardware reducidos mejoran el acceso a la red a máquinas más baratas para una mayor escalabilidad horizontal.

Recorrido por la red principal de Boojum

El equipo ha pasado meses desarrollando esta actualización y estamos contentos de haber llegado a la etapa de prueba del sistema en la red principal. También queríamos compartir algunas historias hasta ahora.

Actualización de la era zkSync

Primero, el diseño de zkSync Era nos permite actualizar cada componente con el tiempo, y el sistema de prueba no es una excepción.

Al igual que Ethereum, usamos una estructura de datos de árbol de Merkle para almacenar información sobre el estado de la red. Dado que estamos probando una afirmación sobre el estado del sistema, esta información es necesaria para probar el sistema. Para este árbol de Merkle (y la forma en que el sistema de prueba interactúa con él), una decisión de diseño clave fue usar una función hash no algebraica, específicamente Blake 2 s. Si solo estuviéramos optimizando para facilitar la generación de pruebas, usaríamos una función hash algebraica (por ejemplo, Poseidón 2), pero esta opción combina el estado observable con los parámetros del sistema de prueba, como la elección de campos de números primos. Cualquier actualización del sistema de prueba requiere una regeneración completa del estado.

El viaje de Boojum desde el diseño hasta la revisión

Hace aproximadamente un mes, comenzamos a terminar una versión completa de extremo a extremo de la implementación de nuestro nuevo sistema de pruebas. Dada la complejidad de este cambio y la criticidad de la corrección del sistema, nos embarcamos en una serie de auditorías internas y externas.

En ese momento, el circuito zkEVM y la biblioteca aritmética de Boojum todavía estaban en desarrollo activo, pero trabajamos con auditores de seguridad externos para centrarnos en la identificación temprana de posibles problemas con la cordura de nuestro circuito principal y los componentes de Boojum. Trabajamos de cerca, brindándoles código fuente completo y acceso a la documentación, y revisaron y probaron el circuito zkEVM y el dispositivo Boojum, utilizando métodos de prueba manuales y automatizados.

Boojum: de la revisión a la prueba

Esto nos lleva al día de hoy, el siguiente paso en nuestro lanzamiento por fases: ¡Modo de sombra de Mainnet! Nos complace anunciar que ahora estamos ejecutando el nuevo sistema de prueba en paralelo con el existente, aunque Boojum actualmente solo está en versión beta. Hemos comenzado a generar y validar "pruebas de sombra" de bloques de mainnet.

Estas pruebas paralelas no son necesarias para la versión de red principal de zkSync Era; seguirá estando impulsada por el sistema de prueba existente. Solo estamos validando estas pruebas de sombra para probar y optimizar el sistema, pero utilizando datos de producción reales de la actividad de los usuarios de zkSync Era.

Boojum: de la prueba a la red principal

Como con todo lo que hacemos, la seguridad es siempre una prioridad. Consideraremos migrar solo cuando estemos completamente satisfechos con nuestras pruebas del nuevo sistema y compartiremos más detalles en las próximas semanas y meses. También planeamos realizar más auditorías y evaluaciones de seguridad para acercar esta emocionante actualización a la implementación completa y eliminar gradualmente el sistema de atestación actual.

Creemos que Boojum es la siguiente etapa en el zkEVM más seguro, escalable y eficiente.

Ver originales
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Recompensa
  • Comentar
  • Compartir
Comentar
0/400
Sin comentarios
  • Anclado
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)