II.13 Qu'est-ce qu'une transaction ?
 Maintenant, au lieu d'utiliser une simple chaîne de
caractères dans la data, nous allons-y insérer une transaction !
Nous avons des portefeuilles, il est temps de créer le processus pour
envoyer de l'argent d'un portefeuille à un autre. Ce processus est
appelé une transaction. Dans un premier temps, pour effectuer une
transaction, nous aurions besoin de 
o  Adresse du portefeuille de l'expéditeur. 
o  Adresse du portefeuille du récepteur. 
o  Montant à envoyer. 
  
 [83][84]. 
Prenons un aperçu d'un ajout d'une nouvelle transaction
dans la chaîne de blocs Bitcoin 
   
 Figure II- 15: New transaction 
 La transaction aura notre clé publique en tant
qu'émetteur, et la clé publique du destinataire, et nous signons
cela avec notre clé privée. Voir figure ci-dessous : 
    
  
 Chapitre II Fonctionnement de la blockchain 
 [55] 
Figure II- 16: Signature de notre transaction avec
notre clé privée 
 La blockchain est maintenant capable d'utiliser notre
clé publique pour vérifier que nous sommes bien à
l'origine de cette transaction (fig. ci-dessous), que nous sommes bien
l'expéditeur et que la transaction n'a pas été
altérée par un tiers. 
   
 Figure II- 17: Blockchain vérifie que cette
transaction a bien été envoyée par le propriétaire
de la clé 
 privée 
 Donc une transaction doit nécessairement contenir : 
o  TxID : un identifiant
unique de transaction avec une fonction de crypto sha256 utilisées pour
identifier d'une façon exclusive une transaction. 
o  Input : l'adresse de puis
laquelle la transaction est émise. 
o  Output : les adresses
réceptrices des quantités échangées. 
 Dans la transaction ci-dessus, nous pouvons remarquer les
propriétés suivantes (83](84]: 
   [56] 
Chapitre II Fonctionnement de la blockchain 
 
 
 Hacher 
 
 | 
 Cela fonctionne comme la clé unique de cette transaction.
C'est une combinaison de données incluses dans la transaction qui
crée cette clé. 
 
 | 
  Apparait dans 
 
 | 
 
 Dans quel bloc se trouve cette transaction. 
 
 | 
  Nombres d'entrées 
 
 | 
 
 Le nombre d'entrées. Les entrées sont des
références à des transactions dont le portefeuille, qui
souhaite envoyer de l'argent, a reçu de l'argent. 
 
 | 
  Total BTC en 
 
 | 
 
 Le nombre total de Bitcoins reçus par le portefeuille. 
 
 | 
  Nombre de sorties 
 
 | 
 
 Le nombre d'expéditeurs. 
 
 | 
  Total BTC out 
 
 | 
 
 Le nombre total de Bitcoins envoyés par le portefeuille.
Il doit être égal au « Total BTC in ». Si vous souhaitez
envoyer seulement une partie du montant de votre portefeuille, vous pouvez
envoyer la partie à la destination et le reste à
vous-même. 
 
 | 
  Taille 
 
 | 
 
 Taille des données en octets 
 
 | 
  Frais 
 
 | 
 
 Si vous souhaitez donner une petite récompense au bon ami
qui a pris votre transaction, l'ajoutez dans un bloc et trouvez un nonce pour
ce bloc afin qu'il puisse être ajouté dans la chaîne de
blocs. 
 
 | 
   | 
 
  
  
 Tableau II- 4: Propriété d'une
transaction 
 L'illustration suivante montre un exemple de transaction qui
prend 4 entrées et génère deux sorties (à
l'exclusion de la sortie de commission) : 
   
 Figure II- 18: Exemple de
transaction 
 o Entrée de transaction : Les
entrées de transaction font référence à une sortie
de transaction utilisable (UTXO) capturée dans la structure de
données de point d'entrée de transaction. De plus, un script doit
être ajouté avec une signature valide permettant à la
partie qui crée la transaction de réclamer l'UTXO
référencé [83][84]. 
   Chapitre II Fonctionnement de la blockchain 
 [57] 
 
 
 Taille 
 
 | 
 Nom 
 
 | 
Type 
 
 | 
 Commentaire 
 
 | 
  44 
 
 | 
 
 PreviousOutput 
 
 | 
 TransactionInputOutpoint 
 
 | 
 Référence à UTXO 
 
 | 
  4 
 
 | 
 
 Séquence 
 
 | 
 uint 32 
 
 | 
 L'index de l'entrée spécifique dans la
transaction 
 
 | 
  var. 
 
 | 
 
 Scénario 
 
 | 
 [] octet 
 
 | 
 Signature pour vérifier la propriété de la
clé publique de l'UTXO référencé 
 
 | 
   | 
 
  
  
 Tableau II- 5: Structure de données
Transaction Input 
o  Point d'entrée de transaction :
Les points d'entrée de transaction sont des
références aux sorties de transaction précédentes.
La référence est capturée avec un hachage de transaction,
un index de l'UTXO à réclamer et la valeur contenue dans
l'UTXO 
 (831(841. 
 
 
 Taille 
 
 | 
 Nom 
 
 | 
Type 
 
 | 
Commentaire 
 
 | 
  32 
 
 | 
 
 Hacher 
 
 | 
[32] octet 
 
 | 
 Le hachage de la transaction référencée 
 
 | 
  4 
 
 | 
 
 Indice 
 
 | 
Uint 32 
 
 | 
 L'index de la sortie spécifique dans la transaction 
 
 | 
  8 
 
 | 
 
 Valeur 
 
 | 
uint64 
 
 | 
Valeur UTXO 
 
 | 
   | 
 
  
  
 Tableau II- 6: Structure de données
Transaction Input Outpoint 
o  Sortie de transaction (831(841 
 
 
| 
 Taille 
 | 
 Nom 
 | 
 Type 
 | 
 Commentaire 
 | 
 
| 
 4 
 | 
 Indice 
 | 
 Uint 32 
 | 
 Paramètre de commande 
 | 
 
| 
 8 
 | 
 Valeur 
 | 
 Uint 64 
 | 
 Valeur de sortie de transaction 
 | 
 
| 
 var. 
 | 
 Scénario 
 | 
 [] octet 
 | 
 Script définissant les conditions pour revendiquer cette
sortie 
 | 
 
| 
 32 
 | 
 NodeID 
 | 
 [32] octet 
 | 
 Clé publique du noeud qui souhaite participer au PoS 
 | 
 
  
Tableau II- 7: Structure de données
Transaction Output 
Chapitre II Fonctionnement de la blockchain 
 |