Payment hash
Le payment hash est le hash SHA-256 de la preimage choisie par le destinataire. Inclus dans l'invoice et dans chaque HTLC. La preimage révélée déverrouille le paiement le long de la route. Cœur cryptographique de Lightning.
L'engagement cryptographique
Le payment hash est le SHA-256 d'un secret aléatoire (la preimage) choisi par le destinataire d'un paiement Lightning. Il figure dans l'invoice et dans chaque HTLC le long de la route. Tant que la preimage n'est pas révélée, personne ne peut encaisser le paiement. Quand elle l'est, elle voyage en arrière à travers la route et débloque chaque HTLC.
Le rôle dans le routage
Quand Alice paie Dave via Bob et Charlie, Dave crée la preimage, calcule h égal à SHA-256 de la preimage, met h dans l'invoice. Alice envoie un HTLC à Bob avec ce h. Bob fait pareil avec Charlie, Charlie avec Dave. Dave révèle la preimage à Charlie pour encaisser, qui la révèle à Bob, qui la révèle à Alice. Chaque maillon vérifie que SHA-256(preimage) égale h avant de débloquer.
Réutilisation et confidentialité
Tous les HTLCs le long d'une même route partagent le même payment hash. C'est une fuite de confidentialité : un attaquant qui contrôle plusieurs nœuds le long de la route peut corréler. Il sait qu'il s'agit du même paiement.
La solution PTLC
Les PTLC (Point Time-Locked Contracts) résolvent ce problème : chaque saut a un point de la courbe elliptique différent, mais cryptographiquement liés via les adaptor signatures Schnorr. Le destinataire peut toujours encaisser, mais aucun observateur ne peut corréler les sauts. C'est l'évolution prévue de Lightning post-Taproot.
Reusable payment hashes
Pour BOLT-12 Offers, l'invoice contient un payment hash qui peut être réutilisable selon les choix du destinataire. Beaucoup d'implémentations préfèrent générer une nouvelle preimage à chaque paiement, par sécurité.
Termes lies
- PreimageLa preimage est le secret aléatoire dont le hash sert de payment hash. Sa révélation par le destinataire valide tous les HTLC du chemin. Sert aussi de preuve de paiement. Clé du règlement atomique sur Lightning.
- HTLCUn HTLC (Hashed Time-Locked Contract) est le mécanisme qui permet de router un paiement Lightning à travers plusieurs nœuds. Chaque saut est conditionné par une preimage hashée et un timelock. Sécurise le routage sans confiance. Pierre angulaire du protocole.
- Invoice LightningUne invoice Lightning est une demande de paiement contenant le montant, le hash de la preimage et la route possible. Encodée BOLT-11 ou BOLT-12. Doit être présentée par le destinataire pour recevoir un paiement. Indispensable au modèle pull du protocole.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.