a
a
Weather:
city not found
HomeBitcoinEthereum: comment sont calculés les coûts de transaction

Ethereum: comment sont calculés les coûts de transaction

Cet article sur les frais de transaction Ethereum a été initialement publié sur le site Web Bitfalls de Bruno et est reproduit ici avec permission.

Lors de l’envoi d’une transaction Bitcoin, sa commission est proportionnelle à sa taille. Plus il y a d’entrées et de sorties, plus c’est cher. Ajoutez à cela le facteur de transaction en attente et les frais de transaction peuvent monter en flèche sur la seule base de ces deux facteurs.


Il est recommandé de lire les documents suivants avant de plonger dans le reste de cet article pour mieux comprendre la terminologie dont nous parlerons.

Une connaissance de base des termes de programmation (variables, boucles) peut également être utile.


Avec Ethereum, puisque nous parlons d’un langage de programmation dans le protocole, il est possible d’être très exigeant d’un point de vue informatique avec très peu de texte ou de code (ce qui serait très bon marché dans le verset BTC). Jetons un coup d’œil à ce cycle, par exemple:

while (i++ < 1000) {
    j = j + i;
}

Ce cycle signifie « tout le temps i est inférieur à 1000, augmentez-le de 1 puis ajoutez i est j et écrivez le résultat dans j, puis recommencez. « Ce cycle se déroulera cependant 1000 fois i il vaut 0 ou plus s’il s’agit d’un nombre négatif.

Pour payer ce coût de calcul équitablement – puisqu’il doit fonctionner sur toutes les machines des mineurs en même temps et qu’ils y consacrent des ressources et du temps – le concept de gaz il a été présenté. Le gaz est utilisé pour payer l’exécution de ces soi-disant contrats intelligents (programmes Ethereum) au sein de l’EVM. Par exemple, i + j ci-dessus est une opération de somme qui coûte 3 gaz à chaque fois qu’elle est effectuée, puis 3000 gaz si elle est effectuée 1000 fois.

Explique gaz correctement, couvrons d’abord le fichier EVM.

EVM

EVM signifie Machine virtuelle Ethereum. Mais qu’est-ce qu’une machine virtuelle de toute façon?

Machine virtuelle

Une machine virtuelle est un logiciel s’exécutant sur un ordinateur spécifique qui contient un autre système d’exploitation entièrement encapsulé dans le système principal. Par exemple, une machine virtuelle vous permet d’exécuter Windows sur Linux, Linux sur Windows, Windows sur macOS comme dans l’image ci-dessous, ou toute autre combinaison.

Nous utilisons des machines virtuelles pour séparer l’environnement dans lequel nous utilisons quotidiennement l’ordinateur de l’environnement dans lequel nous travaillons ou programmons. Cela nous permet de garder les virus à distance (ils n’ont aucun moyen de pirater la machine virtuelle et d’atteindre le système d’exploitation principal), aide à empêcher des boucles infinies de bloquer notre système d’exploitation principal et maintient les corruptions du disque dur à distance comme le tristement célèbre Ransomware WannaCry. De plus, les VM nous permettent de jouer à des jeux Windows sur Linux, par exemple, ou de programmer facilement dans différentes versions de l’environnement du même langage de programmation, sans les confondre.

EVM

La machine virtuelle Ethereum est intégrée au logiciel fonctionnant sur le protocole Ethereum. Exécutez des contrats intelligents: programmes Ethereum écrits dans le langage Solidity. L’EVM est contenu dans les nœuds complets du réseau Ethereum, au sein desquels il exécute ces programmes écrits par les utilisateurs d’Ethereum.

Tout mineur Ethereum exécute simultanément le code de contrat intelligent. Cela signifie que les programmes Ethereum (dapps – applications décentralisées) s’exécutent sur l’ordinateur de tout le monde en même temps (décentralisé).

Cependant, l’exécution de ces programmes n’est pas gratuite. Les mineurs utilisent l’électricité, le temps et le matériel pour ce faire. Pour les rémunérer pour leurs efforts pour exécuter des instructions informatiques (comme « stocker la valeur 5 dans la variable X »), le concept de gaz il a été présenté.

Gaz, éther et GWei

Gaz est une unité de coût pour une opération particulière qu’un ordinateur doit effectuer, et il exécute cette instruction lorsque nous transmettons une transaction contenant un programme Ethereum pour effectuer un dapp. Par exemple, ajouter deux nombres coûte 3 gaz. Les multiplier coûte 5 gaz. Stocker un mot de 256 bits dans la blockchain coûte 20000 gaz, ce qui signifie que stocker 1 ko de données coûte 640000 gaz.

Tout comme l’USD a des cents, son unité de base en a aussi: wei. Si nous prenons wei comme unité de base de l’éther, nous obtenons le tableau de définition suivant:

unité wei
wei 1
kwei / là / femtotether 1 000
mwei / babbage / picoether 1 000 000
engrener / shannon / nanoether / nano 1 000 000 000
szabo / microéther / micro 1 000 000 000 000
finney / milliéther / milli 1 000 000 000 000 000
éther 1 000 000 000 000 000 000

Astuce: utilisez ce convertisseur pour convertir entre les unités Ether.

Selon ce site d’information, le prix moyen actuel du gaz est de 10 GWei (10 gigawei). Puisque 1 GWei est un milliardième d’éther, le coût ci-dessus pour mémoriser un mot de 1 ko est de 640000 * 10, soit 6,4 millions de GWei. Cela équivaut à 0,0064 eth qui, à un prix de 450 $ par éther, équivaut à environ 2,88 $.

Le texte du début du tableau ci-dessus jusqu’à >>this specific marker<< est d’environ 1 ko. Donc, stocker ce petit texte dans la blockchain coûte en réalité 2,88 $. Cependant, ce n’est que le coût du stockage! Notre contrat intelligent pourrait également avoir une logique, telle que l’ajout ou la multiplication, puis le stockage de nombres, ou des déclencheurs qui se déclenchent sur un bloc miné spécifique, etc. Bien sûr, stocker des données sur la blockchain elle-même coûte incroyablement cher. Le stockage est meilleur dans BigchainDB ou IPFS, tandis que la blockchain est une meilleure solution pour le traitement et la vérification globaux de ces données.

Pourquoi le gaz?

Pourquoi payer les frais en gaz et non en direct?

Tous les prix du gaz de toutes les opérations possibles que l’EVM peut effectuer sont codés en dur dans le protocole Ethereum et dans les clients (programmes) auxquels nous nous connectons, tels que Geth, Eth, Parity, etc. Si le code les répertorie dans Ether, nous devrons alors mettre à jour le code à chaque fois que la valeur d’Ether fluctue pour maintenir le prix des efforts de traitement dans une plage normale et garder le système utilisable, ce qui n’est évidemment pas viable.

Ajouter ceci gaz En plus des coûts, et en payant le gaz avec GWei, nous avons la possibilité de modifier la quantité de gaz à utiliser dans une transaction et le montant d’argent à payer. C’est complètement sous notre contrôle, sans déséquilibrer le système.

Cela nous amène à notre dernière section.

Limite / Coût vs Prix

Limite de gaz et le quantité maximale de gaz que nous sommes prêts à dépenser pour une transaction. La plupart des logiciels que nous utilisons pour transmettre des transactions Ethereum ont la capacité d’estimer automatiquement la quantité de gaz nécessaire pour exécuter une fonction. Il suggère généralement un chiffre dès le départ. Par exemple, de simples transactions monétaires A-> B ne nécessitent généralement que 21 000 gaz. Les plus complexes qui appellent des fonctions de contrat intelligent spécifiques pourraient contenir des centaines de milliers, voire des millions de gaz. La quantité de gaz dépensée est appelée coût du gaz.

En tant qu’utilisateurs, nous pouvons modifier la quantité de gaz que nous voulons dépenser pour une transaction et la réduire, mais si la transaction s’épuise pendant l’exécution, nous perdons le gaz que nous avons envoyé. Il a été dépensé et la transaction est rejetée. En revanche, si nous fournissons plus de gaz que nécessaire, le reste nous est remboursé. Par conséquent, il est toujours préférable d’envoyer plus de gaz que nécessaire pour exécuter une transaction.

Coût du gaz est le prix GWei par unité de gaz.

Par conséquent, le coût total d’une transaction Ethereum est en fait la quantité de gaz nécessaire multipliée par le prix en GWei par unité de gaz. C’est le maximum frais de transaction que nous paierons; tout gaz supplémentaire est remboursé, les tarifs sont donc souvent largement surestimés.

Jetons un œil à un exemple.

25 Gwei

Dans l’image ci-dessus, nous exécutons une transaction qui, en raison de sa complexité, estime qu’elle aura besoin de 135963 gaz. Avec un prix de 25 GWei, les frais de transaction maximum que nous paierons sont de 1,57 USD, ce qui est insignifiant si l’on considère le montant total que nous envoyons (0,38 eth = 178 USD). Si nous élevons le prix du gaz à 250 GWei, la transaction devient proportionnellement plus coûteuse:

250 GWei

Des frais de transmission plus élevés encouragent effectivement les mineurs à traiter notre transaction avant les autres dans la file d’attente, accélérant ainsi l’exécution. Si nous ne sommes pas pressés, nous pouvons laisser le prix du gaz à sa valeur initiale et la confirmation de la transaction ne devrait pas prendre plus de 10 minutes. Mais si nous sommes pressés et que nous voulons que cela se fasse en quelques secondes (si, par exemple, nous avons affaire à une vente aux enchères), il est facile d’augmenter le prix de l’essence et de sacrifier de l’argent pour une garantie de succès.

Conclusion

Le gaz est l’unité de travail dépensée par opération de calcul dans la machine virtuelle Ethereum. Il est payé en éther, le jeton du protocole Ethereum, et chaque opération de calcul a un coût de gaz différent. Le prix du gaz (en GWei ou 1 milliardième d’éther) varie en fonction de la congestion du réseau et de la préférence de l’utilisateur pour une confirmation rapide.

Pour un contrat intelligent que nous souhaitons mettre en œuvre sur le réseau Ethereum, deux termes sont importants: la limite de gaz et le prix du gaz. La limite de gaz est la quantité maximale de gaz que nous sommes prêts à dépenser pour exécuter la transaction. La quantité de gaz effectivement demandée est rappelée (connue seulement une fois la transaction exécutée) coût du gaz. Le prix du gaz est le prix par unité de gaz, exprimé en GWei (ou milliardièmes d’éther). Le coût total d’une transaction sera le produit du coût du gaz et du prix du gaz, tandis que les frais de transaction maximum seront le produit de la limite de gaz et du prix du gaz. La différence est remboursée à l’expéditeur de la transaction pour que le système reste juste et utilisable.

https://www.sitepoint.com/ethereum-transaction-costs/

No comments

leave a comment