October 15, 2024

Biotechnologie News

Classe Mondiale Technologie

Blockchain 101 : Blockchains et mécanismes de consensus

Blockchain 101 : Blockchains et mécanismes de consensus

Les crypto-monnaies sont en plein essor en 2021, avec une capitalisation boursière passant de 750 à plus de 3 000 milliards de dollars. Avouons-le, cela est principalement dû à la spéculation. De nombreuses personnes impliquées n’ont aucune idée de ce qui se cache derrière les jetons dans lesquels elles investissent.

Mais si nous mettons cela de côté et examinons les fondamentaux techniques, nous pouvons reconnaître que 2020-2021 apporte un tas de nouvelles blockchains avec des mécanismes de consensus meilleurs et plus rapides (viables ?), comme Preuve de participationet de nouvelles applications largement utilisées, comme finance décentralisée (DeFi) et Jetons non fongibles (NFT).

Avant d’entrer dans ceux-ci, nous devons prendre du recul : qu’est-ce qu’une blockchain ? Une crypto-monnaie ? UN Preuve de travail? Un bloc? Un porte-monnaie? UN contrat intelligent? La Machine virtuelle Ethereum (EVM)? Un Jeton ERC-20? Un NFT ? Finance décentralisée (DeFi) ? Oracles ?

Cet article est le premier d’une série de 3 qui se concentre sur les fondamentaux techniques derrière la crypto :

Avis de non-responsabilité : Il ne s’agit pas d’un conseil financier.

Qu’est-ce qu’une blockchain ?

Une blockchain est décentralisée base de données peer-to-peer sans confiance qui stocke un type particulier de données : les blocs. Les blocs sont immuables et ordonnés dans une chaîne, un bloc n’ayant qu’un bloc précédent et un bloc suivant. D’où le terme « blockchain ».

Un bloc se compose de :

  • UN horodatage;
  • Un tas de enregistrements;
  • UN pointeur vers le bloc précédent (son hachage).

Dans les blockchains les plus populaires (par exemple Bitcoin, Ethereum), aussi appelé registres distribuésles enregistrements stockés par blocs sont transactions. Exemple de transactions : transferts de pièces ou appels de fonction (plus à ce sujet plus tard).




Blockchain 101 : Blockchains et mécanismes de consensus

Mécanismes de consensus

La plupart des chaînes de blocs sont sans autorisation: chacun est libre d’ajouter des serveurs au réseau et d’interagir avec la blockchain, y compris les acteurs malveillants. Les blockchains devaient trouver mécanismes de consensus qui garantissent que chaque bloc écrit dans la base de données est valide.

Ces mécanismes de consensus reposent sur cryptographie et théorie des jeux: il doit être plus rentable d’écrire des transactions légitimes en blocs que d’essayer d’écrire de fausses transactions (par exemple, créer des pièces de nulle part).

Preuve de travail

Preuve de travail (PoW) a été le premier mécanisme de consensus à être conçu et mis en œuvre. Bitcoin et Ethereumles blockchains les plus populaires, sont basées sur PoW et se sont avérées incassables : elles n’ont jamais été piratées.

Plongeons-nous dans l’implémentation Bitcoin de PoW. Cela nous aidera à comprendre comment la cryptographie et la théorie des jeux sont utilisées ensemble dans la blockchain. Je suppose que vous savez ce qu’est un hacher est dans la section suivante.

Exploitation minière

Vous avez probablement déjà entendu le terme « mining », qui signifie participer à ajouter des blocs à la blockchain.

Pour être ajouté à la blockchain, un bloc est associé à son hachage (qui sera référencé par le bloc suivant). Le hachage du bloc est calculé sur :

  • Le bloc horodatage;
  • Le bloc transactions (le nombre de transactions contenues dans le bloc est limité par la taille maximale du bloc : 1 Mo pour Bitcoin) ;
  • La hachage du bloc précédent;
  • UN nonce (un nombre qui est choisi pour correspondre à des conditions spécifiques).

Le hachage doit satisfaire la condition suivante être accepté par le réseau : être plus petit que le hachage cible. Un hachage cible est une valeur numérique en hexadécimal utilisée pour définir la difficulté du processus de minage. Il peut être ajusté pour l’augmenter ou l’abaisser, adaptant ainsi le taux de minage. (Par exemple, pour Bitcoin, le hachage cible est ajusté par le réseau de sorte que un bloc est miné toutes les 10 minutes).

Un hachage cible typique ressemble à ceci : 0000000000000000000633b91a8cd72235104935c9d3af0b0edae9ad6f89f4ef. Le nombre de zéros non significatifs est ce qui rend le hachage difficile à trouver car il diminue la taille du hachage cible.

La seule pièce modifiable d’un bloc est le nonce. Donc, pour trouver le bon hachage, mineurs (nœuds de la blockchain) doivent itérer sur tous les nonces possibles jusqu’à ce qu’ils trouvent le bon.


block_nonce = 0
while block_hash > TARGET_HASH:
  block_hash = hash(
    1635971597,                    
    '00000000...0edae9ad6f89f4ef', 
    'f5ef4359...efe2bf58b7c02557', 
    block_nonce                    
  )
  block_nonce += 1

add_to_chain(...)

Regardez à quoi ressemble un bloc Bitcoin sur un explorateur : par exemple sur Blockchain.com Explorateur Bitcoin!

Bloquer les récompenses

Le premier mineur à trouver un nonce correspondant est récompensé par quelques Bitcoinsmais seulement si le bloc est encore validé par d’autres pairs.

Cette règle rend tous les les mineurs se font concurrence et conduisent les serveurs de mineurs à être de plus en plus puissants pour gagner des Bitcoins. Les serveurs mineurs sont donc cher à l’achat et à l’électricité.

La théorie des jeux entre en jeu à ce stade : avoir une chance de gagner la course pour miner un bloc, il faut dépenser beaucoup d’argent en matériel et en énergie; et pour gagner de l’argent (= Bitcoins) les transactions qui sont dans le bloc doivent encore être validé par le réseau (pairs). Si un mineur essaie de pousser de fausses transactions, le bloc sera ne pas être validé et le mineur non récompensé. Par conséquent, il va perdre l’argent investi dans le processus de minage !

Immuabilité renforcée par la cryptographie et la théorie des jeux

S’appuyer sur des hachages garantit que la blockchain est immuable : modifier une seule transaction dans un bloc serait totalement changer le hachage du bloc. Mais parce que le prochain bloc de hachage de ce dernier, son hachage changerait également !

Les développeurs d’applications utilisant Git connaissent ce concept : toute modification d’un commit précédent génère un hachage divergent pour tous les commits ultérieurs et la branche divergera alors de la distance.

Disons que quelqu’un veut modifier une transaction qui s’est produite il y a 4 blocsil va devoir:

  1. Trouver l’annonce du bloc modifié (en n’utilisant que le pouvoir de quelques mineurs complices) ;
  2. Trouvez l’annonce pour chacun des 4 blocs suivantscar leurs hachages seraient tous modifiés ;
  3. Faites en sorte que le réseau valide les blocs.

On peut imaginer que ce processus coûtera énorme quantité d’énergie avec faibles chances de succès: ce n’est pas la peine d’essayer !

Limites de la preuve de travail

Le mécanisme de consensus PoW est excellent pour sécuriser la blockchain Bitcoin mais c’est :

  • Lent: 1 bloc toutes les 10 minutes ;
  • Coûteux et mauvais pour l’environnement : beaucoup de matériel et de puissance sont nécessaires;
  • Ne s’adapte pas bien : une grande partie du travail est fait pour rien parce que les mineurs sont en concurrence ;
  • Sensible à l’attaque 51% : si une organisation possède plus de 51 % des mineurs, elle peut choisir les transactions autorisées à être écrites dans la blockchain en invalidant les blocs.

Toutes ces limitations ont conduit à la conception de nouveaux mécanismes de consensus.

Preuve de participation

Preuve de participation (PoS) est l’alternative la plus largement adoptée au PoW. Dans PoS, les nœuds ne sont pas appelés mineurs mais validateurs et dois miser (= verrouiller) un grand nombre de jetons pour participer aux validations de blocs.

Pour chaque bloc, un groupe de validateurs est choisi pour validation (qui est souvent basé sur le quorum). Le nombre de blocs avec lesquels un validateur est impliqué est proportionnelle à la taille de sa participation: s’il possède 1% des pièces de la blockchain, il sera sélectionné pour 1% des validations.

Comme dans PoW, les nœuds sont récompensé lors de la validation des blocs et la cryptographie est utilisée pour assurer l’immuabilité.

Il existe de nombreuses implémentations différentes de PoS, voici quelques exemples :

D’autres mécanismes ?

D’autres mécanismes de consensus que PoW et PoS existent, mais aucun d’entre eux n’a encore atteint une adoption massive.

Conclusion

Dans cet article, nous avons effleuré le fonctionnement des blockchains et des mécanismes de consensus. Dans le prochain, nous parlerons davantage de la façon d’interagir avec les registres distribués et la blockchain.

Si vous voulez en savoir plus, il existe de nombreuses documentations détaillées. Quelques exemples: