Aller au contenu

Montant de poussière

Unique d'Alephium sUTXO combine la sécurité du modèle UTXO et l'expressivité du modèle de compte. Tous les actifs sur Alephium, y compris le ALPH natif et d'autres tokens, sont gérés par des UTXOs. Bien que le modèle UTXO apporte de nombreux avantages en termes de sécurité (par exemple, voir Asset Permission System), il présente également un compromis avec des implications en termes d'expérience utilisateur: notamment le concept de montant de poussière. L'objectif de cet article est d'apporter de la clarté sur ce sujet.

Chaque UTXO contribue à la taille du soi-disant ensemble UTXO. Sans un mécanisme efficace pour contrôler sa taille, l'ensemble UTXO pourrait créer des goulets d'étranglement significatifs en termes de performances de la blockchain, en particulier en ce qui concerne les E/S. Maintenir un ensemble UTXO relativement petit est important pour qu'Alephium continue à devenir la meilleure version d'elle-même: efficace, performante et évolutive.

Les UTXO avec une très petite valeur peuvent également devenir économiquement non rentables à dépenser si les frais de transaction pour dépenser un UTXO sont supérieurs à la valeur de l'UTXO lui-même. Avec le temps, cela peut potentiellement créer une situation où les utilisateurs ne sont pas incitatifs à la compatibilité à long terme avec la santé du système.

C'est un problème rencontré par toutes les blockchains basées sur UTXO. Pour contrôler la taille de l'ensemble UTXO, Bitcoin Core a introduit le concept de poussière. Si un utilisateur tente de créer un UTXO avec une valeur inférieure à la limite de poussière, Bitcoin Core ne le relaiera pas sur le réseau pour éviter l'encombrement de l'état de la blockchain. Le concept de montant de poussière dans Alephium est similaire à la limite de poussière dans Bitcoin mais encore plus simple à comprendre car il ne change pas en fonction du type de transaction. Si une sortie de transaction n'a pas au moins le montant de poussière de ALPH, la blockchain d'Alephium considérera la transaction comme invalide.

Pour les UTXO réguliers, le montant de poussière est de 0.001 ALPH. Cela signifie que les transactions suivantes sont invalides:

Text Only
1)                ----------------
                  |              | 0.0005 ALPH (ALPH trop petit)
    1 ALPH        |              | =============================>
================> |              |
                  |              | (0.9995 - frais de gaz) ALPH
                  |              | =============================>
                  ----------------

2)                ----------------
                  |              |
                  |              |
                  |              | 1 Jeton A
  1 Jeton A       |              | 0.0005 ALPH (ALPH trop petit)
================> |              | =============================>
                  |              |
  1 ALPH          |              | (0.9995 - frais de gaz) ALPH
================> |              | =============================>
                  |              | 
                  |              |
                  ----------------

3)                ----------------
                  |              |
                  |              |
   1 Jeton A      |              |   1 Jeton A (no ALPH)
================> |              | =============================>
                  |              |
   1 ALPH         |              |   (1 - frais de gaz) ALPH
================> |              | =============================>
                  |              | 
                  |              |
                  ----------------

Le deuxième et le troisième cas illustrent la situation où même si l'intention de l'utilisateur est d'envoyer le token A, au moins un montant de poussière de ALPH doit également être envoyé. En résumé, chaque UTXO régulier nécessite au moins 0.001 ALPH, sinon la transaction échouera. Cette approche simple garantit qu'il existe une limite supérieure à la taille de l'ensemble UTXO dans le système Alephium.

Chaque contrat a exactement un UTXO dans le système Alephium. Le montant de poussière pour les UTXOs de contrat (également connu sous le nom de dépôt de contrat) est actuellement fixé à 1 ALPH. Comparé au montant de poussière dans les UTXOs réguliers, cela impose une limite beaucoup plus agressive au nombre de contrats dans le système, limitant non seulement la taille de l'ensemble UTXO de contrat, mais aussi la taille des états de contrat gérés à l'aide du modèle de compte. Étant donné qu'il est possible de récupérer le dépôt de contrat après la destruction du contrat, cela crée espérons-le les bons incitatifs pour que les développeurs maintiennent la taille de l'état du contrat à un niveau sain.

Du point de vue de l'expérience utilisateur, cela signifie que la création d'un contrat nécessite au moins 1 ALPH comme dépôt de contrat. Concrètement, si le prix de création d'un NFT est 100 ALPH, le coût total pourrait être de 101 ALPH après avoir pris en compte le dépôt de contrat. Cela signifie également que toutes les transactions qui réduisent le solde du contrat à moins de 1 ALPH échoueront.

En résumé, bien que cela crée quelques défis en termes d'expérience utilisateur, le montant de poussière pour les UTXOs (et par extension le dépôt de contrat) est essentiel pour les performances, la scalabilité et la décentralisation de la blockchain Alephium.