Un système de paiement électronique de pair à pair – la BlockChain

En 2008, un mystérieux papier écrit par un certain Satoshi Nakamoto voit le jour. Dans ce papier, on nous explique le fonctionnement d’un système de paiement électronique de pair à pair dont la monnaie est appelée Bitcoin. Dans cet article, nous allons voir les motivations de la création d’un tel système, puis nous aborderons son fonctionnement.

Pourquoi ce système ?

Lorsque nous transformons de l’argent sur notre ordinateur, le problème de double dépense intervient. En effet, nous pouvons très bien envoyé une même pièce de monnaie à deux personnes à la fois. En effet, sur un ordinateur, on peut très facilement réaliser des copies de fichiers.

Pour répondre à ce système, la solution consiste à avoir un système centralisé. Ainsi, nous pouvons avoir l’intervention d’un tiers de confiance tout en mettant en place un système de signature numérique. Ce tiers de confiance va permettre de vérifier que l’argent qui va être échangé est bien valide et qu’il ne peut pas être dupliqué. Ce genre de système est employé par les banques par exemple.

L’inconvénient dans ce système est que nous avons besoin d’une personne de confiance qui puisse réaliser l’échange. Afin de contrer ce problème, les systèmes décentralisés ont vu le jour. Ces systèmes reposent sur la preuve de travail.

Qu’est-ce que la preuve de travail ?

Un système de validation de preuve de travail est une mesure de sécurité qui s’appuie sur la puissance de calcul. Le travail qui est demandé doit être difficile à produire, car il est coûteux en temps et en énergie. En revanche, il est très facile pour un tiers de vérifier ce travail. Nous reviendrons un peu plus tard sur, comment est-ce que la blockchain du bitcoin met en place ce système.

Un bloc

Comme son nom l’indique, la blockchain est composé d’un ensemble de blocs ordonnées sous forme d’une chaîne. Ainsi, chaque bloc connaît son précurseur. Un bloc est composé de :

  • un numéro : permettant de l’identifier.
  • signature du bloc précédent : indiquant le bloc précédent.
  • donnée : les données que nous allons stocker.
  • signature du propriétaire : indique le propriétaire de la transaction.
  • nonce : un nombre arbitraire généré aléatoirement.
  • signature du bloc.

La signature d’un bloc est définie par un hash. Un hash est crée à partir d’une fonction qui à partir de données va nous générer une empreinte. Cette empreinte est unique par rapport à nos données d’entrée. La fonction de hash ne fonctionne que dans un sens. En effet, à partir de l’empreinte que nous avons obtenu, nous ne pouvons retrouver nos données.

Dans le cas d’un bloc, nous allons chercher une signature qui commence par n 0. Ainsi, si la difficulté de la blockchain est de 4, nous allons chercher une signature commençant par 4 0. Afin de chercher cette signature, nous allons modifier la valeur du nonce jusqu’à trouver la bonne signature.

Pourquoi tous cela fonctionne ?

La chaîne va donc être composée d’un ensemble de bloc. Si nous souhaitons modifier, par exemple, la valeur de la transaction d’un bloc, nous allons avoir un problème. En effet, la signature du bloc où nous avons appliqué une modification va changer. Ainsi, le bloc qui le suit ne sera plus valide. En effet, il sauvegarde la signature du bloc précédent qui a été modifié. De même, la signature de ce bloc est encore altérée. Et cela se répercute sur l’ensemble des blocs qui suivent. Ainsi, on ne peut pas modifier un bloc sans perturber l’ensemble de la chaîne.

Afin de trouver la bonne signature, c’est tout un réseau d’ordinateurs qui réalise des calculs. Une fois qu’un ordinateur à trouver la bonne signature, il peut valider un bloc et être rémunéré par le système pour cela.

Faille de sécurité

Dans ce type de réseau, afin de pouvoir modifier la chaîne, il nous faudrait posséder plus de 51% de la puissance de calcul. Ainsi, il nous serait possible de modifier un bloc et de calculer les signatures suivantes. Cela est possible, car le système garde la chaîne la plus longue. Vu que nous allons plus vite, notre chaîne sera un moment donner la plus grande.

La second faille que nous pouvons noter est que tout ce système repose sur la fonction de hash. En effet, on se base sur la difficulté de trouver le bon hash en fonction du nonce. Si on arrive à trouver une méthode permettant d’accélérer la méthode de résolution, nous serons plus rapides dans notre traitement ce qui nous ramènerai au premier problème.

La blockchain est composé d’un ensemble de blocs et se base sur la preuve de travail. Afin de valider un bloc, nous allons chercher, à l’aide d’une fonction de hash, une empreinte composée de plusieurs 0 au début de cette empreinte. Afin de compromettre cette chaîne, il nous faudrait une puissance de calcul supérieur à l’ensemble du réseau.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.