Introduction au Lightning Network

Chapitre I Article l

Impossible de terminer ce chapitre sans nous pencher sur le Lightning Network. Bien que n'ayant aucun lien direct avec l’intérêt des institutionnels pour le réseau, il joue un rôle important dans l'adoption de Bitcoin. Si vous avez lu les articles qui précédent, vous avez pu constater que nous y avons souvent fait référence. Alors qu'est-ce que c'est ? À quoi sert-il et comment fonctionne-t-il ? Quels sont ses qualités et ses défauts ? Nous vous proposons ici une introduction au Lightning Network, une solution innovante qui vise à rendre Bitcoin plus adapté aux paiements du quotidien.

Temps de lecture estimé : 12 minutes

À quoi sert le Lightning Network ?

Nous l'avons vu dans cet article sur le registre comptable de Bitcoin, les blockchains ne peuvent pas être parfaites et les développeurs doivent faire des choix lors de leur conception. Ils sont confrontés au fameux « trilemme des blockchains » qui fait que trois de leurs propriétés principales sont antagonistes : la sécurité, la scalabilité et la décentralisation. Renforcer l'une tend inéluctablement à affaiblir les autres.

Trilemme des blockchains

Pour Bitcoin, l'accent a été mis sur la sécurité et la décentralisation, au détriment de la scalabilité.

Voici les paramètres qui font que le réseau n'est pas adapté pour traiter un grand nombre de transactions rapidement :

  • les blocs peuvent avoir une taille de 4 Mo au maximum (en 2023), ce qui limite le nombre de transactions qu'il est possible d'y inclure (quelques milliers).
  • les frais des transactions à payer aux mineurs pour espérer voir une transaction ajoutée dans un bloc dépendent de l'offre et de la demande. Plus il y a de transactions en attente, plus les frais sont élevés pour faire passer une transaction en priorité (voir le déroulement des transactions)

À cause de ces limites techniques, il faut donc attendre 10 minutes au minimum pour qu'une transaction soit validée (voire 1 heure suivant son importance, car il faut 6 blocs pour qu'une transaction soit considérée comme sûre).

De plus, si le nombre de transactions dépasse ce qui peut être inclus dans un bloc, les mineurs ne sont pas en mesure de toutes les traiter. Ils choisissent naturellement celles qui leur font gagner le plus, ce qui tend à faire augmenter les frais pour ceux qui veulent passer devant.

Sur le graphique ci-dessous, vous pouvez voir l'évolution des frais moyens (en dollars US) à payer par transaction.

Frais moyens par transactions sur le réseau Bitcoin
Frais moyens par transactions sur le réseau Bitcoin - source https://www.blockchain.com/explorer/charts/fees-usd-per-transaction

N'étant jamais inférieur à 1 dollar et étant montés à plus de 60 dollars US, Bitcoin n'est clairement pas fait pour échanger de petits montants ou vous payer un café en terrasse.

C'est un frein à son adoption massive comme moyen de paiement « simple » et rapide.

C'est pour remédier à ces deux problèmes, identifiés dès le début par Satoshi Nakamoto, que le Lightning Network (LN) a été conçu. Cette technologie vise à améliorer la scalabilité du réseau, permettant de réaliser des transactions rapides, peu coûteuses et sécurisées sans passer par la blockchain.

Comment fonctionne le Lightning Network ?

Comme nous venons de l'écrire, le LN permet d’exécuter des transactions hors de la chaîne principale (off-chain), et de les transférer ensuite en bloc sur Bitcoin pour les valider définitivement. C'est ce qu'on appelle une couche de niveau 2, ou layer 2. Il existe une multitude de technologies sur lesquelles s'appuient les layers 2 pour fonctionner comme nous le verrons dans le chapitre sur Ethereum [METTRE LIEN VERS L'ARTICLE], blockchain pour laquelle de nombreuses secondes couches ont été développées.

À ce jour, le Lightning Network est le layer 2 le plus utilisé de Bitcoin, même s'il en existe d'autres (Omni, Liquid, RSK...). C'est une solution de mise à l’échelle qui permet d’augmenter le débit des transactions tout en héritant de la sécurité de la blockchain sous-jacente sur laquelle elle est construite. Elle se base sur le concept de canaux de paiement bidirectionnels.

Le fonctionnement de pair à pair

Le LN permet à deux adresses d'effectuer une infinité de transactions entre elles, en enregistrant seulement 2 transactions sur la blockchain Bitcoin : une à l'ouverture de leur canal et une à sa fermeture. Une fois qu'un canal est ouvert, les deux adresses connectées peuvent échanger autant qu'elles le souhaitent. Lorsque l'une des deux décide de fermer le canal, le montant présent à chaque adresse est diffusé sur le réseau Bitcoin pour être enregistré dans la blockchain.

Illustrons nos propos avec un exemple pour vous permettre de mieux comprendre comme les choses se font.

Imaginons que Paul et Jean souhaitent échanger des bitcoins de manière récurrente. Ils décident alors d'ouvrir un canal sur le LN pour que leurs transactions soient instantanées, et éviter de payer des frais à chaque échange.

Sans entrer dans des explications trop techniques, voici comment se passe l'ouverture du canal :

  • Paul et Jean doivent décider de combien ils veulent déposer dans le canal pour pouvoir échanger. Ici, nous dirons qu'ils décident de déposer chacun 0.01 BTC ou 10 mBTC.
  • Ils doivent immobiliser ces jetons sur le réseau Bitcoin jusqu'à la fermeture du canal. Pour ce faire, ils créent une adresse multisignature qui nécessite leurs deux clés privées (voir article sur déroulement des transactions pour savoir ce que sont les clés privées) pour dépenser les fonds qui s'y trouvent.
    C'est ce qui correspond à la transaction d'ouverture enregistrée sur Bitcoin.
  • Grâce à un tour de passe-passe cryptographique, chacun peut retirer les fonds qui lui appartiennent sans l'accord de l'autre, ce qui signifie qu'ils n'ont pas besoin de se faire confiance.

Une fois que le canal est ouvert, Paul et Jean peuvent échanger autant qu'ils le souhaitent. L'appartenance des fonds dans le canal peut être représentée par un curseur.

Si Paul envoie 5 mBTC à Jean le curseur se déplace :

Ceci peut être répété à l'infini tant que le canal est ouvert. Lorsque Paul et Jean s'échangent des jetons, les mBTC ne sont pas déplacés. Les deux protagonistes s'échangent simplement un engagement sur la nouvelle répartition des fonds bloqués dans le canal.

Paul et Jean peuvent décider de fermer le canal quand bon leur semble, de manière consensuelle ou unilatérale (la fermeture consensuelle est à privilégier car elle coûte moins cher et est plus rapide pour des raisons techniques que nous ne verrons pas ici). La transaction de fermeture est alors enregistrée sur Bitcoin avec la nouvelle répartition des fonds.

Un mécanisme assure que si l'un des deux tente de tricher en demandant plus de jetons que la part à laquelle il a droit, l'autre peut récupérer l'ensemble des fonds présent sur le canal (à condition qu'il réagisse à temps).

Le réseau Lightninig

Pour réaliser un paiement, les utilisateurs peuvent s’appuyer sur les canaux de paiement établis par d'autres. Ils ne sont pas obligés d'ouvrir un canal direct avec le destinataire final.

Toujours pour faciliter la compréhension reprenons notre exemple. Paul et Jean ont ouvert un canal. De son côté, Paul à ouvert un autre canal avec Georges. Si Jean et Georges veulent échanger des bitcoins, ils peuvent passer par les canaux qui les relient à Paul pour ce faire, sans avoir besoin d'ouvrir un nouveau canal.

C'est de là que le LN tire son appellation de Network ou réseau en français : il s'agit d'un réseau de canaux. Dans ce réseau Paul est appelé un nœud. Voici une représentation du réseau complet qui compte 14 913 nœuds et 63909 canaux au moment de l'écriture de ces lignes (source : 1ml.com )

Représentation du Lightning Network
Représentation du Lightning Network - source : https://lnvisualizer.com/

Pour effectuer une transaction, il suffit qu'une route existe pour relier l'émetteur et le récepteur et qu’elle contienne assez de liquidité. En effet, comme pour un échange sur un seul canal, les bitcoins ne sont pas déplacés et ne peuvent pas passer d'un canal à l'autre. Ce sont les nœuds qui servent d'intermédiaire, récupérant des jetons d'un côté pour les distribuer de l'autre.

Dans notre exemple, imaginons que Jean souhaite envoyer 4mBTC à Georges.

Dans un premier temps (etape1), Jean envoie ses 4 mBTC à Paul sur leur canal commun. Paul envoie ensuite ses 4 mBTC à Georges (étape 2).

Jean ne pourrait pas envoyer les 1mBTC qui lui restent à Georges, car Paul ne dispose pas d'assez de liquidité sur son canal avec Georges.

En échange de son service d'intermédiaire, Paul touche des frais (qu'il fixe lui-même) et qui doivent être payé par Jean. Si le chemin pour rejoindre Georges (qui est calculé automatiquement) comprenait plusieurs nœuds intermédiaires, chacun d'entre eux prendrait des frais. Ils sont cependant beaucoup moins élevés que ce que coûterait une transaction sur Bitcoin et sont généralement de quelques satoshis.

Divers mécanismes internes (dont les HTLC pour Hashed Time-Locked Contracts) empêchent la fraude, mais nous n'entrerons pas dans les détails de leur fonctionnement ici. Sachez tout de même qu'ils existent et que les transactions sont sécurisées (les plus curieux peuvent se rendre ici pour plus d'informations), mais que les utilisateurs doivent rester vigilants car ils disposent d'un temps limité pour agir en cas de fraude.

Les qualités et les défauts du Lightning Network

Vous l'avez compris, les deux principaux avantages du LN sont de permettre des transactions rapides (juste 500 transactions par seconde par canal) avec des frais faibles (généralement de l'ordre de quelques satoshis).

Mais ce n'est pas tout. Les transactions sont bien plus confidentielles que les transactions sur la chaîne principale. En effet, il est beaucoup plus difficile de les tracer car les bitcoins ne sont transférés qu'une fois un canal fermé, et entre les adresses des deux personnes qui l'avaient ouvert même s'ils ont servi d'intermédiaires pour d'autres échanges).

Malheureusement, le LN n'est pas parfait et présente encore quelques inconvénients :

  • il implique que les utilisateurs séquestrent leurs jetons sur la blockchain principale. Ils perdent donc en partie le contrôle dessus.
  • Les nœuds ayant ouvert énormément de canaux peuvent devenir des hubs et conduire à une certaine centralisation du réseau.
  • les frais d'ouverture et de fermeture des canaux peuvent être problématiques s'ils sont élevés, notamment du fait que la fermeture peut se faire de manière unilatérale.
  • les utilisateurs peuvent être victimes de vol s'ils ne sont pas assez réactifs lors d'une fraude.
  • Les nœuds doivent être toujours en ligne, et risquent de perdre leurs fonds ou de bloquer les transactions dans le cas contraire.
  • La gestion de la liquidité peut être problématique, notamment pour ceux qui souhaitent se faire payer (voir ici)

Comment utiliser le Lightning Network ?

Pour effectuer des transactions sur le réseau LN, il vous faut un wallet compatible (Wallet of Satoshi, Breez, Bitcoin Lightning Wallet, Blue Wallet, Eclair Mobile, Zap,... ). Certains sont custodial, d'autres non, et certains prennent en charge les 2 réseaux (Bitcoin et Lightning Network) ce qui permet de passer de l'un à l'autre très facilement.

Ces wallets s'installent généralement sur smartphone pour des raisons de praticité. Il n'est pas très commode d'aller faire ses courses avec son ordinateur pour payer la note...

Il faut ensuite alimenter votre wallet Lightning Network, en transférant quelques fractions de bitcoins dessus.

Ensuite, le fonctionnement est le même que pour un portefeuille classique. Votre application va ouvrir un canal LN et vous pourrez payer, transférer vos satoshis avec un simple QR code, ou l'adresse LN du destinataire.

Si vous souhaitez créer un nœud, parce que l'idée de participer au réseau vous intéresse, ou parce que vous souhaiteriez accepter le paiement en Bitcoin dans votre boutique, c'est quelque chose de relativement simple à faire, si vous avez quelques connaissances informatiques.

Bien qu'imparfait, le Lightning Network offre une solution concrète au problème de scalabilté de Bitcoin. Le réseau est encore jeune et évolue régulièrement, et pourrait voir tous ses problèmes résolus au fil du temps. Une chose est sûre : c'est en partie grâce à des projets comme celui-ci que Bitcoin pourrait connaître une forte adoption. Mais que réserve l'avenir à Bitcoin ? C'est ce que nous verrons dans le prochain article.