Et si Bitcoin ne servait réellement à rien ?
Oui, vous avez bien lu. Bitcoin ne sert à rien, c’est ce que nous a affirmé le nouvel antagoniste du crypto twitter français, ce memesque détenteur d’un master en économie. Et malgré une défense longue d’une centaine de tweets, difficile à admettre que son argumentation était convaincante tant elle se concentrait plus sur le désaccord idéologique avec la sacro-sainte décentralisation, plutôt que sur des éléments tangibles et factuels. Mais la piètre exécution dont il a fait preuve ne doit pas nous enterrer sous le poids de notre auto-suffisance, c’est pourquoi je souhaite aujourd’hui jouer l’avocat du diable. Bitcoin ne sert à rien, et voici pourquoi.
Le consensus de Nakamoto
Comment construire un registre qui fait consensus entre plusieurs ordinateurs aux quatre coins du globe qui soit pérenne et tolérant aux partitionnements tout en supprimant le problème de la double dépense ?
Dans l’algorithmique, nous croisons souvent les termes de Liveness, Safety, et Fault Tolerant, mais dans nos contrées, nous pouvons les reporter à l’incessante production de blocs, de leurs finalisations, et de la résistance au problème des généraux byzantins. Ce ne sont pas des équivalences strictes, mais ça permet une approche plus vulgarisée.
Mais spoiler, construire un algorithme de consensus asynchrone qui vérifie ces trois propriétés est théoriquement impossible comme nous le verrons plus tard. C’est ce que l’on appelle l’impossibilité du consensus FLP. Toute la question est donc de trouver le meilleur moyen de contourner cette impossibilité avec le moins de contrepartie possible. La blockchain en apporte une solution élégante.
Pour répondre à cela, Satoshi Nakamoto a choisi d’intégrer une finalisation probabiliste dans un algorithme qui n’est que partiellement asynchrone. C’est ici qu’intervient la preuve de travail. Chaque transaction est intégrée dans un agrégat que l’on nomme un bloc qui contient une information du bloc le précédant. Chaque bloc pour être ajouté au registre nécessite une consommation énergétique par les mineurs qui résolvent un problème mathématique par force brute afin de devenir leader et ainsi propager la version mise à jour du registre. Si le nouveau bloc est valide, tous les mineurs doivent se resynchroniser sur ce dernier car le registre présenté est celui combinant la plus grande preuve de travail.
Voici, dans les grandes lignes, le principe du consensus de Nakamoto. Mais tout ça, vous le savez probablement déjà, alors pourquoi vous refaire une énième présentation de la technique ? Et si nous n’avions en réalité ni besoin de consensus, ni besoin de preuve de travail pour éviter le problème de la double dépense ? Alors Bitcoin serait-il en réalité une vraie consommation d’énergie inutile ?
L’algorithmique distribuée
Pour comprendre cela, nous allons devoir faire un détour par les fondamentaux de l’algorithmique distribuée qui sont au cœur même de la solution technique apportée par Bitcoin.
L’équivalence entre l’infiniment petit et l’infiniment grand
Avant de rentrer en détail dans la théorie, une notion importante à comprendre est celle de l’équivalence entre les réseaux à petite et à grande échelle.
Au sein de votre ordinateur, plusieurs processeurs collaborent pour vous offrir plus de puissance de calcul et communiquent ensemble à l’aide d’une mémoire partagée. C’est une forme d’algorithmique distribuée. Ceci est équivalent à un réseau à grande échelle composé de plusieurs ordinateurs qui communiquent par envoi de messages, à une condition près. Il devient nécessaire d’émettre une supposition sur le nombre d’ordinateurs fonctionnels, ou dans notre secteur, sur un quorum de nœuds qui sont honnêtes.
C’est pourquoi tout au long de cet article vous verrez utiliser le terme de processus pour parler aussi bien d’ordinateur, de nœud, que de processeur, et où l’utilisation d’une mémoire partagée ou d’un protocole d’envoi de message seront jugés équivalents pour répondre au fameux problème du consensus.
L’universalité du consensus
Tout d’abord, prenons le temps de redéfinir cette notion souvent galvaudée qu’est le consensus par le prisme de l’universalité. En 1936, Alan Turing théorise la machine de Turing, un processus abstrait capable de résoudre n’importe quel type d’algorithme. On dit alors d’un ordinateur ou de tout appareil mécanique de calcul qui répond à cette caractéristique qu’il est “Turing-complet”. La capacité de calculer tout ce qui peut l’être par une machine de Turing, c’est cela qu’on appelle l’universalité en théorie de l’information.
Avec les avancées de l’informatique, pour construire des systèmes plus puissants et polyvalents, il est devenu nécessaire de connecter plusieurs processus entre eux, sauf que ceci nous fait perdre la propriété d’universalité. Plusieurs machines de Turing connectées entre elles, ne forment pas obligatoirement une seule grande machine de Turing, car cela réduit le spectre des possibles en termes de calculabilité. Seul un ordre total dans les tâches à effectuer permet une calculabilité universelle.
Pour permettre cet ordre total, et donc l’universalité, nous avons besoin d’une primitive de communication parfaite entre les processus. C’est cet outil très puissant que l’on appelle le consensus. Le consensus est une condition nécessaire, mais aussi suffisante à l’élaboration d’un réseau de processus « Turing-complet ». C’est cette condition/suffisance à rétablir l’universalité « Turing » que l’on nomme l’universalité du consensus.
>> Mettez vos cryptomonnaies au vert. Choisissez un portefeuille Ledger (lien commercial) <<
L’impossibilité du consensus
Un protocole de communication qui résout le consensus entre n processus doit répondre aux trois propriétés suivantes :
- La terminaison (ou Liveness) : Tout processus fonctionnel doit finir par décider une valeur.
- Intégrité (ou Fault Tolerance) : Tout processus fonctionnel doit décider d’une valeur qui a été proposée par au moins un des processus.
- Accord (ou Safety) : Tout processus fonctionnel décide de la même valeur.
Problème, ces trois propriétés sont impossibles à atteindre pour un algorithme asynchrone dans le cas où au moins un processus pourrait faire défaut. Dans le cadre d’un réseau où la présence d’adversaire dit “Byzantins”, est probable, il en suffit d’un seul pour que le consensus ne soit jamais atteint.
Sauf que le théorème d’impossibilité FLP nous dit que cette dernière est vérifiée si et seulement si l’objet informatique qui sert à la résolution du consensus utilise uniquement des registres en mémoire partagée, ou si les communications sont totalement asynchrones dans un système d’envoi de messages. Il est donc possible de construire des objets plus puissants et malléables qui permettent le consensus. Par exemple des systèmes de communications qui implémentent des hypothèses de synchronisme.
En considérant l’universalité du consensus, son impossibilité implique le corollaire suivant :
« Si un objet informatique permet de résoudre le consensus, alors aucun algorithme distribué totalement asynchrone par envoi de message ou fonctionnant en mémoire partagé à travers des registres ne peut implémenter cet objet. »
Ce qui implique que si un problème donné peut être résolu avec un objet informatique qui ne permet pas de résoudre le consensus, alors ce problème ne nécessite pas de consensus pour être résolu.
Ce qui nous amène au principe du consensus number.
Le consensus number et la hiérarchie des consensus
Le consensus number d’un objet est le nombre de processus qui peuvent résoudre le consensus avec cet objet. Dès lors, nous pouvons construire un tableau classant le degré de difficulté d’implémentation des différents objets et des problèmes qu’ils permettent de résoudre à la manière d’un tableau périodique de Mendeleïev rapporté à l’algorithme distribué.
Cette hiérarchie des consensus permet d’établir des équivalences entre des objets de consensus à petite et à grande échelle. Une mémoire partagée utilisant uniquement des registres est équivalente à un protocole de communication par envoi de message totalement asynchrone, car tout deux ont un consensus number de 1. Ils ne permettent le consensus qu’avec soit même.
Le consensus de Nakamoto est inutile
Le consensus de Bitcoin permet d’éviter le problème de la double dépense, donc s’il nécessite le consensus, ce problème doit être difficile ! Pas selon Rachid Guerraoui, enseignant-chercheur à l’EPFL de Lausanne.
Selon lui, le problème de la double dépense peut être résolu sans avoir à passer par un consensus, car il ne nécessite pas d’ordre total permis uniquement par le consensus, mais seulement un ordre partiel des transactions. Seules les opérations de smart-contracts, qui elles nécessitent un ordonnancement total des différentes transactions, en ont effectivement besoin.
Pour preuve, cet article publié en 2019, « The consensus number of a cryptocurrency » où il démontre qu’un snapshot atomique en mémoire partagée suffit à éviter la double dépense. Étant un objet qui ne permet pas de résoudre le consensus, si ce dernier écarte la double dépense, alors la double dépense ne nécessite pas de consensus. “Simple, Basique” comme dirait Orelsan.
Bien que cette preuve s’applique à l’échelle microscopique en mémoire partagée, elle serait totalement applicable à un système distribué macroscopique grâce à un protocole de diffusion fiable tel que le Byzantine Reliable Broadcast, plutôt que le protocole TCP et la propagation de pair à pair utilisé par le réseau Bitcoin.
Cette solution se rapprocherait donc de certaines blockchains en Proof of Stake qui utilisent le pBFT (pratical Byzantine Fault Tolerance) comme Cosmos ou MultiversX, mais en éliminant complètement le besoin de consensus pour les transactions simples, améliorant encore l’efficience énergétique tout en se rapprochant d’un graphe acyclique (DAG) dans sa structure générale.
Rachid Guerraoui ira même plus loin avec ses compères en créant Astro en 2020, une expérience grandeur nature de leur premier papier théorique, qui, en environnement shardé et permissionned, permet d’atteindre 20,000 transactions par seconde sur 200 nœuds avec une latence de moins d’une seconde.
Leur expérimentation servira plus tard de référence à d’autres chercheurs de l’université de Lisbonne qui théoriseront NimbleChain, une blockchain hybride (et totalement permissionless cette fois) qui permet de s’abstraire du consensus pour les transactions simples, mais d’en avoir un pour gérer les smarts-contracts.
Alors notre antagoniste avait raison ? Bitcoin est une perte d’énergie pure et simple déjà obsolète ? Laissez-moi abandonner le diable, pour me ranger cette fois au côté des anges.
Bitcoin n’est pas qu’un réseau, c’est un cristallisateur entropique
Admettre que le consensus n’est pas une condition sine qua non à la résolution de la double dépense ne signifie pas pour autant que Bitcoin est une solution inutilement complexe à un problème simple. Car cela reviendrait à le dénuder de sa pertinence économique et de son idéal. Bitcoin n’est pas qu’un réseau, c’est aussi une monnaie.
Le consensus énergivore de Bitcoin n’est pas un bug, mais une feature. C’est ce qui lui permet de créer un bouclier énergétique afin de contrer les attaques Sybils tout en y incluant un certain darwinisme économique du côté des mineurs. Le supprimer demanderait une hypothèse forte sur la non-présence de byzantins au sein du réseau que l’on peut se permettre dans des environnements permissonned, mais non souhaitable dans un réseau aussi libre que Bitcoin. Une attaque 51 %, n’est pas évitée que par le Hashrate et l’incitation économique, mais aussi par un équilibre de Nash qui transforme la compétition en un jeu à somme positive. Prendre le contrôle de Bitcoin, c’est devenir le roi d’un château réduit à l’état de cendre.
Au-delà de sa résilience, le bitcoin est un retour à la cohérence dans une économie moderne qui a perdu tout ancrage énergétique à son système de valeur. Avec la fin des accords de Bretton Woods, les monnaies fiat sont venues s’extraire des lois de la physique et sont désormais pilotées en réaction à l’état de l’économie. Depuis, elles reposent sur une confiance totalement arbitraire qui s’érode un peu plus à chaque tempête économique.
Une société est semblable à toutes les structures auto-organisatrices de notre univers, elle dissipe de l’énergie pour se maintenir et évoluer dans le temps. L’individu n’est rien de plus qu’un atome d’hydrogène voguant au gré des courants convectifs de son soleil. Il se lie chimiquement avec ses pairs, perd et gagne en potentiel en fonction de ses échanges, pour se rapprocher d’une stabilité et d’une structure que le système considère noble. Les échanges sont de l’énergie, mais notre économie moderne a cru pouvoir s’en abstraire.
Depuis cinquante ans, les banques centrales jouent aux apprentis alchimistes en s’octroyant le droit de créer ex nihilo de la valeur adossée à aucun travail passé, et délègue même la création de celle qui sera, en revanche, l’écho de notre enchaînement social futur. Si Bitcoin ne peut être l’Alpha et l’Omega des différents états de la monnaie, il est un candidat solide à nos besoins de transporter la valeur d’un travail passé à travers le temps. Si le consensus se révèle être surdimensionné pour la simple résolution technologique au problème de la double dépense, c’est aussi pour permettre la cristallisation temporelle de notre capacité énergétique dans un nouveau type d’asset, afin de permettre l’échange.
Par sa capacité à lier les trois composantes fondamentales de toutes structures dissipatives que sont l’énergie, la matière et l’information, Bitcoin pourrait agir en constante, indépendamment des évolutions technologiques. Si la loi de Moore appliquée à notre capacité computationnelle et à la vitesse de transmission de l’information double tous les deux ans environ, la proportion du travail (W) disponible à l’échelle planétaire emprunté par les mineurs pourrait rester, à maturité, relativement constante dans le temps. Ce qui n’est pas sans faire écho à l’étalon-Joule proposé par Henry Ford en 1921, et Bitcoin fait même mieux. Car le kWh devient de moins en moins cher à produire à mesure que les révolutions technologiques se suivent, contrairement à une proportion d’un travail disponible.
D’où la recalibration de la difficulté de minage afin d’assurer une indépendance entre la valeur produite par le réseau et le potentiel de dissipation d’énergie de l’humanité qui lui ne fait qu’augmenter. Un mécanisme similaire peut être vu dans le halving qui permettrait de compenser l’augmentation exponentielle de la capitalisation du réseau amenée par son adoption. Ces deux propriétés fonctionneraient en symbiose, de sorte que la valeur extraite à chaque bloc soit représentative d’une capacité de calcul allouée à cet instant précis.
Si l’on considère le réseau mature, une coinbase en 2023, pourrait être égale en valeur à une coinbase en 2070, car toutes deux auront nécessité 0,5 % de l’énergie total disponible en leur temps pour être créées. (Bien qu’à mon humble avis, il manque une dernière pièce à ce puzzle avec une blocksize qui suivrait l’accessibilité à la puissance de calcul. Mais c’est une boîte de Pandore que je n’ouvrirai pas dans cet article.)
Selon cette vision presque métaphysique de la valeur, le consensus de Nakamoto serait une machine qui par sa mémorisation de l’information, effectuerait un arbitrage entropique entre la société humaine et son milieu extérieur.
Par ce biais, une nouveau véhicule de valeur adossée à l’énergie nécessaire à sa production est créé puis rendu accessible comme moyen d’échange intemporel, jusqu’à ce que le réseau soit autosuffisant en incitations économiques. Bitcoin, bien que possédant une part d’irrationalité dans la confiance qu’on lui porte, est venu redonner une certaine cohérence thermodynamique à une économie qui n’agissait plus que par promesse et contrat social.
Grâce à différents mécanismes complexes de théorie des jeux favorisant un darwinisme économique le plus pur, la confiance en Bitcoin est fonction de la capacité computationnelle maximale que l’humanité souhaite lui allouer. Plus que dans l’innovation technologique pure, sa vraie révolution se profile probablement dans sa capacité à créer de la valeur sur fond de chaos socio-économique.
Le consensus pour la résolution du problème de la double dépense n’est donc qu’une des nombreuses facettes de Bitcoin, et son inutilité théorique ne saurait justifier son abandon. En revanche, s’il n’est pas nécessaire de ce point de vue, cela serait-il un indice sur la vision de Satoshi à propos de l’évolution du réseau ?
Si le consensus, aussi complexe et énergivore soit-il, permet la construction d’un gigantesque ordinateur à l’échelle d’Internet, sa présence ne demandait peut-être qu’à être utilisée à son plein potentiel. C’était l’avis de Vitalik Buterin, qui, ne trouvant pas assez de soutiens au sein de la communauté Bitcoin, finira par créer Ethereum.
Pour conserver vos avoirs cryptographiques à l’abri, la meilleure solution est encore un wallet hardware personnel. Chez Ledger, il y en a pour tous les profils et toutes les cryptos. N’attendez pas pour mettre vos capitaux en sécurité (lien commercial) !