Qu’est ce que le Lighting Network et à quelle problématique répond-t-il ?
Le Bitcoin, première des cryptomonnaies, a été lancé il y a maintenant 11 ans. Néanmoins, au fil des années, ce-dernier n’a subi que peu de soft forks afin de rester au plus près de la création originale de Satoshi Nakamoto. La taille des blocs, par exemple, qui ne dépasse pas 1 Mo afin de limiter le risque d’attaque informatique. Tout le monde n’est pas d’accord avec cette idée, et cela mena à un Hard Fork en août 2017 avec la création du Bitcoin Cash. Cette cryptomonnaie dérivée du Bitcoin original change la taille des blocs puisqu’ils passent à 32 Mo. Elle permet de d’augmenter le nombre de transactions par seconde (7 transactions/secondes pour le bitcoin contre 250 pour le Bitcoin Cash) mais, ironiquement, les blocs de Bcash sont aujourd’hui majoritairement vides.
A la fin de l’année 2017, le cours du Bitcoin et des autres cryptomonnaies s’est envolé, ce qui a augmenté le nombre d’utilisateurs en un laps de temps très court et a engendré une congestion au niveau des transactions. Cet événement a mis en valeur les problèmes de scalabilité du Bitcoin (certaines transactions ont mis plusieurs semaines à être validées). Il est également apparu que le fait d’augmenter les fees pour qu’une transaction soit traitée plus vite n’est pas une solution durable. De ce constat, une solution dont la graine à été imaginée par le créateur du bitcoin commence à se démocratiser : le lightning Network.
C’est un réseau décentralisé en surcouche de la chaîne du bitcoin permettant de réaliser des transactions :
- En peer-to-peer et de manière instantanée
- Sans limite de transactions par seconde sur le réseau
- Avec des fees très faibles (ce qui facilite les micro-transactions)
Sur le papier le Lightning Network apparaît comme LA solution parfaite, mais qu’en est-il de son fonctionnement ?
Comment ça fonctionne (simplement) ?
Comme dit précédemment, Satoshi Nakamoto a suggéré l’idée que des transactions puissent être mise à jour avant d’apparaître (en l’occurrence être confirmées) sur la blockchain. Le solde de l’adresse serait actualisé à l’extérieur de la blockchain. Cette idée a été récupérée par Joseph Poon et Thaddeus Dryja en 2016 dans un whitepaper et a été poussée plus loin avec le projet “Lightning Network”. Ils ont imaginé des canaux de paiements qui seraient ouverts par une transaction inscrite dans la chaîne Bitcoin puis, une fois un canal ouvert (entre 2 utilisateurs), on pourrait effectuer autant de transactions entre les membres du canal que l’on veut (modulo certaines restrictions). Pour fermer ce canal, il faut que les membres soient conjointement d’accord et effectuent une transaction de fermeture qui sera inscrite dans la blockchain.
Une analogie souvent employée, pour représenter l’action de résumer plusieurs transactions en une seule, et uniquement cet aspect, est celle de deux personnes dans un bar. Elle savent qu’elles vont payer leur tournée (c’est-à-dire payer pour elle et l’autre personne) plusieurs fois dans la soirée, à tour de rôle. Mais elles veulent également rester à l’équilibre, et que chacun paie in fine autant que l’autre à la fin de la soirée. Plutôt que de se rembourser après chaque achat au bar, elles notent sur un papier les transactions réalisées :
Alice paie deux bières (8 euros), Bob doit 4 euros à Alice
Bob paie quatre shooters (4 euros), Alice doit 2 euros à Bob
Alice achète une pizza (c’est un bar-restaurant, 10 euros), Bob doit 5 euros à Alice
Bob paie deux bières (8 euros), Alice doit 4 euros à Bob
Certaines transactions se recoupent, se compensent. Si nos deux fêtards avaient du se rembourser après chaque transactions, ils auraient dû réaliser un total de 4 transactions. Ici, en notant tout au fur et à mesure sur une feuille de papier, il suffit d’une seule transaction de 6 euros, à la fin de la soirée, de Bob vers Alice, pour régler les dettes de chacun.
On rassemble donc un ensemble de transactions sous la forme de 2 transactions inscrites dans la blockchain. Une première, qui ouvre le canal d’échange, et une seconde qui le ferme tout en inscrivant sur la blockchain Bitcoin le résultat final de toutes ces transactions “intermédiaires”.
Sous un aspect plus technique, le Lightning Network fonctionne grâce à un portefeuille (wallet) multisignature. Un portefeuille multisignature fonctionne comme un portefeuille classique sauf qu’il peut être contrôlé par plusieurs personnes. Chaque détenteur possède sa clé privée et met en commun sa clé publique avec les autres afin d’en former une seule. Il y a plusieurs types de portefeuilles multisignatures, comme le 2 of 3 ou il y a 3 utilisateurs sur ce portefeuille qui nécessite 2 clés privées afin de pouvoir réaliser des transactions.
Pour le Lightning Network, on utilise un wallet de type 2 of 2 (qui nécessite l’accord des 2 membres pour que la transaction soit validée). Les actions effectuées à l’intérieur de ce canal ne sont pas en réalité des transactions, mais des “promesses de transactions” (la somme des transactions intra canal ne doit pas dépasser la somme de la transaction d’ouverture). Cela équivaut à actualiser les soldes de chaque personne au sein du réseau. Pour éviter qu’un des 2 membres triche en diffusant des transactions sur la blockchain alors que le réseau est ouvert, un systeme de secret enlève tout intérêt à tricher sous peine de perdre ses fonds. Le canal est fermé lorsque les 2 détenteurs sont d’accord et la transaction qui apparaîtra sera l’état final des soldes.
Comment est mis en place ce système ingénieux ?
Le projet Lightning Network n’est qu’à ses début puisqu’il est toujours en développement par des entreprises comme Blockstream ou Lighting labs. La deuxième entreprise a été co-fondée par Joseph Poon, le pionnier du Lightning Network. Ces entreprises proposent des services de lightning, mais font également de la recherche. Elles s’occupent de créer des wallets on l’on peut déposer des bitcoins (somme que l’on peut perdre, car le réseau est encore expérimental et peut être victime de bugs) pour pouvoir ensuite réaliser des transactions avec d’autres nœuds auxquels on est directement reliés, mais également aux autres noeuds avec lesquels ils sont reliés, et ainsi de suite. On peut alors comparer ça à une immense toile où chaque nœud est relié à d’autres, directement ou indirectement.
A l’heure de l’écriture de cet article, le réseau Lighting Network est constitué de 10 695 noeuds et 35 128 canaux.
3 réponses sur “Introduction au Lightning Network”