Malléabilité de transaction
La malléabilité est la capacité de modifier le TXID d'une transaction sans la rendre invalide. Source de bugs historiques (Mt. Gox). Résolue par SegWit qui sort les witness du calcul du TXID. Permet en retour Lightning et autres protocoles dépendants du TXID.
Quand le txid peut changer
La malléabilité de transaction est la propriété qui permettait à un tiers de modifier l'identifiant d'une transaction sans en altérer le sens, en jouant sur l'encodage des signatures. Cela cassait des protocoles qui dépendaient du txid prédit.
Conséquences historiques
Avant SegWit, des protocoles construits sur Bitcoin comme Lightning ne pouvaient pas fonctionner de manière fiable. Une modification du txid en attente cassait la chaîne d'engagements pré-signés.
SegWit corrige le problème
SegWit a déplacé la signature dans un champ témoin séparé qui n'entre plus dans le calcul du txid. Une fois SegWit utilisé, l'identifiant est immuable du point de vue de la malléabilité tierce.
Impact sur Lightning
La résolution de la malléabilité par SegWit est l'une des conditions techniques qui a permis le déploiement de Lightning Network à grande échelle. Sans elle, les canaux pré-signés étaient vulnérables.
Termes lies
- TXIDLe TXID (Transaction Identifier) est le hash double SHA-256 d'une transaction Bitcoin sans ses witness data. Il identifie de manière unique la transaction. Avec SegWit, il est complété par le wtxid qui inclut les witness. Utilisé partout pour référencer une transaction.
- WTXIDLe WTXID est l'identifiant complet d'une transaction SegWit, incluant les données witness. Différent du TXID pour les transactions SegWit. Permet d'éviter la malléabilité historique. Utilisé pour l'arbre de Merkle de la coinbase.
- SegWit (Segregated Witness)SegWit, activé en août 2017, sépare la donnée witness du reste de la transaction. Cela résout la malléabilité, augmente la capacité effective des blocs et active Lightning. Soft fork emblématique issu de la Blocksize War. Existe en V0 (P2WPKH/P2WSH) et V1 (Taproot).
- Lightning NetworkLe Lightning Network est une solution de seconde couche construite sur Bitcoin permettant des paiements instantanes et quasi-gratuits. Il fonctionne via des canaux de paiement entre utilisateurs, avec un reglement final sur la blockchain principale. Ideal pour les micropaiements et les transactions quotidiennes.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.