
Comment RISC Zero Steel accélère-t-il l'adoption du ZK sur Ethereum ?
TechFlow SélectionTechFlow Sélection

Comment RISC Zero Steel accélère-t-il l'adoption du ZK sur Ethereum ?
Steel relie RISC Zero à Ethereum, adopte la technologie ZK et permet aux développeurs de contourner les frais et limitations liés au gaz sur Ethereum.
Traduction : Alex Liu, Foresight News
L'essor d'Ethereum a permis le développement d'un écosystème dynamique d'applications décentralisées, mais ses défis de scalabilité deviennent de plus en plus pressants. Les développeurs se retrouvent face à un choix difficile : limiter les fonctionnalités et la richesse des données de leurs applications, ou supporter des frais élevés de gaz (Gas) et des limites strictes d'utilisation du gaz. Et si les développeurs disposaient d’un moyen de contourner ces contraintes ?
Steel, le pont entre RISC Zero et Ethereum
RISC Zero est l'un des principaux développeurs de zkVM. Si vous entendez souvent parler de zkEVM mais que vous ignorez ce qu'est précisément un zkVM — qui n'en diffère que par un seul caractère — vous pouvez consulter cet article. RISC Zero vient de lancer Steel, une bibliothèque de preuves pour les appels de vue basée sur Alloy, qui transforme radicalement la manière dont les développeurs interagissent avec Ethereum L1 ou toute autre chaîne EVM. En exploitant les preuves à connaissance nulle (zero-knowledge proofs) et le zkVM de RISC Zero, Steel permet aux développeurs d'exécuter des appels de vue de manière scalable, sécurisée et économiquement efficace, tout en lisant et calculant de façon prouvable l'état d’Ethereum.
La simplicité de Solidity, la puissance du ZK
Steel comble l’écart entre le développement d’applications Ethereum et les technologies à connaissance nulle, facilitant ainsi l’intégration de la puissance du ZK dans les contrats intelligents. En combinant les capacités du zkVM de RISC Zero, Steel permet aux développeurs de concevoir des applications plus sûres, évolutives et efficaces sur Ethereum L1 ou sur toute chaîne équivalente à l’EVM.
Avec Steel, les développeurs peuvent :
-
Exécuter directement des contrats intelligents Solidity à l’intérieur du zkVM, compatibles avec une logique on-chain plus complexe
-
Accéder à l’état historique d’Ethereum depuis le zkVM
-
Effectuer des calculs grâce aux continuations, sans être limité par la taille des blocs ou des transactions
-
Garantir que les calculs hors chaîne sont aussi sûrs et fiables que s'ils étaient exécutés sur chaîne
-
Utiliser le premier zkVM pleinement opérationnel, rigoureusement testé et utilisé par plusieurs partenaires
-
Effectuer des calculs privés sur l’état d’Ethereum
-
Conserver la flexibilité grâce à une bibliothèque open source, sans dépendance vis-à-vis d’un fournisseur unique
Intégration transparente et économies de coûts
Avec Steel, exécuter un appel de vue revient simplement à spécifier la méthode Solidity souhaitée. Que ce soit pour récupérer le solde d’un jeton ERC-20 (exemple) ou accéder à divers aspects de l’état d’Ethereum, Steel simplifie le processus grâce à une intégration fluide avec le zkVM de RISC Zero, tout en assurant sécurité et efficacité. Des tests ont montré que Steel peut traiter plus de 100 000 opérations SLOAD dans un seul appel de vue, ce qui permet d’économiser des milliers de dollars en frais de gaz sur le réseau principal. Nous pouvons prouver cela via Bonsai en environ 15 minutes, ce qui nécessiterait au moins 210 millions de gaz — soit 7 fois la limite d’un bloc.
Exemple : balanceOf pour ERC20
L'extrait de code ci-dessous illustre le processus de génération d'une preuve, à l’aide de Steel, du solde d’une adresse spécifique pour un contrat ERC-20 déployé sur Ethereum. Cet exemple montre comment les développeurs peuvent utiliser Steel pour interagir avec les données on-chain d’Ethereum au sein du zkVM. Le code complet est disponible ici.
Définir la signature de la fonction de vue
Tout d'abord, utilisez la macro sol! pour définir la signature de la fonction balanceOf d’ERC-20. Celle-ci analyse la syntaxe Solidity afin de générer une structure Rust correspondante, implémentant le trait SolCall, utilisable pour appeler la méthode balanceOf, qui prend en entrée une adresse de compte et renvoie le solde associé du jeton ERC-20.

Préparer l'appel
Ensuite, configurez l'appel en instanciant la structure balanceOfCall avec l'adresse cible. Définissez également des constantes pour l'adresse du contrat que vous souhaitez interroger et celle de l'appelant.

Exécuter l'appel dans main
La fonction principale s’exécute dans le zkVM et génère une preuve à connaissance nulle. Elle commence par lire l’environnement d’entrée, puis construit un objet ViewCallEnv, en s’assurant que l’état courant correspond bien à la racine d’état attendue. Après avoir validé le hachage et le numéro du bloc concerné, elle exécute l’appel de vue et affiche le solde.

Son fonctionnement
Steel simplifie l'exécution en prouvant du code Solidity dans le zkVM de RISC Zero en trois étapes :
-
Phase de pré-vol : une requête de type « vue » est envoyée à un nœud RPC Ethereum pour démarrer la phase de pré-vol. Cette étape met en cache les slots de stockage nécessaires, remplissant la base de données EVM uniquement avec les données requises. Tous les slots de stockage sont automatiquement découverts et récupérés pendant l'exécution de l'appel de vue.
-
Vérification du stockage : une vérification d'intégrité du stockage est effectuée pour garantir que les données présentes dans la base de données EVM correspondent à la racine d’état de la blockchain, confirmant ainsi leur légitimité.
-
Exécution Solidity : la fonction Solidity donnée est exécutée sur une machine virtuelle EVM simulée à l’intérieur du zkVM de RISC Zero.
Quelle est la différence avec la preuve de stockage classique ?
Avec une preuve de stockage traditionnelle, les développeurs doivent sélectionner manuellement les slots de stockage utilisés par leur contrat intelligent et réimplémenter sa logique. Avec Steel, tous les slots de stockage sont automatiquement découverts et récupérés selon l'exécution de l'appel de vue. Cela fait gagner un temps considérable aux développeurs, réduit les risques d'erreurs d'implémentation et diminue ainsi les possibilités de vulnérabilités de sécurité.
Obtenir un hachage de bloc validé
Lors de la validation dans un contrat intelligent Ethereum utilisant l’opcode blockhash, l’engagement vérifié doit faire référence à un hachage de bloc datant de moins de 256 blocs. Compte tenu d’un temps moyen de bloc de 12 secondes, cela fixe une fenêtre étroite d’environ 50 minutes pour générer la preuve et s’assurer que la transaction de validation est incluse dans un bloc.
Lorsqu’il est nécessaire d’obtenir sur chaîne un hachage de bloc validé plus ancien que 256 blocs, l’une des stratégies suivantes peut être utilisée :
-
Lorsque le hachage de bloc requis est connu à l’avance (par exemple, lors du dépôt d’une proposition de gouvernance), il peut être sauvegardé dans l’état du contrat.
-
Une autre approche consiste à utiliser RISC Zero pour prouver la chaîne de hachages allant du bloc interrogé jusqu’à un bloc inclus dans les 256 derniers blocs.
L'avenir des applications sur chaîne
Imaginez un futur où les calculs hors chaîne s’intègrent parfaitement à la validation sur chaîne. Steel permet aux développeurs d’accéder de manière fiable et de calculer l’historique complet d’Ethereum au sein du zkVM, contribuant ainsi activement à cette vision en permettant la création de la prochaine génération d’applications on-chain, plus riches en données et plus fonctionnelles.
Bienvenue dans la communauté officielle TechFlow
Groupe Telegram :https://t.me/TechFlowDaily
Compte Twitter officiel :https://x.com/TechFlowPost
Compte Twitter anglais :https://x.com/BlockFlow_News














