Glossaire / Lightning et couche 2
Frais de base
- Que sont les frais de base ?
- Les frais de base sont le montant fixe qu'un nœud Lightning facture pour chaque HTLC qu'il achemine, exprimé en millisatoshi et annoncé au réseau dans son message channel_update.
Chaque saut d'une route Lightning facture deux choses, et les frais de base sont la moitié qui ignore le montant. Le BOLT 7 les transporte sous forme d'un champ de 32 bits en millisatoshi, et le total d'un saut est égal aux frais de base plus le montant multiplié par son taux en parties par million divisé par 1 000 000. Si vous retirez depuis une plateforme d'échange via Lightning, c'est la part fixe qui rend les petits retraits coûteux en proportion.
Comment cela fonctionne
Les frais de base voyagent dans channel_update, message de type 258, le message de gossip qu'un nœud diffuse pour annoncer ce qu'il facture pour l'acheminement dans un sens d'un canal.
Deux des champs de ce message constituent le prix. Le BOLT 7 indique qu'un nœud doit définir fee_base_msat sur les frais de base, en millisatoshi, qu'il facturera pour tout HTLC, et doit définir fee_proportional_millionths sur le montant, en millionièmes de satoshi, qu'il facture par satoshi transféré. Les deux champs font 32 bits de large, donc les frais de base maximaux annonçables sont de 4 294 967 295 millisatoshi, soit environ 4,29 millions de satoshis. Les exigences ne fixent aucun plancher, donc zéro est tout aussi légal. Chaque canal transporte deux mises à jour, une par sens, donc un saut peut être bon marché dans un sens et coûteux dans l'autre.
Notez la formulation : la facturation s'applique à tout HTLC, pas à tout paiement. Divisez un paiement en quatre parties et chaque partie paie l'intégralité des frais de base à chaque saut qu'elle traverse, c'est pourquoi diviser un petit paiement coûte plus cher que de l'envoyer en un seul bloc.
Le BOLT 7 déroule son propre exemple. Quatre nœuds, A, B, C et D, où B annonce 200 millisatoshi de base et 2 000 millionièmes sur son canal vers C. A paie C 4 999 999 millisatoshi via B, donc A doit à B :
200 + ( 4999999 * 2000 / 1000000 ) = 10199
Le HTLC de A vers B transporte donc 5 010 198 millisatoshi. Envoyez le même paiement via D, qui facture 400 de base et 4 000 millionièmes, et le HTLC devient 5 020 398. A ne paie rien sur son propre canal vers B, car un nœud ne se facture pas lui-même, et C ne facture rien car c'est la destination, donc une route à trois nœuds paie exactement une fois des frais de base.
Modifier le prix signifie un nouveau channel_update avec un horodatage plus récent, et comme la propagation prend du temps, la spécification indique qu'un nœud devrait continuer à honorer les anciens paramètres pendant 10 minutes.
Où cela se voit
Les frais de base apparaissent dans le devis de votre portefeuille avant confirmation, dans la configuration par canal d'un nœud de routage et dans la table de frais publiée d'une application Lightning.
C'est la part fixe que vous ressentez sur de petits montants. Au saut d'exemple du BOLT 7, 200 millisatoshi de base et 2 000 millionièmes, acheminer 100 satoshis coûte 400 millisatoshi et exactement la moitié de ce montant est fixe.
La structure en deux parties réapparaît un niveau au-dessus, dans ce que facturent les applications grand public. Notre avis Phoenix consigne la grille tarifaire publiée d'ACINQ : 0,4 pour cent plus 4 satoshis pour envoyer, gratuit pour recevoir lorsque vous détenez déjà la liquidité. Ces 4 satoshis sont des frais de base sous un autre nom : sur un paiement de 2 000 satoshis, la part fixe seule représente 0,2 pour cent du montant, et sur un paiement de 500 000 satoshis, elle est inférieure à un millième de pour cent. Testez un portefeuille avec de très petits montants et la composante fixe constitue l'essentiel de ce que vous mesurez.
Frais de base vs taux de frais
Des frais de base sont des frais d'acheminement fixes sur Lightning, exprimés en millisatoshi ; un taux de frais est un prix on-chain pour l'espace de bloc, exprimé en satoshis par octet virtuel.
Ils vont à des personnes différentes pour un travail différent. Des frais de base paient un nœud pour acheminer un HTLC et ne touchent jamais la blockchain, tandis qu'un taux de frais paie les mineurs et décide si votre transaction entre ou non dans un bloc. Ils évoluent aussi sur des axes sans rapport : un taux de frais suit le nombre d'octets que votre transaction occupe et ignore le montant qu'elle déplace, tandis que des frais de base ignorent les deux et laissent leur jumeau proportionnel suivre la valeur. Ouvrir ou fermer un canal coûte un taux de frais ; tout ce qui se passe entre les deux coûte des frais de base et des frais proportionnels.