Le succès d’Ethereum a conduit à un écosystème florissant d’applications décentralisées, mais les défis d’évolutivité sont devenus de plus en plus évidents. Les développeurs sont confrontés à un choix difficile : limiter les fonctionnalités et la richesse des données de leurs applications ou supporter le fardeau de frais de gaz excessifs ou de limites de gaz. Et s’il existait un moyen pour les développeurs de contourner ces limitations ?
Steel, la bibliothèque de preuve d’appel de vue basée sur Alloy de RISC Zero, représente un énorme changement dans la façon dont les développeurs interagissent avec les chaînes basées sur Ethereum L1 ou EVM. En exploitant la puissance des preuves à divulgation nulle de connaissance et de la zkVM RISC Zero, Steel permet aux développeurs d’exécuter des appels de vue et de lire et de calculer de manière prouvée l’état d’Ethereum de manière évolutive, sécurisée et économiquement efficace.
Steel comble le fossé entre le développement d’applications d’Ethereum et la technologie à connaissance zéro, ce qui permet aux développeurs d’exploiter plus facilement que jamais la puissance de ZK dans leurs contrats intelligents. Combiné aux capacités de RISC Zero zkVM, Steel permet aux développeurs de créer des applications plus sécurisées, évolutives et efficaces sur Ethereum L1 ou toute chaîne équivalente à EVM.
Avec Steel, les développeurs ont la possibilité de :
Avec Steel, l’exécution d’un appel de vue est aussi simple que de spécifier les méthodes Solidity souhaitées. Qu’il s’agisse de récupérer un solde de jetons ERC-20 (exemple) ou d’accéder à n’importe quel aspect de l’état d’Ethereum, Steel simplifie le processus tout en garantissant la sécurité et l’efficacité grâce à une intégration transparente avec RISC Zero zkVM. Nos tests ont montré la capacité de Steel à gérer plus de 100 000 opérations SLOAD en un seul appel, ce qui permet d’économiser des milliers de dollars en frais de gaz sur le réseau principal. Nous pouvons le prouver en 15 minutes environ en utilisant Bonsaï. Cela nécessiterait au moins 210 millions de gaz, dépassant de 7 fois la limite de blocage.
Dans les extraits de code ci-dessous, nous démontrons le processus de preuve de l’équilibre d’une adresse spécifique pour un contrat ERC-20 déployé sur Ethereum à l’aide de Steel. Cet exemple montre comment les développeurs peuvent utiliser Steel pour interagir avec les données Ethereum on-chain dans les limites d’une zkVM. Vous pouvez trouver le code complet ici.
Définition de la signature de la fonction de vue
Commencez par définir la signature de la fonction balance ERC-20 à l’aide de la fonction sol ! macro. Cela analysera la syntaxe Solidity pour générer une structure Rust correspondante, qui implémente le trait SolCall. Cette structure peut être utilisée pour appeler la méthode balanceOf, qui prend une adresse de compte et renvoie le solde de jetons ERC-20 associé.
Préparation de l’appel
Ensuite, configurez l’appel en instanciant la structure balanceOfCall avec l’adresse du compte cible. Définissez également des constantes pour l’adresse du contrat que vous souhaitez interroger et l’adresse de l’appelant.
Exécution de l’appel dans Main
La fonction principale est exécutée dans la zkVM, produisant une preuve à divulgation nulle de connaissance. Il commence par lire l’environnement d’entrée, puis construit un objet ViewCallEnv, en s’assurant que l’état actuel correspond à la racine de l’état attendu. Après avoir validé le hachage et le numéro de bloc appropriés, l’appel de vue est exécuté et le solde est imprimé.
Steel simplifie le processus de preuve de l’exécution du code Solidity dans la zkVM RISC Zero en trois étapes simples :
Avec les preuves de stockage traditionnelles, les développeurs doivent sélectionner manuellement les emplacements de stockage utilisés par leur contrat intelligent et réimplémenter la logique des contrats intelligents. Avec steel, tous les emplacements de stockage sont découverts et récupérés automatiquement en fonction de l’exécution de l’appel de vue. Cela permet aux développeurs de gagner beaucoup de temps et de réduire la marge d’erreur de mise en œuvre, réduisant ainsi les risques de failles de sécurité.
Lors de l’utilisation de l’opcode blockhash pour la validation dans les contrats intelligents Ethereum, l’engagement de validation doit faire référence à un blockhash datant de moins de 256 blocs. Compte tenu d’un temps de bloc moyen de 12 secondes, cela définit un délai étroit d’environ 50 minutes pour terminer la génération de la preuve et confirmer l’inclusion de la transaction de validation dans un bloc.
Lorsqu’un hachage de bloc vérifié de plus de 256 blocs est nécessaire sur la chaîne, un certain nombre de stratégies peuvent être utilisées :
Nous envisageons un avenir où il y a une intégration transparente du calcul hors chaîne avec la validation sur la chaîne. Steel est notre contribution à la réalisation de cette vision, en permettant aux développeurs d’accéder et de calculer de manière prouvée sur l’historique complet d’Ethereum à l’intérieur de la zkVM pour créer la prochaine vague d’applications on-chain riches en données et plus fonctionnelles.
L’acier est un élément clé de l’engagement de RISC Zero à lancer zkVM 1.0, une étape importante vers la vérification des preuves on-chain bon marché et sécurisée et des preuves universelles à divulgation nulle de connaissance. Commencez à utiliser Steel dès aujourd’hui en visitant notre référentiel GitHub pour obtenir de la documentation, des exemples de code et des ressources pour vous aider à intégrer Steel dans votre projet.
Le succès d’Ethereum a conduit à un écosystème florissant d’applications décentralisées, mais les défis d’évolutivité sont devenus de plus en plus évidents. Les développeurs sont confrontés à un choix difficile : limiter les fonctionnalités et la richesse des données de leurs applications ou supporter le fardeau de frais de gaz excessifs ou de limites de gaz. Et s’il existait un moyen pour les développeurs de contourner ces limitations ?
Steel, la bibliothèque de preuve d’appel de vue basée sur Alloy de RISC Zero, représente un énorme changement dans la façon dont les développeurs interagissent avec les chaînes basées sur Ethereum L1 ou EVM. En exploitant la puissance des preuves à divulgation nulle de connaissance et de la zkVM RISC Zero, Steel permet aux développeurs d’exécuter des appels de vue et de lire et de calculer de manière prouvée l’état d’Ethereum de manière évolutive, sécurisée et économiquement efficace.
Steel comble le fossé entre le développement d’applications d’Ethereum et la technologie à connaissance zéro, ce qui permet aux développeurs d’exploiter plus facilement que jamais la puissance de ZK dans leurs contrats intelligents. Combiné aux capacités de RISC Zero zkVM, Steel permet aux développeurs de créer des applications plus sécurisées, évolutives et efficaces sur Ethereum L1 ou toute chaîne équivalente à EVM.
Avec Steel, les développeurs ont la possibilité de :
Avec Steel, l’exécution d’un appel de vue est aussi simple que de spécifier les méthodes Solidity souhaitées. Qu’il s’agisse de récupérer un solde de jetons ERC-20 (exemple) ou d’accéder à n’importe quel aspect de l’état d’Ethereum, Steel simplifie le processus tout en garantissant la sécurité et l’efficacité grâce à une intégration transparente avec RISC Zero zkVM. Nos tests ont montré la capacité de Steel à gérer plus de 100 000 opérations SLOAD en un seul appel, ce qui permet d’économiser des milliers de dollars en frais de gaz sur le réseau principal. Nous pouvons le prouver en 15 minutes environ en utilisant Bonsaï. Cela nécessiterait au moins 210 millions de gaz, dépassant de 7 fois la limite de blocage.
Dans les extraits de code ci-dessous, nous démontrons le processus de preuve de l’équilibre d’une adresse spécifique pour un contrat ERC-20 déployé sur Ethereum à l’aide de Steel. Cet exemple montre comment les développeurs peuvent utiliser Steel pour interagir avec les données Ethereum on-chain dans les limites d’une zkVM. Vous pouvez trouver le code complet ici.
Définition de la signature de la fonction de vue
Commencez par définir la signature de la fonction balance ERC-20 à l’aide de la fonction sol ! macro. Cela analysera la syntaxe Solidity pour générer une structure Rust correspondante, qui implémente le trait SolCall. Cette structure peut être utilisée pour appeler la méthode balanceOf, qui prend une adresse de compte et renvoie le solde de jetons ERC-20 associé.
Préparation de l’appel
Ensuite, configurez l’appel en instanciant la structure balanceOfCall avec l’adresse du compte cible. Définissez également des constantes pour l’adresse du contrat que vous souhaitez interroger et l’adresse de l’appelant.
Exécution de l’appel dans Main
La fonction principale est exécutée dans la zkVM, produisant une preuve à divulgation nulle de connaissance. Il commence par lire l’environnement d’entrée, puis construit un objet ViewCallEnv, en s’assurant que l’état actuel correspond à la racine de l’état attendu. Après avoir validé le hachage et le numéro de bloc appropriés, l’appel de vue est exécuté et le solde est imprimé.
Steel simplifie le processus de preuve de l’exécution du code Solidity dans la zkVM RISC Zero en trois étapes simples :
Avec les preuves de stockage traditionnelles, les développeurs doivent sélectionner manuellement les emplacements de stockage utilisés par leur contrat intelligent et réimplémenter la logique des contrats intelligents. Avec steel, tous les emplacements de stockage sont découverts et récupérés automatiquement en fonction de l’exécution de l’appel de vue. Cela permet aux développeurs de gagner beaucoup de temps et de réduire la marge d’erreur de mise en œuvre, réduisant ainsi les risques de failles de sécurité.
Lors de l’utilisation de l’opcode blockhash pour la validation dans les contrats intelligents Ethereum, l’engagement de validation doit faire référence à un blockhash datant de moins de 256 blocs. Compte tenu d’un temps de bloc moyen de 12 secondes, cela définit un délai étroit d’environ 50 minutes pour terminer la génération de la preuve et confirmer l’inclusion de la transaction de validation dans un bloc.
Lorsqu’un hachage de bloc vérifié de plus de 256 blocs est nécessaire sur la chaîne, un certain nombre de stratégies peuvent être utilisées :
Nous envisageons un avenir où il y a une intégration transparente du calcul hors chaîne avec la validation sur la chaîne. Steel est notre contribution à la réalisation de cette vision, en permettant aux développeurs d’accéder et de calculer de manière prouvée sur l’historique complet d’Ethereum à l’intérieur de la zkVM pour créer la prochaine vague d’applications on-chain riches en données et plus fonctionnelles.
L’acier est un élément clé de l’engagement de RISC Zero à lancer zkVM 1.0, une étape importante vers la vérification des preuves on-chain bon marché et sécurisée et des preuves universelles à divulgation nulle de connaissance. Commencez à utiliser Steel dès aujourd’hui en visitant notre référentiel GitHub pour obtenir de la documentation, des exemples de code et des ressources pour vous aider à intégrer Steel dans votre projet.