Une transaction Bitcoin est un message que votre portefeuille transmet au réseau pour payer quelqu'un ou déplacer du bitcoin entre vos propres portefeuilles. Elle indique quels montants reçus auparavant seront utilisés et sous quelles conditions les nouveaux pourront être dépensés. Le réseau vérifie votre autorisation et que vous n'envoyez pas plus que ce qui est disponible. Appuyer sur Envoyer ne signifie pas encore que le paiement est confirmé.
Vous disposez d'un montant non dépensé de 100 000 sat et souhaitez envoyer 60 000 sat. Le sat est la plus petite unité du bitcoin : 1 BTC contient 100 000 000 sat. Le portefeuille peut préparer une transaction attribuant 60 000 sat au destinataire, vous rendant 39 000 sat et laissant 1 000 sat de frais au mineur. Cela rappelle un paiement avec un gros billet sur lequel on vous rend la monnaie. Les 100 000 sat d'origine sont utilisés entièrement et deux nouveaux montants sont créés. La monnaie rendue va généralement à une nouvelle adresse de votre portefeuille, pas à un inconnu. Les frais sont la différence entre les sommes utilisées et créées, et non une sortie distincte. Oublier la monnaie rendue pourrait donc produire des frais involontairement très élevés. [2]
Bitcoin conserve la trace des sorties non dépensées de transactions antérieures, les UTXO. Imaginez-les comme des montants individuels que votre portefeuille peut utiliser. Une entrée de la nouvelle transaction désigne une ancienne sortie ; une nouvelle sortie fixe un montant et les conditions de sa prochaine dépense. Le portefeuille peut en regrouper plusieurs ou répartir un paiement entre plusieurs destinataires. Une entrée ne donne donc pas simplement l'adresse de l'expéditeur : elle contient l'identifiant de l'ancienne transaction, txid, et le numéro de sa sortie. Cette paire s'appelle un outpoint. La sortie désignée doit exister et être disponible. Elle ne peut être dépensée deux fois ni comptée par deux entrées dans la même transaction. [1] [2]
Pour un paiement courant, le portefeuille crée une signature numérique avec une clé privée. Elle prouve l'autorisation du transfert et peut être vérifiée sans révéler la clé. Les conditions peuvent aussi exiger plusieurs signatures ou l'attente d'un certain moment. Techniquement, la transaction fournit les données nécessaires dans scriptSig et, le cas échéant, dans une partie distincte appelée witness. Les nœuds s'en servent pour vérifier les conditions de la sortie dépensée. Le mode SIGHASH détermine quelles parties de la transaction la signature protège contre les modifications. Même une signature valide ne permet pas de dépenser des fonds inexistants, d'augmenter le montant total ou de contourner un verrou temporel encore actif. [2]
Après la signature, le portefeuille diffuse la transaction. Les nœuds la vérifient et peuvent l'ajouter à leur mempool, une salle d'attente pour transactions non confirmées. Y entrer ne signifie pas encore figurer dans un bloc. La première confirmation arrive avec l'inclusion dans un bloc valide ; chaque bloc construit ensuite en ajoute une. Les règles de diffusion et de conservation des transactions en attente peuvent varier entre les nœuds et diffèrent des règles de validité des blocs. Une transaction en attente peut être remplacée par une autre dépensant les mêmes fonds. Même une confirmation peut disparaître lors d'une réorganisation, quand le réseau adopte une autre branche valide de l'historique. Vérifiez donc la réception dans votre propre portefeuille, sur le bon réseau, en contrôlant montant, destination et confirmations plutôt qu'une capture d'écran fournie par quelqu'un. [4]
Le portefeuille affiche généralement le txid, qui permet de retrouver la transaction. Il résulte techniquement d'une double application de SHA-256 à son encodage sans les données witness. Un second identifiant, wtxid, inclut le witness ; en son absence, les deux sont identiques. Ces valeurs identifient l'enregistrement, mais ne prouvent pas à elles seules que le paiement est confirmé. Les frais dépendent surtout de la taille des données et du taux choisi, pas de la valeur en monnaie nationale des bitcoins envoyés. Le taux s'applique à la taille virtuelle vsize : le poids de la transaction divisé par quatre, arrondi à l'entier supérieur. Réunir beaucoup de petites entrées peut donc coûter plus cher que transférer un seul montant plus élevé. [3]
Entrées moins sorties : les frais
Si une transaction ordinaire utilise au total 250 000 sat et attribue 248 200 sat à ses destinataires, monnaie rendue comprise, les 1 800 sat restants sont les frais du mineur. Ils ne sont pas envoyés séparément à une adresse de frais.
Pour une vision complète, lisez aussi UTXO, Private Key, Mempool, Transaction Fees, SegWit. Cette entrée est également citée par Bitcoin Whitepaper, Timechain / Blockchain, Full Node, UTXO.
01Peut-on annuler une transaction Bitcoin confirmée ?+
Bitcoin n'a ni bouton Annuler ni administrateur capable de révoquer un transfert confirmé à la demande. Pour récupérer l'argent, le destinataire doit généralement effectuer une nouvelle transaction. C'est différent d'une réorganisation de la chaîne, pendant laquelle un paiement peut perdre temporairement ses confirmations. Chaque bloc supplémentaire augmente le travail des mineurs, le Proof of Work, nécessaire pour remplacer l'historique. Davantage de confirmations renforcent donc la confiance, sans constituer une garantie absolue.
02Pourquoi le portefeuille crée-t-il une sortie de monnaie rendue ?+
Les entrées dépensent intégralement les UTXO. Lorsque les entrées sélectionnées dépassent le paiement et les frais, le portefeuille crée généralement une nouvelle sortie qui replace le reste sous son contrôle.