Comprendre les formats de jetons Ethereum

Au fil du temps, la blockchain pénètre de plus en plus dans nos vies, et il devient nécessaire de comprendre ses principales technologies, notamment le travail des applications décentralisées (dApps). La plupart des dApps sont actuellement créées sur Ethereum, dont les capacités sont beaucoup plus flexibles que l'émission des jetons ERC20 habituels.



Pourquoi des normes sont nécessaires



À l'intérieur du contrat intelligent ( qu'est-ce que c'est? ), Vous pouvez écrire les mécanismes uniques du jeton. Cela fonctionnera, mais les autres développeurs (et les contrats intelligents) ne pourront pas y accéder avec une logique générique.



Exemple: vous avez créé un jeton pour un objet de jeu (le jeu décentralisé se développe actuellement activement) et vous voulez qu'il puisse échanger sur les marchés contre des objets en jeu (quelque chose comme ça ). Mais les marchés ne savent pas comment accéder aux fonctions de votre contrat, ils ont besoin d'un contrat intelligent distinct pour prendre en charge votre jeton.



Les normes viennent à la rescousse. Sachant comment interagir avec eux, les créateurs d'autres dApps ont mis dans le code tout ce dont vous avez besoin pour travailler avec un jeton sur un certain standard.



Comment naissent les normes



Ethereum est un projet open-source (en passant, ERC est Ethereum Request for Comments), il est donc logique que tout utilisateur puisse proposer un nouveau standard de jeton. Si la norme résout un problème important, elle peut devenir la norme officielle Ethereum (c'est-à-dire figurer sur cette liste) .



Jetons fongibles et non fongibles



Le point de départ de la classification des normes de jetons est leur interchangeabilité ou leur absence. Les jetons fongibles sont égaux les uns aux autres et peuvent être utilisés comme monnaie. Les jetons semi-fongibles (semi-fongibles) sont presque indiscernables les uns des autres, mais restent uniques (par exemple: billets dans un cinéma, le coût peut être un, mais chacun a une place unique) . Les jetons non fongibles (non fongibles) sont complètement uniques, un objet tokenisé en une seule copie (exemple: objets de copyright) .

image

Si vous ne reconnaissez pas le chaton, alors c'est l'un des premiers jeux sur Ethereum (et la norme ERC-721), CryptoKitties .



ERC-20



Le standard le plus connu pour les jetons fongibles est ERC20, qui a été proposé par l'auteur de l'idée Ethereum Vitalik Buterin en 2015. Ce jeton est largement utilisé pour différents types d'offre initiale (première proposition). J'évite les termes ICO et IEO, car ce sont maintenant loin d'être les seuls moyens de mener une offre publique de jetons (mais cet article ne parle pas de cela).



Spécificité: un standard interchangeable, il existe un ticker pour les échanges, divisible (le nombre de chiffres après la virgule décimale est déterminé par le créateur du smart contract), a forcément une offre totale (le nombre de tokens qui ne peuvent plus être émis).



Beaucoup a déjà été écrit sur ERC-20 ( habr ), je passe à d'autres standards.



ERC-721



Cette norme est largement utilisée pour créer des jetons uniques. Land in Decentraland , Binance Collectibles , voici des exemples d'ERC-721.



ERC-721 a été proposé comme EIP (Ethereum Improvement Proposal) par Dieter Shirley en 2017, est devenu officiel en 2018.



Particularités: pas un standard interchangeable, pas de ticker, indivisible, n'existe nécessairement qu'en un seul exemplaire.



ERC-721, comme ERC-20, est répandu, donc je ne m'étendrai pas dessus.



ERC-777



Ce format est une "amélioration" de l'ERC-20 bien connu. Il est rétrocompatible avec ERC-20, mais présente plusieurs avantages:



  • lors de l'échange de jetons, il utilise une transaction au lieu de deux dans ERC-20;
  • annule automatiquement les transactions pour les contrats incompatibles;
  • la capacité de marquer des adresses non fiables;
  • la possibilité de désigner des opérateurs (adresses qui ont le droit d'envoyer des jetons depuis une autre adresse);
  • transactions accélérées.




ERC-223



Également une "amélioration" de l'ERC-20, empêchant l'envoi de transactions à des contrats aléatoires. Si le contrat intelligent ne dispose pas de fonctions permettant de travailler avec des jetons, ils sont renvoyés à l'expéditeur.



image: mywishplatform



ERC-1155



L'idée de ce standard a été proposée par les développeurs du projet Enjin en 2018. Enjin est un projet qui vise à simplifier la création de jeux sur Ethereum. Par conséquent, la norme proposée par eux doit d'abord être considérée comme une norme de jeu, bien que son application ne se limite pas à cela.



Spécificité:



  • vous permet d'émettre plusieurs jetons dans un même contrat;
  • les jetons dans un contrat peuvent être fongibles et non fongibles en même temps;
  • prend en charge les swaps atomiques;
  • prend en charge les transactions "par lots";
  • toutes les transactions n'ont pas besoin d'attendre la fin du bloc.


Si les deux premiers points sont clairs, alors le troisième et le quatrième peuvent soulever des questions. Tout d'abord, jetons un coup d'œil aux swaps atomiques.



Swaps atomiques



L'une des raisons du rejet de la blockchain partout est l'incapacité à échanger rapidement et efficacement (en termes de frais) un jeton contre un autre (et le nombre de jetons différents augmente tout le temps). La solution au problème a déjà été créée - ce sont des swaps atomiques. Habituellement, les swaps atomiques sont compris comme la technologie d'échange décentralisé entre les crypto-monnaies de différentes blockchains indépendantes ( c'est bien écrit à ce sujet sur BitcoinWiki ). Mais il vaut également la peine d'envisager les swaps atomiques dans le cadre de l'échange de jetons au sein d'un contrat intelligent.



Une image du blog Enjin illustre un échange de jetons multiples utilisant la norme ERC-1155.

Photo du blog Enjin



Et les transactions par lots, même si elles ne font pas gagner du temps, mais elles économisent du gaz ( qu'est-ce que c'est? ) En écrivant plusieurs transactions sur le réseau en une seule.

Photo du blog Enjin



Il est à noter que si l'ERC-1155 s'est généralisé, il a beaucoup emprunté à l'ERC875, apparu quelques mois plus tôt. ERC-875 offrait la même fonctionnalité en plus de prendre en charge les jetons fongibles.



ERC-865



Une norme similaire à ERC-20, mais n'utilise pas de gaz pour les commissions, mais les jetons eux-mêmes. En raison du système complexe de paiement de la commission sur le gaz (le prix du gaz est choisi indépendamment), et parfois de l'imprévisibilité de la taille de la commission, une telle amélioration peut être très utile pour accepter des jetons sur Ethereum.



Liens



Je n'ai pas considéré toutes les normes, mais si nous parlons de tous les ERC, alors ils sont pour la plupart similaires les uns aux autres, et ils offrent soit une solution aux problèmes de l'ERC-20, soit une application dans une niche distincte. Si vous souhaitez lire le code en détail: Github EIPs , Github OpenZeppelin . Ethereum.org .



All Articles