El éxito de Ethereum ha dado lugar a un próspero ecosistema de aplicaciones descentralizadas, pero los desafíos de escalabilidad se han vuelto cada vez más evidentes. Los desarrolladores se encuentran con una difícil elección: limitar la funcionalidad y la riqueza de datos de sus aplicaciones o soportar la carga de tarifas de gas o límites de gas excesivos. ¿Qué pasaría si hubiera una forma de que los desarrolladores eludieran estas limitaciones?
Steel, la biblioteca de prueba de llamadas de vista basada en Alloy de RISC Zero, representa un gran cambio en la forma en que los desarrolladores interactúan con Ethereum L1 o cadenas basadas en EVM. Al aprovechar el poder de las pruebas de conocimiento cero y la zkVM RISC Zero, Steel permite a los desarrolladores ejecutar llamadas de vista y leer y calcular de manera demostrable el estado de Ethereum de una manera escalable, segura y económicamente eficiente.
Steel cierra la brecha entre el desarrollo de aplicaciones de Ethereum y la tecnología de conocimiento cero, lo que hace que sea más fácil que nunca para los desarrolladores aprovechar el poder de ZK en sus contratos inteligentes. En combinación con las capacidades de RISC Zero zkVM, Steel permite a los desarrolladores crear aplicaciones más seguras, escalables y eficientes en Ethereum L1 o en cualquier cadena equivalente a EVM.
Con Steel, los desarrolladores obtienen la capacidad de:
Con Steel, ejecutar una llamada de vista es tan simple como especificar los métodos de Solidity deseados. Ya sea recuperando un saldo de tokens ERC-20 (ejemplo) o accediendo a cualquier aspecto del estado de Ethereum, Steel simplifica el proceso al tiempo que garantiza la seguridad y la eficiencia a través de una integración perfecta con la zkVM RISC Zero. Nuestras pruebas han demostrado la capacidad de Steel para manejar más de 100 mil operaciones de SLOAD en una sola llamada, lo que podría ahorrar miles de dólares en tarifas de gas en la red principal. Podemos comprobarlo en unos 15 minutos usando Bonsái. Esto requeriría al menos 210 millones de gas, superando el límite de bloque en 7 veces.
En los fragmentos de código a continuación, demostramos el proceso de prueba del saldo de una dirección específica para un contrato ERC-20 implementado en Ethereum usando Steel. Este ejemplo muestra cómo los desarrolladores pueden utilizar Steel para interactuar con los datos de Ethereum en cadena dentro de los límites de una zkVM. Puedes encontrar el código completo aquí.
Definición de la firma de la función de vista
Comience definiendo la signatura de la función balanceOf de ERC-20 usando el comando sol! macro. Esto analizará la sintaxis de Solidity para generar una estructura de Rust correspondiente, que implementa el rasgo SolCall. Esta estructura se puede usar para llamar al método balanceOf, que toma una dirección de cuenta y devuelve el saldo de token ERC-20 asociado.
Preparación de la convocatoria
A continuación, configure la llamada creando una instancia de la estructura balanceOfCall con la dirección de la cuenta de destino. Además, defina constantes para la dirección del contrato que desea consultar y la dirección de la persona que llama.
Ejecución de la llamada en Main
La función principal se ejecuta en zkVM, produciendo una prueba de conocimiento cero. Comienza leyendo el entorno de entrada y, a continuación, construye un objeto ViewCallEnv, asegurándose de que el estado actual coincida con la raíz de estado esperada. Después de confirmar el hash y el número de bloque relevantes, se ejecuta la llamada de vista y se imprime el saldo.
Steel simplifica el proceso de probar la ejecución del código de Solidity en la zkVM RISC Zero en tres sencillos pasos:
Con las pruebas de almacenamiento tradicionales, los desarrolladores deben seleccionar manualmente qué ranuras de almacenamiento utiliza su contrato inteligente y volver a implementar la lógica del contrato inteligente. Con steel, todas las ranuras de almacenamiento se detectan y recuperan automáticamente en función de la ejecución de la llamada de vista. Esto ahorra a los desarrolladores una cantidad significativa de tiempo y disminuye el margen de errores de implementación, lo que reduce la posibilidad de vulnerabilidades de seguridad.
Cuando se utiliza el código de operación blockhash para la validación en los contratos inteligentes de Ethereum, el compromiso de validación debe hacer referencia a un blockhash de no más de 256 bloques de antigüedad. Dado un tiempo de bloque promedio de 12 segundos, esto establece un marco de tiempo estrecho de aproximadamente 50 minutos para completar la generación de pruebas y confirmar la inclusión de la transacción de validación dentro de un bloque.
Cuando se necesita un hash de bloque verificado de más de 256 bloques en la cadena, se pueden utilizar varias estrategias:
Imaginamos un futuro en el que haya una integración perfecta de la computación fuera de la cadena con la validación dentro de la cadena. Steel es nuestra contribución para hacer realidad esta visión, al permitir a los desarrolladores acceder y calcular de forma demostrable toda la historia de Ethereum dentro de zkVM para crear la próxima ola de aplicaciones en cadena ricas en datos y más funcionales.
El acero es un componente clave del compromiso de RISC Zero con el lanzamiento de zkVM 1.0, un hito hacia la verificación barata y segura de pruebas on-chain y las pruebas universales de conocimiento cero. Comience a usar Steel hoy mismo visitando nuestro repositorio de GitHub para obtener documentación, ejemplos de código y recursos que lo ayudarán a integrar Steel en su proyecto.
Compartir
El éxito de Ethereum ha dado lugar a un próspero ecosistema de aplicaciones descentralizadas, pero los desafíos de escalabilidad se han vuelto cada vez más evidentes. Los desarrolladores se encuentran con una difícil elección: limitar la funcionalidad y la riqueza de datos de sus aplicaciones o soportar la carga de tarifas de gas o límites de gas excesivos. ¿Qué pasaría si hubiera una forma de que los desarrolladores eludieran estas limitaciones?
Steel, la biblioteca de prueba de llamadas de vista basada en Alloy de RISC Zero, representa un gran cambio en la forma en que los desarrolladores interactúan con Ethereum L1 o cadenas basadas en EVM. Al aprovechar el poder de las pruebas de conocimiento cero y la zkVM RISC Zero, Steel permite a los desarrolladores ejecutar llamadas de vista y leer y calcular de manera demostrable el estado de Ethereum de una manera escalable, segura y económicamente eficiente.
Steel cierra la brecha entre el desarrollo de aplicaciones de Ethereum y la tecnología de conocimiento cero, lo que hace que sea más fácil que nunca para los desarrolladores aprovechar el poder de ZK en sus contratos inteligentes. En combinación con las capacidades de RISC Zero zkVM, Steel permite a los desarrolladores crear aplicaciones más seguras, escalables y eficientes en Ethereum L1 o en cualquier cadena equivalente a EVM.
Con Steel, los desarrolladores obtienen la capacidad de:
Con Steel, ejecutar una llamada de vista es tan simple como especificar los métodos de Solidity deseados. Ya sea recuperando un saldo de tokens ERC-20 (ejemplo) o accediendo a cualquier aspecto del estado de Ethereum, Steel simplifica el proceso al tiempo que garantiza la seguridad y la eficiencia a través de una integración perfecta con la zkVM RISC Zero. Nuestras pruebas han demostrado la capacidad de Steel para manejar más de 100 mil operaciones de SLOAD en una sola llamada, lo que podría ahorrar miles de dólares en tarifas de gas en la red principal. Podemos comprobarlo en unos 15 minutos usando Bonsái. Esto requeriría al menos 210 millones de gas, superando el límite de bloque en 7 veces.
En los fragmentos de código a continuación, demostramos el proceso de prueba del saldo de una dirección específica para un contrato ERC-20 implementado en Ethereum usando Steel. Este ejemplo muestra cómo los desarrolladores pueden utilizar Steel para interactuar con los datos de Ethereum en cadena dentro de los límites de una zkVM. Puedes encontrar el código completo aquí.
Definición de la firma de la función de vista
Comience definiendo la signatura de la función balanceOf de ERC-20 usando el comando sol! macro. Esto analizará la sintaxis de Solidity para generar una estructura de Rust correspondiente, que implementa el rasgo SolCall. Esta estructura se puede usar para llamar al método balanceOf, que toma una dirección de cuenta y devuelve el saldo de token ERC-20 asociado.
Preparación de la convocatoria
A continuación, configure la llamada creando una instancia de la estructura balanceOfCall con la dirección de la cuenta de destino. Además, defina constantes para la dirección del contrato que desea consultar y la dirección de la persona que llama.
Ejecución de la llamada en Main
La función principal se ejecuta en zkVM, produciendo una prueba de conocimiento cero. Comienza leyendo el entorno de entrada y, a continuación, construye un objeto ViewCallEnv, asegurándose de que el estado actual coincida con la raíz de estado esperada. Después de confirmar el hash y el número de bloque relevantes, se ejecuta la llamada de vista y se imprime el saldo.
Steel simplifica el proceso de probar la ejecución del código de Solidity en la zkVM RISC Zero en tres sencillos pasos:
Con las pruebas de almacenamiento tradicionales, los desarrolladores deben seleccionar manualmente qué ranuras de almacenamiento utiliza su contrato inteligente y volver a implementar la lógica del contrato inteligente. Con steel, todas las ranuras de almacenamiento se detectan y recuperan automáticamente en función de la ejecución de la llamada de vista. Esto ahorra a los desarrolladores una cantidad significativa de tiempo y disminuye el margen de errores de implementación, lo que reduce la posibilidad de vulnerabilidades de seguridad.
Cuando se utiliza el código de operación blockhash para la validación en los contratos inteligentes de Ethereum, el compromiso de validación debe hacer referencia a un blockhash de no más de 256 bloques de antigüedad. Dado un tiempo de bloque promedio de 12 segundos, esto establece un marco de tiempo estrecho de aproximadamente 50 minutos para completar la generación de pruebas y confirmar la inclusión de la transacción de validación dentro de un bloque.
Cuando se necesita un hash de bloque verificado de más de 256 bloques en la cadena, se pueden utilizar varias estrategias:
Imaginamos un futuro en el que haya una integración perfecta de la computación fuera de la cadena con la validación dentro de la cadena. Steel es nuestra contribución para hacer realidad esta visión, al permitir a los desarrolladores acceder y calcular de forma demostrable toda la historia de Ethereum dentro de zkVM para crear la próxima ola de aplicaciones en cadena ricas en datos y más funcionales.
El acero es un componente clave del compromiso de RISC Zero con el lanzamiento de zkVM 1.0, un hito hacia la verificación barata y segura de pruebas on-chain y las pruebas universales de conocimiento cero. Comience a usar Steel hoy mismo visitando nuestro repositorio de GitHub para obtener documentación, ejemplos de código y recursos que lo ayudarán a integrar Steel en su proyecto.