Explication concernant les frais de création de simple portefeuille

Oui les frais de transaction ne peuvent couvrir que 2 choses:

  • le temps d’exécution de la transaction, et donc la proportion du bloc qu’elle occupe en terme de temps d’exécution (max 2 secondes par bloc sur hardware minimal)
  • la taille de la transaction, et donc la proportion du bloc qu’elle occupe en terme de taille de données (max 5 Mo)

Les frais de transaction ne couvrent pas l’occupation du storage on-chain, cela est généralement couvert par un deposit, qui est bloqué puis rendu quand la donnée est supprimée.

L’ExistentialDeposit est censé couvrir l’occupation d’un compte dans le storage on-chain, mais pour que ce soi le cas il faudrait un ExistentialDeposit très élevé, de l’ordre d’au moins 10DU. Or je n’ai pas envie d’inposer un ExistentialDeposit aussi élevé aux comptes membres, mais l’ExistentialDeposit doit être le même pour tout les comptes.

C’est en partie pour cela que j’ai rajouté un prélèvement de 3Ğ1 pour tout nouveau compte simple portefeuille.

Enfin les frais de transaction ne couvrent pas non-plus les actions automatiques futures qui sont la conséquence de cette action, et notamment la création d’un compte déclenche l’attribution future d’un random id (2 epoch plus tard), les frais de création d’un simple portefeuille servent aussi à couvrir l’attribution du RandomId et empêcher le brute force de ce dernier.

Enfin, ces frais de création de simple portefeuille sont prélevés au bloc d’après car c’est le seul moyen pour que les nouvelles identités ne se fassent pas prélevés ces frais.
En effet, il faut d’abord créer le compte avant de pouvoir créer l’identité, donc il faut créer l’identité dans le même bloc (via le call batch_all).

5 Likes

Là franchement, je comprends pas tout les mots. Il faudra que prenne plus de temps pour comprendre tout ça.

Mais ne perdez pas de temps à tout expliquer à un noob. Je vais chercher…

1 Like