Introduction :
Tout comme le réseau Bitcoin, à l’heure actuelle Ethereum utilise un mécanisme de consensus basé sur la preuve de travail (proof of work) pour construire et sécuriser la blockchain. Néanmoins, dans une prochaine phase de développement, Serenity, le réseau Ethereum implémentera Casper, un mécanisme de consensus basé sur la preuve d’enjeu (proof of stake), une méthode de validation tout à fait différente. A l’occasion de l’EDCON, conférence autour du développement d’Ethereum se tenant les 17 et 18 février à Paris, voici la traduction française d’un article dense et technique de Vitalik Buterin, co-fondateur d’Ethereum, qui expose sa vision des systèmes de consensus basés sur cette fameuse proof of stake. Pour d’autres informations et traductions françaises, visitez Ethereum France.
Article original : “A Proof of Stake Design Philosophy” par Vitalik Buterin publié le 30 décembre 2016 sur Medium. Traduction française, annotations : Morgan Phuc pour BitConseil.
. . .
Fondamentalement, les systèmes comme Ethereum (et Bitcoin, NXT, BitShares, etc…) sont une nouvelle classe d’organismes crypto-économiques – des entités décentralisées, sans juridiction, qui existent entièrement dans le cyberespace, fonctionnant grâce à la combinaison entre cryptographie, économie et consensus social. Ils sont presque semblables à BitTorrent, mais aussi différents, car BitTorrent ne possède pas le concept “d’état” – une distinction qui s’avère être d’une importance cruciale. Ils sont parfois décrits comme des corporations autonomes décentralisées, mais ils ne sont pas tout à fait comme des corporations – vous ne pouvez pas effectuer une hard fork[1] de Microsoft. Ils sont semblables aux projets de logiciels open source, mais pas en tous points – vous pouvez “fork”[2] une blockchain, mais pas aussi facilement que vous le feriez avec OpenOffice[3].
Ces réseaux crypto-économiques ont de nombreuses déclinaisons – preuve de travail basée sur les puces ASIC[4], preuve de travail par GPU[5], preuve d’enjeu naïve, preuve d’enjeu déléguée, et nous l’espérons bientôt la preuve d’enjeu de Casper – et chacune d’entre elles possède inévitablement sa propre philosophie sous-jacente. Un exemple bien connu est la vision maximaliste de la preuve de travail, où “la” blockchain correcte, unique, est définie comme étant la chaîne dont la production a demandé la plus grosse dépense (en termes de capital économique) de la part des mineurs. Ce mécanisme, originellement une simple règle de choix de “fork” interne au protocole, a été dans de nombreux cas érigé comme principe sacré – voir cette discussion sur Twitter entre Chris DeRose et moi-même pour voir l’exemple de quelqu’un tentant sérieusement de défendre l’idée sous sa forme pure, même face à une hard fork qui modifierait l’algorithme de hachage[6]. La preuve d’enjeu déléguée de BitShares présente une autre philosophie cohérente, où là encore tout dérive d’un seul principe, mais un principe qui peut être défini encore plus simplement : le vote des actionnaires.
Chacune de ces philosophies – le consensus de Nakamoto, le consensus social, et le consensus par vote des actionnaires – conduit à son propre ensemble de conclusions et amène à un système de valeurs qui fait sens lorsqu’il est vu dans son propre contexte, bien que ces trois approches puissent certainement être critiquées lorsqu’elles sont comparées les unes aux autres. Le consensus de Casper a aussi un fondement philosophique, bien qu’il n’ait pas été articulé aussi succinctement.
Moi-même, Vlad, Dominic, Jae et les autres avons tous notre point de vue sur les raisons d’être des protocoles basés sur la preuve d’enjeu et leur mise en place, mais j’ai l’intention ici d’expliquer mon opinion personnelle.
Je procéderai en listant mes observations puis mes conclusions directement.
- La cryptographie du 21ème siècle est vraiment spéciale car c’est l’un des rares domaines dans lesquels un conflit entre deux adversaires continue de favoriser fortement le défenseur. Les châteaux sont beaucoup plus faciles à détruire qu’à construire, les îles sont défendables mais peuvent quand même être attaquées, mais les clefs ECC[7] d’une personne moyenne sont suffisamment sécurisées pour résister même à des acteurs du niveau d’un Etat. Fondamentalement, la philosophie cypherpunk exploite cette précieuse asymétrie afin de créer un monde qui préserve au mieux l’autonomie de l’individu, et la crypto-économie, dans une certaine mesure, en est une extension; sauf qu’il s’agit cette fois de protéger la sécurité et la vivacité de systèmes complexes de coordination et de collaboration, plutôt que simplement l’intégrité et la confidentialité de messages privés. Les systèmes se considérant eux-mêmes comme des héritiers idéologiques de l’esprit cypherpunk devraient maintenir cette propriété de base, et être beaucoup plus coûteux à détruire ou à perturber qu’ils ne le sont à utiliser et à maintenir.
- “L’esprit cypherpunk” n’est pas qu’un idéalisme; la création de systèmes qui sont plus faciles à défendre qu’à attaquer est tout simplement une des bases de l’ingénierie.
- Sur les échelles du moyen et du long terme, les êtres humains sont plutôt doués lorsqu’ils s’agit d’obtenir un consensus. Même si un adversaire ayant accès à une puissance de hachage illimitée lance une attaque de type 51% modifiant l’historique du dernier mois sur n’importe quelle blockchain majeure, convaincre la communauté que sa chaîne est légitime sera beaucoup plus difficile que de simplement dépasser la puissance de hachage de la chaîne principale. Il faudrait subvertir les explorateurs de blocs, chaque membre reconnu de la communauté, le New York Times, archive.org, et de nombreuses autres sources sur Internet; en fin de compte, convaincre le monde que la chaîne de l’attaquant est la bonne, au vu de la densité des technologies de l’information en ce 21ème siècle, est aussi difficile que de convaincre le monde que les américains n’ont jamais posé le pied sur la Lune. Ces considérations sociales sont l’ultime protection de n’importe quelle blockchain au long terme, que ce soit admis ou non par la communauté (notez que Bitcoin Core admet cette primauté de la couche sociale).
- Cependant, une blockchain protégée par le seul consensus social serait bien trop lente et inefficiente, et les discussions autour des points de désaccords seraient sans fin (bien que malgré toutes ces difficultés, cela se soit déjà produit); par conséquent, le consensus économique joue à court terme un rôle extrêmement important quant à la protection de ces propriétés (vivacité et sécurité).
- Etant donné que la sécurité offerte par la preuve de travail ne peut provenir que des récompenses offertes pour les blocs minés (selon Dominic Williams, il manque deux des trois “E” nécessaires pour résister aux attaques Sybil[8]), et que les incentives[9] des mineurs peuvent seulement venir du risque de perdre la récompense future, la preuve de travail opère nécessairement dans une logique de puissance massive incitée par des récompenses massives. La récupération face aux attaques dans un système basé sur la preuve de travail est très difficile : la première fois que cela arrive, vous pouvez changer le mécanisme de preuve de travail via une hard fork et rendre ainsi les ASICs de l’attaquant inutiles, mais la deuxième fois vous n’avez plus cette option, et l’attaquant peut donc attaquer encore et toujours. Par conséquent, la taille du réseau minier doit être telle que les attaques deviennent inconcevables. L’apparition des attaquants d’une taille inférieure à X est découragée en faisant dépenser X par le réseau chaque jour. Je rejette cette logique car : (i) elle tue les arbres[10], et (ii) elle ne suit pas l’esprit cypherpunk – le ratio entre le coût de l’attaque et le coût de la défense est de 1 pour 1, donc il n’y a aucun avantage pour le défenseur.
- La preuve d’enjeu rompt cette symétrie en s’appuyant non pas sur des récompenses afin d’assurer la sécurité du réseau, mais plutôt sur des pénalités lorsque celle-ci est compromise. Les validateurs mettent de l’argent (les «dépôts») en jeu, et sont légèrement récompensés pour le blocage de leur capital, le maintien des nœuds, et la prise de précautions supplémentaires afin d’assurer la sécurité de leur clef privée, mais la majeure partie du coût d’une opération de réécriture des transactions provient de pénalités qui sont des centaines ou des milliers de fois plus élevées que les récompenses qu’ils pourraient obtenir dans cet intervalle temporel. La philosophie de la preuve d’enjeu résumée en une phrase n’est donc pas «la sécurité vient de l’énergie dépensée», mais plutôt «la sécurité vient des pertes économiques engendrées par une attaque». Un bloc ou un état donné a une sécurité de X $ si vous pouvez prouver que pour n’importe quel bloc ou état conflictuel, obtenir un niveau égal de finalisation n’est possible que si les noeuds malveillants se coordonnent et paient X $ de pénalités afin d’effectuer son remplacement.
- Théoriquement, une collusion majoritaire de validateurs pourrait prendre le contrôle d’une blockchain basée sur la preuve d’enjeu, et commencer à agir de manière malveillante. Cependant, (i) grâce à une conception intelligente du protocole, leur capacité à générer des profits supplémentaires grâce à une telle manipulation peut être limitée autant que possible, et plus important (ii) s’ils essaient d’empêcher les nouveaux validateurs de venir ou exécutent une attaque de type 51%, alors la communauté peut simplement coordonner une hard fork et supprimer les dépôts des validateurs attaquants. Une attaque réussie pourrait coûter 50 millions de dollars, tandis que le processus de nettoyage des conséquences ne serait pas beaucoup plus onéreux que le coût de la correction du bug de geth/parity le 25 novembre 2016.[11] Deux jours plus tard, la chaîne de blocs et la communauté seront de retour sur la bonne voie, les attaquants auront perdu 50 millions de dollars, et le reste de la communauté sera probablement plus riche car l’attaque aura causé une augmentation de la valeur du jeton à cause du resserrement de l’offre qui en résulte. C’est une asymétrie attaque/défense en votre faveur.
- Ce qui précède ne signifie pas que les hard forks non programmées deviendront une occurrence régulière; si on le désire, le coût d’une attaque de type 51% sur la preuve d’enjeu peut certainement être fixé pour être aussi élevé que celui d’une attaque de type 51% permanente sur la preuve de travail, et son coût total, en plus de son inefficacité, devraient assurer qu’une telle attaque ne sera quasiment jamais tentée dans la pratique.
- L’économie ne fait pas tout. Les acteurs individuels peuvent être motivés par des motifs extra-protocolaires, ils peuvent se faire pirater, kidnapper, ou ils peuvent tout simplement se saoûler et décider de détruire la blockchain quel qu’en soit le prix. En outre, sur le plan positif, l’absence de morale des individus et l’inefficacité de leur communication augmenteront souvent le coût d’une attaque vers un niveau bien supérieur à sa valeur nominale définie par le protocole. C’est un avantage sur lequel nous ne pouvons pas nous reposer, mais que nous ne devrions en même temps pas négliger.
- Par conséquent, les meilleurs protocoles sont ceux qui fonctionnent bien sous une variété de modèles et d’hypothèses – rationalité économique et choix coordonné, rationalité économique et choix individuel, tolérance aux pannes simples, tolérance aux pannes byzantines (et à leurs variantes adaptatives et non adaptatives), les modèles économiques comportementaux inspirés par Ariely/Kahneman (“nous trichons tous un peu”), et idéalement tout autre modèle qui est réaliste et facile à mettre en pratique. Il est important d’avoir les deux niveaux de défense : des incitations économiques décourageant les cartels centralisés d’agir de façon antisociale et des incitations anti-centralisation décourageant la formation de ces cartels en premier lieu.
- Les protocoles de consensus dont le but est de fonctionner aussi vite que possible présentent des risques et devraient être abordés en prenant de grandes précautions, car si la possibilité d’être très rapide est liée à l’incitation à le faire, cette combinaison récompensera des niveaux de centralisation du réseau très élevés, présentant des risques systémiques (par exemple, tous les validateurs fonctionnant à partir du même fournisseur d’hébergement). Les protocoles de consensus qui ne se soucient pas trop de la vitesse à laquelle un validateur envoie un message, tant qu’ils le font dans un intervalle de temps acceptable (par exemple, 4-8 secondes, car nous savons empiriquement que la latence du réseau Ethereum est généralement comprise entre 500 ms et 1 seconde) n’ont pas ces préoccupations. Un terrain intermédiaire possible est la création de protocoles qui peuvent fonctionner très rapidement, mais où la mécanique semblable à celle d’Ethereum assure que la récompense d’un nœud augmentant son degré de connectivité réseau au-delà d’un certain point facilement atteignable est assez faible.
À partir de là se dessinent bien sûr de nombreux détails et des discussions divergeant tout autour, mais ce qui a été énoncé précédemment représente les principes fondamentaux sur lesquels se base au moins ma version de Casper. Nous pouvons certainement débattre des compromis entre ces valeurs concurrentes. Est-ce que nous donnons à l’éther un taux d’émission annuel de 1% en obtenant un coût de 50 millions de dollars pour forcer une hard fork corrective, ou un taux d’émission annuel nul en obtenant un coût de 5 millions de dollars ? Quand augmente-t-on la sécurité d’un protocole en vertu du modèle économique plutôt que de diminuer sa sécurité dans le cadre d’un modèle de tolérance aux pannes ? Nous préoccupons-nous davantage d’avoir un niveau de sécurité prévisible ou un niveau d’émission prévisible ? Toutes ces questions seront le sujet d’un autre article, et les différentes façons de mettre en œuvre ces compromis seront traitées dans encore plus d’articles. Mais nous y arriverons 🙂
Commentaires