Transaction Bitcoin
- Alexandra veut envoyer un bitcoin à son amie Brigitte, car elle est philanthrope. Brigitte lui donne donc son adresse Bitcoin (QR code pour qu’Alexandra n’ait qu’à scanner pour récupérer l’adresse). Pour rappel, une adresse Bitcoin ressemble à cela : 1H32gjdjz5rNsCTEW45PwhQEPeyk17Dqci
Alexandra crée la transaction à partir de son portefeuille crypto en remplissant :
- Montant : 1 BTC
- Adresse Alexandra : expéditeur
- Adresse de Brigitte : destinataire
- Elle ajoute des frais de transaction
Techniquement, ce qu’il se passe ici, c’est qu’Alexandra va créer une UTXO (Unspent Transaction Output). C’est-à-dire qu’elle va indiquer que les fonds qu’elle envoie doivent être débloqués par sa clé privée et qu’une fois reçue par Brigitte, ils seront utilisables uniquement si Brigitte présente sa clé privée.
La transaction est au statut “créée”, mais il reste encore quelques étapes avant qu’elle soit au statut “validée” et reçue par Brigitte.
2 . Pour valider l’envoi de la transaction, Alexandra doit la signer avec sa clé privée. Cela permet d’authentifier sa transaction, de vérifier que c’est bien Alexandra qui possède et veut envoyer 1 BTC à Brigitte. Pour faire un parallèle avec un paiement par carte bancaire, la clé privée correspond au code de votre CB, il authentifie que vous êtes bien le propriétaire et que vous validez le paiement. Si une personne vole votre CB, il ne pourra pas payer sans votre code (hors internet, car autre sécurité).
3. Le réseau Bitcoin est composé de milliers de nœuds qui ne sont rien d’autre qu’un logiciel qui contient le code informatique de Bitcoin tournant sur un ordinateur/serveur. N’importe qui peut posséder un nœud (vous, moi, une société, etc…). Ces nœuds doivent faire respecter les règles de Bitcoin (par exemple : le nombre total de bitcoins au maximum → 21 millions), conserver la blockchain et vérifier les transactions (un cours spécifique aux nœuds est disponible).
La transaction est transmise à un premier nœud qui va vérifier plusieurs choses :
- Parcourir toute la blockchain pour vérifier qu’Alexandra possède bien 1 BTC
- Vérifier qu’Alexandra n’essaye pas de dépenser plusieurs fois son bitcoin
- Vérifier qu’Alexandra a bien mis des frais de transactions dans sa transaction
- ATTENTION : Les nœuds ne vérifient pas que l’adresse du destinataire existe
Si le nœud trouve un problème, la transaction passe en refusée
Sinon le nœud transmet la transaction aux autres nœuds qui feront de même : la propagation.
Cette phase sert par ailleurs à communiquer l’état de la blockchain à tous les autres nœuds pour que tout le monde ait la même version. La transaction est donc en attente.
Les frais sont importants pour la sécurité du réseau notamment.
En effet, sans ça, des personnes mal intentionnées pourraient envoyer des millions de transactions pour saturer le réseau. Ce sont également eux qui serviront à payer les mineurs quand le total de bitcoin aura atteint 21 millions.
4. La transaction est ajoutée à ce que l’on appelle la mem pool. C’est là que sont stockées les transactions en attente d’être traitées.
5. La preuve de travail (ou “proof of work” en anglais) appelée plus couramment le minage :
C’est l’étape la plus technique qui est vue de façon plus spécifique dans un cours et qui sera de ce fait vulgarisée ici. Des ordinateurs que l’on va appeler mineurs vont récupérer beaucoup de transactions pour remplir LEUR bloc au maximum autorisé (1 bloc = 4 Mo).
Ensuite, ils vont tenter de résoudre une équation mathématique complexe. Pour ce faire, ils vont tenter des millions de réponses jusqu’à ce que ce soit la bonne solution.
Ce qui consomme beaucoup d’énergie électrique. Les mineurs sont tous en concurrence, chacun fabrique son bloc, le premier qui trouve la solution gagne le droit d’ajouter son bloc à la blockchain et il est récompensé avec des bitcoins. Ces bitcoins proviennent d’une transaction que les mineurs ont spécialement ajouté au bloc. Cette dernière est d’une valeur définie par la loi de Bitcoin (divisée par deux tous les quatre ans) à laquelle on ajoute les frais de transaction de chaque transaction. Les autres mineurs qui n’ont pas trouvé la solution vérifient que la solution du mineur gagnant est bonne sinon rejet du bloc. La difficulté du calcul s’auto-ajuste pour qu’en moyenne un bloc soit créé toutes les 10 minutes. En effet, plus il y a de mineurs, plus la possibilité de trouver la solution est grande et inversement, il faut donc pouvoir régler cette difficulté. La transaction d’Alexandra passe au statut validé. Brigitte possède bien un BTC désormais, mais elle ne voit pas encore l’information sur son portefeuille crypto.
6. Les nœuds vont vérifier que le bloc du mineur est bon. Si tout est correct, les nœuds vont propager la nouvelle version de la blockchain aux autres nœuds du réseau qui actualiseront leur version. Alexandra a dorénavant 1 BTC en moins.
7. Le portefeuille crypto de Brigitte va interroger le nœud le plus proche pour connaître son nouveau solde et ce dernier lui confirmera que la transaction a bien été validée. Brigitte est ravie.
Tu as aimé ce cours ? Aide-nous à le faire connaître et partage ton avis
Tweet