Dernière modification effectuée le 10.10.2023 17:22
Surcouche au-dessus de Bitcoin : le Lightning Network promet des transactions instantanées et quasiment sans frais, tout en conservant la sécurité et la souveraineté individuelle garanties par Bitcoin. Dans cet article, nous vous proposons une première approche de ce qu’est le réseau Lightning : comment il est apparu, ce qu’il permet de faire aujourd’hui et quelles sont les évolutions à attendre.
La scalabilité de Bitcoin
On désigne sous l’anglicisme « scalabilité » la capacité pour un réseau ou un protocole de passer à l’échelle. C’est-à-dire dépasser le simple stade des quelques transactions par seconde, pour adresser à une population plus grande, dont les besoins se chiffrent en millions de transactions par seconde. C’est un sujet qui ne date pas d’hier, et qu’on retrouve dans de nombreux domaines, parfois même en dehors de l’informatique. Dans le cas des réseaux monétaires décentralisés, il prend une importance cruciale, puisque la décentralisation de ces protocoles entre souvent en contradiction avec la rapidité d’exécution à laquelle l’ère numérique nous a habitués.
Des blocs de taille limitée
Le réseau Bitcoin est capable de traiter au maximum entre 4 et 7 transactions par seconde. Cette limitation vient de deux choses. D’une part, les blocs qui contiennent les transactions sont de taille limitée. D’autre part, l’algorithme d’ajustement de la difficulté fait en sorte qu’un nouveau bloc soit produit toutes les 10 minutes en moyenne, quel que soit le nombre de mineurs contribuant au réseau.
La taille maximale des blocs, exprimée en mégaoctets (Mo), a quelque peu fluctué au cours des dernières années avec l’arrivée de SegWit. Toujours est-il que cette dimension maximum est d’au moins 1 Mo, et qu’elle pourrait en théorie atteindre les 2 Mo si toutes les transactions incluses dans le bloc en question utilisent SegWit. C’est cette double considération (place limitée dans les blocs et fréquence de découverte des blocs) qui explique, par une simple règle de trois, cette rapidité de transaction d’entre 3 et 7 transactions par seconde.
Or, un tel débit n’est a priori pas compatible avec une utilisation de Bitcoin comme intermédiaire des échanges à grande échelle. D’où le nécessaire débat sur sa scalabilité.
Comment faire passer Bitcoin à l’échelle ?
La mise à l’échelle de Bitcoin pour lui permettre de traiter les transactions de millions d’individus de par le monde n’est, elle non plus, pas nouvelle. Si elle a été discutée très tôt, et même rapidement évoquée par Satoshi dans le whitepaper, il faut attendre fin 2014 pour que la question resurgisse. De manière de plus en plus insistante, une partie de la communauté propose en effet d’en finir avec la limite fixée des 1 Mo par bloc, appelée blocksize limit. S’ensuivra, les années après et jusqu’en août 2017, une véritable guerre au sein de la communauté Bitcoin.
D’abord très bon enfant, les discussions autour de la manière de faire passer Bitcoin à l’échelle finissent par s’échauffer, à mesure que la problématique devient de plus en plus concrète, introduisant chez certains un sentiment d’urgence, et qu’une part de plus en plus importante de l’écosystème s’en mêle.
Une guerre ouverte
Les deux camps qui s’affrontent sont les suivants : d’un côté, les big blockers, qui souhaitent une augmentation de la taille des blocs afin que le réseau puisse s’adapter à l’adoption croissante de Bitcoin comme moyen de paiement. Ce groupe n’est pas homogène, certains ne souhaitant qu’une augmentation modérée du blocksize (jusqu’à 8 Mo par exemple) tant que l’infrastructure existante (bande passante, matériel, etc.) ne permet pas d’aller au-delà, tandis que d’autres plébiscitent une augmentation initiale franche suivie d’une augmentation contenue mais régulière de la taille des blocs jusqu’à atteindre un certain seuil. Mais tous s’accordent sur le fait qu’une augmentation est nécessaire à l’adoption croissante de Bitcoin.
De l’autre côté, les small blockers, qui s’opposent à une telle augmentation, pour différentes raisons, dont en voici trois parmi les principales :
- augmenter la taille des blocs en modifiant le blocksize requiert un hard fork. Or, ces derniers sont perçus comme dangereux car sources d’instabilités.
- une augmentation trop importante de la taille des blocs nuit à la décentralisation du réseau car elle ne permet plus de faire tourner un noeud complet Bitcoin sur du matériel « bas de gamme » comme un Raspberry Pi ou un vieil ordinateur personnel par exemple.
- l’augmentation indéfinie de la taille des blocs, afin d’éviter qu’ils ne soient pleins, nuit à la sécurité de Bitcoin sur le long terme. Car celle-ci repose de plus en plus sur les frais de transaction à mesure que les subsides de blocs diminuent de halving en halving.
Ce débat animé s’est finalement soldé par un schisme entre les big et small blockers. Les premiers, dont la vision ne faisait plus consensus sur le marché à la fin de la « guerre », se sont séparés de la chaîne Bitcoin pour former une chaîne alternative, Bitcoin Cash, où la taille des blocs est définie sur 8 Mo. La chaîne Bitcoin historique est, quant à elle, restée avec la limite des 1 Mo, mais avec un ajout notable : le soft fork SegWit, dont nous avons parlé plus haut. Il avait pour but de proposer une solution de compromis en augmentant virtuellement la taille des blocs jusqu’à potentiellement 2 Mo, tout en corrigeant certaines faiblesses dans le fonctionnement de Bitcoin qui ne permettait pas, jusqu’alors, le développement de solutions de scalabilité en surcouche comme le Lightning Network.
Le Lightning Network
L’idée qui s’est imposée suite à la victoire des « petits blocs » est l’organisation de Bitcoin en couches, un peu à la manière des stacks TCP/IP ou du fonctionnement de certains réseaux monétaires traditionnels. Pour résumer, le principe est le suivant : utiliser Bitcoin comme couche de settlement sur laquelle on vient conclure de manière irréversible des transactions réalisées ailleurs, un peu à la manière dont les chambres de compensation bancaires permettent de clôturer en quelques écritures des millions de transactions.
Principe et fonctionnement du Lightning Network
Le Lightning Network est un réseau de canaux de paiement en surcouche de Bitcoin. Grâce à une transaction Bitcoin, deux noeuds du réseau peuvent construire un canal bidirectionnel sur lequel ils déposent un certaine quantité de bitcoins. Puis, une fois le canal ouvert, les deux parties prenantes peuvent réaliser, sur ce dernier, des milliers et des milliers de transactions en dehors de la chaîne Bitcoin en déplaçant les fonds d’un côté à l’autre du canal, un peu à la manière dont on déplace les sphères d’un boulier. Au sein du canal, les transactions ont lieu instantanément et sans frais.
Grâce à ce canal, les deux participants peuvent ainsi échanger de la valeur, dans les deux sens, au travers d’autant de transactions qu’ils le désirent, au prix d’une seule transaction Bitcoin pour ouvrir le canal. La seule limitation au volume qui peut être échangé est le nombre de bitcoins qu’ils ont décidé de placer dans le canal lors de l’ouverture. De même que l’on ne peut pas envoyer de nouvelles billes d’un côté du boulier si elles y sont déjà toutes, un côté du canal ne pourra pas recevoir de bitcoin dans ce canal s’ils sont déjà tous de son côté. Cependant, il peut en renvoyer une partie de l’autre côté, et dès lors tout n’est plus du même côté. On le voit, la bidirectionnalité des canaux de paiement joue ici un rôle essentiel.
Mais ce n’est pas tout : Lightning est aussi un réseau. Ainsi, il n’est pas nécessaire d’être directement connecté à un autre noeud par un canal pour pouvoir lui envoyer des fonds. Il est, en effet, possible de faire transiter son paiement au travers des canaux d’autres noeuds jusqu’à atteindre le destinataire final. Pour rétribuer les noeuds intermédiaires qui fournissent la liquidité permettant d’acheminer le paiement à destination, ces derniers peuvent prélever une petite commission (en général de l’ordre de quelques satoshis tout au plus).
Confiance et modèle de menace
Tout comme Bitcoin, le mode d’utilisation de Lightning pour les puristes et de passer par son propre noeud. De la sorte, un individu est pleinement autonome dans ses interactions avec le reste du réseau et entièrement en contrôle de ses fonds. De plus, des solutions comme Umbrel, myNode ou RaspiBlitz visent à simplifier ce process, même pour des utilisateurs sans bagage technique.
D’autres solutions, non custodiales et visant à réduire la confiance requise par l’utilisateur, permettent d’utiliser Lightning sans autre outil que son mobile. C’est notamment le cas de Phoenix et Breez, deux wallets Lightning disponibles sur iPhone et Android. Sans y paraître, ces deux applications mettent en oeuvre des bijoux d’ingénierie (Trampoline, Turbo channels, etc.) pour permettre à l’utilisateur de rester aussi souverain que possible, tout en supprimant toute la charge liée au fait d’avoir son propre noeud.
Les solutions managées ont, bien entendu, l’inconvénient de nécessiter une confiance supplémentaire de l’utilisateur envers ces entreprises, bien que cette confiance soit aussi minimisée que possible. Cependant, même lorsqu’on utilise son propre noeud, il est nécessaire d’avoir à l’esprit le modèle de menace particulier de Lightning. En effet, les fonds présents dans un canal étant, du point de vue de Bitcoin, présents sur une adresse multisignature, il est possible dans certaines conditions bien précises qu’un attaquant parvienne à les voler, malgré la présence de protections tirant parti de certains scripts Bitcoin poussés. Ce risque de vol est cependant très faible au niveau local, car une telle triche est rapidement détectée et punie par le noeud de l’utilisateur floué lui-même. Il n’est donc pas nécessaire de faire confiance à quelqu’un pour ouvrir un canal avec lui, mais il faut justement conserver une pensée orientée adversarial thinking de sorte à se prémunir de toute tentative de vol. On retrouve là une caractéristique essentielle de la philosophie derrière Bitcoin : ne jamais faire confiance.
Autre caractéristique intéressante : il est également possible de fermer un canal sans le concours de l’autre partie prenante. On récupère alors ses fonds sur une adresse Bitcoin classique, au travers d’une transaction Bitcoin dite « de fermeture ». Là encore, comme on le voit, le Lightning Network fonctionne sans qu’il soit nécessaire de faire confiance à qui que ce soit.
Quelle évolution pour le réseau Lightning ?
Mis en ligne sur le mainnet de Bitcoin au début de l’année 2018, le réseau Lightning a depuis connu un développement impressionnant, du point de vue de différentes métriques.
La capacité totale en nette augmentation
L’une d’entre elles est la capacité totale du réseau, c’est-à-dire l’ensemble des bitcoins déposés dans des canaux publics. Récemment, cette dernière a dépassé les 1600 bitcoins de liquidité disponible, comme le montre ce graphe du site Bitcoin Visuals.
Il faut cependant prendre garde à l’interprétation de cette métrique, pour deux raisons principales :
- elle ne peut, par définition, compter que les bitcoins présents dans des canaux « publics », c’est-à-dire annoncés au reste du réseau. Or, il existe aussi de nombreux canaux « privés » qu’utilisent notamment les solutions de wallets Lightning. En effet, le caractère « privé » d’un canal permet d’éviter qu’il soit utilisé par d’autres pour acheminer des paiements ailleurs dans le réseau : on s’en assure ainsi l’exclusivité.
- la liquidité sur Lightning a plutôt tendance à suivre la demande pour s’y ajuster, que l’inverse.
Ce dernier point permet de souligner une différence importante entre les bitcoins sur Lightning et les bitcoins « encapsulés » sur Ethereum, comme le wBTC par exemple. Dans le premier cas, les fonds permettent d’avoir de la liquidité pour réaliser des transactions, dans l’autre ils sont exploités pour obtenir un rendement. Les comparer est donc absurde. Pire encore, avoir « trop » de bitcoins sur Lightning par rapport aux besoins transactionnels associés serait une mauvaise allocation de capital. Il suffit qu’il y en ait juste assez pour satisfaire la demande.
Comment le Lightning Network a-t-il progressé au cours des derniers mois ?
Au cours des derniers mois, voire de la dernière année, le réseau Lightning a considérablement évolué, à plusieurs égards.
Premièrement, le nombre de noeuds a considérablement augmenté. Cela est notamment dû à la démocratisation de solutions comme Umbrel, qui permettent à tout un chacun de faire tourner un noeud Lightning à très peu de frais.
Deuxièmement, les usages ont eux aussi évolué. Qu’il s’agisse de paiements, avec l’initiative de Bitcoin Beach ou encore Strike, qui ont considérablement contribué à l’adoption de Bitcoin comme monnaie ayant offre légale au Salvador ; de modes de financement alternatif, avec par exemple Sphinx et Satoshis.Stream qui permettent aux créateurs de podcasts de recevoir des dons pendant l’écoute ; ou encore de Lightning Finance (LiFi) avec des plateformes comme LNMarkets qui tirent parti de l’instantanéité et de la quasi-gratuité des transactions Lightning.
Enfin, le Lightning Network a également évolué en tant que protocole, avec de nouveaux développements tant du point de vue de la spécification que des implémentations. On peut penser, par exemple, au paiement atomique multichemins (AMP) ou encore aux canaux à ouverture coinjointe (dual funding).
Quels défis à relever pour demain ?
Le Lightning Network a encore malgré tout de nombreux défis à relever. Parmi ceux-ci, la centralisation du réseau autour de hubs de paiement qui pourrait menacer le principe même de Lightning et de Bitcoin. Par ailleurs, un routage plus efficace des transactions au sein du réseau, sujet de travail actif, permettra de conserver cette décentralisation même dans un réseau plus étendu.
L’adoption et le développement de nouvelles applications au-dessus du Lightning Network continuent quant à eux de croître. Et ce n’est sûrement que le début.