Découvrez comment fonctionnent les transactions Bitcoin, en commençant par les inputs, outputs et UTXOs.
Les basiques de la transactions
Comme évoqué précédemment dans les premiers épisodes, afin de créer une transaction, nous avons besoin d’une adresse et donc d’une clé publique et d’une clé privée. Pour faciliter le processus, les clés sont alors réduite en public key hash (PKH) pour être introduites dans le lock de l’output.
En guise d’introduction simplifiée, les transactions consistent en fait en un ensemble de données d’informations qui servent uniquement à déverrouiller et verrouiller des lots de Bitcoin.
En somme, ils servent donc à :
- Déverrouiller les fonds qui doivent être transférés contenus dans les inputs choisis par le wallet.
- Verrouiller les fonds dans un output.
La transaction se transforme donc en une passation d’output. En recevant les BTC d’un output, le receveur transforme alors cet output en input et le transforme une nouvelle fois en output lorsqu’il les dépensera.
Nous avons évoqué que pour déverrouiller un output, nous avons besoin d’une clé privée pour déverrouiller la clé publique contenue dans l’output créé par l’émetteur.
Les inputs
En d’autres termes, les inputs représentent les anciens outputs reçus qui sont choisis pour être dépensés (autrement appelée UTXOs).
“Une input de transaction fait référence à une transaction précédente qui a utilisé l’ID de transaction de la transaction (txid). Le txid de la transaction est le double de son Hachage SHA256. C’est ce qu’on appelle un identifiant de transaction car ce hachage est souvent utilisé pour faire référence à la transaction.”
Si nous prenons l’exemple de quelqu’un qui veut dépenser 10 BTC. Si il possède deux inputs, un de 6 BTC (input numéro 1) et un input de 4 BTC (input 2), voici ce que contiendrait les inputs respectifs :
Input 1 :
- Le txid de l’input 1, donc de la transaction 1 recue
- Le numéro “1” pour l’identifier et savoir quel input nous avons choisi
- Un espace vide pour y insérer la signature
Input 2 :
- Le txid de l’input 2
- Le numéro “2”
- Un espace vide pour y insérer la même signature
Il est possible de prendre autant d’input que nécessaire. Mais nous avons également évoqué l’invention du SegWit, permettant ainsi de réduire le temps de minage et de vérification des transactions. Car une transaction avec 100 inputs différents pourrait devenir trop compliqué et donc trop coûteuse.
Les outputs
“Les outputs et inputs sont un peu plus avancées que la simple spécification d’un PKH en output et une signature en input. En réalité, l’output contient un programme informatique qui vérifiera la signature lors de la dépense.”
Les outputs contiennent donc le montant des Bitcoin à envoyer. Le montant est de taille de 8 bits et accompagné d’un ScriptPubKey Size suivi d’un ScriptPubKey.
Mais afin qu’une transaction soit validée, le nombre d’ouputs doit être supérieur ou égal au nombre d’inputs. En effet, la différence entre les deux permettra de payer ce que l’on appelle les frais de transactions, qui servent notamment à rémunérer les mineurs qui valident ces dernières.
L’aspect le plus important d’une output est qu’elle nécessite une signature afin de permettre à la transaction d’être sécurisée et que personne d’autre que les échangeurs ne puisse la recevoir.
Dans le cadre de cette même transaction à deux inputs, le wallet doit donc signer les deux PKH, PKH de l’input 1 et le PKH de l’input 2. L’émetteur doit en effet prouver qu’il possède bien ces deux inputs à émettre.
C’est pourquoi chaque input doit être signé individuellement. Il peut y avoir plusieurs signatures dans le processus de transactions. C’est ce que l’on appelle le multisig, ou transaction multi-signatures.
Les UTXOs
“Une entrée dans le set d’une UTXO se compose donc d’un txid, d’un numéro de transaction (idx) et de l’output réel de la transaction.”
Afin de vérifier que les inputs n’ont jamais été dépensés, une base de données est créée sous la forme d’un lot de UTXO (unspent transaction output), autrement appelé UTXO set. Les UTXO sont donc le garant du fait que l’input n’a jamais été dépensé et donc que les fonds sont bien en la possession de l’émetteur.
En reprenant l’image de la transaction étant une suite d’inputs transformés en outputs, les UTXOs sont les terminaisons de cette chaîne. Ceci évite donc le “double-spending” que l’on peut retrouver par exemple avec les chèques en blanc dans la finance traditionnelle. C’est donc un autre avantage offert par Bitcoin et les crypto-monnaies. Aucuns faux billets ou faux chéquiers dans Bitcoin
Sources : Grokking Bitcoin.
Sur le même sujet :
- Projet prometteur et plus évolutif que Solana
- Aucune congestion ni transaction échouée
- Un gros potentiel multi chaînes
- Ethereum
- USDT
- Debit
- Le pari ultime sur le prochain cycle haussier massif qui arrive pour Bitcoin
- Conservez des jetons $BTCBULL, gagnez des airdrops BTC
- Construit sur Ethereum, avec staking APY élevé dans un contrat intelligent sécurisé
- Ethereum
- USDT
- Debit
- Agent IA auto-évolutif interagissant avec des réseaux dont X
- En une seule transaction, achetez et stakez des tokens $MIND
- Recevez des récompenses de staking de 773%
- Debit
- Ethereum
- BNB
- +1 plus