Le débat sur la scalabilité de Bitcoin : l’émergence d’une tension

Le débat sur la scalabilité de Bitcoin a marqué l’histoire de la cryptomonnaie, en faisant rage entre 2013 et 2017. Voyons d’où provient ce débat et comment une tension a fini par émerger entre deux camps ennemis au sein de la communauté.

La limite sur la taille des blocs Bitcoin

La taille limite des blocs est une restriction protocolaire qui interdit aux mineurs de créer des blocs plus gros qu’une certaine taille, et qui détermine de ce fait la capacité transactionnelle du réseau. Aux débuts de Bitcoin, il n’existe pas de limite explicite, mais une limite définie implicitement par la taille maximale des messages de protocole pair–à-pair, qui est alors de 32 Mo.

Une limite explicite de 1 mégaoctet (1 Mo) est ajoutée par Satoshi Nakamoto en 2010, sans annonce publique de sa part. Après avoir ajouté au code la constante MAX_BLOCK_SIZE le 15 juillet, il programme l’activation de cette contrainte le 7 septembre pour qu’elle soit rendue effective à partir du bloc 79 400. Cela se produit le 12 septembre, date à partir de laquelle tous les mineurs doivent miner des blocs inférieurs à 1 Mo, ce qui représente 7 transactions classiques par seconde et ce qui est alors largement assez pour supporter la faible activité économique de l’époque.

Dès le 3 octobre 2010, le développeur Jeff Garzik, ayant remarqué l’ajout de cette taille limite des blocs, propose un correctif pour l’élever à 7,168 Mo afin d’« égaler le taux transactionnel moyen de PayPal. » Michael Marquardt, intervenant sous le pseudonyme de theymos, lui répond en disant que « l’application de ce correctif [le] rendra incompatible avec les autres clients Bitcoin », message qui est approuvé par Satoshi Nakamoto :

« +1 theymos. N’utilisez pas ce correctif, il vous rendra incompatible avec le réseau, à votre propre détriment. Nous pouvons introduire un changement plus tard si nous en avons besoin. »

Il s’agit en effet d’un hard fork. Le lendemain, Jeff Garzik écrit pour préciser sa pensée :

« L’effort visant à augmenter la limite du taux de transaction est le même que celui visant à modifier la nature fondamentale des bitcoins : convaincre la grande majorité de se mettre à niveau. »

Satoshi répond par un message dans lequel il décrit comment une telle augmentation de la taille limite pourrait avoir lieu, approuvant le concept d’amélioration par hard fork mais demandant qu’il soit bien organisé :

« [La mise à niveau] peut être introduite progressivement, par exemple :

if (blocknumber > 115000)
  maxblocksize = largerlimit

 Elle peut commencer à être intégrée dans les versions bien avant, de sorte qu’au moment où elle atteint le numéro de bloc et entre en vigueur, les anciennes versions qui ne l’ont pas sont déjà obsolètes.

 Lorsque nous approchons du numéro de bloc limite, je peux envoyer une alerte aux anciennes versions pour qu’elles sachent qu’elles doivent effectuer une mise à jour. »

Toutefois, le besoin n’étant de toute évidence pas urgent, aucun changement n’est appliqué. Le message de Satoshi sera en revanche repris à de nombreuses reprises pour montrer la volonté du créateur de Bitcoin d’augmenter la limite.

La suite est connue : après le gain en popularité de Bitcoin durant la seconde moitié de 2010, Satoshi Nakamoto décide de quitter le navire et laisse le gouvernail à Gavin Andresen en tant que mainteneur en chef du projet. Gavin étant beaucoup plus à l’écoute, cela laisse la voie libre à la communauté pour décider de la direction vers laquelle doit aller Bitcoin.

Mike Hearn Gavin Andresen Jeff Garzik développeurs Bitcoin

Ce départ soudain met en lumière la façon dont Bitcoin est défini : par l’accord des différents membres de la communauté obtenu de manière décentralisée. En l’absence de Satoshi, cela veut dire qu’ils doivent arriver à un consensus sans meneur unique. C’est ce qui fait que la gouvernance du protocole devient beaucoup plus complexe et plus sensible à l’influence des différents représentations et des différentes narrations qui circulent (ou pour le dire plus crûment : à la propagande). Cet état de fait va donner lieu au fameux débat sur la scalabilité.

>> Jouez la sécurité ! Inscrivez-vous sur Binance, et économisez 10% de frais (lien commercial) <<

Le développement de la logique des petits blocs

Avant que Satoshi ne disparaisse, la vision sur le passage à l’échelle de Bitcoin était assez monolithique et se basait sur l’expertise supposée du créateur : la solution était l’augmentation progressive de la taille des blocs. Mais après son départ, cette vision va peu à peu se diversifier et la communauté va se diviser en deux camps principaux :

  • Les partisans des gros blocs, ou big blockers en anglais, voulant suivre le projet de croissance directe de Satoshi, en réalisant des mises à niveau pour augmenter la limite, voire en supprimant cette limite.
  • Les partisans des petits blocs, ou small blockers en anglais, souhaitant restreindre la taille limite des blocs à un minimum.

L’articulation de la logique des petits blocs se construit sur plusieurs années après la disparition de Satoshi.

Le premier élément de cette logique est la spirale fatale des frais (ou fee death spiral). Celle-ci a été mise en évidence par un utilisateur de Bitcointalk, Vandroiy, le 22 avril 2011 dans un message où il déclare :

« Considérez pour l’instant que nous sommes dans le futur, et que les mineurs ne gagnent que les frais de transaction. Je suppose maintenant que l’inclusion d’une transaction est bon marché, et que la génération d’un bloc est, en comparaison, coûteuse. (Est-ce vrai ?)

Tout petit mineur unique a l’intention de maximiser son profit. Sa décision sur les transactions à inclure ne crée pas un grand changement dans la hauteur des frais. Ainsi, le mineur inclura toutes les transactions qui paient des frais, même très faibles, pour avoir un profit maximum. 

Cela a pour conséquence de faire chuter le prix des transactions. À leur tour, les mineurs qui étaient déjà peu rentables voient leurs gains encore réduits et démissionnent. Cela réduit le taux de hachage, la difficulté baisse et le cercle se répète. Par ce raisonnement, la difficulté est susceptible de tomber proche de zéro.

Est-ce un problème ? Bitcoin va-t-il s’effondrer si nous avons très peu de mineurs ? »

Ce qu’il veut dire c’est que, puisque le coût marginal d’inclusion d’une transaction est proche de zéro, le prix d’inclusion va lui aussi tendre vers zéro sous l’effet de la concurrence et de la loi de l’offre et la demande. De ce fait, cela va réduire drastiquement la puissance de calcul, et donc la sécurité générale du système contre les doubles dépenses. Le développeur Mike Hearn, opposé à une limitation de la taille des blocs, reconnaît en partie ce problème, et proposera par le suite un système de contrats de garantie pour le résoudre, mais beaucoup n’y verront pas de problème particulier, y percevant justement un effet bénéfique du marché.

D’autres, en revanche, en feront l’un des principaux arguments pour une taille limite des blocs. En effet, le maintien d’une limite basse permet de rendre l’espace de bloc plus rare (offre inélastique) et de favoriser l’émergence d’un « marché des frais » (fee market). Cette idée sera par exemple énoncée le 26 février 2014 par l’économiste français Nicolas Houy au sein un papier intitulé « The Economics of Bitcoin Transaction Fees » dans lequel il conclut que « laisser les frais de transaction résulter d’un marché et rendre la taille des blocs non pertinente ou non contraignante conduirait à un niveau de sécurité trop faible pour Bitcoin ».

Le deuxième élément de la logique des petits blocs est la spirale fatale de la centralisation (centralization death spiral). Ce problème a été mis en avant le 17 mai 2013 par le biais d’une vidéo intitulée « Why the blocksize limit keeps Bitcoin free and decentralized » produite par le développeur Peter Todd.

https://www.youtube.com/watch?v=hJlJenB1CTE

Cette vidéo explique pourquoi la limite de la taille des blocs permet à Bitcoin de rester « libre et décentralisé » : l’idée est que l’absence de cette limite conduirait à une augmentation du coût de gestion d’un nœud et à centraliser le réseau. En effet, chaque nœud vérifie l’intégralité des transactions enregistrées sur la chaîne et demande par conséquent de disposer du matériel correspondant (stockage, bande passante, calcul, etc.) En cas de forte activité, cela signifierait que seules les personnes les mieux équipées seraient en capacité de faire tourner un nœud, ce qui centraliserait drastiquement le minage et la vérification des règles de consensus, et affaiblirait le système en conséquence.

Le troisième élément de la logique des petits blocs est le passage en surcouche, c’est-à-dire l’utilisation de protocoles techniques basés sur la programmabilité de Bitcoin ayant pour but de traiter une partie des transferts économiques hors de la chaîne ou « off-chain ».

Initialement, l’idée est de créer un système bancaire basé sur Bitcoin, ainsi que l’illustre la suggestion de Hal Finney de 2010, dans lequel le recours à la confiance pourrait être atténué par la transparence du registre public qu’est la chaîne. À côté de cela, se trouve aussi l’idée de créer des objets matériels permettant l’échange physique sans transaction sur la chaîne et dont la vérification se fait par des procédés cryptographiques (ce qui donnera plus tard naissance à l’OpenDime).

Mais ces idées sont rapidement délaissées au profit de solutions plus prometteuses de passage en seconde couche qui sont les chaînes latérales, proposées par Blockstream en octobre 2014, et surtout le réseau Lightning, présenté pour la première fois en février 2015 par Joseph Poon et Thaddeus Dryja. Ces solutions de scalabilité seront utilisées tout au long du débat pour illustrer le fait que le passage à l’échelle ne doit pas nécessairement passer par l’augmentation brute de la capacité transactionnelle de la chaîne. Cependant, elles seront lancées « après la bataille » en 2018.

Les premières frictions

Le nombre de transactions augmente sensiblement lors de la seconde moitié de l’année 2012, notamment grâce à l’activité dégagée par la place de marché du dark web Silk Road, puis en 2013 grâce à l’engouement spéculatif autour des bulles d’avril et de novembre.

Taille moyenne des blocs de Bitcoin 2012 2014
Taille moyenne des blocs de Bitcoin entre avril 2012 et juillet 2014 (source)

À l’époque, le code du logiciel implémente une limite de productionsoft limit ») par défaut, qui empêche les mineurs l’utilisant tel quel de valider des blocs d’une taille supérieure à 250 ko. En 2013, cela provoque quelques ralentissements de confirmation : cela donne un aperçu de ce qui se passerait si la limite de 1 Mo était atteinte de manière récurrente, et fait naître chez certains développeurs une envie de l’augmenter avant que cette situation ne se produise.

C’est pourquoi, lors de la conférence de mai 2013 à San José en Californie, Gavin Andresen, mainteneur en chef du projet, affiche sa volonté d’augmenter la taille maximale des blocs assez rapidement, dans l’année à venir. Néanmoins, cela provoque des réticences dans la communauté, ce qui va repousser ce projet à une date ultérieure.

Un autre sujet de discorde est la fonctionnalité Replace-by-Fee, qui est conceptualisée par Peter Todd en avril 2013 et dont la première version est publiée sur la liste de diffusion de développement en mai 2013 par un individu appelé John Dillon. Il s’agit d’une fonctionnalité du réseau qui permet à l’émetteur d’une transaction non confirmée de la remplacer par une autre en augmentant les frais associés à cette transaction. Elle a pour effet de rendre l’acceptation des transactions non confirmées obsolète, en annulant officiellement toute notion de sécurité « 0-conf ». RBF s’inscrit dans une conception d’un Bitcoin aux petits blocs, où la réserve des transactions (la mempool) est régulièrement surchargée, et s’oppose complètement à la philosophie des gros blocs où l’on peut s’attendre à ce que toutes les transactions soient confirmées dans le bloc suivant, d’où la controverse.

Cette tension naissante entre les deux camps va se renforcer au fur et à mesure des années, attisant l’hostilité et l’animosité des deux côtés. Le débat abordera tous les thèmes relatifs à Bitcoin, de manière plus ou moins pertinente, et fera entrevoir la mécanique profonde de ce système nouveau. Il constituera une guerre civile de nature religieuse qui se conclura par un grand schisme, comme nous le verrons dans de futurs articles.

Cet article est partiellement basé sur l’ouvrage The Blocksize War de Jonathan Bier.

Ludovic Lars

Je suis fasciné par les cryptomonnaies et par l'impact qu'elles pourraient avoir sur nos vies. De formation scientifique, je m'attache à décrire leur fonctionnement technique de la façon la plus fidèle possible.