Comment fonctionne une transaction avec Bitcoin ?
Une transaction sur Bitcoin nécessite au minimum trois informations.
- Qui envoie ?
- Combien est envoyé ?
- Qui reçoit ?
Celui qui envoie les bitcoins doit prouver au reste du réseau qu’il est bien le propriétaire de la somme qu’il veut envoyer.
Signature et envois de la transaction
Pour se faire, il utilise sa clé privée pour générer une signature qui est comme une empreinte cryptographique unique et qui prouve qu’il est bien le propriétaire de la somme qu’il veut envoyer.
Une transaction est donc semblable à un formulaire qui annonce au reste du réseau que le propriétaire du coffre fort A veut déplacer une quantité donnée vers le coffre fort B.
Une fois ce formulaire signé, il est communiqué à un nœud qui vérifie et s’occupe de propager cette information aux autres nœuds auxquels il est connecté. Chaque nœud va donc ainsi partager cette information aux autres nœuds jusqu'à ce que tout le réseau entier soit au courant de cette transaction.
Même si tous les nœuds du réseau sont au courant de l'existence de cette transaction, elle n’est pas encore inscrite dans le livre de compte décentralisé qu’est la Blockchain Bitcoin. Pour cela, elle doit être ajoutée à un bloc (une nouvelle page du livre de compte). La transaction est donc en attente dans ce qu’on appelle la mempool, qui regroupe toutes les transactions en attente d'être ajoutées à l’historique immuable et infalsifiable de la blockchain.
Validation de la transaction par un mineur
Ce sont les mineurs qui s’occupent de cette tâche.
Leur rôle est d’ajouter les transactions en attente à l’historique du livre de compte.
Pour se faire, il doivent résoudre un puzzle cryptographique qui s’apparente à une loterie appelé Proof-Of-Work (ou preuve de travail).
Cette loterie à pour but de promouvoir la décentralisation et consiste à résoudre un puzzle cryptographique en trouvant un nombre, qui, calculé avec le nombre inscrit dans le bloc précédent donne un résultat plus petit qu’un nombre défini.
L’algorithme cryptographique utilisé dans ce puzzle a des propriétés particulièrement intéressantes.
Si on calcule deux nombres en entrée, on obtient toujours le même résultat, ce qui rend très facile à vérifier l’exactitude du calcul effectué.
Par contre, il est impossible de prédire le résultat sans effectuer le calcul.
Les mineurs doivent donc essayer une multitude de calculs avant de trouver le nombre magique qui donne un nombre plus petit que celui défini par les règles du protocole.
Le nombre cible est défini en fonction de la puissance de calcul cumulé dans le réseau des mineurs. Au plus la cible est basse, au plus il est difficile de trouver un nombre plus petit que celui-ci.
Par exemple, si vous avez deux dés à 6 faces, il est beaucoup plus facile de faire un jeté de dés qui donne un résultat plus petit ou égale à 8, mais il est moins probable d’avoir un jeté de dés où le résultat est plus petit ou égal à trois.
L’heureux mineur qui trouve le nombre aléatoire qui valide la preuve de travail peut proposer le bloc qu’il a forgé au reste du réseau.
Si toutes les transactions présentes dans ce bloc sont valides et que le puzzle cryptographique est correctement résolu, le mineur touche alors une récompense en nouveaux bitcoins issus de la création monétaire comme prévu dans les règles du protocole en plus des frais de transactions associées aux transactions présentes dans le bloc.
Chaque transaction se doit d’ajouter un frais de transaction pour être considéré par les mineurs.