novembre 14

Pourquoi la preuve de travail n’est pas un consensus (encore moins la preuve d’enjeu !)

Bitcoin, les blockchains, la technologie blockchain, les registres distribués c’est compliqué.

Déjà, c’est compliqué car c’est des concepts assez nouveaux, que l’on découvre d’un coup. Des notions technologiques, des notions mathématiques et des notions économiques, difficile de suivre.

Donc généralement, pour faciliter la découverte, on simplifie. Mais à trop simplifier, on passe parfois à côté de concepts intéressants, on en vient même à faire des erreurs.

Aujourd’hui je voulais revenir sur la notion de consensus, et le lien avec les preuves de travail, d’enjeu and co. Je ne suis pas du tout expert du sujet, mais ça m’intéressait donc on y va !

Qu’est-ce qu’un consensus ?

Si Bitcoin peut être comparé à un livre de compte partagé, il reste nécessaire de se mettre d’accord sur la version du livre à distribuer. C’est là que la notion de consensus intervient. Dans le cadre d’un réseau centralisé, c’est assez simple : un coordinateur central impose son ordre. Pour un réseau décentralisé, le consensus, ce n’est pas possible et des mécanismes plus avancés sont nécessaires.

Grossomodo un consensus doit permettre de :

  • Valider un état du réseau fixe.
  • Mettre d’accord les participants sur ledit état.
  • Que cet accord soit viable pour le réseau.

Mais alors qu’est-ce que la preuve de travail, d’enjeu et dérivés ?

Réponse rapide : ce sont des protocoles de défense contre les attaques Sybils.

Les attaques Sybils sont la création massive d’identités pour renverser un système de réputation. Dans les technologies blockchains (DLT pour être plus précis), une attaque Sybils serait la création de nombreux nœuds, propageant de fausses transactions. Des utilisateurs malicieux qui partageraient une version erronée du livre en quelque sorte.

Évidement, ce n’est aujourd’hui pas possible sur Bitcoin (plutôt extrêmement couteux), grâce à ces protocoles de défense !

L’idée de Satoshi Nakamoto était d’utiliser la preuve de travail, originalement mis en place par Adam Back pour Hashcash. Aujourd’hui, d’autres mécanismes existent comme la preuve d’enjeu, la preuve d’enjeu délégué et tant d’autres. Ces mécanismes restent similaires sur le fond, puisqu’ils utilisent une cryptomonnaie pour :

  • Récompenser un comportement honnête sur le réseau.
  • Rendre difficiles et couteuses les actions malicieuses.

Vous l’avez compris, ils permettent donc de sélectionner le prochain bloc de transaction à être distribué sur le réseau. Mais ça ne nous donne pas vraiment de nous mettre d’accord sur sa véracité ni sa place dans la chaine de bloc. C’est là que les algorithmes de consensus interviennent.

Les algorithmes de consensus

L’algorithme de consensus est exécuté après cette sélection du prochain bloc. C’est une suite d’instructions qui permettent aux participants de choisir d’ajouter ou non le prochain bloc. Il en existe de nombreux, qui peuvent être séparé en différentes familles :

  • Les classiques.
  • Les Nakamoto.
  • Avalanche.

Pour le cas de Bitcoin (ou d’autres blockchains, comme Ethereum), il n’existe pas vraiment d’instruction de consensus. Ils suivent plutôt la règle “de la chaîne la plus solide”. C’est-à-dire que la chaine soutenue par le plus de puissance de calcul. La preuve de travail représente donc quasiment tout le processus de consensus de Bitcoin ! D’où le raccourci général entre preuve de travail et consensus.

Mais des algorithmes de consensus, il en existe d’autres comme le PBFT (Practical Byzantine Fault Tolerance), HoneyBadger ou Feldman-Micali.

Chacun des algorithmes possède des particularités et est optimal dans une situation particulière. C’est généralement une question de nombre de nœuds dans le réseau et de capacité/vitesse de transaction.

Voilà pour ce petit billet sur le sujet des consensus dans les registres distribués. Je vous laisse des ressources qui m’ont aidé à découvrir le sujet, qui j’espère vous aideront également.

Ressources utiles :

Proof-of-Work is not a Consensus Protocol: Understanding the Basics of Blockchain Consensus. Stefan Beyer.

Qu’est-ce qui sécurise Bitcoin ? Ludovic Lars.

Qu’est-ce que la preuve de travail ? Ludovic Lars.


Continuez votre lecture

Rejoignez la communauté des crypto-entousiastes