Les contrats intelligents, comme nous l’avons vu, sont des programmes informatiques, appelés aussi « scripts. » Ceux-ci sont écrits dans un langage de programmation Turing-complet. Le Turing-complet, par définition, signifie que ce langage est capable de faire n’importe quel type de calcul. Si quelque chose peut être exprimé avec un algorithme, alors un programme écrit en Turing-complet peut l’exprimer. Bien qu’il soit possible de rédiger des contrats intelligents dans une série d’autres langages, le plus populaire aujourd’hui s’appelle Solidité. Solidité est à de nombreux égards similaire à JavaScript. Il est ultra polyvalent et largement utilisé pour son utilisation dans les applications Web. On parle de « problème d’arrêt » lorsque les machine Turing-complet rencontre un problème majeur. Petit éclaircissement : une machine Turing-complet est toute machine capable d’exécuter des scripts écrits dans un langage Turing-complet.

Au niveau du fonctionnement, un problème d’arrêt se traduit de diverses manières. Cela peut être un arrêt brutal que l’ordinateur ne sait pas à l’avance que le programme va s’arrêter. Cela peut aussi être une boucle infinie, le programme se répète encore et encore. La seule façon de le déterminer est d’exécuter le code.

L’exemple du nombre aléatoire

Par exemple, imaginez avoir un programme disant : « Donne-moi un nombre aléatoire. » S’il est possible qu’il me fournisse le premier nombre, ou un nombre compris entre 100 et 1000, nous n’en avons toutefois pas spécifié la longueur. Il est donc tout à fait possible que le programme demande à l’ordinateur de sortir un nombre vraiment très élevé, proche de l’infini et que l’ordinateur ne peut afficher. Une façon de réduire la possibilité est de créer un programme disant : « Donne-moi un nombre aléatoire inférieur à 1000. » Si une limite supérieure existe, rien ne l’empêche de sortir un nombre négatif proche, lui aussi, de l’infini. En mettant une limite inférieure, on réduit encore le risque. Cependant, nouveau risque, que se produit-il si l’ordinateur décide de sortir Pi, un nombre dont les décimales sont littéralement infinies. Pour que le programme fonctionne comme désiré, il faudra, par exemple, lui spécifier de choisir dans les entiers.

Il n’est pas toujours facile de faire fonctionner les programmes comme nous le souhaitons, et il n’est pas rare que les bugs de programmation mènent par inadvertance à des « boucles infinies. » Une machine n’a aucun moyen de prédire une boucle infinie… Elle ne connaît pas le code jusqu’à ce qu’elle l’exécute effectivement et donc jusqu’au problème d’arrêt… Si un nœud du réseau Ethereum bloquait l’exécution d’un programme dans une boucle infinie, il arrêterait effectivement tout le système, et serait donc appelé « problème d’arrêt. » Cette incapacité à terminer un script empêcherait dans ce cas-ci l’ajout de nouvelles données à la blockchain. Ce qui serait évidemment catastrophique. Alors, comment éviter ce type de problème ?

Comment rémunérer le calcul ?

La réponse est en fait assez simple : l’Ether. Au sein du réseau Ethereum, le calcul n’est pas gratuit… Chaque fois qu’un utilisateur fait une demande pour exécuter un script, une certaine somme y est associée, et payable en Ether. De plus, pour exécuter un script, un utilisateur doit définir une limite à la quantité d’Ether disponible pour exécuter ce script. L’Ether dédié à l’exécution d’un script particulier est connu sous le nom de « gaz. » Si l’Ether ou le « gaz » est épuisé avant la fin du calcul, celui-ci s’arrête dans son état actuel.

En exigeant des frais et en imposant un plafond de valeur pour chaque script, Ethereum élimine le problème de la boucle infinie, accidentelle ou, plus probablement, liée à une attaque malveillante. Personne n’a une quantité infinie d’Éther, donc même si une attaque visait à exécuter un programme en boucle infinie, il ne serait pas capable de le maintenir financièrement parlant. Le script serait alors arrêté dès le moment où le financement serait épuisé. L’Ether, en tant que devise, joue un rôle essentiel dans le cadre d’Ethereum. En dehors de son utilisation comme « gaz » pour l’exécution de contrats intelligents sur la chaîne de blocs Ethereum, il a d’autres fonctions. Ether est également l’objet de transactions sur des plateformes d’échange contre d’autres cryptomonnaies ou contre des devises bien réelles comme des dollars et des euros. Aux États-Unis, vous pouvez acheter de l’Ether avec des devises via Coinbase, Bittrex, etc.

Où se procurer de l’Ether ?

Vous pouvez acheter de l’Ether avec des bitcoins à travers presque toutes les plateformes possibles : ShapeShift, Kraken, Poloniex, et plus encore. Selon l’endroit où vous vous trouvez dans le monde, votre accès à des bourses spécifiques variera, mais vous ne devriez pas avoir de difficulté à acheter, vendre ou négocier l’Ether via une ou plusieurs plateformes en ligne. Peu importe où vous vivez…

L’Ether a une valeur réelle significative, au-delà de son rôle comme « gaz. » Un Ether a dépassé la valeur de 300$ de manière répétée en 2017. Pour beaucoup, l’Ether est traité exclusivement comme un investissement, avec des spéculateurs qui échangent des bitcoins ou autres devises numériques contre de l’Ether dans l’espoir d’une plus-value. Si tel est le cas, la revente se fait sans jamais que l’acteur se soit engagé dans le réseau d’applications Ethereum. En ce sens, l’Ether peut être acheté, vendu et échangé comme des bitcoins ou toute autre monnaie numérique. Dans le cadre d’Ethereum, cependant, l’Ether sert un objectif unique : celui de « gaz » dans la réalisation de contrats intelligents.

Même si votre intérêt pour Ethereum est uniquement motivé par un intérêt financier et que vous n’avez pas l’intention d’écrire un logiciel ou d’être impliqué de quelque manière que ce soit dans le monde des applications, il est utile de comprendre la relation entre ces applications, la valeur de l’Ether comme monnaie et l’écosystème Ethereum dans son ensemble.

Conclusion

Nous savons que l’Ether peut être acheté sur différents marchés de change, mais d’où provient-il ? Qui le crée et comment ? À l’heure où ces lignes sont écrites, l’Ether est « miné » d’une manière similaire au Bitcoin. Les nœuds du réseau Ethereum résolvent des problèmes mathématiques complexes afin de valider les transactions. Quand un nœud particulier, ou mineur, réussit à « résoudre un bloc », ce bloc est ajouté à la blockchain et le mineur est récompensé pour son travail par une certaine quantité d’Ether. Cependant, cette manière de fonctionner pourrait changer dans un avenir proche et nous amener vers un autre concept.

Nous devons examiner de plus près le rôle du minage, comment les transactions sont validées, comment la chaîne de blocs est maintenue, et l’interaction avec l’avenir d’Ethereum.

One Comment

  1. Pingback: Les applications décentralisées (dApps) sur la plateforme Ethereum

Comments are closed.