Smart Contract Design in Times of Congested Networks

Updated on: August 12th, 2020
This content has been Fact-Checked.
Smart Contract Design in Times of Congested Networks

Dans cet article, comprenons ce que signifie le gaz Ethereum et pourquoi il a grimpé récemment. Après cela, nous verrons comment d'autres plateformes de contrats intelligents comme RSK et EOS traitent les prix de l'essence quand il s'agit de Smart Contract Design.

Ethereum a un problème de gaz. Aussi drôle que cela puisse paraître, nous pouvons vous assurer que les développeurs font tout sauf rire de cette déclaration.

La demande croissante pour les applications DeFi (finance décentralisée) a augmenté la congestion sur la blockchain principale Ethereum. Cela a, à son tour, fait monter les prix du gaz sur la chaîne principale. Selon les Bitinfocharts, les frais de transaction médians ont atteint leurs niveaux les plus élevés depuis début 2018.

Contrat intelligent et machine virtuelle Ethereum (EVM)

Les contrats intelligents sont des contrats automatisés. Ils s'exécutent automatiquement avec des instructions spécifiques écrites sur son code, qui sont exécutées lorsque certaines conditions sont faites.

Vous pouvez en savoir plus sur les contrats intelligents dans notre guide détaillé ici.

Les contrats intelligents sont la façon dont les choses se font sur l'écosystème Ethereum. Quand quelqu'un veut faire une tâche particulière dans Ethereum, il initie un contrat intelligent avec une ou plusieurs personnes.

Les contrats intelligents sont une série d'instructions écrites en utilisant le langage de programmation « solidité », qui fonctionne sur la base de la logique IFTTT, alias la logique IF-THIS-THEN-THEN-THE. Fondamentalement, si le premier ensemble d'instructions est fait, puis exécutez la fonction suivante et continuez à répéter jusqu'à ce que vous atteigniez la fin du contrat.

C'est le principe fondamental derrière les contrats intelligents. C'est ce qui nous permet d'avoir un accord contraignant entre plusieurs parties supervisées par code, au lieu d'un tiers, comme un avocat.

Qu'est-ce que la machine virtuelle Ethereum ?

Les machines virtuelles Ethereum sont des écosystèmes dans lesquels vous exécutez des contrats intelligents. Une bonne fonctionnalité de contrat intelligent nécessite trois choses importantes :

Déterministe.

Terminable.

Isolé.

Feature #1 : Déterministe

Un programme est déterministe s'il donne la même sortie à une entrée donnée à chaque fois. Par exemple. Si 3+1 = 4 alors 3+1 sera TOUJOURS 4 (en supposant la même base). Ainsi, lorsqu'un programme donne la même sortie au même ensemble d'entrées dans différents ordinateurs, il est appelé déterministe.

Fonctionnalité #2 : Terminable

En logique mathématique, nous avons une erreur appelée « problème d'arrêt ». Fondamentalement, il indique qu'il y a une incapacité de savoir si un programme donné peut exécuter sa fonction dans une limite de temps. Il s'agit évidemment d'un problème avec les contrats intelligents parce que les contrats, par définition, doivent pouvoir être résiliés dans un délai donné. Les contrats intelligents ont besoin d'un environnement où ils peuvent intégrer un mécanisme d'arrêt.

Feature #3 : Isolé

Dans une blockchain, tout le monde et tout le monde peuvent télécharger un contrat intelligent. Cependant, à cause de cela, les contrats peuvent, sciemment et sans le savoir, contenir des virus et des bogues. Si le contrat n'est pas isolé, cela risque d'entraver l'ensemble du système. Par conséquent, il est essentiel qu'un contrat soit maintenu isolé dans un bac à sable pour sauver l'ensemble de l'écosystème de tout effet néfaste.

Ethereum fournit toutes ces fonctionnalités via l'EVM. C'est une machine virtuelle Turing Complete 256 bits simple mais puissante.

Qu'est-ce que Ethereum Gas ?

Le gaz est une unité qui mesure l'effort de calcul qu'il faudra pour exécuter certaines opérations. Tous les contrats intelligents qui s'exécutent dans l'EVM sont codés en utilisant la solidité (Ethereum prévoit de passer à Viper de Solidity à l'avenir). Chaque ligne de code en solidité nécessite une certaine quantité de gaz pour être calculée.

L'image ci-dessous a été tirée de l'Ethereum Yellowpage et peut être utilisée pour obtenir une idée approximative du coût des instructions spécifiques par essence.

Image gracieuseté : Ethereum Yellow Paper

Pour mieux comprendre comment fonctionne le gaz dans Ethereum, utilisons une analogie. Supposons que vous partiez en voyage. Avant de le faire, vous passez par les étapes suivantes :

Vous allez à la station-service et spécifiez la quantité d'essence que vous voulez remplir dans votre voiture.

Tu fais remplir l'essence dans ta voiture.

Vous payez à la station-service le montant d'argent que vous leur devez pour l'essence.

Maintenant, dessinons des parallèles avec Ethereum.

La voiture est l'opération que vous voulez exécuter, comme un gaz ou un contrat intelligent.

Le gaz est bien... du gaz.

La station-service est votre mineur.

L'argent que vous leur avez payé est les frais des mineurs.

Toutes les opérations que les utilisateurs veulent exécuter dans ethereum doivent fournir du gaz pour les éléments suivants :

Pour couvrir ses données aka gaz intrinsèque.

Pour couvrir l'ensemble de son calcul.

Maintenant que nous avons couvert les bases, vous posez peut-être la question suivante.

Pourquoi avons-nous ce système de gaz ?

La réponse est simple... l'incitation.

Comme tout système de preuve de travail peer-to-peer, Ethereum est fortement tributaire du hashrate de leurs mineurs. Plus les mineurs, plus le hashrate, plus sécurisé et plus rapide le système.

Pour attirer davantage de mineurs dans le système, ils doivent rendre le système aussi rentable et séduisant que possible pour les mineurs. Dans Ethereum, les mineurs peuvent gagner de l'argent de deux façons :

En minant des blocs et en obtenant des récompenses de blocs.

En devenant des dictateurs temporaires de leurs blocs minés.

Examinons le deuxième point.

Les mineurs sont responsables de placer les transactions dans leurs blocs. Pour ce faire, ils doivent utiliser leur puissance de calcul pour valider les contrats intelligents. Le système de gaz leur permet de facturer des frais spécifiques pour ce faire.

Cette redevance est connue sous le nom de frais du mineur et elle aide à les inciter suffisamment à participer activement à l'écosystème.

Alors, combien de frais peuvent-ils facturer ? Avant de pouvoir calculer cela, comprenons comment nous mesurons le gaz.

La plus petite unité de mesure du gaz est wei. Donc, si nous passons 1 unité de gaz pendant une opération, nous l'appelons 1 wei.

Les unités de mesure augmentent comme ceci :

Crédit image : Steemit

Avant d'aller plus loin, il est important de connaître le concept de limite de gaz.

Qu'est-ce que la limite de gaz ?

Pour effectuer une opération dans Ethereum, le générateur d'opération (c'est-à-dire la personne qui initie la transaction ou le créateur du contrat intelligent) doit spécifier une limite de gaz avant de la soumettre aux mineurs. Lorsqu'une limite de gaz a été définie, ce n'est qu'alors que les mineurs commenceront à exécuter l'opération.

Lors de la présentation d'une limite de gaz, les points suivants doivent être pris en considération :

Différentes opérations auront des coûts de gaz différents (comme cela a été démontré précédemment).

Les mineurs cesseront d'exécuter au moment où le gaz sera épuisé.

S'il reste du gaz, il sera immédiatement remboursé au générateur de fonctionnement.

Voyons cela en fonctionnement dans un scénario hypothétique.

Supposons que nous ajoutons deux chiffres et pour cela le contrat doit effectuer les actions suivantes :

Stockage 10 dans une variable. Disons que cette opération coûte 45 wei gas.

En ajoutant deux variables, disons que cela coûte 10 wei gas.

Stocker le résultat qui coûte encore 45 gaz wei.

Supposons que la limite de gaz soit de 120 wei.

Le gaz total utilisé par le mineur est de (45+10+45) 100 wei.

Les frais qui leur sont dus en supposant que 1 wei coûte 0,02 micro ETH est (100*0,02 micro ETH) = 0,000002 ETH.

Maintenant, combien de gaz reste-t-il ?

120 — 100 = 20 wei.

Le 20 wei est remboursé au générateur de fonctionnement.

Donc, après avoir spécifié cela, il y a deux scénarios que l'on doit considérer :

La limite de gaz est trop faible.

La limite de gaz est trop élevée.

Scénario #1 : La limite de gaz est trop faible

Si une opération est à court de gaz, alors elle est retournée à son état d'origine comme rien ne s'est réellement passé, cependant, le générateur d'opération doit TOUTE à payer aux mineurs les frais de calcul et l'opération est ajoutée à la blockchain (même si elle n'a pas été exécutée).

Pour revenir à notre analogie road trip, si vous n'avez pas rempli assez d'essence dans votre voiture, alors vous ne serez pas en mesure d'atteindre votre destination, mais même alors vous avez payé à la station-service l'argent pour le carburant droit ?

Voyons comment cela fonctionne dans notre contrat intelligent d'addition hypothétique. L'étape a été :

Stockage 10 dans une variable. Disons que cette opération coûte 45 wei gas.

En ajoutant deux variables, disons que cela coûte 10 wei gas.

Stocker le résultat qui coûte encore 45 gaz wei.

Cependant, cette fois, la limite de gaz est de 90 wei.

Maintenant, nous savons que le gaz qui sera nécessaire pour remplir le contrat est de 100 wei, mais nous n'avons que 90 wel limite.

Dans ce scénario, le mineur fera 90 wei valeur de calcul, puis facturera les frais du générateur de fonctionnement pour le 90 wei qui s'avère être (90 * 0,02 micro ETH) 0.000018 ETH.

En outre, le contrat revient à son état d'origine et est ajouté à la blockchain.

Scénario #2 : La limite de gaz est trop élevée

Et si on fixait la limite de gaz trop élevée ?

Ça aurait du sens de faire le bien ? Après tout ce qui est restant est remboursé au générateur d'opération, n'est-ce pas ?

Cela sonne bien sur le papier, mais cela ne fonctionne pas vraiment bien en réalité. Vous devez vous rappeler que chaque bloc d'Ethereum a une limite globale de gaz. Les mineurs ne peuvent ajouter que des opérations qui sont inférieures ou égales à la limite de gaz du bloc.

Image courtoisie : Hackernoon

Supposons qu'il y ait une transaction A qui a une limite de gaz de 42 000 et deux transactions B et C qui ont des limites normales de 21 000.

Qu'est-ce qui aura plus de sens pour un mineur de mettre dans son bloc ?

Vont-ils mettre dans la transaction A et rembourser une énorme quantité d'essence ?

Ou vont-ils remettre les transactions B et C et rembourser peu ou rien ?

Le deuxième point est plus logique pour eux économiquement droit ?

C'est précisément pourquoi il n'est pas judicieux d'avoir une limite de gaz gonflée.

Gaz élevé et faible vs frais élevés et bas

Il devrait être clair pour vous jusqu'à présent que le gaz et l'éther ne sont pas la même chose. Le gaz est la quantité de puissance de calcul requise, tandis que l'éther est le prix alias les FRAIS que l'on doit payer pour ce gaz.

Maintenant, avec la connaissance de tout ce que nous avons obtenu jusqu'à présent, passons en revue certains scénarios de gaz et de frais.

Si une opération a un gaz LOW, alors les mineurs ne le ramassent même pas parce qu'il n'a pas assez de gaz pour terminer le calcul.

Si une exploitation a des frais bas, alors elle pourrait avoir juste assez de gaz pour la couvrir, mais quand même les mineurs ne seront pas en train de le ramasser parce qu'une opération avec des frais faibles n'est pas économiquement viable pour eux.

Si une opération a un gaz HIGH, cela signifie que l'opération est gonflée avec une limite de gaz élevée et donc les mineurs ne le ramassent pas.

Si une opération a des frais élevés, alors les mineurs savent qu'ils vont gagner beaucoup d'argent et le ramasser instantanément.

Les prix de l'essence recommandés pour différents frais de transaction, selon ethgasstation, sont :

Hausse des prix du gaz Ethereum

La blockchain Ethereum a vu une utilisation accrue ces derniers temps. Cela est dû à l'augmentation de l'utilisation de contrats intelligents plus complexes.

Selon la station d'essence Ethereum, les stablecoins comme USDT et les échanges décentralisés comme Uniswap sont les contrats intelligents plus affamés de gaz dans l'espace. Cette augmentation de l'utilisation incite les utilisateurs à payer des frais plus élevés pour que leurs transactions soient traitées plus rapidement. Ainsi, lorsqu'il y a beaucoup d'activité, les taux de frais peuvent rapidement s'envoler à la hausse.

Pour comprendre à quel point la situation est radicale, considérez ceci. Selon Coin Metrics, à un moment donné, le coût moyen par transaction a grimpé à une moyenne de 7 jours d'environ 91 cents, passant d'environ 8 cents au début de 2020. Connor Abendschein, de Digital Assets Data, note :

« À l'heure actuelle, les frais d'essence élevés empêchaient les petits joueurs de participer à certains des protocoles les plus intéressants de DeFi, comme Synthetix. »

C'est une honte absolue car Ethereum et DeFi sont de construire un système financier mondial ouvert et facilement accessible.

Le pire est que ce problème ne va qu'empirer à mesure que les protocoles DeFi et les utilisateurs plus compliqués entrent dans l'écosystème.

Alors, comment les concurrents d'Ethereum s'attaquent au problème du gaz ? Jetons un coup d'oeil..

Conception de contrats intelligents dans EOS : Modèle de propriété

Le système de gaz Ethereum peut être considéré comme un modèle de location. Ethereum est un superordinateur mondial, dans lequel vous louez des ressources (gaz) pour créer et exécuter votre application.

EOS, d'autre part, utilise un modèle de propriété. Au lieu d'être un superordinateur décentralisé, EOS prévoit de devenir un système d'exploitation décentralisé que les développeurs de Dapp peuvent utiliser pour créer et coder divers Dapps. Les jetons EOS agissent comme une cabine de péage, et leur maintien vous donne accès à diverses ressources telles que la bande passante, le calcul et la RAM.

Puisque ces ressources sont rares, EOS ne veut pas que vous attendiez trop longtemps à leurs jetons. La société derrière EOS, Block.one, a explicitement mentionné dans la constitution de la plate-forme que les membres d'EOS qui n'utilisent pas leurs jetons pendant trois ans obtiendraient leur compte résilié.

En jalonnant et verrouillant les jetons EOS, vous obtenez une quantité équivalente de ressources en bande passante réseau et CPU en retour. Cependant, comme la RAM est une ressource rare, vous ne l'obtenez pas automatiquement en jalonnant. Donc, pour les obtenir, vous devrez l'acheter directement sur le marché RAM.

Chaque fois que quelqu'un achète ou vend de la RAM, des frais de 0,5 % sont appliqués à la fois au côté de l'acheteur et au côté du vendeur (1 % au total). Cela donne aux utilisateurs une incitation économique à vendre leur RAM et décourage le marketing spéculatif et l'inflation, car les droits perçus sont rapidement brûlés (retirés de l'écosystème).

Ce marché interne de RAM veillera à ce qu'il y ait une disponibilité constante de RAM et compensera les pénuries futures prévues. Vous pourrez acheter de la RAM en fonction du prix que le système fixe, en fonction de l'approvisionnement en RAM actuellement disponible.

En achetant et en utilisant ces ressources, les développeurs sont alors en mesure de créer des applications décentralisées.

Coûts de développement d'EOS

Contrairement à Ethereum, vous n'avez pas besoin de payer le prix du gaz en EOS. Vous devez mettre vos jetons EOS pour recevoir la bande passante, le processeur et le stockage pour votre contrat intelligent. Avec tout cela, vous aurez toujours besoin de RAM. Puisque la RAM est une ressource si rare, vous devez l'acheter à partir d'un marché de RAM interne. Selon le planificateur de ressources EOS, la RAM coûte 0,154 USD par Ko

Donc, avec toutes ces informations à l'esprit, voyons combien EOS vous devrez miser pour exécuter une application. Supposons que nous allons faire une application pour 1000 utilisateurs. Vous devrez prendre en compte les mesures suivantes :

Payez pour chaque compte utilisateur.

Vous devrez payer pour leur stockage

Vous devrez également tenir compte de la bande passante réseau et de la bande passante CPU dont vous aurez besoin.

RSK - Le pont entre Bitcoin et Ethereum - Smart Contract Design

Rootstock (RSK) est une plate-forme de contrat intelligent qui est connectée à la blockchain Bitcoin via la technologie sidechain. Rootstock est né pour être compatible avec les applications d'Ethereum (le modèle Web3/EVM/Solidity) et Bitcoin comme crypto-monnaie sous-jacente. L'idée derrière la création de RSK était de donner des fonctionnalités de contrat intelligent Bitcoin blockchain. À son cœur même, Rootstock est une combinaison de :

Une machine virtuelle déterministe TURIN-complète (pour les contrats intelligents) compatible avec l'EVM d'Ethereum.

Un sidechain Bitcoin bidirectionnel (pour le commerce BTC dénominé) basé sur une forte fédération

Un protocole de consensus de fusion SHA256D (pour la sécurité de consensus reposant sur les mineurs de Bitcoin) avec un intervalle de bloc de 30 secondes. (pour les paiements rapides).

RSK vous permet de construire des ponts de jetons qui se connectent directement à la blockchain Ethereum. Cela permet au créateur de contrat de tirer parti des avantages des deux blockchains, mais cela permet également de créer un écosystème prospère et interopérable entre les deux.

Alors, comment cela se traduit-il par les prix du gaz ? RSK a toujours été moins cher que l'Ethereum en ce qui concerne les coûts du gaz.

La ligne bleue ci-dessus est le prix du gaz d'Ethereum, tandis que la ligne verte en bas est le prix du gaz de RSK. Si vous avez besoin de plus de précisions sur la quantité de RSK plus efficace en gaz par rapport à Ethereum, alors vérifiez ceci :

Voici la comparaison moyenne des frais de transaction d'Ethereum et RSK au cours des dix derniers jours. Donc, ce que cela signifie est que non seulement RSK est moins cher, mais il apporte également la sécurité globale de la blockchain Bitcoin, ce qui lui donne un avantage distinct sur Ethereum et EOS.

Conclusion

Alors que nous entrons dans une toute nouvelle ère d'innovation DeFi et d'adoption plus large, les développeurs auront besoin d'une plateforme leur permettant de développer efficacement leurs applications. Bien que personne ne nie qu'Ethereum soit un premier mover, d'autres plates-formes comme RSK ont certainement fait des cas forts comme des frappeurs lourds potentiels du futur. Si nous prenons en considération le fait que le développement de contrats intelligents et de toutes sortes de jetons fongibles et de jetons non fongibles est un processus transparent sur RSK, les développeurs ont de grandes incitations à tester cette plate-forme de contrat intelligent.

Rajarshi Mitra
Rajarshi started writing in the blockchain space after listening to Andreas Antonopoulos’ podcast with Joe Rogan. A content generating machine, Rajarshi has been consistently producing high-quality guides and articles for us since late 2016. His articles have been shared extensively in social media and several start-ups have used his guide as learning material for their staff. He is continuously invited all over his country to give talks in various crypto seminars and conferences. He has gained a solid reputation as a speaker/educator on top of being one of the most promising writers in the crypto space. When he is not busy nerding out over the latest in the blockchain/crypto space, he is usually busy watching re-runs of top gear and MMA.

Like what you read? Give us one like or share it to your friends and get +16

1,102
Hungry for knowledge?
New guides and courses each week
Looking to invest?
Market data, analysis, and reports
Just curious?
A community of blockchain experts to help

Get started today

Already have an account? Sign In