Aller au contenu principal
Lightning

TLV

TLV (Type-Length-Value) est le format extensible de Lightning pour ajouter des champs aux messages et HTLC. Utilisé par keysend, BOLT-12, blinded paths. Garantit la rétrocompatibilité.

Définition et origine

TLV signifie Type-Length-Value. C'est un format d'encodage générique utilisé depuis des décennies dans les protocoles réseau (ISO 7816, ASN.1, etc.) pour transporter des champs optionnels et extensibles. Il a été adopté dans Lightning par le BOLT-1 en 2019 comme mécanisme standard pour étendre les messages sans casser la compatibilité.

Comment ça fonctionne

Un TLV record contient trois éléments :

| Champ | Encodage | Rôle | |---|---|---| | Type | BigSize (1 à 9 octets) | Identifiant unique du champ | | Length | BigSize | Taille du Value en octets | | Value | Length octets | Contenu effectif |

Les types pairs (even) sont obligatoires : un nœud qui les reçoit sans les comprendre doit refuser. Les types impairs (odd) sont optionnels : un nœud peut les ignorer s'il ne les connaît pas. Cette règle « it's ok to be odd » est essentielle pour la rétrocompatibilité de Lightning.

Cas d'usage

| Fonctionnalité | TLV utilisé | |---|---| | Keysend | Type 5482373484 pour preimage | | Podcast 2.0 (boostagrams) | Types personnalisés avec message | | BOLT-12 | Offers, invoices, refunds en TLV | | Blinded paths | Métadonnées de routage | | Routing onion | Payload variable-length |

Par exemple, dans un paiement keysend, un wallet attache souvent un type 34349334 contenant un message texte UTF-8 lisible par le destinataire.

Avantages

  • Extensibilité sans hard fork du protocole
  • Lecture en flot, parsing O(n)
  • Distinction obligatoire/optionnel via parité du type
  • Format binaire compact

Limites

| Sujet | Détail | |---|---| | Pas de schéma global | Chaque BOLT définit ses types | | Risque de collision | Coordination via spec officielle | | Verbosité minimale | BigSize économe mais pas zéro |

À retenir

TLV est l'ADN extensible de Lightning : tout nouvel ajout (Trampoline, BOLT-12, Blinded Paths, Liquidity Ads) passe par lui. Comprendre ce format aide à lire les specs BOLT et à débugger les paiements complexes.

Termes lies

← Retour au glossaire complet

Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.