Qu'est-ce que le Delegated Proof of Stake (DPoS) ?

L'algorithme de Proof of Work de Bitcoin s'est montré capable avec le temps de valider les transactions en toute sécurité. Mais s'il consomme aujourd'hui plus d'électricité que la Suisse, Il ne peut toujours traiter aujourd'hui que quelques transactions par seconde (4.6 en moyenne), alors que le réseau VISA en traite 1700/s au quotidien. Heureusement, les développeurs de la cryptosphère ont depuis imaginé des solutions, et elles sont impressionnantes d'ingéniosité.

Les garanties que les cryptomonnaies doivent assurer

Il faut d'abord comprendre l'intérêt de la preuve de travail (Proof of Work) pour tenter de le remplacer. Dans un système de monnaie électronique, il y a plusieurs propriétés essentielles à vérifier sur chaque transaction pour que le système ne puisse être exploité. Entre autres:

  • Authentification de l'auteur: vérifier que le propriétaire du compte sortant est bien à l'origine de la transaction.
  • Non-répudiation de la transaction: assurer que l'auteur ne puisse pas se dédire de la transaction
  • Solvabilité de l'émetteur.

Les deux premier point sont assurés par un système de clés asymétriques. Bitcoin génère pour chaque adresse une clé publique et une clé privée, l'émetteur signant ses transactions avec sa clé privée. Étant le seul détenteur de cette clé, il est le seul à avoir pu émettre cette transaction.

Le troisième point est, en revanche, plus délicat. Bitcoin n'est pas, comme les système monétaires classiques, un Dans l'industrie financière classique, on utilise des systèmes de traitements transactionnels dans lesquels on peut facilement opérer plusieurs changements de données en même temps. Par exemple, si vous envoyez 10€ à un ami, dans un système transactionnel, l'opération qui retirera 10€ de votre compte et ajoutera 10€ à celui de votre ami est atomique. Elle ne sera validée que lorsque les deux sous-opérations seront terminées. Il n'existe pas de moment de flottement, où, si la bonne machine venait à planter ou s'éteindre, vous pourriez envoyer 10€ à votre pote ET conserver vos 10€.

La blockchain de Bitcoin fonctionne différemment, elle n'est pas un système transactionnel, mais un réseau peer to peer. Il lui est donc primordial de se prémunir contre les attaques à double dépense, sinon Bitcoin ne vaudrait pas un clou. Et c'est à ça que servent les mécanismes de consensus, comme le Proof of Work.

Le Proof of Work

Chaque noeud du réseau possède un ensemble de transactions en attente de validation, et le premier qui passera l'épreuve du Proof of Work (résoudre un problème très difficile, qui nécessite énormément de calculs) validera ses transactions, en les ajoutant au nouveau bloc de la blockchain, block qui sera synchronisé avec tout le monde. Ensuite, tous les noeuds du réseaux essayeront de résoudre le nouveau problème du PoW (qui dépend du dernier bloc ajouté).

Il est impossible de prédire quel sera le noeud qui réussira la prochaine épreuve et ajoutera le prochain bloc. Comme on vérifie qu'au sein d'un même bloc il n'y ait pas de double dépense, pour réussir, une attaque de type double dépense doit donc être capable d'ajouter plusieurs blocs différents sur le réseau avant que les blocs ne soient déjà propagés partout. C'est possible en théorie si on dispose d'une puissance de calcul faramineuse (voir l'attaque des 51%), en pratique irréalisable.

Les algorithmes alternatifs au Proof of Work doivent donc proposer d'autres mécanismes de défenses aux attaques à double dépenses, également efficace.

Le Proof of Stake: la preuve d'enjeu

Si personne ne possède aujourd'hui une puissance de calcul suffisante pour contrôler le réseau Bitcoin, c'est pour deux raisons liées. La première, c'est que cela représente un investissement absolument colossal. Aujourd'hui, le réseau bitcoin calcule 150 millions THash (Tera-Hash) de type SHA256 (l'algorithme de hashage de Bitcoin) par seconde.

Si vous achetez une des machines de minages les plus performantes actuellement, pour environ 3000$ et une grosse facture d'electricite, vous pourriez acquérir une machine capable de miner à 14 THash/s. Pour atteindre les 75 millions de THash nécessaire, il vous faut donc un peu plus de 10.7 millions de machines comme celles-ci, et probablement un énorme datacenter pour gérer tout ça. Ca représente un investissement de 32 milliards d'euros simplement pour les machines, et il faudra probablement tripler cette somme pour les infrastructures et les moyens humains pour organiser tout ça.

La blockchain pourrait intégrer tout un tas de défenses contre une telle entreprise (bannissement des machines, etc), mais peu importe les détails technique, une telle attaque est irréalisable.

La deuxième raison, c'est qu'en cas de succès d'une telle opération, les gains seraient... nuls. Quel est l'intérêt d'aller investir des sommes à 11 chiffres pour pouvoir dupliquer des unités d'une cryptomonnaie qui ne vaut plus rien ? Et si l'intérêt est justement l'effondrement de cette cryptomonnaie, iront-il réitérer l'opération pour chaque clone, fork, ou autre cryptomonnaie qui naîtra (avec de nouvelles défenses ) ? Le jeu n'en vaut pas la chandelle, et c'est précisément cette idée qui est à la racine du Proof of Stake.

L'idée du Proof of Stake est de demander au noeud qui tente de valider des transactions sur le réseau de bloquer d'importante quantité de cryptomonnaie. En fonction de la quantité bloquée, il aura une probabilité plus au moins grandes de construire le prochain bloc. Comme le Proof of Work demandait une gigantesque puissance de calcul (et donc un investissement gigantesque) pour corrompre la blockchain, le Proof of Stake lui demande directement un investissement gigantesque. Ce processus allégé évite de devoir faire tourner un grand nombre de machine pour trouver la solution d'un problème qui n'a d'autre intérêt que de créer un bloc.

Le mécanisme de Proof of Stake est en cours d'implémentation dans Ethereum 2.0, mais semble insuffisant pour fournir à Ethereum la vitesse et des frais de transactions assez bas.

Le Delegated Proof of Stake (preuve d'enjeu déleguée)

La preuve d'enjeu déléguée est une variante de la preuve d'enjeu dans laquelle chaque possesseur du token de la blockchain peut participer au protocole de consensus, en déléguant ses droits de vote à un noeud (à l'image de la démocratie représentative). Le noeud cumule alors plus d'enjeu que sa propre mise: il détient également les enjeux de ses délégants. Les délégants gardent une forme de contrôle: ils peuvent choisir et changer au besoin les noeuds auxquels ils délèguent leur pouvoir.

En faisant participer tout les détenteurs du token, mais laissant les noeuds gérer les transactions, la blockchain peut atteindre des objectifs supplémentaires:

  • Maximiser les dividendes des actionnaires
  • Minimiser les frais de sécurisation du réseau
  • Maximiser les performances du réseau
  • Maximiser les coûts du réseau

Ceci s'explique par le fait que les algorithmes de DPoS sont généralement conçu de manière à ceux les meilleurs noeuds pour le réseaux soient ceux qui répondent le mieux aux critères de la blockchain:

  • Un bon uptime est nécessaire (si le noeud est trop longtemps hors-ligne, les récompenses descendent)
  • Une décentralisation peut être assurée par des rendements décroissants voir nuls passé une certaine limite d'enjeu, ce qui incitera les délégants à aller déléguer sur d'autres noeuds
  • Le juste prix des frais de transactions est rapidement atteint par rapport à la décentralisation voulue: par exemple si la validation d'une transaction coûte x, alors un réseau décentralisé de 1000 noeuds pourra tourner avec des frais de transactions moyens de 1000*x)