TL;DR
Hoy, las soluciones de capa 2 compensan la escalabilidad por la fragmentación del estado. Introducimos un diseño de capa 2 (L2), =nil;, que empuja los límites de la escalabilidad de Ethereum sin comprometer los beneficios de un entorno de ejecución unificado. La solución combina un mecanismo de fragmentación dinámica con acceso comprobable a los datos de Ethereum, asegurado por tecnologías de conocimiento cero. Los elementos clave incluyen:
A través de zkSharding =nil; se beneficia de las ventajas de los diseños monolíticos y modulares, incluyendo:
Escalabilidad
Entorno de Ejecución Unificado
Seguridad
Funcionalidad
En el nivel inferior, el estado de =nil; se divide en el fragmento primario y varios fragmentos secundarios. El papel del fragmento principal es sincronizar y consolidar datos de los fragmentos secundarios. Utiliza Ethereum tanto como su Capa de Disponibilidad de Datos como verificador de pruebas de transición de estado, similar a las operaciones típicas de zkRollups.
Las fragmentaciones secundarias funcionan como "trabajadores", ejecutando transacciones de usuarios. Estas fragmentaciones mantienen liquidez y datos unificados a través de un protocolo de mensajería entre fragmentaciones, eliminando cualquier fragmentación entre ellas.
Cada fragmento es supervisado por un comité de validadores. Hay una rotación periódica de estos validadores entre fragmentos. Además, las actualizaciones del estado de un fragmento se verifican en el fragmento principal utilizando zkEVM.
Para ilustrar el flujo de transacciones desde la iniciación por parte de un usuario hasta la confirmación en Ethereum, considere los siguientes pasos:
Este esquema asume que la transacción del usuario no activa el protocolo de mensajería entre fragmentos. Sin embargo, en este caso, el flujo de la transacción sigue siendo el mismo con la diferencia de que la transacción del usuario puede desencadenar la creación de nuevas transacciones en otros fragmentos.
Con todas las cuentas distribuidas entre fragmentos, esto podría parecer similar al problema de fragmentación de datos encontrado en el enfoque de rollups específicos de la aplicación. Sin embargo, la diferencia clave radica en cómo se maneja la comunicación entre fragmentos: está integrada directamente en el protocolo general, en lugar de ser administrada por puentes externos separados.
Para garantizar la seguridad de cada fragmento secundario, su comité validador está obligado a demostrar sus transiciones de estado al primario para asegurar que no ha habido fraude dentro de un grupo de validadores más pequeño. Cada comité de validadores de fragmentos tiene tareas adicionales más allá del mantenimiento del fragmento. Los validadores son responsables de rastrear tipos específicos de eventos, es decir, mensajes entre fragmentos, dentro de los “fragmentos cercanos”. Los fragmentos cercanos se determinan en función de la distancia de Hamming en los identificadores de fragmentos.
=nil;s zkEVM es un zkEVM de Tipo-1 compilado con zkLLVM. Para entender las diferencias entre los zkEVMs más tradicionales y el zkEVM de =nil;, necesitamos hablar de las limitaciones asociadas con el proceso de definición de circuitos que subyace a los zkEVMs. El circuito zkEVM es una parte crítica, responsable de que una prueba de transición de estado se considere correcta, generalmente se define con algún zkDSL personalizado o simplemente una biblioteca. Esta forma de definir circuitos trae problemas relacionados con:
=nil; zkEVM está abordando de manera efectiva todos estos desafíos al ser:
zkEVM compilado a través de zkLLVM es seguro por diseño, aprovechando evmone para garantizar completa consistencia con el EVM utilizado en producción de Ethereum. El zkLLVM (C++ o Rust) compila automáticamente hasta el circuito, lo que elimina errores humanos del proceso de definición del circuito.
Además, debido a que =nil; zkEVM se compila a través de zkLLVM, es naturalmente más flexible (y, por lo tanto, más a prueba de futuro) que los circuitos definidos manualmente, ya que es fácilmente ajustable y la generación de circuitos es automática. También es más auditable, lo que significa que su seguridad no tiene un costo que incluya las últimas EIP agregadas a Ethereum.
Como el fragmento principal y los fragmentos secundarios son diferentes en cuanto a sus tareas dedicadas - los fragmentos secundarios se centran en el procesamiento de transacciones mientras que el fragmento principal se centra en la sincronización de datos - tienen enfoques diferentes para la disponibilidad de datos (DA), lo que ayuda a recuperar datos de estado en situaciones de emergencia. Esto significa:
Esta disposición se establece mediante el lanzamiento de dos tipos de fragmentos al inicio: aquellos con una solución DA externa separada y aquellos sin ella. En fases posteriores, solo se pueden fusionar fragmentos de la misma categoría DA. Esto significa que durante su creación, cada cuenta debe ser asignada a una categoría DA específica.
Además, este marco se puede ampliar para incluir otros tipos de DA.
Uno de nuestros objetivos principales es optimizar la composabilidad de la aplicación y evitar la fragmentación de la liquidez, por lo que naturalmente el enfoque de zkSharding sería incompleto sin acceso sin confianza al estado de Ethereum. Esto significa que =nil; ofrece una composabilidad completa e integración transparente con Ethereum a través del módulo Data Provider.
El proveedor de datos opera de forma independiente al almacenamiento de datos del fragmento, sincroniza su información con una base de datos externa e inyecta la huella digital de Ethereum del último estado de la base de datos monitoreada (representada por el hash de bloque de Ethereum) en el bloque del fragmento. El estado más reciente de esta base de datos recibe validación del módulo de confirmación, que utiliza un zkBridge con la prueba de consenso Casper FFG de Ethereum.
=nil; y zkSharding son una culminación de productos que =nil; Foundation ha desarrollado en los últimos 4 años. Su objetivo es ser la primera solución componible, escalable y universal de capa 2 de Ethereum zkRollup. ¡Estamos emocionados de compartir más detalles de implementación en los próximos meses. Asegúrese de seguir nuestro Twitter para mantenerse actualizado con nuestro progreso!
Para los técnicamente inclinados, hemos desarrolladoun manual separado y completoque profundiza en los detalles de =nil; y zkFragmentación. Esta introducción es tu puerta de entrada para entender las complejidades detrás de este enfoque, equipado con todos los detalles técnicos y preliminares que necesitas.
Sumérgete en nuestro manual técnico ahora y únete a la conversación sobre Discord y Telegram¡Vamos a explorar juntos las posibilidades ilimitadas de zkSharding!
TL;DR
Hoy, las soluciones de capa 2 compensan la escalabilidad por la fragmentación del estado. Introducimos un diseño de capa 2 (L2), =nil;, que empuja los límites de la escalabilidad de Ethereum sin comprometer los beneficios de un entorno de ejecución unificado. La solución combina un mecanismo de fragmentación dinámica con acceso comprobable a los datos de Ethereum, asegurado por tecnologías de conocimiento cero. Los elementos clave incluyen:
A través de zkSharding =nil; se beneficia de las ventajas de los diseños monolíticos y modulares, incluyendo:
Escalabilidad
Entorno de Ejecución Unificado
Seguridad
Funcionalidad
En el nivel inferior, el estado de =nil; se divide en el fragmento primario y varios fragmentos secundarios. El papel del fragmento principal es sincronizar y consolidar datos de los fragmentos secundarios. Utiliza Ethereum tanto como su Capa de Disponibilidad de Datos como verificador de pruebas de transición de estado, similar a las operaciones típicas de zkRollups.
Las fragmentaciones secundarias funcionan como "trabajadores", ejecutando transacciones de usuarios. Estas fragmentaciones mantienen liquidez y datos unificados a través de un protocolo de mensajería entre fragmentaciones, eliminando cualquier fragmentación entre ellas.
Cada fragmento es supervisado por un comité de validadores. Hay una rotación periódica de estos validadores entre fragmentos. Además, las actualizaciones del estado de un fragmento se verifican en el fragmento principal utilizando zkEVM.
Para ilustrar el flujo de transacciones desde la iniciación por parte de un usuario hasta la confirmación en Ethereum, considere los siguientes pasos:
Este esquema asume que la transacción del usuario no activa el protocolo de mensajería entre fragmentos. Sin embargo, en este caso, el flujo de la transacción sigue siendo el mismo con la diferencia de que la transacción del usuario puede desencadenar la creación de nuevas transacciones en otros fragmentos.
Con todas las cuentas distribuidas entre fragmentos, esto podría parecer similar al problema de fragmentación de datos encontrado en el enfoque de rollups específicos de la aplicación. Sin embargo, la diferencia clave radica en cómo se maneja la comunicación entre fragmentos: está integrada directamente en el protocolo general, en lugar de ser administrada por puentes externos separados.
Para garantizar la seguridad de cada fragmento secundario, su comité validador está obligado a demostrar sus transiciones de estado al primario para asegurar que no ha habido fraude dentro de un grupo de validadores más pequeño. Cada comité de validadores de fragmentos tiene tareas adicionales más allá del mantenimiento del fragmento. Los validadores son responsables de rastrear tipos específicos de eventos, es decir, mensajes entre fragmentos, dentro de los “fragmentos cercanos”. Los fragmentos cercanos se determinan en función de la distancia de Hamming en los identificadores de fragmentos.
=nil;s zkEVM es un zkEVM de Tipo-1 compilado con zkLLVM. Para entender las diferencias entre los zkEVMs más tradicionales y el zkEVM de =nil;, necesitamos hablar de las limitaciones asociadas con el proceso de definición de circuitos que subyace a los zkEVMs. El circuito zkEVM es una parte crítica, responsable de que una prueba de transición de estado se considere correcta, generalmente se define con algún zkDSL personalizado o simplemente una biblioteca. Esta forma de definir circuitos trae problemas relacionados con:
=nil; zkEVM está abordando de manera efectiva todos estos desafíos al ser:
zkEVM compilado a través de zkLLVM es seguro por diseño, aprovechando evmone para garantizar completa consistencia con el EVM utilizado en producción de Ethereum. El zkLLVM (C++ o Rust) compila automáticamente hasta el circuito, lo que elimina errores humanos del proceso de definición del circuito.
Además, debido a que =nil; zkEVM se compila a través de zkLLVM, es naturalmente más flexible (y, por lo tanto, más a prueba de futuro) que los circuitos definidos manualmente, ya que es fácilmente ajustable y la generación de circuitos es automática. También es más auditable, lo que significa que su seguridad no tiene un costo que incluya las últimas EIP agregadas a Ethereum.
Como el fragmento principal y los fragmentos secundarios son diferentes en cuanto a sus tareas dedicadas - los fragmentos secundarios se centran en el procesamiento de transacciones mientras que el fragmento principal se centra en la sincronización de datos - tienen enfoques diferentes para la disponibilidad de datos (DA), lo que ayuda a recuperar datos de estado en situaciones de emergencia. Esto significa:
Esta disposición se establece mediante el lanzamiento de dos tipos de fragmentos al inicio: aquellos con una solución DA externa separada y aquellos sin ella. En fases posteriores, solo se pueden fusionar fragmentos de la misma categoría DA. Esto significa que durante su creación, cada cuenta debe ser asignada a una categoría DA específica.
Además, este marco se puede ampliar para incluir otros tipos de DA.
Uno de nuestros objetivos principales es optimizar la composabilidad de la aplicación y evitar la fragmentación de la liquidez, por lo que naturalmente el enfoque de zkSharding sería incompleto sin acceso sin confianza al estado de Ethereum. Esto significa que =nil; ofrece una composabilidad completa e integración transparente con Ethereum a través del módulo Data Provider.
El proveedor de datos opera de forma independiente al almacenamiento de datos del fragmento, sincroniza su información con una base de datos externa e inyecta la huella digital de Ethereum del último estado de la base de datos monitoreada (representada por el hash de bloque de Ethereum) en el bloque del fragmento. El estado más reciente de esta base de datos recibe validación del módulo de confirmación, que utiliza un zkBridge con la prueba de consenso Casper FFG de Ethereum.
=nil; y zkSharding son una culminación de productos que =nil; Foundation ha desarrollado en los últimos 4 años. Su objetivo es ser la primera solución componible, escalable y universal de capa 2 de Ethereum zkRollup. ¡Estamos emocionados de compartir más detalles de implementación en los próximos meses. Asegúrese de seguir nuestro Twitter para mantenerse actualizado con nuestro progreso!
Para los técnicamente inclinados, hemos desarrolladoun manual separado y completoque profundiza en los detalles de =nil; y zkFragmentación. Esta introducción es tu puerta de entrada para entender las complejidades detrás de este enfoque, equipado con todos los detalles técnicos y preliminares que necesitas.
Sumérgete en nuestro manual técnico ahora y únete a la conversación sobre Discord y Telegram¡Vamos a explorar juntos las posibilidades ilimitadas de zkSharding!