Architecture de la blockchain : comprendre les transactions

Pourquoi cet article

Comprendre l’architecture de la blockchain n’est pas facile car il faut appréhender beaucoup de concepts en même temps.

Dans cette série d’articles, nous allons prendre une approche progressive en essayant d’imaginer ce qu’il faudrait faire si l’on voulait construire une monnaie décentralisée et sécurisée. A chaque étape, on résoudra un problème, et on rencontrera les limites de notre solution qui nous conduira à aller vers l’étape suivante, en proposant une évolution.

Dans cette article nous allons traiter les transactions.

Les références

Je m’appuie sur deux références :

Les concepts importants de crypto

Il y a des concepts importants de cryptographie à maîtriser pour comprendre le fonctionnement des transactions

  • Le hash,
  • Les clés asymétriques, clés privées et clés publiques,
  • La signature cryptographique.

La signature est ce qui nous intéresse le plus. Si vous avez du mal à comprendre les mécanismes sous-jacent, ne retenez qu’une chose, la clé publique permet de vérifier l’authenticité de la signature, mais seul celui qui détient la clé privé correspondante est en capacité de signer.

Première brique : Une base de transaction

Chacun peut écrire mais personne ne peut vous voler ce qui vous a été donné

Transactions signées sur la blockchain

 

Imaginons trois personnes P0, P1 et P3 voulant faire des échanges à travers des transactions

  • Pour que P1 transfère « x » à P2, P1 écrit la transaction T2 dans laquelle il indique la clé publique de P2,
  • Puis P1 signe la transaction T2,
  • Ceux qui veulent vérifier la légitimité de cette transaction vérifie que la clé publique indiquée dans T1 (cad la clé publique de P1) permet de vérifier la signature de T2.

On peut remarquer qu’avec ce modèle, le bénéficiaire de P2 ne peut pas se faire voler. En effet, pour transmettre à nouveau x, il faudrait être en capacité d’écrire une transaction qui transfère x, et de signer avec la clé privée de P2 mais seul P2 la détient.

Prenez quelques instants pour bien observer ce schéma, et ne poursuivez pas sans l’avoir bien compris car il est un des fondamentaux permettant d’édifier une base de transaction.

Les transactions peuvent être plus complexes

Bien sûr, x doit pouvoir être donné à plusieurs personnes, et même P1 peut vouloir en garder une partie.

Transaction sur la blockchain avec plusieurs destinataires

Sur le schéma on voit que P1 donne à P2 et P38 et même se rend une partie de la monnaie.

Mais où sont les clés privés ?

Les clés privées ne sont bien sûr pas sur la blockchain !

Ou sont les clés privées de la blockchain

Elles sont dans un stockage privé « normalement » bien sécurisé qu’on appelle le portefeuille (wallet).

Les propriétaires paranoïaques prudents de bitcoins stockent ces portefeuilles sur des machines déconnectés du réseau, c’est ce que l’on appelle le “cold storage”.

Il crée une transaction sur la machine connecté, la recopie sur une clé usb ou autre support « froid », la signe sur la machine déconnecté et recopie la transaction signée sur la machine connectée pour l’envoyer au réseau.

 

Comment on fait ses comptes ?

Dans la base de transaction il n’y a pas de notion de compte, tout est transaction !

Comment calcul-t-on le solde d'un portefeuille bitcoin

On établit le solde par rapport à une liste de clés publiques qui sont dans le wallet

On additionne toute les déclarations de dons (« je donne x à la clé publique de P1 ») dans les transactions qui n’ont pas elles-mêmes encore été dispensées

Ces bénéfices inclus dans les transactions mais non embarqué dans une nouvelle transaction sont  connus sous le nom de UTXO (Unspent Transaction Output)

Nous reviendrons souvent sur le terme de UTXO c’est pourquoi je vous invite à bien l’intégrer conceptuellement.

Exemple 1 : calculons le solde de P1

Mettons en œuvre ce concepte d’UTXO pour évaluer le solde de P1.

Exemple de calcul de solde sur la blockchain

On peut voir sur le schéma que le seul UTXO correspondant à la clé publique de P1 est de x-y-z, donc si c’est la seule clé détenu par ce wallet, son solde est de x-y-z.

Exemple 2 : calculons le solde de P1 si P3 donne R à P1

Exemple plus complexe de calcul de solde sur la blockchain

Je vous invite à vous livrer à l’exercice directement sur le schéma proposé. Cela vous donne rapidement une idée de la complexité que peut prendre la blockchain.

Bilan

On a là un élégant système de transactions. Le propriétaire de la base ne peut pas créer de transaction contre le gré d’un participant, car pour le faire, il faut la clé privé du participant qui n’est pas dans la base. Donc il ne peut pas saisir vos  sommes mais ….

Le propriétaire de la base peut supprimer une transaction et les branches qui dépendent d’elle. Il peut vous refuser l’accès à la base, et donc vous viser personnellement pour vous empêcher  de faire des échanges.

Il peut aussi carrément fermer la base, créant un blackout totale sur cette plateforme d’échange.

Dans le prochain article nous étudierons une propriété très intéressante des bases de transaction : leur capacité à se décentraliser facilement et éviter ainsi un pouvoir central.

Leave a Reply

Your email address will not be published. Required fields are marked *