Jetons natifs(NFT) | Partie 1

(1) En savoir plus sur les jetons natifs

Les jetons natifs sont une nouvelle fonctionnalité qui permet la transaction de plusieurs actifs sur Cardano. Les utilisateurs peuvent effectuer des transactions avec ada et un nombre illimité de jetons définis par l’utilisateur (personnalisés) en mode natif.

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

La fonction de 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 ada) pour prendre en charge les transactions utilisant une gamme d’actifs. Ces actifs incluent ada et une variété de types de jetons personnalisés définis par l’utilisateur.

Registres d’actifs uniques

Les registres de crypto-monnaie qui suivent exactement un type d’actif sont appelés registres à un seul actif.

Prise en charge multi-actifs (MA)

On dit qu’une blockchain, un grand livre ou une crypto-monnaie prend en charge plusieurs actifs (MA) lorsque le réseau ou le grand livre prend en charge le suivi du transfert et de la propriété de différents types d’actifs sur son grand livre. Dans l’environnement Cardano, cette fonctionnalité est fournie par la fonction de jetons natifs.

Cette fonctionnalité étend l’infrastructure comptable existante définie dans le modèle de grand livre, qui est conçu pour le traitement des transactions uniquement ada, pour prendre en charge les transactions qui utilisent simultanément une gamme d’actifs. Ces actifs incluent ada et une variété de types de jetons personnalisés définis par l’utilisateur.

Support MA natif ou non natif

Certains registres de crypto-monnaie 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é MA de Cardano est native.

Si une plate-forme de crypto-monnaie dispose d’une fonctionnalité de contrat intelligent suffisamment puissante, il est possible de suivre les actifs pour lesquels il n’y a pas de prise en charge de la comptabilité du grand livre. Cela se fait avec une solution de couche 2 construite à l’aide de contrats intelligents. Ce type de support MA n’est pas natif.

Actifs et jetons

Actifs

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

Le terme actif peut désigner soit :

  • l’identifiant d’une classe d’objets, comme « 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 de l’ ID de stratégie et du nom de l’actif . Il est important de noter que même si ada peut agir comme un actif, il n’est pas représenté à l’aide d’un ID de stratégie explicite.

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

  • PolicyID - l’identifiant unique associé à une politique de frappe. Examinons deux exemples d’ID de stratégie : 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 ``

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

Différentes stratégies peuvent utiliser les mêmes noms d’actifs pour différents jetons. Par exemple, le bundle de jetons :

FAKERushConcertPolicyID { ( Tickets , 500 ) , ( Billets VIP , 50 ) }

contient les noms d’actifs Tickets et VIPTickets, mais ceux-ci ne sont pas fongibles avec les RushConcertPolicyID tickets qui ont été définis dans un autre lot de jetons, car ils sont couverts par des politiques différentes.

Jetons

Un jeton est un terme abrégé pour « jeton d’actif », qui est la représentation en chaîne d’un actif et de son unité comptable de base. Un jeton peut représenter un ada, une maison ou la valeur de dix tonnes de café, par exemple.

Devises

La monnaie est un moyen d’échange de biens et de services qui fait généralement référence à une unité de paiement. Cardano prend en charge les devises telles que l’ada et les jetons natifs, qui agissent de la même manière sur le réseau.

Cependant, l’ada est la principale devise qui, à l’heure actuelle, est acceptée comme paiement des frais, pour effectuer des dépôts, et est également la seule devise 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 jetons natifs représentent une certaine valeur et agissent comme une unité de compte, qui peut être utilisée pour les paiements, les transactions et peut être envoyée à une adresse d’échange. Natif signifie que ces jetons sont pris en charge par le grand livre comptable Cardano sans avoir besoin de contrats intelligents supplémentaires, car le grand livre dispose d’un support intégré pour suivre la propriété et le transfert de plus d’un type d’actif.

Alors que les jetons ada et natifs ont de la valeur et agissent comme une unité de paiement et de transaction, seul ada est utilisé pour les frais et les récompenses, tandis que seuls les jetons natifs peuvent être créés de manière personnalisée.

Utiliser ada pour les opérations administratives

Ada est la devise principale de Cardano. Il est essentiel de détenir ada (en plus des autres devises) pour transférer des jetons multi-actifs entre adresses, car chaque adresse doit détenir une valeur minimale ada ( , min-ada-value actuellement fixée à 1 ada).

En conséquence de cette conception, ce qui suit s’applique :

  • Il est impossible de créer des sorties contenant uniquement des jetons personnalisés.
  • Le nombre de chaque type de jeton dans une sortie n’affecte pas le min-ada-value de la sortie, mais le nombre de types de jetons contenus dans une sortie augmente le min-ada-value. (La raison en est que les noms et les ID de stratégie de chacun des types de jetons occupent de l’espace supplémentaire dans la sortie.)
  • L’envoi de jetons personnalisés à une adresse implique toujours min-ada-value l’envoi de l’ada à cette adresse avec les jetons personnalisés (en incluant l’ada dans la même sortie). Si l’adresse n’est pas utilisable par l’utilisateur qui envoie les jetons, l’ada envoyé avec les jetons n’appartient plus à l’expéditeur.

Remarque : avant de transférer des jetons personnalisés, les utilisateurs peuvent choisir d’utiliser une communication hors chaîne pour négocier qui fournit l’ada pour couvrir la valeur min-ada dans la sortie effectuée par la transaction de transfert.

  • Pour récupérer l’ada stocké avec les jetons personnalisés dans une sortie O, l’utilisateur doit soit :
  1. Passez la sortie O, et gravez les jetons personnalisés qui y sont stockés
  2. Passez une sortie O et une sortie O’, et consolidez les jetons qui s’y trouvent avec la même collection de types de jetons personnalisés stockés dans une autre sortie (dépensés dans la même transaction)

Par exemple : (CryptoDoggiesPolicy, poodle, 1) contenu dans O peut être consolidé avec (CryptoDoggiesPolicy, poodle, 3) dans O’, pour un total de (CryptoDoggiesPolicy, poodle, 4) dans une nouvelle sortie réalisée par la transaction consolidante.

  • Le fractionnement de jetons personnalisés en plus de sorties qu’ils n’en contenaient avant le traitement de la transaction nécessite plus d’ada total pour couvrir le min-ada-value, car une partie de l’ada doit être fournie dans chaque sortie.

Paquets de jetons

Un bundle de jetons est une collection hétérogène (“mixte”) de jetons. Tous les jetons peuvent être regroupés. Les bundles de jetons sont le moyen standard - et le seul - de représenter et de stocker des actifs sur la blockchain Cardano.

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

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

Les lots de jetons sont contenus dans les sorties et les champs de menthe des transactions, et les sorties de l’ensemble UTxO sont suivies par le grand livre. Notez que certains champs d’une transaction doivent toujours spécifier explicitement les montants ada, comme le champ des frais.

Exemple de bundle de jetons

Voici un exemple de bundle de jetons, appelons-le TB_Example :

{ NFLPlayerCardsPolicyID { ( SomeNFLPlayerCard , 1 ) , ( SomeAutreNFLPlayerCard , 1 ) , ( EncoreUneAutreCarteLecteurNFLP , 1 ) } RushConcertPolicyID { ( Tickets , 500 ) , ( Billets VIP , 50 ) } }

Comment et où les bundles de jetons sont-ils stockés ?

Les bundles de jetons peuvent être trouvés :

  1. En tant que champ d’atelier d’une transaction, indiquant que la transaction crée les jetons dans le bundle.
  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 exemple Multi { MyAddress, value: TB_Example }

Fractionner et combiner des bundles de jetons

Les transactions peuvent diviser et combiner arbitrairement des lots de jetons en différents lots. Par exemple, nous pouvons diviser le bundle TB_Example en deux :

TB_Example_Part1 :

NFLPlayerCardsPolicyID { ( SomeNFLPlayerCard , 1 ) } RushConcertPolicyID { ( Tickets , 200 ) , ( Billets VIP , 20 ) }

TB_ExamplePart2 :

NFLPlayerCardsPolicyID { ( SomeOtherNFLPlayerCard , 1 ) , ( EncoreUneAutreCarteLecteurNFLP , 1 ) } RushConcertPolicyID { ( Tickets , 300 ) , ( Billets VIP , 30 ) }

Comparaison avec les jetons ERC20

ERC20 est une norme de jeton Ethereum, largement utilisée à des fins d’émission de jetons sur diverses plates-formes aujourd’hui. La particularité de ce type de jeton réside dans le fait qu’il peut représenter de la valeur et servir à des fins telles que des paiements, un transfert de valeur, un échange, des récompenses ou des incitations, l’accès à des services et produits, représenter des droits de vote, etc. De plus, ces jetons peuvent contenir à la fois des fonctionnalités utilitaires et de sécurité, ce qui ouvre une gamme de cas d’utilisation possibles pour les entreprises, les applications et les entreprises.

Sur Cardano, les utilisateurs peuvent créer des jetons natifs qui serviront les objectifs mentionnés ci-dessus et en plus, il est possible de créer des actifs uniques (non fongibles) représentant une valeur comme l’immobilier ou les droits intellectuels, par exemple (dans Ethereum, cette fonctionnalité nécessite une norme distincte, ERC721).

Contrairement aux jetons ERC20, le suivi et la comptabilisation des jetons natifs sont pris en charge par le grand livre de manière native (les jetons ERC20 nécessitent des contrats intelligents pour obtenir la même chose). Un avantage important de l’utilisation de jetons 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 jetons. De plus, contrairement à ERC20, les jetons natifs ne nécessitent pas de frais de transfert spéciaux ni de logique de gestion d’événements supplémentaire pour suivre les transactions.

Un autre avantage des jetons natifs par rapport à ERC20 est la sécurité. Les jetons 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 du jeton ERC20 nécessite une modification manuelle de la norme de contrat, ce qui peut entraîner des erreurs et d’éventuels bugs. La création et la transaction de jetons éliminent nativement la possibilité d’erreur humaine, puisque le grand livre lui-même gère la logique des jetons. De plus, les vulnérabilités de dépassement et de sous-débit présentes pour ERC20 sont éliminées pour les jetons natifs, car le langage de script de Cardano n’a pas d’entiers de taille fixe et le registre lui-même (plutôt que le code utilisateur ERC20) suit le mouvement des jetons.

Politique de frappe

Aperçu

Une politique de frappe est l’ensemble de règles qui régissent la frappe et la combustion des actifs couverts par cette politique. Le but d’une politique de frappe est de spécifier les conditions dans lesquelles les jetons sont frappés (ou brûlés). Par exemple, les règles peuvent spécifier qui contrôle l’approvisionnement en actifs par le biais de la frappe et de la gravure.

Les politiques de frappe sont définies par les utilisateurs qui souhaitent créer un nouvel actif. Par exemple, un utilisateur peut souhaiter ne plus s’autoriser à frapper plus d’un certain type de jeton. Cela serait précisé dans la politique.

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

En tant qu’ensemble de règles de base composé de (ET et OU de):

  1. Une spécification des signatures nécessaires pour autoriser l’atelier (par exemple, une spécification multisig, où aucun code n’est nécessaire).
  2. Une spécification du créneau à partir duquel le script peut être dépensé (par exemple, après le créneau 15 et avant le créneau 20) avec un script Plutus Core.

Le respect des politiques de frappe est vérifié par le nœud au moment du traitement d’une transaction, 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 et les actifs de frappe

  • Tous les actifs ont nécessairement une politique de frappe. Par exemple, la politique de frappe d’ada est “le nouvel ada ne peut jamais être frappé”.
  • Un jeton est associé à (par exemple, défini sous) exactement une politique de frappe.
  • Une seule politique spécifie à la fois les conditions de frappe et de gravure des jetons qui en font partie. Le respect de celui-ci est vérifié à la fois au moment de la frappe et de la gravure.
  • Un actif ne peut jamais changer sa politique de frappe associée. Cette association est permanente. En d’autres termes, les jetons existants ne peuvent pas être associés à une nouvelle politique. Les utilisateurs peuvent cependant racheter et graver tous les jetons existants et en créer de nouveaux, avec une nouvelle politique de frappe. Notez qu’il s’agit d’une fonctionnalité, pas d’un bug !
  • Si un actif existant sur le grand livre est couvert par une politique particulière, il est garanti qu’il a été initialement frappé conformément à cette politique.
  • À moins que des jetons d’une politique donnée ne soient frappés dans une transaction, la politique réelle n’est pas pertinente. Il est simplement utilisé comme identifiant de l’actif.
  • Les actifs associés à différentes politiques de frappe ne sont jamais fongibles les uns avec les autres. Ils peuvent être échangés de la même manière que l’on peut utiliser des USD pour acheter des CAD : le montant de CAD que vous pouvez acheter avec un montant 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 fonctionnalité protège les utilisateurs et le système des jetons frappés illégitimement.

Si la politique de frappe d’un jeton change, ce n’est plus vraiment le même jeton, et sa valeur ne peut plus être comparée à celle du jeton d’origine. Ce schéma permanent d’association actifs-politiques fait partie intégrante de la définition des politiques d’assurance élevée. Desserrer cette identification ouvre notre schéma MA à diverses attaques. Avoir une association permanente entre ceux-ci nous permet de garantir que chaque jeton a été frappé conformément à sa politique de frappe, et non à toute autre politique à laquelle il aurait pu être associé auparavant.

Notez que ce n’est pas aussi restrictif qu’il n’y paraît. Dans un parallèle lâche 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 consulter les lois actuelles (qui elles-mêmes pourraient changer), et de ne frapper de l’argent qu’en conformité pour eux.

Exemples de politique de frappe

  • Police à émetteur unique
  • Politique de menthe verrouillée dans le temps
  • Politique de menthe unique

Remarque : Il existe de nombreux autres types de politiques de frappe.

Police à émetteur unique

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

Un exemple de groupe d’actifs qui utiliserait une politique à émetteur unique serait des jetons représentant des cartes de baseball. L’entreprise fabriquant des cartes de collection légitimes publierait les clés requises par le script de frappe pour frapper de nouvelles cartes de baseball. Cela signifierait qu’aucun nouveau jeton de carte de baseball ne peut être frappé sans les signatures de l’entreprise. Ce type de politique peut être mis en œuvre sans les contrats intelligents Plutus.

Politique de frappe verrouillée dans le temps (verrouillage de jeton)

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

  • uniquement pendant ou après un créneau horaire spécifié
  • uniquement avant un créneau horaire spécifié

Ce type de politique n’est généralement pas utilisé seul. Habituellement, c’est en conjonction avec la politique de multisignature ou d’émetteur unique, par exemple Cette sortie peut être dépensée après le créneau s et uniquement par une transaction signée par la clé k .

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

Politique de frappe unique

Dans une politique de frappe unique, l’ensemble complet de jetons d’un groupe d’actifs donné est frappé par une transaction spécifique. Cela signifie qu’aucun autre jeton 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 menthe à un type seraient utiles pour générer des jetons de billets de concert pour un concert spécifique, par exemple. La capacité de la salle est connue à l’avance, il n’est donc pas nécessaire d’autoriser l’émission de plus de billets.

Opérations de frappe

Pour introduire de nouvelles quantités de nouveaux jetons sur le grand livre (frappe) ou pour supprimer des jetons existants (gravure), chaque transaction comporte un champ de frappe. Les transactions où le champ de frappe n’est pas vide sont appelées transactions de frappe. L’utilisation de ce champ doit être étroitement contrôlée pour garantir que la frappe et la gravure des jetons se produisent conformément à la politique de frappe du jeton.

Outre le champ de frappe, les transactions de frappe doivent également porter les politiques de frappe pour les jetons qu’elles frappent, afin que ces jetons puissent être vérifiés lors de la validation.

Le résultat du traitement d’une transaction de frappe est que le registre contiendra les actifs inclus dans le champ de frappe, qui est inclus dans l’équilibrage de la transaction : si le champ est positif, alors les sorties de la transaction doivent contenir plus d’actifs que les entrées fournir; s’il est négatif, ils doivent en contenir moins.

Il est important de souligner qu’une seule transaction peut frapper des jetons associés à des politiques de frappe multiples et distinctes. Par exemple, (Policy1, SomeTokens) ou (Policy2, SomeOtherTokens). De plus, une transaction peut simultanément frapper certains jetons et en graver d’autres.

Le cycle de vie du jeton natif

Le cycle de vie du jeton natif se compose de cinq phases principales :

  1. frappe
  2. émission
  3. en utilisant
  4. racheter
  5. brûlant

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 jetons à créer/graver des jetons. Ils peuvent également conserver les droits de cosignature pour tous les jetons émis/brûlés.
  • Les émetteurs de jetons , qui frappent de nouveaux jetons, maintiennent la réserve de jetons en circulation, les délivrent aux détenteurs de jetons et brûlent les jetons lorsqu’ils ne sont plus utiles.
  • Les détenteurs de jetons , qui détiennent des jetons, les envoient à d’autres utilisateurs, les utilisent pour le paiement et qui peuvent les échanger auprès des émetteurs lorsqu’ils ont fini de les utiliser. Les utilisateurs de jetons peuvent inclure des utilisateurs normaux, des échanges, etc.

Le cycle de vie des jetons multi-actifs commence par leur création - la frappe , qui fait référence au processus par lequel de nouveaux jetons sont créés par un ou plusieurs émetteurs de jetons conformément au script de politique monétaire défini par le contrôleur d’actifs . De nouveaux jetons seront généralement créés pour remplir des objectifs spécifiques. Par exemple, des jetons 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 jeton est frappé, l’ offre totale de jetons pour ce jeton augmente, mais il n’y a aucun impact sur l’ offre d’ada. Frapper des pièces et les transférer vers de nouvelles adresses peut nécessiter le paiement d’un dépôt ada, qui peut être proportionnel au nombre de jetons différents détenus, par exemple.

Les détenteurs de jetons conserveront des jetons dans leur portefeuille, pourront les transmettre à d’autres utilisateurs, les échanger contre des objets de valeur (y compris des jetons non natifs), etc. exactement de la même manière qu’ils peuvent utiliser ada. Lorsqu’un utilisateur a fini d’utiliser le jeton, il peut choisir de le racheter . Cela signifie que les jetons sont retournés à un émetteur (peut-être en échange d’un produit, d’un service ou d’une autre devise, par exemple). Une fois échangés, les jetons pourraient ensuite être réémis à d’autres utilisateurs selon les besoins. Les détenteurs de jetons devront conserver un peu d’ada dans leur portefeuille pour payer les frais de transaction.

Lorsque les jetons deviennent redondants, ils peuvent être brûlés , si vous le souhaitez, conformément au scénario de politique monétaire sous-jacent. Le processus de gravure détruit ces jetons (les retire de la circulation) et l’offre totale de jetons diminue. Tous les dépôts seront retournés à ce stade. Le processus de gravure est identique pour les jetons fongibles et non fongibles.

Remarque : le cycle de vie du jeton multi-actifs permet potentiellement d’obtenir et de réémettre des jetons par d’autres parties - les détenteurs de jetons qui agissent en tant que réémetteurs pour le jeton. Cela peut être fait pour, par exemple, permettre la négociation de plusieurs classes d’actifs, maintenir la liquidité d’un ou plusieurs jetons (en agissant en tant que courtier) ou pour éliminer l’effort/le coût de la frappe, de l’émission ou de la maintenance du serveur de métadonnées. Ainsi, les réémetteurs et 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.

(2) Exigence de valeur ada minimale

Les UTXO sur le grand livre peuvent contenir une collection hétérogène de jetons, y compris ada, qui est une ressource limitée dans le système Cardano. Exiger qu’une certaine quantité d’ada soit incluse dans chaque UTXO (où cette quantité est basée sur la taille de l’UTXO, en octets), limite la taille totale maximale occupée par les entrées UTXO sur le grand livre à un moment donné.

La taille UTXO maximale possible (la somme des tailles de toutes les entrées UTXO) est implicitement ajustée en augmentant et en diminuant la min-ada-value variable, qui est calculée à l’aide du paramètre Alonzo coinsPerUTxOWord. De cette façon, la contrainte empêche le registre Cardano de croître au-delà d’une certaine taille. Un registre sans limite de taille est susceptible d’être peuplé de tant de données que les utilisateurs ne pourront pas le traiter (ou exécuter un nœud) avec des machines répondant aux spécifications recommandées pour l’exécution d’un nœud.

Dans le grand livre Cardano multi-actifs, les entrées UTXO ont des tailles différentes. En particulier, toutes les entrées contenant un actif non-ada contiennent des enregistrements des ID de politique, des noms d’actifs et des quantités de chacun des actifs non-ada. Pour maintenir la taille UTXO maximale liée à l’UTXO stocké dans le grand livre avec des tailles d’entrée variables, nous devons ajuster la valeur ada minimale pour chaque entrée UTXO, en fonction de sa taille.

Le nombre minimum d’ada requis est calculé selon cette méthode nouvelle à l’époque d’Alonzo.

Notez qu’avec une prochaine mise à jour vers l’ère Babbage, le paramètre de protocole coinsPerUTxOWord passe à coinsPerUTxOByte, ce qui signifie que le prix sera calculé par un octet au lieu de par huit octets. Le calcul se présentera donc comme suit : minUTxoVal = (160 + sizeInBytes (TxOut)) * coinsPerUTxOByte. Pour plus de détails, voir CIP-55 .

En conséquence de cette conception,

  • Il est impossible de faire des sorties contenant uniquement des jetons personnalisés
  • Le nombre de chaque type de jeton dans une sortie peut légèrement affecter la valeur min-ada de cette sortie. En effet, la valeur UTXO minimale prend en compte la surcharge de mémoire lors de son stockage sur un ordinateur en cours d’exécution. L’augmentation de la valeur ada affecte de manière insignifiante la surcharge de mémoire , cependant, l’ajout de plus de multi-actifs affecte beaucoup plus cette valeur. La raison en est que les noms et les ID de stratégie de chacun des types de jetons occupent de l’espace supplémentaire dans la sortie.
  • L’envoi de jetons personnalisés à une adresse implique toujours l’envoi de la valeur min-ada de ada à cette adresse avec les jetons personnalisés (en incluant l’ada dans la même sortie). Si - l’adresse n’est pas utilisable par l’utilisateur qui envoie les jetons, l’ada envoyé avec les jetons n’appartient plus à l’expéditeur.
  • Avant de transférer des jetons personnalisés, les utilisateurs peuvent choisir d’utiliser une communication hors chaîne pour négocier qui fournit l’ada pour couvrir la valeur min-ada dans la sortie effectuée par la transaction de transfert.
  • Pour récupérer l’ada stocké à côté des jetons personnalisés dans une sortie O, l’utilisateur doit soit : a) dépenser la sortie O, et graver les jetons personnalisés qui y sont stockés b) dépenser une sortie O et une sortie O’, et consolider les jetons qu’ils contiennent avec la même collection de types de jetons personnalisés stockés dans une autre sortie (dépensés dans la même transaction) Par exemple, (CryptoDoggiesPolicy, poodle, 1) contenu dans O peut être consolidé avec (CryptoDoggiesPolicy, poodle, 3) dans O’, pour un total de (CryptoDoggiesPolicy, poodle, 4) dans une nouvelle sortie réalisée par la transaction de consolidation.
  • Le fractionnement de jetons personnalisés en plus de sorties qu’ils n’en contenaient avant le traitement de la transaction nécessite l’utilisation, au total, de plus d’ada pour couvrir la valeur min-ada, car ada est nécessaire dans les sorties supplémentaires.

Source : https://docs.cardano.org/native-tokens/learn/