Un jeton est conçu pour représenter un objet de valeur et s’échanger (être acheté, vendu ou tradé) entre différents partis en vertu d’un « smart contract ». Dans l’écosystème Ethereum, le plus caractéristique d’entre eux est bien évidement le jeton ether. Des biens aussi divers que les chèques, pièces de monnaie, objets d’art, points de fidélité, certificats d’or, droits de vote et plus largement, tout bien échangeable fongible peuvent être attachés à un jeton dans la blockchain Ethereum aux fins d’authenticité et de validité d’une transaction entre deux parties.
Au cours des derniers mois, nous avons vu une multitude de jetons émis sur le blockchain Ethereum pour differents Dapps et projets sans faire appel ni nécessairement adhérer à aucun standard ou norme particulière. Les Dapps sont simplement des applications distribuées sur la blockchain permettant à son utilisateur d’exécuter des tâches en utilisant une interface standard web ou mobile. Il s’agit essentiellement d’un ensemble de “smart contract” (instructions ou programmes informatiques devant s’exécuter à des échéances et conditions précises sans aucune autre forme d’intervention). Cependant, un jeton standardisé signifie que tout jeton, qu’il soit nouvellement émis ou déjà existant, sera instantanément compatible avec n’importe quel projet et n’importe quel “smart contract” qui utilise les mêmes normes. C’est tout le mérite d’un standard commun tel que celui de ERC20 qui rend ces actifs plus facilement interchangeables, compatibles et réutilisables d’un projet à l’autre, d’un « smart contract » à l’autre, avec la capacité entre autre de déclarer des variables ou des fonctions globales qui pourront être utilisées par les uns et les autres sur la blockchain.
La norme ECR20 développée en 2015 spécifie six fonctions ou méthodes et deux événements qui assurent que les jetons Ethereum de différentes sources fonctionnent globalement de la même manière partout dans le système Ethereum. Cela permet aux développeurs de prédéterminer avec exactitude le comportement des nouveaux jetons dans le système Ethereum sans avoir besoin de re-concevoir chaque projet à chaque fois. Avec la norme ERC20, un émetteur peut garder une trace de qui (ou plus exactement l’adresse de qui) possède un nombre de jetons à un moment donné. Puisque chaque jeton est une monnaie secondaire du réseau Ethereum, cette solution est facile à implémenter et toutes les attributions sont effectuées à travers les méthodes propres au jeton en question.
En langage informatique, un jeton est avant tout un objet c’est à dire un petit ensemble de données encapsulées dans une structure ou un format spécifique. A l’instar de tout objet (ou concept) du monde réel, un objet, qu’il soit un jeton ou autre élément devant être programmé, a des instructions ou méthodes qui lui sont propres et qui indiquent la manière dont l’objet peut être utilisé ou accédé. Il a également des états ou attributs le qualifiant. A titre d’exemple, une peinture a une couleur (attribut le qualifiant) et différentes méthodes soit de dosage de différents composants, soit d’utilisation. En outre, une personne peintre ou non, peut à un moment donné, désirer payer pour déclencher une de ses méthodes qui l’affiche ou le rend visible sur un mur. Nous avons ainsi un jeton. En d’autres termes, un objet ou jeton est une structure modulaire d’informations qui peuvent être combinés et recombinés en fonction d’un objectif précis. La seule différence ici est le rôle de l’informatique en tant qu’utilisateur qui stocke ces informations de façon, qu’il est facile pour le programme et le programmeur d’échanger les attributs sans avoir besoin de changer le code à chaque utilisation. Ainsi le jeton ECR-20 va avoir des attributs et des méthodes standards interprétables et réutilisables par d’autres “smart contract”.
En bref, le standard ECR20 c’est six méthodes et deux événements / états :
méthodes:
totalSupply() | Indique le nombre total de jetons offerts dans le « smart contract » |
balanceOf | retourne le solde de compte |
transfer | Transfert un montant donné vers un autre compte destinataire qui lui sont indiqués |
transferFrom | Envoyer une quantité de jetons de l’émetteur au récepteur |
approve | Permet au récepteur de se retirer du compte émetteur et possiblement en plusieurs échéances un montant total indiqué |
allowance | Affiche le montant que le récepteur est encore autorisé à retirer |
évènements: | |
Transfer | Déclenché lorsque les jetons sont transférés. |
Approval |
Déclenché chaque fois que la méthode « approve » est appelée. |
Merci Nesto,
J’ai une question sur ce sujet : peut-on représenter un jeton avec encours variable, c’est à dire avec créations certains jours et destruction d’autres jours d’un certain nombre de jetons ?
J’aimeJ’aime
Tout à fait. Par l’intermédiaire d’un smart contract qui manipule (ou appelle) les fonctions ou méthodes du jeton.
J’aimeJ’aime
Salut Nesto,
Récemment, deux piratages importants ont concerné la chaîne de blocs Ethereum: DAO et l’ICO de Coindash. Si j’ai bien compris, il ne s’agissait pas d’une faille dans le code standard des tokens ERC20, ni même d’un bug dans un des smart-contracts qui régissait l’ICO de Coindash, mais d’un piratage d’adresse.
D’après toi, peut-on supposer que le protocole Ethereum est infaillible?
J’aimeJ’aime
Cher Amine,
Une fois qu’une transaction est écrite sur la blockchain, personne ne peut la changer, ou, du moins, il serait extrêmement difficile de la changer sans collusion, et toute tentative de modification frauduleuse est extrêmement facile à détecter. La raison en est que chaque bloc est lié au bloc précédent en incluant le hash (ou « signature électronique ») du bloc précédent. Ce hash inclut le hash racine de toutes les transactions passées. Cette configuration est communément appelée arboresence de Merkle. Si une seule transaction venait à être modifiée, non seulement le hash racine doit changer, mais également celui contenu dans le bloc modifié. De plus, chaque bloc subséquent devra être mis à jour pour refléter ce changement. En d’autres termes, la fraude est étalée instantanément au grand jour et bien entendu, vite rejetée. En ce sens, l’immuabilité des données ou l’immuabilité de la blockchain est indéniable, sans même parler du coût élevé que cette tentative exigera de la part du fraudeur, surtout s’agissant de la blockchain Ethereum. Rappelons que chaque action de cette nature lui coûte beaucoup (de « gas ») pour être exécutée et faire toute la chaîne rend sa tentative économiquement perdante.
La seule chose qui reste pour un fraudeur, c’est effectivement de chercher à pirater la preuve d’identité que constitue les adresses….
J’aimeAimé par 1 personne