La blockchain expliquée

blockchain-101

Une blockchain est un registre public et distribué de toutes les transactions ayant lieu sur cette blockchain. Bien que Bitcoin semble être synonyme de blockchain, la technologie blockchain n’est pas seulement Bitcoin. Bitcoin est la plus grande et la plus connue des implémentations de la technologie, mais certaines des autres grandes implémentations open source sont Ethereum et Litecoin.

Très simplement, la blockchain est un logiciel qui tourne sur des millions d’ordinateurs. Ces ordinateurs (ou nœuds) communiquent entre eux pour s’assurer que les données restent synchronisées.

Mais comment ça marche, et pourquoi a-t-il été inventé?

Le problème des doubles dépenses

L’une des principales responsabilités d’une autorité centrale de confiance dans une transaction financière, telle qu’une banque, est d’empêcher ce que l’on appelle le “doubler les dépenses” problème. Les banques agissent en tant qu’intermédiaires de confiance pour s’assurer que l’argent n’est pas dépensé numériquement deux fois. Les banques veillent à ce que cet échange d’argent se fasse dans un délai transaction.

Une transaction, par définition, est atomique, c’est-à-dire qu’elle se produit ou non, il n’y a pas d’état intermédiaire. Les transactions sont également séquentielles. Ce qui signifie qu’une transaction suit et/ou précède toujours une autre transaction. Les transactions ne se produisent pas simultanément.

Par exemple, disons qu’Hannah a 10 $ et qu’elle doit payer 3 $ à Alice et 5 $ à Liam. La fin logique et réussie de ces transactions se traduirait par Hannah avec 2 $, Alice avec 3 $ et Liam avec 5 $. Hannah ne peut pas envoyer le même argent à Alice et Liam exactement au même moment. Si elle faisait cela, Hannah se retrouverait avec 5 $, Alice obtiendrait ses 3 $ et Liam obtiendrait ses 5 $. Hannah aurait créé comme par magie 3 $ supplémentaires. Elle aurait dépensé son argent deux fois.

Sans une autorité centrale de confiance telle qu’une banque tenant des registres de chacune de ces transactions, le système financier s’effondrerait rapidement.

Par conséquent, bien que l’idée d’un grand livre décentralisé et d’une monnaie numérique existe depuis les années 1990, le problème de la double dépense était une énorme pierre d’achoppement pour sa mise en œuvre pratique..

Comment Bitcoin/Blockchain le résout

En 2009, Satoshi Nakamoto, un individu non encore identifié, a publié un papier blanc dans lequel il affirmait avoir résolu le problème de la double dépense sans qu’une agence centrale agisse en tant qu’arbitre, via la cryptographie numérique, la théorie des jeux et l’informatique.

Nick Szabo avait présenté Bitgold en 2005. Bitcoin est tellement similaire à Bitgold et partage tellement de ses concepts que certaines personnes soupçonnent Szabo d’être Satoshi Nakamoto.

Cryptographie à clé publique

Afin de comprendre le fonctionnement de la technologie blockchain, il faut comprendre la cryptographie à clé publique. Les détails techniques complets de ce sujet dépassent le cadre de cet article. Plus de détails sont disponibles ici.

A un très haut niveau, la cryptographie à clé publique repose sur deux clés : une clé publique et une clé privée. Ces deux clés sont liées mais séparées comme ci-dessous :

  • Seule la clé publique peut déchiffrer les données qui ont été chiffrées par la clé privée correspondante
  • La clé publique peut vérifier les données signées par la clé privée correspondante

La clé publique peut être partagée en toute sécurité avec d’autres, donc « publique ». La clé privée doit être gardée secrète pour des raisons de sécurité. La clé publique peut être dérivée de la clé privée mais pas l’inverse.

Par exemple, supposons que Bob veuille transmettre un message secret à Alice. Bob aura besoin de connaître la clé publique d’Alice pour chiffrer le message avant de le lui envoyer. Puisque la clé publique n’est pas un secret, Alice est libre de l’envoyer à Bob. Lorsqu’Alice reçoit le message chiffré, elle peut le déchiffrer à l’aide de sa clé privée. Toute personne au milieu qui intercepte le message ne peut pas le déchiffrer sans la clé privée d’Alice.

Pour référence, voici à quoi ressemble une clé publique :

305C300D06092A864886F70D01010105 00034B003048024100A251C92CCA3E7B 6599146DDB10044807B3AA1EFA8BE627 4D329765E0CC5A0EA03CA8F010524A89 2484A7C96498660A20DBCBD3AA3E92D95630

Un message crypté pourrait ressembler à ceci :

—–BEGIN PGP MESSAGE —– hIwCMavvb4t6z90BA / 42UOAdWvnzfhRG2xXyYe203CISLsn2O39vM / y640hNbSl7 U29aNGZFfLMRGn7eLZG43SWwBz4cHjphG6iAzeLftRgHkLggxXA9VpGki5PyNID9 B0rk4TpRVE3qzgTbdio69aMlK6BdAQ4zWkyxSCi0oR3Vpnh + VVZyOVyaX8etlYRM AvUTsuDYCkr1AQH + OlA4ntqhxoPP / SJpKm5ugMLYiiij8ak8V90a8IYMkYB0CzMr liOJ6ZZxQm1x8orgjL / 6Bm5EoSvN4eCCeA / xXKYAAAHXLhG47kVhJkjlPrI / U / sr 2aQEm6r + aU1s0ziU1LxF2c5DAW6cD5b4xH + EbvYrnQQJClNMh9y03SjviXvnqFDC O4M70u3iLC50 + em4PouqM1DZdoW8O5pb = vhFx —– END PGP MESSAGE—–

Fonctions de hachage – SHA-256

Le cryptage garantit que les messages entre deux parties sont sécurisés et fiables. Cependant, le destinataire doit également vérifier que le message qu’il a reçu n’a pas été falsifié. Pour ce faire, chaque message transmis est signé numériquement à l’aide de sa valeur de hachage.

Un hachage est comme la signature numérique d’un message. De nombreux algorithmes, appelés fonctions de hachage, ont été développés pour générer un hachage, comme MD5 et SHA-1, mais le plus couramment utilisé maintenant s’appelle SHA-256. Les détails du hachage et les mathématiques impliqués dans les différentes fonctions de hachage sont inutiles pour la compréhension de la blockchain.

Une fonction de hachage est une fonction à sens unique. Cela signifie que le hachage d’un message est toujours le même lorsque vous utilisez la même fonction. Cependant, le message ne peut pas être déchiffré à partir du hachage.

SHA-256 produit toujours une valeur de hachage de 256 bits. Par exemple:

[tableau id=1 /]

Comme vous pouvez le voir, une seule modification des données (L majuscule dans ce cas) change complètement le hachage.

L’entrée de données dans la fonction de hachage peut être aussi simple qu’un seul mot, ou il peut s’agir du dictionnaire entier et il produira toujours une valeur de hachage de 256 bits similaire à celles ci-dessus..

Que sont les chaînes

Comme mentionné ci-dessus, tout ensemble de données peut être transmis via une fonction de hachage pour générer son hachage correspondant. Dans une blockchain, cet ensemble de données correspond aux transactions qui s’y déroulent. Chaque transaction dans une blockchain est signée numériquement à l’aide de son hachage, utilisant actuellement la fonction SHA-256. Toutes les transactions ultérieures incluront la signature numérique de sa transaction précédente. Cela forme un chaîne des transactions telles que si l’on devait modifier une transaction dans la chaîne, cela changera la valeur de hachage de toutes les transactions ultérieures. Cela permet d’identifier facilement toute chaîne dans laquelle une transaction précédente a été modifiée simplement en comparant les valeurs de hachage.

Exemple : Supposons que Bob doit transférer 10 $ à Alice et 5 $ supplémentaires à Charlie. Étant donné que les transactions sont atomiques, le transfert de 10 $ de Bob à Alice se produira en premier. Cette transaction sera signée numériquement à l’aide de son hachage SHA-256. La prochaine transaction de Bob transférant 5 $ à Charlie sera également signée numériquement, mais cette fois, elle inclura également le hachage de la transaction précédente..

[table id=2 /]

Bien sûr, les transactions sur une blockchain ne ressembleront pas à ça, mais cela en donne une représentation générale.

Qu’est-ce que l’exploitation minière

Comme mentionné précédemment, la blockchain est un réseau de nœuds exécutant le même logiciel qui communiquent entre eux pour garantir la synchronisation des données. Certains d’entre eux sont des nœuds spécialisés appelés mineurs.

Le but des mineurs est de vérifier les transactions qui sont effectuées sur la blockchain. Lorsqu’un certain nombre de chaînes de transactions ont été vérifiées, elles sont combinées pour former un bloquer des opérations.

En récompense de la vérification correcte et honnête des transactions, les mineurs reçoivent la crypto-monnaie de la blockchain correspondante. Ainsi, par exemple, les mineurs de la blockchain Bitcoin seront récompensés avec Bitcoin. Ce montant est fixe mais peut varier de temps à autre.

Les mineurs doivent montrer leur preuve de travail pour gagner leur récompense. Le travailler à effectuer consiste essentiellement à trouver un champ de 32 bits qui, lorsqu’il est haché avec la valeur de hachage de la chaîne de transactions, génère une autre valeur de hachage avec un nombre défini de zéros non significatifs. Ce champ est appelé un nonce. Le nombre de zéros non significatifs à générer est défini par la difficulté qui change après l’extraction d’un nombre défini de blocs. Plus il y a de zéros non significatifs, plus il devient difficile de trouver le nonce. 

A titre d’exemple, le nonce du bloc Bitcoin #493257 s’est avéré être 1488602745 qui, une fois haché avec les transactions dans ce bloc, a généré le hachage pour le bloc de 00000000000000000034bd56aea0c6db865e8dff1fe5d2023170b568ad5e0968. Veuillez noter les zéros non significatifs dans la valeur de hachage du bloc.

Il est hautement impossible de dériver un nonce à l’aide d’une formule. La seule façon de trouver le nonce est de deviner. Cela signifie que les mineurs doivent dépenser leur propre puissance de calcul pour parcourir un nombre potentiellement important de valeurs de 32 bits avant de tomber essentiellement sur celle qui répond aux exigences des zéros non significatifs. Le fait qu’ils aient trouvé le nonce prouve qu’ils ont fait le travail pour le trouver.

Assembler la blockchain

La cryptographie à clé publique garantit la sécurité des transactions entre deux comptes.

Les fonctions de hachage garantissent que les transactions sont valides, atomiques et pratiquement impossibles à modifier.

Le minage par preuve de travail garantit que les transactions sont confirmées et vérifiées par un tiers.

Toutes ces méthodes fonctionnant ensemble rendent le grand livre distribué, et donc une application comme la monnaie numérique, possible sur la blockchain.