Cet article introduit un nouveau dossier-série qui a pour but de présenter les principaux algorithmes de consensus utilisés dans la blockchain : le Proof of Work (preuve de travail), le Proof of Stake (preuve d’enjeu) et le Delegated Proof of Stake (preuve d’enjeu déléguée).
Si vous êtes totalement néophyte, lisez Le Bitcoin, Kézako puis le dossier-série Comprendre (pour de vrai) la blockchain afin de saisir les propos qui suivent.

Les algorithmes de consensus dans la blockchain (PoW, PoS & DPoS)

La notion de décentralisation est un des concepts clés dans la blockchain, même si certains organismes créent des blockchains centralisées, tel que Ripple.
Toutefois, les réseaux décentralisés ont leurs limites. Le théorème CAP démontre, en effet, qu’il est impossible d’assurer simultanément (de manière synchrone) les trois conditions suivantes :

  • La cohérence : tous les noeuds du système voient précisément les mêmes données au même moment

  • La disponibilité : est la garantie que toutes les requêtes reçoivent une réponse

  • La tolérance au partitionnement : rien, sauf une coupure totale du réseau, peut empêcher le système de répondre correctement

Dans le cas de la blockchain, la tolérance au partitionnement est vérifiée, puisqu’à moins que tous les noeuds (soit un nombre conséquent d’ordinateurs) soient éteints ou en panne au même moment, il y en aura toujours un pour répondre aux requêtes.

La disponibilité est également assurée puisque le réseau fonctionne sans interruption et la neutralité du réseau assure que toute requête est traitée tant que les frais d’exécution de la requête sont payés.

Par contre la cohérence n’est pas une condition permise par la blockchain. En effet, pour diverses raisons, deux noeuds différents peuvent observer, avec un décalage, deux transactions effectuées au même moment. Elles ne seront donc pas prises en compte dans le même ordre.

Exemple

Si je possède un seul bitcoin et que je fais une transaction de 1 bitcoin à ma soeur et une autre du même montant à mon père, techniquement, seulement l’une d’entre elles devrait être réalisée puisque je n’ai pas assez de bitcoin pour en donner un à chacun.

Par conséquent, la question se pose de savoir laquelle des deux sera validée.

Pour le noeud 1, la transaction en direction de ma soeur est la première qui est apparue sur le réseau, il la prendra en compte et la seconde, celle en direction de mon père sera refusée car selon le noeud 1, j’ai déjà envoyé mon bitcoin à ma soeur.


Pour le noeud 2 c’est le contraire, il a d’abord vu la transaction en direction de mon père et l’a acceptée, mais a refusé celle en direction de ma soeur.

La cohérence n’est donc pas vérifiée puisque les deux noeuds n’ont pas vu la même chose au même moment. Comment savoir quelle version des faits sera retenue ?

C’est là qu’intervient la notion de consensus et les algorithmes qui vont avec. Le consensus a pour but de mettre tous les noeuds d’accord sur la version des faits à retenir. Pour cela, selon les blockchains, différents algorithmes de consensus existent dont les plus connus sont le Proof of Work et le Proof of Stake.
Ces algorithmes définissent la manière par laquelle le consensus sera obtenu, autrement dit, ils permettent de définir quel noeud détient la version des faits qu’on conservera.

Les articles suivants de ce dossier-série détailleront :

– Le Proof of Work (utilisé par Bitcoin notamment)

Le Proof of Stake (bientôt utilisé par Ethereum)

Le Delegated Proof of Stake (utilisé par plusieurs blockchains telles que EOS ou Lisk)


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *