Découvrez les tokens (jetons) natifs

Les Tokens Natifs est une nouvelle fonctionnalité qui permet de réaliser des transactions avec des actifs multiples sur Cardano. Les utilisateurs peuvent effectuer des transactions avec ada et un nombre illimité de tokens définis par l'utilisateur (personnalisés) de manière native.

La fonctionnalité native offre des avantages distincts aux développeurs : il n'est pas nécessaire de créer des contrats intelligents pour gérer les tokens personnalisés, par exemple, ce qui élimine une couche de complexité supplémentaire et un potentiel d'erreurs manuelles puisque le grand livre gère toutes les fonctionnalités liées aux tokens.

La fonctionnalité des jetons natifs étend l'infrastructure comptable existante définie dans le modèle de grand livre (conçu à l'origine pour traiter les transactions uniquement en ada) pour permettre les transactions utilisant une gamme d'actifs. Ces actifs comprennent ada et une variété de types de jetons personnalisés définis par l'utilisateur.

Apprenez-en plus sur les jetons natifs et comment ils se comparent à ada et ERC20 et regardez notre vidéo explicative sur les jetons natifs.

 

Grand livre d'actif unique

Les grands livres de crypto-monnaies qui suivent exactement un type d'actif sont appelés grands livres à actif unique.

 

Support Multi-Actifs (MA)

On dit d'une blockchain, d'un ledger ou d'une crypto-monnaie qu'elle est dotée d'un support multi-actifs (MA) lorsque le réseau ou le ledger prend en charge le suivi du transfert et de la propriété de différents types d'actifs sur son ledger. Dans l'environnement Cardano, cette fonctionnalité est fournie par la fonction de tokens natifs.

Cette fonctionnalité étend l'infrastructure comptable existante définie dans le modèle de grand livre, qui est conçu pour traiter les transactions uniquement en ada, afin d'accueillir les transactions qui utilisent simultanément une gamme d'actifs. Ces actifs comprennent ada et une variété de types de tokens personnalisés définis par l'utilisateur.

 

Support de MA natif versus non natif

Certains grands livres de crypto-monnaies ont un support intégré pour suivre la propriété et le transfert de plus d'un type d'actif. Ce type de support MA est appelé natif. La fonctionnalité de MA de Cardano est native.

Si une plateforme de crypto-monnaies dispose de fonctionnalités de contrats intelligents suffisamment puissantes, il est possible de suivre des actifs pour lesquels il n'existe pas de support de comptabilité de grand livre. Cela se fait avec une solution de couche 2 construite à l'aide de contrats intelligents. Ce type de support de MA est non-natif.

 

Actifs et tokens

Actifs

Un actif est un objet qui représente une valeur sur la blockchain. Ces objets peuvent être une variété de choses, comme un actif numérique comme l'ada, un rôle, un crédential ou une quantité de biens.

Le terme "actif" peut désigner soit:

  • l'identifiant d'une classe d'objets, tel que "ada" ou "couttscoins" ; ou
  • une quantité particulière d'un objet spécifique, comme "100 lovelace", "24 couttscoins", "cette maison" ou "ces 10 tonnes de café"

Un actif est identifié de manière unique par un ID d'actif, qui est une paire composée de l'ID de politique et du nom de l'actif. Il est important de noter que, bien que l'ada puisse agir comme un actif, il n'est pas représenté par un ID de politique explicite.

Les tokens qui ont le même ID d'actif ont la propriété d'être fongibles entre eux, et ne sont pas fongibles avec les tokens qui ont un ID d'actif différent. Un ID d'actif est un identifiant unique pour une collection de tokens fongibles.

  • PolicyID - l'identifiant unique qui est associé à une politique de monnayage. Examinons deux exemples d'identifiants de politiques: NFLPlayerCardsPolicyID et RushConcertPolicyID. L'ID est calculé en appliquant une fonction de hachage à la politique elle-même, et est donc une séquence de lettres et de chiffres. Par exemple:

NFLPlayerCardsPolicyID = e0d123e5f316bef7

  • Asset name - une propriété (immuable) d'un actif qui est utilisée pour distinguer différents actifs au sein d'une même politique. Contrairement au policyID, le nom de l'actif ne fait pas référence à un code ou à un ensemble de règles, et peut être constitué de mots courants, tels que ‘tickets’ ou ‘VIPTickets’, par exemple. Toutefois, la politique dans laquelle un actif est classé peut spécifier certaines contraintes sur les noms d'actifs valides.

Des politiques différentes peuvent utiliser les mêmes noms d'actifs pour des tokens différents. Par exemple, l'ensemble de tokens:

FAKERushConcertPolicyID {  (Tickets, 500),

                           (VIPTickets, 50)}

contient les Tickets et VIPTickets noms d'actifs, mais ceux-ci ne sont pas fongibles avec les RushConcertPolicyID tickets qui ont été définis dans un autre paquet de tokens, car ils relèvent de politiques différentes.

Tokens

Un token est un terme court pour " asset token ", qui est la représentation sur la chaîne d'un actif et son unité comptable de base. Un token peut représenter un ada, une maison ou la valeur de dix tonnes de café, par exemple.

Currencies

Currency (monnaie) est un moyen d'échange de biens et de services qui fait communément référence à une unité de paiement. Cardano prend en charge des monnaies telles que l'ada et les tokens natifs, qui agissent de manière similaire dans le réseau.

Cependant, ada est la principale monnaie qui, à l'heure actuelle, est acceptée comme paiement des frais, pour effectuer des dépôts, et c'est également la seule monnaie dans laquelle les récompenses sont distribuées. Cette propriété d'ada (et d'aucun autre type d'actif) est due à la construction du protocole de consensus sous-jacent.

Les tokens natifs représentent une certaine valeur et agissent comme une unité comptable, qui peut être utilisée pour les paiements, les transactions et peut être envoyée à une adresse d'échange. Native signifie que ces tokens sont supportés par le grand livre comptable Cardano sans qu'il soit nécessaire de recourir à des contrats intelligents supplémentaires, car le grand livre offre un support intégré pour suivre la propriété et le transfert de plusieurs types d'actifs.

Bien que les tokens ada et natifs détiennent tous deux une valeur et servent d'unité de paiement et de transaction, seuls les ada sont utilisés pour les frais et les récompenses, tandis que seuls les tokens natifs peuvent être créés de manière personnalisée.

 

Utilisation de l'ada pour les opérations administratives

L'ada est la principale monnaie de Cardano. Il est essentiel de posséder de l'ada (en plus d'autres devises) pour transférer des tokens multi-actifs entre adresses, car chaque adresse doit contenir une valeur minimale d'ada (min-ada-value, actuellement fixé à 1 ada).

En conséquence de cette conception, les points suivants s'appliquent:

  1. Il est impossible de créer des sorties qui ne contiennent que des tokens personnalisés.
  2. Le nombre de chaque type de token dans une sortie n'a pas d'incidence sur le min-ada-value de la sortie, mais le nombre de types de tokens contenus dans une sortie augmente la min-ada-value(La raison en est que les noms et les ID de politique de chacun des types de tokens occupent de l'espace supplémentaire dans la sortie.)
  3. L'envoi de tokens personnalisés à une adresse implique toujours l'envoi de min-ada-value d'ada à cette adresse avec les tokens personnalisés (en incluant l'ada dans la même sortie). Si l'adresse n'est pas dépensable par l'utilisateur qui envoie les tokens, l'ada envoyé avec les tokens n'appartient plus à l'expéditeur.

Note : Avant de transférer des tokens personnalisés, les utilisateurs peuvent choisir d'utiliser la communication hors-chaîne pour négocier qui fournit l'ada pour couvrir la valeur minimale de l'ada dans la sortie faite par la transaction de transfert.

  1. Pour récupérer l'ada stocké avec les tokens personnalisés dans une sortie O, l'utilisateur doit soit:
  • Dépenser la sortie O, et brûler les tokens personnalisés qui y sont stockés
  • Dépenser une sortie O et une sortie O', et consolider les tokens qui s'y trouvent avec la même collection de types de tokens personnalisés stockés dans une autre sortie (dépensée au cours de la même transaction)

Par example: (CryptoDoggiesPolicy, poodle, 1) contenus dans O peuvent être consolidés avec (CryptoDoggiesPolicy, poodle, 3) en O', pour un total de (CryptoDoggiesPolicy, poodle, 4) dans une nouvelle sortie qui est faite par l'opération de consolidation.

  1. Le fractionnement des tokens personnalisés en un plus grand nombre de sorties que celles dans lesquelles ils étaient contenus avant le traitement de la transaction nécessite un plus grand nombre d'ada totaux pour couvrir le coût de min-ada-value, car un certain nombre d'ada doivent être fournis dans chaque sortie.

 

Paquets de Tokens

Un paquet de tokens est une collection hétérogène ("mixte") de tokens. Tous les tokens peuvent être regroupés. Les paquets de tokens sont le moyen standard - et unique - de représenter et de stocker des actifs sur la blockchain Cardano.

Les paquets de tokens organisent les tokens dans un type particulier de structure de données (voir l'exemple et l'explication ci-dessous), de sorte que quels tokens sont fongibles avec quels autres tokens adhèrent explicitement à cette organisation.

Dans les versions précédentes du grand livre Cardano, les montants des ada étaient spécifiés dans les sorties de transactions et d'UTxO. Avec l'introduction du support multi-actifs, ces montants ont été étendus avec des paquets de tokens, qui peuvent spécifier un montant ada avec des quantités d'autres actifs dans une seule sortie.

Les paquets de tokens sont contenus dans les sorties et les champs de monnayage des transactions, et les sorties dans l'ensemble UTxO suivi par le grand livre. Notez que certains champs d'une transaction doivent toujours spécifier explicitement des montants ada, comme le champ des frais.

Exemple de paquet de tokens

Voici un exemple de paquet de tokens, que nous appellerons TB_Example:

{

NFLPlayerCardsPolicyID {(SomeNFLPlayerCard, 1),

                        (SomeOtherNFLPlayerCard, 1),

                        (YetAnotherNFLPlayerCard, 1)}

 

 

RushConcertPolicyID {(Tickets, 500),

                     (VIPTickets, 50)}

}

 

Comment et où sont stockés les paquets de tokens ?

Les paquets de tokens se peuvent trouver:

  1. Comme le champ de monnayage d'une transaction, indiquant que la transaction crée les tokens dans le paquet.
  2. Dans une sortie d'une transaction ou une sortie dans l'UTXO actuel suivi par le grand livre, à côté de l'adresse de la sortie, par ex. Multi { MyAddress, value: TB_Example }

 

Fractionnement et combinaison de paquets de tokens

Les transactions peuvent arbitrairement diviser et combiner les paquets de tokens en différents paquets. Par exemple, on peut diviser le paquet TB_Example en deux:

TB_Example_Part1:

NFLPlayerCardsPolicyID {(SomeNFLPlayerCard, 1)}

 

 

RushConcertPolicyID {(Tickets, 200),

                     (VIPTickets, 20)}

TB_ExamplePart2:

NFLPlayerCardsPolicyID {(SomeOtherNFLPlayerCard, 1),

                        (YetAnotherNFLPlayerCard, 1)}

 

RushConcertPolicyID {(Tickets, 300),

                     (VIPTickets, 30)}

 

Comparaison avec les tokens ERC20

ERC20 est une norme de tokens sur Ethereum, largement utilisée aujourd'hui pour l'émission de tokens sur diverses plateformes. La particularité de ce type de token réside dans le fait qu'il peut représenter une valeur et servir à des fins telles que les paiements, le transfert de valeur, l'échange, les récompenses ou les incentives, l'accès aux services et aux produits, représenter des droits de vote, etc. En outre, ces tokens peuvent présenter des caractéristiques d'utilité et de sécurité, ce qui ouvre un éventail de cas d'utilisation possibles pour les entreprises, les applications et les sociétés.

Sur Cardano, les utilisateurs peuvent créer des tokens natifs qui serviront les objectifs susmentionnés et, en outre, il est possible de créer des actifs uniques (non fongibles) représentant de la valeur comme des biens immobiliers ou des droits intellectuels, par exemple (dans Ethereum, cette fonctionnalité nécessite une norme distincte, ERC721).

Contrairement aux tokens ERC20, le suivi et la comptabilité des tokens natifs sont pris en charge par le ledger de manière native (les tokens ERC20 nécessitent des contrats intelligents pour obtenir la même chose). Un avantage important de l'utilisation des tokens natifs est qu'ils ne nécessitent pas de contrats intelligents pour transférer leur valeur et peuvent être transférés avec d'autres types de tokens. En outre, contrairement à l'ERC20, les tokens natifs ne nécessitent pas de frais de transfert spéciaux ni de logique de traitement des événements supplémentaire pour suivre les transactions.

Un autre avantage des tokens natifs par rapport aux ERC20 est la sécurité. Les tokens ERC20 se sont révélés vulnérables à un large éventail de problèmes de sécurité. Ceci est conditionné par le fait que la création de tokens ERC20 nécessite une modification manuelle de la norme du contrat, ce qui peut entraîner des erreurs et des bugs éventuels. La création et la transaction de tokens en mode natif élimine la possibilité d'erreur humaine, puisque le grand livre de comptes lui-même gère la logique du token. En outre, les vulnérabilités d'over- et under-flow qui sont présentes pour ERC20 sont éliminées pour les tokens natifs, car le langage de script de Cardano n'a pas d'entiers de taille fixe et le grand livre lui-même (plutôt que le code utilisateur ERC20) suit le mouvement des tokens.

Politique de monnayage

Aperçu général

Une politique de monnayage est l'ensemble des règles qui régissent le monnayage et la combustion des actifs relevant de cette politique. L'objectif d'une politique de monnayage est de spécifier les conditions dans lesquelles les tokens sont frappés (ou brûlés). Par exemple, les règles peuvent spécifier qui a le contrôle de l'approvisionnement en actifs par la frappe et la combustion.

Les politiques de frappe sont définies par les utilisateurs qui souhaitent créer un nouvel actif. Par exemple, un utilisateur peut souhaiter ne s'autoriser à frapper qu'un certain type de token. Cela sera spécifié dans la politique.

Les règles de monnayage peuvent être exprimées :

Comme un ensemble très basique de règles qui est composé de (ANDs et ORs de) :

  1. Une spécification des signatures nécessaires pour permettre la frappe (par exemple, une spécification multisig, où aucun code n'est nécessaire).
  2. Une spécification de la période pendant laquelle le script peut être dépensé (par exemple, après le slot 15 et avant le slot 20) Avec un script Plutus Core.

Le respect des politiques de monnayage est vérifié par le nœud au moment où une transaction est traitée, en exécutant le code ou en vérifiant les signatures pertinentes. Les transactions doivent respecter toutes les politiques de frappe de tous les actifs que la transaction tente de frapper.

Points importants concernant les politiques de monnayage et les actifs

  • Tous les actifs ont nécessairement une politique de frappe. Par exemple, la politique de frappe de l'ada est "un nouvel ada ne peut jamais être frappé".
  • Un token est associé (c'est-à-dire qu'il a une portée) à une seule politique de monnayage.
  • - Une politique unique spécifie à la fois les conditions de frappe et de combustion des tokens qu'elle englobe. Le respect de cette politique est vérifié à la fois au moment du monnayage et de la combustion.
  • Un actif ne peut jamais changer la politique de frappe qui lui est associée. Cette association est permanente. En d'autres termes, les tokens existants ne peuvent pas être associés à une nouvelle politique. Les utilisateurs peuvent toutefois racheter et brûler tous les tokens existants et en frapper de nouveaux, avec une nouvelle politique de frappe. Notez qu'il s'agit d'une fonctionnalité et non d'un bug!
  • Si un actif existant sur le grand livre est classé sous une politique particulière, il est garanti qu'il a été initialement frappé conformément à cette politique.
  • À moins que des tokens d'une politique donnée ne soient frappés dans une transaction, la politique réelle n'est pas pertinente. Elle est simplement utilisée comme identifiant de l'actif.
  • Les actifs associés à différentes politiques de frappe de monnaie ne sont jamais fongibles entre eux. Ils peuvent être échangés de la même manière que l'on peut utiliser des USD pour acheter des CAD : la quantité de CAD que vous pouvez acheter avec une quantité fixe d'USD dépend du taux de change du lieu où vous effectuez l'échange.

 

Association entre un actif et sa politique de frappe

L'association entre un actif et sa politique de frappe est permanente pour des raisons de sécurité : cette caractéristique protège les utilisateurs et le système contre les tokens frappés de manière illégitime.

Si la politique de frappe d'un token change, ce n'est plus vraiment le même token, et sa valeur ne peut pas être comparée à celle du token original. Ce schéma d'association permanente actif-politique fait partie intégrante de la définition des politiques de haute assurance. Le relâchement de cette identification ouvre notre schéma d'AM à diverses attaques. Le fait d'avoir une association permanente entre ces deux éléments nous permet de garantir que chaque token a été frappé conformément à sa politique de frappe, et non à une autre politique à laquelle il aurait pu être associé auparavant.

Notez que ceci n'est pas aussi restrictif qu'il n'y paraît. Pour faire un parallèle avec la politique monétaire américaine, nous pouvons dire que la politique est "le gouvernement et les lois définissent la politique", et c'est une politique qui nécessite de rechercher les lois actuelles (qui peuvent elles-mêmes changer), et de ne frapper de l'argent que conformément à ces lois.

Exemples de politiques de monnayage

  • Politique d'émetteur unique
  • Politique de monnayage à durée déterminée
  • Politique de frappe unique

Note : Il existe de nombreux autres types de politiques de monnayage.

Politique d'émetteur unique

Une Politique d'émetteur unique spécifie que seule l'entité détenant un jeu de clés particulier est autorisée à frapper des tokens du groupe d'actifs particulier. Par exemple, l'ensemble de clés spécifié dans la politique de monnayage doit avoir signé la transaction de monnayage.

Un exemple de groupe d'actifs qui utiliserait une politique d'émission unique serait les tokens représentant des cartes de baseball. La société qui fabrique les cartes de collection légitimes publierait les clés requises par le script de frappe pour frapper de nouvelles cartes de baseball. Cela signifie qu'aucun nouveau token représentant des cartes de baseball ne peut être frappé sans la signature de l'entreprise. Ce type de politique peut être mis en œuvre sans contrats intelligents Plutus.

Politique de monnayage à durée déterminée (token-locking)

Ce type de politique peut être utilisé pour spécifier quand les tokens peuvent être dépensés à partir d'une adresse. En particulier,

  • seulement dans ou après un slot de temps déterminé
  • seulement avant un slot de temps déterminé

Ce type de politique n'est généralement pas utilisé seul. Habituellement, il est associé à la politique de multisignature ou d'émetteur unique, par exemple : Cette sortie peut être dépensée après le slot s et uniquement par une transaction signée par la clé k.

Ce type de politique peut être mis en œuvre sans contrats intelligents Plutus.

Politique de frappe unique

Dans la Politique de frappe unique, l'ensemble des tokens d'un groupe d'actifs donné est frappé par une transaction spécifique. Cela signifie qu'aucun autre token de ce groupe d'actifs particulier ne sera jamais frappé. Ce type de politique nécessite la mise en œuvre de contrats intelligents Plutus.

Les politiques de frappe unique seraient utiles pour générer des tokens de billets de concert pour un concert spécifique, par exemple. La capacité de la salle étant connue à l'avance, il ne sera pas nécessaire d'autoriser la frappe de nouveaux billets.

Transactions de monnayage

Pour introduire de nouvelles quantités de nouveaux tokens dans le grand livre (frappe) ou pour supprimer des tokens existants (combustion), chaque transaction comporte un champ de frappe. L'utilisation de ce champ doit être étroitement contrôlée afin de garantir que la frappe et la combustion des tokens s'effectuent conformément à la politique de frappe du token.

Outre le champ de frappe, les transactions de frappe doivent également contenir les politiques de frappe des tokens qu'elles frappent, afin que ces tokens puissent être vérifiés lors de la validation.

Le résultat du traitement d'une transaction de monnayage est que le grand livre contiendra les actifs inclus dans le champ de monnayage, qui est inclus dans le solde de la transaction : si le champ est positif, alors les sorties de la transaction doivent contenir plus d'actifs que les entrées fournies ; s'il est négatif, alors elles doivent en contenir moins.

Il est important de souligner qu'une même transaction peut frapper des tokens associés à des politiques de frappe multiples et distinctes. Par exemple, (Policy1, SomeTokens) ou (Policy2, SomeOtherTokens). De même, une transaction peut simultanément frapper certains tokens et en brûler d'autres.

Le cycle de vie des tokens natifs

Le cycle de vie des tokens natifs se compose de cinq phases principales:

  1. monnayage
  2. émission
  3. utilisation
  4. redemption
  5. brûlage

Le schéma suivant décrit l'interaction entre les composants du système:

Chacune de ces phases logiques implique des transactions sur la blockchain Cardano, qui peuvent entraîner des frais en ada. Les principaux groupes d'acteurs sont:

  • Les contrôleurs d'actifs, qui définissent la politique de la classe d'actifs et autorisent les émetteurs de tokens à frapper/brûler des tokens. Ils peuvent également conserver des droits de co-signature pour tous les tokens qui sont émis/brûlés.
  • Les émetteurs de tokens, qui frappent de nouveaux tokens, maintiennent la réserve de tokens en circulation, les délivrent aux détenteurs de tokens et brûlent les tokens lorsqu'ils ne sont plus utiles.
  • Les détenteurs de tokens, qui détiennent des tokens, les envoient à d'autres utilisateurs, les utilisent pour le paiement, et qui peuvent les rédimer auprès des émetteurs lorsqu'ils ont fini de les utiliser. Les utilisateurs de tokens peuvent être des utilisateurs normaux, des bourses, etc.

Le cycle de vie des tokens multi-actifs commence par leur création - le monnayage, qui désigne le processus par lequel de nouveaux tokens sont créés par un ou plusieurs émetteurs de tokens conformément au script de politique monétaire défini par le contrôleur des actifs. Les nouveaux tokens sont généralement créés à des fins spécifiques. Par exemple, des tokens fongibles ou non fongibles (uniques) peuvent être créés pour être utilisés pour des besoins spécifiques de paiement, d'achat ou d'échange. Lorsqu'un nouveau token est frappé, l'offre totale de tokens pour ce token augmente, mais il n'y a pas d'impact sur l'offre d'ada. La frappe de pièces et leur transfert à de nouvelles adresses peuvent nécessiter le paiement d'un dépôt ada, qui peut être proportionnel au nombre de tokens différents détenus, par exemple.

Les détenteurs de tokens détiendront des tokens dans leur portefeuille, pourront les transmettre à d'autres utilisateurs, les échanger contre des objets de valeur (y compris des tokens non natifs), etc. exactement de la même manière qu'ils peuvent utiliser des ada. Lorsqu'un utilisateur a fini d'utiliser le token, il peut choisir de le rédimer. Cela signifie que les tokens sont rendus à un émetteur (peut-être en échange d'un produit, d'un service ou d'une autre monnaie, par exemple). Une fois rédimés, les tokens peuvent être réémis à d'autres utilisateurs selon les besoins. Les détenteurs de tokens devront conserver une certaine quantité d'ada dans leurs portefeuilles pour payer les frais de transaction.

Lorsque les tokens deviennent superflus, ils peuvent être brûlés, si on le souhaite, conformément au scénario de politique monétaire sous-jacent. Le processus de combustion détruit ces tokens (les retire de la circulation), et l'offre totale de tokens diminue. Tous les dépôts seront restitués à ce moment-là. Le processus de combustion est identique pour les tokens fongibles et non fongibles.

Remarque : le cycle de vie des tokens à actifs multiples permet potentiellement d'obtenir et de réémettre des tokens par d'autres parties - les détenteurs de tokens qui agissent en tant que réémetteurs pour le token. Cela peut être fait, par exemple, pour permettre le commerce de plusieurs classes d'actifs, pour maintenir la liquidité d'un ou de plusieurs tokens (en agissant comme un courtier), ou pour éliminer l'effort/le coût de la frappe des tokens, de leur émission ou de la maintenance du serveur de métadonnées. Ainsi, tant les réémetteurs que les émetteurs peuvent bénéficier d'un tel accord - en éliminant les coûts et les efforts, en maintenant la séparation et l'intégrité, et en injectant de la valeur dans la classe d'actifs.

 

 

Vous trouverez une copie officielle de ce document ici :

https://docs.cardano.org/en/latest/native-tokens/learn-about-native-tokens.html

 

© Copyright 2020, IOHK Revision 7c515a7b.

 

Plus de traductions de Cardano: http://CardanoForTheWorld.com