Nous aborderons dans cette suite d’articles les grands points structurants et méconnus du bitcoin.

Alors, êtes-vous pour ou contre le bitcoin ?

Pour pouvoir se prononcer au-delà des débats idéologiques qu’ils soient à tendance crypto-anarchistes ou régulateurs zélés, et ayant été moi-même longtemps hésitant sur la posture à avoir, j’ai entrepris de creuser un certain nombre de caractéristiques sur le bitcoin qu’il faut absolument connaître pour pouvoir se prononcer objectivement.

Je partage donc avec vous ces quelques idées :

Sommaire des 7 articles

  1. Une gouvernance bien trop humaine
  2. Une répartition à faire pâlir Gini
  3. Une machine à blanchir les capitaux
  4. Une usine à CO2
  5. To scale or not to scale ?
  6. Les vautours de la spéculation
  7. Un risque légal systémique

Zoom sur le péché n°5 - Le bitcoin a-t-il été pensé pour être une blockchain de la vie courante ?

Lorsqu’on revient au pourquoi originel du bitcoin, il faut se poser la question cruciale de la scalabilité : Cet enjeu est-il adressé clairement par la vision initiale de cette disruption ? Que ce soit dans le whitepaper de Satoshi Nakamoto en 2008 ou sur le forum bitcointalk qui a porté les premières réflexions du fondateur et des early adopters ?

Le whitepaper annonce dès l’introduction que la désintermédiation est l’essence du bitcoin :

Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model

Mais c’est ici surtout l’exemple choisi qui doit susciter notre intérêt : le e-commerce, ses frais de médiation élevés et le risque de fraude qu’il porte. Ce choix vient illustrer le potentiel économique gigantesque d’un système de paiement trustless. En 2021, il représentait un marché de 4800 milliards de dollars qui sert plus de 2 milliards d’utilisateurs pour plusieurs dizaines de milliards de transactions par an. La référence du bitcoin au e-commerce montre que sans être affichée explicitement, une intention de démocratiser ce nouveau type de paiement via blockchain était présente.

Dans un échange très riche en 2009 avec Mike Hearn, early adopter et développeur engagé du bitcoin, Satoshi évoque la question de la scalabilité au détour du sujet des incentives économiques des mineurs tels que les frais de transaction. Satoshi Nakamoto cite notamment le réseau Visa comme point de comparaison avec ses 15 millions de transactions par jour en disant que le bitcoin doit être normalement capable de scaler si le hardware continue de suivre la loi de Moore.

By Moore’s Law, we can expect hardware speed to be 10 times faster in 5 years and 100 times faster in 10. Even if Bitcoin grows at crazy adoption rates, I think computer speeds will stay ahead of the number of transactions.

Le système bitcoin avait donc bien l’ambition de concurrencer le système Visa en termes de nombre de transaction par seconde (1700 transactions par seconde en moyenne et jusqu’à 24000 en pic annoncées), ce dernier nombre étant de source corporate Visa doit être challengé dans un contexte de guerre de communication avec les blockchains publiques.

Quelques discussions sur les aspects de scalabilité du Bitcoin ont émergé assez tôt sur le forum historique du bitcoin : Bitcointalk.org

  • Scalability : Juillet 2010, un membre du forum se demande comment le réseau bitcoin peut scaler si tous les noeuds reçoivent toutes les transactions, laissant entendre l’inefficience d’un tel système. L’analogie avec les systèmes P2P (peer to peer, comme bittorent) ne tient pas car les nœuds du bitcoin fonctionnent différemment des serveurs de seed d’un réseau P2P. De plus, les calculs de coin de table sur le nombre de transactions par jour à gérer (en cas de généralisation) concluent à la nécessité d’avoir des bandes passantes très importantes. Satoshi et Gavin Andresen (successeur de Satoshi) répondent par une future séparation des rôles des noeuds du bitcoin (full node vs lightweight node) pour adresser la problématique

  • Scalability and transaction rates : Juillet 2010, un autre membre se pose la même question puis évoque le sujet crucial de la faisabilité des micro-paiements. Satoshi intervient là encore pour rassurer que le réseau peut traiter ce type de cas d’usage mais ne tranche pas le sujet des frais de transactions qui sont un problème purement économique et pas à première vue technique (même si l’avenir montrera que si)

  • Adding scalability to the FAQ : Mars 2011, Mike Hearn ajoute une section “scalabilité” à la documentation sur le bitcoin en réponse à des interrogations d’utilisateurs sur les canaux IRC du bitcoin (ancêtre public de MSN ou Whatsapp actuel). Le wiki cite d’abord la “limite artificielle” (taille du bloc) qui a été ajoutée au bitcoin afin de faciliter son adoption mais qui empêche celui-ci de scaler. Il ajoute que cette limite pourrait être levée dans le futur afin de pousser la scalabilité (passer de 7 transactions par seconde aux 4000 de Visa). Ce sujet de limite sera rétrospectivement l’objet de dissensions extrêmement fortes dans la communauté 5 ans plus tard. Concernant les éventuels problèmes de réseau, d’espace disque et dans une moindre mesure de capacité de calcul, Mike certifie que le bitcoin peut scaler au niveau de Visa mais cela aura un coût important pour les miners. Ce coût restera accessible à suffisamment de nœuds pour assurer un bon niveau de décentralisation selon lui. Le seul sujet est donc la “limite” hardcodée dans le procole du bitcoin qui doit disparaître. Cette dernière conviction lui coûtera son rôle dans la communauté en 2016 : il vendra ses bitcoins et tournera la page de la blockchain originelle pour contribuer aux blockchains de consortium. En 2016, la section sera modifiée avec une “Note to readers” en revenant sur la vision de scalabilité initiale (qui était de remplacer Visa) et positionnera le Bitcoin comme un système lent par construction : il est fait pour les “virements”, “chèques” et comme réserve de valeur “gold coins”. L’usage courant de type “carte de crédit” n’est donc plus fait pour le réseau bitcoin !

  • Scalability/divide and conquer : Juin 2011, la problématique de la distribution systématique de toutes les transactions à tous les miners est là encore soulevée par un membre attentif. Celui-ci explique que la loi de Moore et le scaling technologique du hardware ne répondra pas à cette problématique qui est d’ordre réseau et figée dans le design initial du bitcoin. La solution que propose cet utilisateur (divide and conquer) est d’ailleurs une de celles qui sera retenue dans le futur par la blockchain Ethereum pour scaler mais je reviendrai dessus dans un prochain article. Mike Hearn que je citais plus haut intervient pour clôturer la discussion avec un message rassurant : la décentralisation du réseau bitcoin et la scalabilité nécessaire pour gérer des flux Visa-like sont compatibles. Gérer un noeud bitcoin ne sera pas possible pour le commun des mortels en raison des coûts associés mais ne sera pas non plus uniquement réservé à la poignée d’acteurs de la finance traditionnelle

Revenons à l’historique publication du whitepaper du bitcoin en 1er novembre 2008 à 16h16 dans une mailing list par Satoshi Nakamoto. À peine le lendemain 2 novembre à 17h55, il reçoit déjà une réponse d’un cypherpunk canadien anonyme très actif encourageant l’effort mais attaquant de manière cinglante la faisabilité

We very, very much need such a system, but the way I understand your proposal, it does not seem to scale to the required size.

Se joindront à lui tous les grands noms du bitcoin pour donner chacun leur avis et interagir avec Satoshi, l’anonyme qui prétend révolutionner le monde des systèmes distribués. Ce thread est extrêmement riche en enseignements sur le niveau important et rapide d’appropriation du bitcoin par la communauté cypherpunk de l’époque ainsi que du niveau d’anticipation des problématiques à venir, seulement quelques semaines après la publication du white paper.

Comment le réseau bitcoin s’est-il comporté ces dernières années ?

Trêve d’histoire, parlons chiffres :

Bitcoin Transaction Per Second

blockchain.com

Premier constat : le bitcoin n’a jamais dépassé plus de 5 transactions par seconde même dans les 5 dernières années durant lesquelles l’usage s’est considérablement généralisé.

Est-ce un manque de sollicitation des utilisateurs car il n’y aurait pas de besoin mondial pour du bitcoin supérieur à ces 5 transactions par seconde ? Ou est-ce un blocage technique dans la nature même du bitcoin ?

La réponse se trouve dans ce deuxième graphe :

Bitcoin Average Block Size

blockchain.com

La taille d’un bloc ne dépasse jamais 1,5 mégaoctet (mo) sur cet historique et pour cause, cette limite est comme je le disais plus haut inscrite dans le code même du bitcoin. Elle a connu plusieurs évolutions controversées qui ont résulté en des hard forks ou des bitcoins concurrents séparés qui ont connu une vie parallèle.

À raison de 250 kilo-octets par transaction et 10 minutes par bloc (également un paramètre figé dans le code du bitcoin), on voit bien que la limite en transaction par seconde résulte de ces choix.

Augmenter la taille des blocs, c’est plus de capacité de transaction pour les utilisateurs mais aussi risquer de :

  • Ralentir la propagation des blocs minés (car plus volumineux) et déstabiliser la construction du consensus de la blockchain
  • Augmenter les frais pour les miners rendant le business model moins rentable pour les plus petits (moins de décentralisation)
  • Répondre à une problématique de scalabilité immédiate et non pérenne sans rendre le bitcoin tout de suite Visa-like (car ce sont de petites augmentations de taille de bloc)
  • Risque de diviser la communauté et créer des blockchains du bitcoin concurrentes comme cela s’est passé à plusieurs reprises

L’autre facette de cette situation concerne les frais de transactions. Il faut comprendre que lorsqu’un miner construit un bloc pour validation, il ne va choisir que les transactions qui ont les frais les plus élevés qui lui reviendront. Cet incentive totalement logique a pour but de compléter la récompense de création de bitcoin (une forme de subvention qui a commencé avec 50 bitcoin par bloc en 2009, actuellement 6.25 bitcoin par bloc).

Tout utilisateur qui est avare sur les frais de transaction risque de ne pas la voir validée au bloc suivant (10 minutes d’attente), ni au bloc d’après (20 minutes) et ainsi de suite. La recommandation standard étant d’attendre 6 blocs (soit 1 heure) au-dessus du bloc qui contient la transaction dont on cherche à garantir la validité, omettre les frais de transaction c’est attendre plusieurs heures avant qu’un miner décide de la gérer.

Bitcoin Average Fees

blockchain.com

Quand on analyse les frais de transaction sur la dernière année, ils se situent entre 2 dollars et près de 60 dollars. Les pics correspondent à des périodes où le réseau était saturé en transactions ce qui oblige les utilisateurs à augmenter leur frais pour s’assurer que leurs transactions sont bien prises en compte. Quand on met bout à bout l’histoire, on se rend compte de l’impact économique d’une blockchain qui ne scale pas : en plus de différer la validation des transactions, la forte demande en transaction impose des frais importants qui tuent dans l’œuf de nombreux cas d’usage comme le micro-paiement.

Quelles solutions pour répondre à cet enjeu de scalabilité ?

La première solution naturelle a été d’emprunter le chemin de la facilité. Augmenter la taille des blocs, c’est permettre d’avoir plus de transactions par bloc donc par 10 minute donc par seconde. Cela se traduit concrètement par la création d’une blockchain du bitcoin basée sur un code différent.

Ci-dessous une liste des principaux embranchements de code (forks) sur le consensus du bitcoin :

Bitcoin Forks

reddit.com

Voici les évènements notables ayant affecté la scalabilité des blockchains du bitcoin :

  • Le 12 octobre 2010, la taille des blocs du bitcoin est ramenée de ~32 mo à 1 mo par Satoshi lui-même afin de préserver la décentralisation du réseau et permettre à de petits acteurs d’être des miners. Cette modification est passée plutôt inaperçue et aucune blockchain concurrente ne fut créée étant donné qu’on était dans l’enfance du bitcoin
  • Entre 2011 et 2012, la possibilité de grouper les transactions a été ajoutée dans le code. Cette capacité de “batching” permet de diviser par 3 les frais de transactions pour des batches suffisament grands. Cette feature n’a pris tout son sens qu’à partir de mi 2017 lorsque le réseau bitcoin saturait fréquemment. Des exchanges comme Coinbase l’utilisent avec succès, le compromis étant une diminution de la confidentialité des transactions
  • Le 1er août 2017, une augmentation de la taille de bloc à 8 mo est décidée pour permettre 8 fois plus de transactions par seconde et donc de réduire les frais, ce qui active les cas d’usages comme le micro-paiement. Cette augmentation ne fut pas du tout consensuelle et résulta en la création de la blockchain du Bitcoin Cash (en vert) avec sa propre équipe à partir du bloc 478558 du bitcoin. Difficile de dire précisément quelle a été la proportion de miners qui sont restés sur la blockchain du bitcoin et ceux qui sont allés sur la nouvelle blockchain bitcoin cash, mais un bon indicateur est le cours du BCH était lors de son ouverture 5,5 fois plus faible que celui du BTC. Ce ratio s’est creusé à 330 fois aujourd’hui ce qui peut nous faire dire que ce hard fork a été plutôt un échec
  • 24 jours plus tard, le 24 août 2017, le bitcoin implémente le SegWit, évolution “soft” (rétrocompatible) permettant notamment de multiplier par 4 le nombre de transactions dans un bloc, cela par un jeu comptable tel que défini par Mike Hearn dans sa lettre de départ du Bitcoin. Les discussions autour du SegWit ont donné lieu à une des controverses majeures dans la communauté bitcoin
  • Le 15 mai 2018, le bitcoin cash augmentera la taille de ses blocs à 32 mo. Aucun hard fork ne résultera de cette augmentation
  • Le 15 novembre 2018, un hard fork de Bitcoin Cash est créé lorsque Craig Wright (qui prétend être Satoshi Nakamoto) veut rétablir la vision originelle de Satoshi, à savoir une blockchain scalable adaptée à un usage massif. Le limite de bloc est amenée à 128 mo et la blockchain Bitcoin SV pour Satoshi Vision (en jaune) est instaurée à partir du bloc 556766 de Bitcoin Cash. La taille des blocs sera poussée à 512 mo courant 2019 ce qui déstabilisera le réseau par la suite et augmentera de manière importante le coût du mining

Il existe aujourd’hui plusieurs dizaines de hard fork actifs du bitcoin avec chacun leurs caractéristiques.

Les frais de transactions du BCH et du BSV ne dépassent pas en moyenne le centime de dollar contre plusieurs dollars pour le BTC. Mais à quel prix s’est faite cette scalabilité ? La valorisation de ces deux forks historiques montre que l’engouement des investisseurs n’a pas suivi ces décisions d’augmentation de la taille de bloc.

Pour un utilisateur du bitcoin, la scalabilité n’a pas vraiment de sens car tout ce qu’il perçoit ce sont les deux éléments liés suivants :

  • Les frais de transaction qu’il choisit comme incentive du système
  • Le temps d’attente (ou confirmation time) pour la prise en compte de sa transaction dans la blockchain

Nous avons donc besoin d’une solution à ces deux enjeux :

Pour Bitcoin SV et Bitcoin Cash, le sujet des frais de transaction est résolu puisque la capacité en transaction par seconde est plus grande que la demande. Par contre, le temps de confirmation des blockchain du bitcoin n’est pas aussi positif :

  • Pour le Bitcoin, on attend en général 6 blocs après le bloc qui a inclus la transaction soit 60 minutes. En pratique, quelques blocs d’attente suffisent pour des petits montants car la blockchain du bitcoin ne risque pas a priori d’attaque de 51%
  • Pour Bitcoin Cash, le temps entre 2 blocs est comme le bitcoin de 10 minutes. Par contre, le réseau étant plus faible en termes de capacité de calcul, il est plus facile pour un acteur malveillant de prendre le contrôle temporaire de la blockchain (51% attack) et de dépenser “deux fois” des BCH (pendant la durée temporaire de contrôle). Il est commun d’attendre 15 blocs de BCH pour être sûr que la transaction a bien été confirmée, spécialement pour les transactions à gros montants
  • Le Bitcoin SV a subi une attaque des 51% en août 2021 sur plus de 100 blocs (16 heures) en raison d’une capacité de calcul trop faible. Cela signifie que pendant ces 16 heures, toutes les transactions que vous avez crues validées ne l’ont potentiellement pas été. Si vous avez reçu du BSV en échange de votre voiture, vous découvrez potentiellement 16h plus tard que la transaction n’est pas passée

La solution de scalabilité choisie par la blockchain Bitcoin originelle

En 2016, deux chercheurs publient un article intitulé “The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments” avec l’objectif de répondre aux problématiques de scalabilité du bitcoin par l’adossement d’un layer 2 : un protocole construit sur la base de canaux bi-directionnels et interopérables avec la blockchain du bitcoin. C’est le lightning network :

A decentralized system is proposed whereby transactions are sent over a network of micropayment channels (a.k.a. payment channels or transaction channels) whose transfer of value occurs off-blockchain

Le principe est simple et ingénieux : Lorsque deux personnes veulent s’échanger de la crypto-monnaie, il n’est pas du tout efficient de le faire savoir et de le faire valider à tout le réseau pour chaque transaction. Ces deux personnes peuvent juste se mettre d’accord sur un ensemble de garanties financières qu’elles se donnent (en termes de disponibilité de fonds qui sont bloqués) et réaliser des transactions autant de fois qu’elles veulent puis se mettre d’accord sur un solde global (semblable au carnet de l’épicier) qui serait alors persisté dans la blockchain du bitcoin pour sceller la session d’échange. Ce lien cryptographique qui lie les deux parties est un “channel”.

Lightning network principles

researchgate.net

Point important, les deux parties n’ont pas besoin d’avoir une confiance mutuelle et c’est ici que réside l’innovation. Chaque transaction est signée cryptographiquement et consignée par les parties et ne doit pas être perdue car elle constitue une preuve opposable sur la blockchain. En cas de mésentente, chaque partie peut décider de publier le solde et les transactions passées avec leurs signatures pour clôre le channel.

Autre caractéristique intéressante : le réseau de channel. Dans la conception que j’ai décrite, il ne m’est possible d’échanger qu’avec les contreparties avec lesquelles j’ai ouvert un channel. Mais comme dans le système bancaire international, ma contrepartie peut avoir elle-même un channel avec d’autres personnes. De proche en proche, je peux réaliser des transactions avec toutes les personnes interconnectées dans ce réseau moyennant des frais de transactions plus importants. Illustré par le schéma ci-dessous :

Lightning network channel

theblockpro.com

Ce système s’appelle le Lightning network et il est testé sur la blockchain du bitcoin en beta en 2018. Je l’avais suivi à l’époque avec beaucoup d’intérêt car c’était le premier pas vers une démocratisation du bitcoin comme moyen de paiement. Il en existe plusieurs implémentations qui sont utilisées sur la “production” du réseau bitcoin (mainnet) depuis 2019.

Il y a actuellement plus de 20000 noeuds lightning déployés sur la blockchain du bitcoin pour plus de 3500 bitcoins (ou 157 millions de dollars) bloqués sur tous les channels ce qui montre un engouement certain et un premier pallier de maturité accompagné d’un écosystème naissant de boutiques et services. Le lightning network est utilisé au Salvador à travers la wallet Chivo qui avait été citée par le Président du Salvador dans un tweet. Le réseau Twitter utilise le lightning network pour les micro-donations (tips).

Twitter tips

blog.twitter.com

De nombreuses wallet bitcoin intègrent désormais le protocole lightning : BlueWallet, Wallet of Satoshi, Muun ou encore Zap dont la société a aidé à l’adoption du bitcoin au Salvador.

Il faut noter qu’il existe un autre type de solution pour la scalabilité du bitcoin :

La blockchain complémentaire (sidechain) Liquid Network qui n’adresse pas le besoin de micro-paiement mais les transactions plus volumineuses. Contrairement au Lightning network qui utilise des channels entre utilisateur et agrégateurs, le Liquid Network est une blockchain de consortium avec un protocole de validation de bloc spécifique, un temps de bloc de 2 minutes et une taille de bloc de 4 mo. Elle est donc à peu près 10 fois plus rapide que la blockchain du bitcoin. Pour être utilisée, il faut sortir du BTC du mainnet et le transformer (swap) en Liquid-BTC (L-BTC) qui peut alors être manipulé avec plus de flexibilité et de confidentialité dans le réseau Liquid. Il y a actuellement plus de 3500 BTC en circulation dans le réseau Liquid.

Liquid Sidechain

docs.blockstream.com

Les solutions à la scalabilité de l’autre grande blockchain publique Ethereum sont bien plus nombreuses et complexes. J’y reviendrai dans un article spécifique à l’innovation incroyable qui entoure la blockchain Ethereum.

Ethereum Layer 2

twitter.com/Coin98Analytics

Ma conclusion personnelle

Au regard de tous ces éléments, le bitcoin n’est clairement pas une blockchain scalable au sens du projet initial de ses fondateurs. Il apparaît clairement que toutes les tentatives de tordre le protocole a conduit à des dissensions importantes qui ont un peu fragilisé la blockchain du bitcoin sans la faire dévier de son nouveau cap : Le bitcoin est une réserve lente de valeur qui doit servir principalement les enjeux de décentralisation et de sécurisation de son réseau. Les usages qui sortent de ce scope doivent attendre le train de l’innovation pour être déployés.

Des évolutions graduelles comme le batching ou SegWit permettent aujourd’hui au bitcoin de scaler doucement en accompagnant la maturité du marché sans risque de déstabiliser ni la stabilité de la blockchain ni le consensus humain autour du bitcoin. Les montants en jeu sont maintenant tellement élevés qu’il est peu probable que la communauté accepte une disruption telle que celles qui ont mené aux hard forks historiques.

Le succès du Lightning network montre pour l’instant qu’il est possible de concilier tous ces enjeux sans mettre en péril le coeur du bitcoin. À l’inverse, la faible capitalisation des altcoins (blockchains concurrentes du bitcoin) montre que les dissensions n’ont pas encore payé. Il faut à présent suivre avec attention l’expérience du Salvador pour voir comment le bitcoin peut servir tout un peuple car s’il y a bien un nouveau pallier de disruption sociétale pour la mère des blockchains, c’est bien celui-là.

Quelques sources en plus des liens qui saupoudrent l’article

Note

Cet article a uniquement pour but d’éclairer sur des aspects méconnus du bitcoin. Pour toute remarque ou correction, je serais heureux d’en débattre et de corriger cet article si besoin