TXID
Le 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.
Définition et origine
Le TXID (Transaction Identifier) est l'empreinte cryptographique unique d'une transaction Bitcoin. C'est le double SHA-256 (HASH256) de la sérialisation de la transaction sans ses données de témoin (witness). Présent dans Bitcoin depuis le bloc 0, il a été précisé par SegWit (BIP-141, 2017) qui l'a rendu malleability-resistant.
Comment ça fonctionne
Pour une transaction donnée :
- Sérialiser la transaction au format legacy (sans
markerniflagSegWit ni witness) - Appliquer SHA-256
- Appliquer SHA-256 à nouveau
- Renverser l'ordre des octets (little-endian → big-endian display)
Le résultat est un hash de 32 octets affiché sous forme d'une chaîne hexadécimale de 64 caractères, par exemple :
4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
TXID vs wtxid
| Identifiant | Inclut witness | Stable post-signature | |---|---|---| | TXID (BIP-141) | Non | Oui (immuable une fois signée) | | wtxid | Oui | Dépend de la stratégie de signature |
Le wtxid sert au calcul de la racine du witness commitment dans la coinbase de chaque bloc SegWit, garantissant l'intégrité des témoins. Le TXID, lui, reste l'identifiant utilisé par les utilisateurs et explorateurs.
Cas d'usage
| Contexte | Usage du TXID |
|---|---|
| Bloc explorer (mempool.space) | Recherche directe |
| Référencement on-chain | vout d'une nouvelle tx pointe TXID:n |
| Outpoints (OP_RETURN, contrats) | Engagement à une UTXO précise |
| RPC getrawtransaction | Argument principal |
| Lightning channel point | funding_txid:funding_output_index |
Limites historiques
Avant SegWit, les signatures faisaient partie du contenu hashé : un attaquant pouvait altérer subtilement la signature (DER non-canonique) sans invalider la transaction mais en changeant son TXID. Ce transaction malleability a été exploité contre Mt.Gox en 2014. SegWit corrige cela en sortant les witness du hash TXID.
À retenir
Le TXID est l'objet de base de toute communication on-chain : c'est ce que vous partagez à un correspondant pour prouver un paiement, à un block explorer pour vérifier un statut, ou à votre nœud pour interroger une transaction. Stable, prévisible, et désormais non-malléable grâce à SegWit.
Termes lies
- 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.
- Transaction BitcoinUne transaction Bitcoin transfère des UTXO en consommant des inputs pour créer des outputs. Une transaction valide doit débloquer ses inputs (scripts) et respecter les règles de consensus. Elle est diffusée au réseau, attend dans le mempool, puis est incluse dans un bloc. Son identifiant est le TXID.
- HASH256HASH256 est l'application de SHA-256 deux fois de suite sur une donnée. Bitcoin l'emploie partout : identifiants de transaction, en-têtes de bloc, racines de Merkle. Le double hachage est une précaution contre certaines attaques par extension. Il est plus coûteux mais plus sûr.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.