Dans le présent article, nous revenons sur une période particulièrement tumultueuse qui a sévi sur Bitcoin en 2017 et dont le dénouement se situa au mois d’août de la même année.
Nous allons parler de désaccords, de divisions, de trahisons parfois, de solutions extrêmes, d’échanges à la limite de la correction, de ‘forks‘ puis finalement d’une lente et progressive victoire du bon sens, décidée par la majorité ; bref, une véritable guerre technique et idéologique… qui finit bien : la ‘guerre des blocs’.
Gonflé ‘à blocs’
Un conflit latent existait déjà depuis longtemps chez les bitcoineurs, alimenté par des désaccords sur la meilleure façon de faire évoluer le réseau Bitcoin afin de répondre à sa croissance et améliorer ses performances.
Au centre de la polémique se trouvait la taille maximale des blocs de la blockchain.
Pour rappel : la taille du bloc fut limitée à 1 Mb afin de garantir le modèle de sécurité de Bitcoin par la décentralisation, ceci combiné à une preuve de travail ajustable faisant ‘découvrir’ la solution au puzzle d’un bloc toutes les 10 minutes en moyenne. La contrepartie, c’est qu’une telle taille de bloc à cette fréquence relativement basse limite le nombre de transactions inscrites au registre à environ 7 par seconde, ce qui est totalement insuffisant pour un passage à une plus grande échelle d’adoption.
Et à cette époque déjà, le nombre de transactions atteignait régulièrement la capacité limite du réseau à les traiter, ce qui provoquait des retards de validation et des frais de transaction élevés.
Deux grandes écoles
Pour remédier à ce problème, une proposition originale, mais assez élaborée, poussée par des développeurs et appelée Segregated Witness (traduire ‘témoin séparé’ ou SegWit) avait été introduite.
SegWit consistait à réorganiser la structure interne du bloc en séparant (‘segregate’) les données de transactions des données de signatures (‘witness’), ce qui permettait d’assouplir la capacité de traitement et d’ouvrir la voie au réseau de surcouche Lightning.
Malgré un certain consensus autour de l’introduction de SegWit, il demeurait toujours des désaccords sur la manière de le mettre en œuvre, poussés par des incertitudes techniques.
Généralement, les plus techniciens favorisaient SegWit pour Lightning alors qu’en face, certains membres influents de la communauté proposaient d’augmenter simplement la taille des blocs pour permettre plus de transactions.
Les désaccords furent tels qu’ils donnèrent lieu à une division dans la communauté Bitcoin, avec deux factions émergentes : ceux qui soutenaient une augmentation, fixe ou variée, de la taille des blocs, connus sous le nom de « bigblockers » et ceux qui soutenaient SegWit, connus sous le nom de « segwiters ».
Les premiers avançaient en ordre dispersé : plusieurs groupes travaillaient sur des solutions spécifiques : d’abord Bitcoin XT qui prônait un passage des blocs à 8 Mb mais qui fut abandonné au profit de Bitcoin Classic à 2 Mb, Bitcoin Unlimited qui supprimait la limite en taille et la remplaçait par un vote dynamique des mineurs, le fork Bitcoin Cash à 8 Mb, etc.
Mais pour prendre action, tous en appelaient aux mineurs qui, selon eux, constituaient les véritables décisionnaires dans cette affaire. La balance pencherait là où irait la puissance de calcul.
Sauf que Bitcoin n’a pas de véritable dirigeant capable d’imposer sa décision et la majorité des mineurs restait prudente… on touchait à leur fonds de commerce.
Instinctivement, les mineurs pouvaient sembler favorables à des blocs plus grands mais cette logique n’était pas si implacable : le choix demeurait hasardeux et une proportion non-négligeable d’entre eux ne parvenait pas à prendre position.
Dès lors, le temps passant, nos deux factions continuaient de se disputer sans cesse sur les forums et les médias, se renvoyant arguments et contre-arguments, provoquant une véritable guerre des mots et des idées, souvent vitriolés et allant parfois même jusqu’aux attaques personnelles entre membres de la communauté.
L’annonce de futurs forks de Bitcoin, envisagés par des ‘bigblockers’ parmi les plus orthodoxes, ne fit que rajouter de l’huile sur le feu.
Rappel : un « fork » est essentiellement une scission dans le réseau, où une version du Bitcoin existant diverge en deux versions distinctes avec de nouvelles règles.
Le fork le plus connu de cette guerre des blocs est Bitcoin Cash qui, bon an mal an, survivra en tant que cryptomonnaie du top 20 et ce malgré encore un fork ultérieur.
Ceux préférant SegWit envisageaient quant à eux une mise en place directe sur le réseau principal.
Le conflit était à son paroxysme.
Bonne ou mauvaise pour les affaires ?
Cette guerre des blocs a aussi eu des conséquences financières importantes pour les détenteurs de Bitcoin.
L’incertitude entourant ce conflit a contribué à la volatilité des prix du bitcoin en 2017, en plein marché haussier, avec des augmentations et des baisses parfois spectaculaires.
Pour certains investisseurs, ce conflit était de mauvais augure et ils craignaient même pour l’avenir du réseau. En outre, ils anticipaient de faire face à des soucis de gestion lorsque des forks tels que Bitcoin Cash seraient introduits, créant de nouvelles cryptomonnaies incompatibles.
Le débat s’était donc étendu au monde des investisseurs et des traders, les premiers appréhendant le risque et les seconds l’appréciant.
Mais une chose demeurait évidente pour ce petit monde des affaires : personne ne voulait voir Bitcoin se briser en mille morceaux.
Une histoire de BIPs
Concrètement, dès le début, une version du logiciel Bitcoin modifiée ainsi qu’un BIP avaient déjà été proposés par des développeurs pour tenter l’adoption d’une mise à niveau (rappel : le BIP pour ‘proposition d’amélioration de Bitcoin’ est un document qui propose une modification motivée du code de Bitcoin) ; malheureusement, elle plafonnait à moins de 30 % d’adhésion et ne semblait plus pouvoir évoluer. De toute évidence, les lignes ne bougeaient plus.
Il faudra plusieurs mois et un enchaînement assez complexe, une imbrication de différents autres BIPs, dans les détails desquels nous n’allons pas rentrer.
(Pour en savoir plus, un excellent livre sur le sujet est ‘The Blocksize War’ de Jonathan Bier)
Clairement, l’enjeu de ceux-ci était de motiver un maximum de mineurs à signaler leur accord pour SegWit – ou pas – mais tout en avançant très lentement par peur de scissions malencontreuses.
Un BIP fut néanmoins particulier et mérite notre attention : en mars 2017, un développeur au pseudo de ‘Shaolin Fry’ publia une proposition originale qui, si elle était acceptée, contenait une condition particulière activant automatiquement – mais indirectement – SegWit au 01 août.
On l’appellera ‘UASF’ (voir plus loin). De notre point de vue, cette proposition contribuera énormément à la résolution du conflit.
Lentes et douloureuses tribulations
Après quelques campagnes pour ou contre des BIPs, des victoires et des déconvenues dans les deux camps, une forme d’apaisement émergea enfin grâce à un compromis connu sous le nom de « New York Agreement » ou « SegWit2x« , un accord qui prévoyait dans un premier temps l’activation de SegWit selon l’idée de Shaolin Fry et ensuite une augmentation de la taille des blocs à 2 Mb en novembre 2017 via un hard fork.
Plus tard, la partie ‘2 Mb’ de ce compromis sera abandonnée en raison de désaccords persistants sur cette augmentation de taille.
Mais la première partie sera un succès grâce à l’UASF.
Une anarchie démocratique
Le User Activated Soft Fork (traduire ‘soft fork activé par les utilisateurs’ ou UASF) est un concept essentiel dans le fonctionnement de Bitcoin. Il représente le pouvoir que possèdent les utilisateurs de participer activement à une mise à niveau du système.
Malgré l’absence d’un consensus clair sur des blocs plus grands ou sur SegWit, l’adoption de ce dernier a finalement progressé dans les faits avec la prise en charge par un nombre grandissant de nœuds.
Un UASF est assez simple à initier, il suffit de charger un logiciel de nœud complet mis à disposition, qui exécute les nouvelles règles de la mise à niveau proposée.
Dans ce cas précis, il s’agissait d’une règle particulière qui rejetterait à un moment donné les blocs n’ayant pas le format ‘SegWit’. Les utilisateurs pouvaient de surcroît signaler leur soutien à la mise à niveau en ajoutant leur adresse Bitcoin à une liste publique.
Une caractéristique très intéressante derrière cet UASF, c’est de faire en sorte que ceux qui rechignent à activer la mise à niveau souhaitée soient finalement contraints de suivre, par l’incitation économique, si les nouvelles règles sont bel et bien adoptées par la majorité.
Le pouvoir ultime de prise de décision se trouvait donc entre les mains du réseau lui-même.
À première vue, cela semblait être un sacré coup de poker, une approche audacieuse, mais néanmoins nécessaire. Considérant le clivage qui existait à l’époque au sein de la communauté, cet UASF n’était pas sans risques : il aurait pu aboutir à un fork contentieux qui aurait maintenu en activité deux chaînes de blocs Bitcoin distinctes, chacune avec ses propres règles et jetons.
Heureusement, une masse critique fut progressivement atteinte et dès lors, il devenait de l’intérêt de tous, même des mineurs indécis, de procéder à l’activation de SegWit.
Ce qui fut fait le 24 août 2017.
In fine, le réseau a signalé qu’il était pour SegWit et qu’au moins 80 % de la puissance de calcul l’avait rejoint. SegWit serait directement activé, sans autre forme de procès.
L’ UASF a bien démontré sa pertinence et son utilité dans ce contexte : il a prouvé qu’il était un outil important et puissant pour permettre aux utilisateurs de faire eux-mêmes des choix fondamentaux pour l’avenir de Bitcoin.
C’est cela qui mit réellement un terme au conflit : une action assez bien coordonnée du réseau, appuyée par un UASF.
Epilogue
Ainsi s’acheva notre ‘guerre des blocs’.
L’activation de SegWit fut lente et douloureuse, mais elle finit par avoir lieu et nous ouvrit la voie vers le réseau de surcouche Lightning qui permet désormais un nombre illimité de transactions Bitcoin, des micropaiements pratiquement instantanés et à très peu de frais.
Quelques irréductibles ‘bigblockers’ partirent se réfugier dans le fork Bitcoin Cash, accompagnés d’une petite fraction des mineurs. Ils se chamailleront encore après mais, étonnamment, Bitcoin Cash demeurera.
La morale de l’histoire
Théâtre de luttes pour donner une direction nouvelle et déterminante à Bitcoin, la guerre des blocs nous a montré des choses positivement intéressantes.
Tout d’abord, elle témoigne de la difficulté de modifier les règles de fonctionnement de Bitcoin si une partie du réseau manifeste des réticences. Un long processus de débats et de mises en avant d’arguments devient très vite nécessaire.
Ensuite, même si leur puissance de calcul assied la sécurité du protocole, ce ne sont pas les mineurs qui détiennent le pouvoir de décision ultime. Leur intérêt primaire est de suivre la majorité des utilisateurs dans une chaîne où ils pourront écrire des transactions et empocher des récompenses et des frais.
Enfin, les simples utilisateurs sont en capacité de participer à la détermination des choix stratégiques pour le réseau.
À ceux qui critiqueraient ces longs tâtonnements, nous répondons qu’ils sont la conséquence – et même la marque – d’une véritable démocratie active, rendue nécessaire par le consensus décentralisé et l’impératif économique.