Simple Science

La science de pointe expliquée simplement

# Informatique# Cryptographie et sécurité

Contrats paresseux : Réduire les frais de gaz dans la blockchain

Les contrats paresseux réduisent les frais de gas tout en garantissant une gestion équitable des contrats intelligents.

― 7 min lire


Les contrats paresseuxLes contrats paresseuxréduisent les frais degaz.transactions équitables.réduisent les coûts et garantissent desDes contrats intelligents efficaces
Table des matières

Les Contrats intelligents sont des programmes qui tournent sur la blockchain. Ils aident à gérer et transférer des actifs numériques comme les cryptomonnaies automatiquement. n'importe quel utilisateur peut interagir avec un contrat intelligent en effectuant une transaction qui appelle ses fonctions. Le réseau blockchain garantit que chaque transaction est traitée et enregistrée, et chaque nœud garde un œil sur l'état du contrat et l'argent en jeu.

Un concept important dans la blockchain, c'est le Gaz. Le gaz, c'est une sorte de frais que les utilisateurs paient pour finaliser des transactions ou exécuter des fonctions dans un contrat. Chaque opération a un coût en gaz, ce qui aide à éviter que le réseau soit submergé par des calculs compliqués. Si un utilisateur essaie de faire une action qui nécessite plus de gaz que ce qu'il a payé, la transaction échoue.

Défis Actuels avec les Frais de Gaz

Les frais de gaz sur des plateformes de contrats intelligents comme Ethereum peuvent être très élevés. Par exemple, en 2022, les utilisateurs ont payé des montants hallucinants en frais de gaz, ce qui a limité ce que les développeurs peuvent faire avec leurs contrats. Beaucoup de contrats se contentent de fonctions simples parce que les plus complexes peuvent coûter trop cher à exécuter.

Contrats Paresseux : Une Solution

Pour aider à gérer les frais de gaz élevés, des "contrats paresseux" ont été proposés. Ces contrats font la plupart de leurs calculs Hors chaîne (en dehors de la blockchain) pour réduire les coûts de gaz tout en gardant suffisamment d'infos sur la chaîne pour que tout le monde puisse s'accorder sur l'état du contrat. Si deux parties dans un contrat ne sont pas d'accord, le système peut faire les calculs nécessaires en chaîne pour résoudre le problème.

Quand tout se passe bien et que les deux parties agissent honnêtement, le contrat n'a pas besoin d'effectuer des calculs en chaîne, ce qui entraîne des coûts globaux plus bas.

Comment Fonctionnent les Contrats Paresseux

Calculs Hors Chaîne

Dans les contrats paresseux, l'idée principale, c'est de faire que les utilisateurs effectuent la plupart des calculs sur leurs propres ordis au lieu de la blockchain. Cette méthode leur permet d'éviter les frais de gaz élevés associés aux calculs en chaîne. Les informations essentielles, comme le code du contrat et une liste d'appels de fonction, sont gardées sur la chaîne.

Le contrat n'a besoin de s'exécuter sur la chaîne que s'il y a désaccord. Dans ce cas, la procédure veille à ce que la partie malhonnête soit pénalisée en prenant en charge les frais de gaz de l'exécution nécessaire en chaîne.

Incitations pour un Comportement Honnête

Le design des contrats paresseux assure qu'il y a de fortes incitations pour que les utilisateurs agissent honnêtement. Si quelqu'un essaie de tricher, il va devoir payer pour le gaz nécessaire à la détection de son comportement malhonnête. Ce système fait que des individus rationnels vont vouloir être honnêtes parce que la malhonnêteté leur coûterait de l'argent.

Caractéristiques Clés des Contrats Paresseux

Design de Protocole

Les contrats paresseux peuvent être vus comme des enveloppes autour des contrats intelligents traditionnels. Quand un développeur veut utiliser des contrats paresseux, il soumet un contrat intelligent classique, et un processus automatisé génère un nouveau contrat paresseux avec une fonctionnalité similaire mais optimisée pour une utilisation de gaz plus basse.

En utilisant les contrats paresseux, les utilisateurs rejoignent en faisant des dépôts, qui servent de sorte d'assurance contre un comportement malhonnête. Le dépôt est gardé dans le contrat jusqu'à ce qu'ils partent, agissant comme une garantie qu'ils couvriront les frais de gaz si nécessaire.

Système Bancaire Virtuel

Les contrats paresseux introduisent aussi un système bancaire où les utilisateurs gèrent leurs soldes avec le contrat. Ce solde interne permet aux utilisateurs de déposer et de retirer des fonds sans avoir besoin de vérifications constantes en chaîne. Seules les transactions qui modifient les soldes sont enregistrées sur la chaîne, ce qui réduit significativement les coûts de gaz.

Demandes d'Appel de Fonction

Pour appeler des fonctions dans un contrat paresseux, les utilisateurs font des demandes qui sont enregistrées au lieu d'être exécutées immédiatement. Comme ça, tous les appels de fonction sont traités hors chaîne, réduisant le besoin d'opérations onéreuses en chaîne.

Quand les utilisateurs veulent retirer des fonds, ils doivent attendre un temps spécifié, ce qui permet à d'autres parties de contester la transaction s'ils soupçonnent une malhonnêteté. Si personne ne conteste le retrait, il est traité sans problème.

Support pour les Controverses

En cas de disputes, les contrats paresseux ont un mécanisme de contestation. Si une partie soupçonne une autre d'essayer de retirer plus que ce qu'elle doit, elle peut contester la demande. Ce défi va initier une évaluation en chaîne de toutes les transactions et soldes concernés.

Si une partie a agi malhonnêtement, elle devra payer pour le gaz consommé pour résoudre le problème. Ça assure que tout le monde est motivé à jouer franc jeu.

Résultats Expérimentaux

Tester les contrats paresseux démontre des économies significatives en frais de gaz. En fait, une analyse a montré que quand les contrats paresseux étaient appliqués à un grand nombre de transactions sur la blockchain Ethereum, l'utilisation totale de gaz a chuté de plus de 55%. Cette réduction des coûts se traduit par des centaines de millions de dollars économisés chaque année pour les utilisateurs.

Conclusion

Les contrats paresseux représentent une solution prometteuse aux coûts élevés associés aux frais de gaz dans les contrats intelligents. Ils permettent une exécution hors chaîne tout en maintenant une méthode juste pour résoudre les disputes. En encourageant l'honnêteté et en offrant une façon plus efficace de gérer les contrats intelligents, les contrats paresseux peuvent aider les développeurs à créer des applications plus sophistiquées sans le poids de coûts prohibitifs.

Alors que la technologie continue de se développer, les contrats paresseux pourraient offrir encore plus d'opportunités pour une fonctionnalité accrue et des coûts réduits dans l'espace blockchain. L'approche pourrait aussi être adaptée pour fonctionner sur diverses blockchains programmables, offrant un large potentiel pour des applications futures.

Explorer les Directions Futures

Bien que les résultats initiaux des contrats paresseux soient prometteurs, il y a toujours des occasions d'amélioration et d'exploration supplémentaire.

Enveloppes Multi-Contrats

Les développements futurs pourraient inclure des enveloppes qui peuvent gérer plusieurs contrats simultanément. Cette fonctionnalité permettrait aux utilisateurs de gérer plusieurs contrats au sein d'un seul contrat paresseux sans avoir à se soucier de leurs interactions. Bien que cela puisse présenter plus de complexité, cela permettrait aussi plus de fonctionnalité.

Participation Active

L'efficacité des contrats paresseux dépend de la participation des utilisateurs. Chaque partie devra surveiller activement la blockchain, soulevant la possibilité que certaines parties ne s'engagent pas suffisamment. Les itérations futures du protocole pourraient explorer des moyens d'inciter davantage cet engagement.

Traiter les Retards

Bien que les contrats paresseux offrent des avantages uniques, des retards potentiels causés par des contestations pourraient impacter l'expérience utilisateur. Trouver des solutions pour fluidifier le processus pourrait améliorer l'utilisabilité des contrats paresseux, les rendant encore plus attrayants pour les utilisateurs.

Conclusion Revisité

En résumé, les contrats paresseux représentent une avancée significative vers l'amélioration de l'efficacité et de l'accessibilité de l'exécution des contrats intelligents. Ils utilisent les concepts de calcul hors chaîne et de structures d'incitation pour créer un système où les utilisateurs peuvent opérer plus librement sans coûts excessifs.

Alors que la technologie blockchain continue d'évoluer, davantage de recherches et de développements seront essentiels pour réaliser pleinement le potentiel des contrats paresseux et des solutions connexes, ouvrant la voie à une économie numérique plus efficace.

Source originale

Titre: Lazy Contracts: Alleviating High Gas Costs by Secure and Trustless Off-chain Execution of Smart Contracts

Résumé: Smart contracts are programs that are executed on the blockchain and can hold, manage and transfer assets in the form of cryptocurrencies. The contract's execution is then performed on-chain and is subject to consensus, i.e. every node on the blockchain network has to run the function calls and keep track of their side-effects. In most programmable blockchains, such as Ethereum, the notion of gas is introduced to prevent DoS attacks by malicious parties who might try to slow down the network by performing heavy computations. A fixed cost to each atomic operation, and the initiator of a function call pays the total gas cost as a transaction fee. This helps prevent DoS attacks, but the resulting fees are extremely high. For example, in 2022, on Ethereum alone, there has been a total gas usage of 1.77 Million ETH ~ 4.3 Billion USD. This thesis proposes "lazy contracts" as a solution to alleviate these costs. Our solution moves most of the computation off-chain, ensuring that each function call incurs only a tiny amount of gas usage, while preserving enough data on-chain to guarantee an implicit consensus about the state of the contract variables and ownership of funds. A complete on-chain execution of the functions will only be triggered in case two parties to the contract are in disagreement about the current state, which in turn can only happen if at least one party is dishonest. In such cases, our protocol can identify the dishonest party and penalize them by having them pay for the entire gas usage. Hence, no rational party has an incentive to act dishonestly. Finally, we perform extensive experiments over 160,735 real-world Solidity contracts that were involved in 9,055,492 transactions in January 2022--January 2023 on Ethereum and show that our approach reduces the overall gas usage by 55.4%, which amounts to an astounding saving of 109.9 Million USD in gas fees.

Auteurs: Soroush Farokhnia

Dernière mise à jour: 2023-09-20 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2309.11317

Source PDF: https://arxiv.org/pdf/2309.11317

Licence: https://creativecommons.org/licenses/by/4.0/

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Articles similaires