Comprendre le fonctionnement du Lightning Network

Accueil/Fonctionnement de Bitcoin/Comprendre le fonctionnement du Lightning Network

Fonctionnement de Bitcoin

Comprendre le fonctionnement du Lightning Network

Le protocole Bitcoin dispose de limitations techniques. Dans un précédent article, vous avez pu découvrir que la limitation de l’intervalle, ainsi que la limitation de la taille des blocs, sont des compromis indispensables pour le bon fonctionnement de Bitcoin.

Pour l’utilisateur qui souhaite réaliser de petits paiements au quotidien, ces limitations peuvent être embêtantes. Il n’est pas optimal de devoir attendre 6 confirmations lorsque l’on paye un café par exemple. De plus, la limitation de la taille des blocs fait que, parfois, les frais pour effectuer une petite transaction sont trop élevés.

Au fil de l'adoption de Bitcoin, la scalabilité est rapidement devenue un thème central. C'est ce sujet qui a engendré la plus grosse scission au sein des utilisateurs de Bitcoin, en 2017, durant la « Block Size War » (guerre de la taille des blocs). Une partie de la communauté propose d'augmenter la taille limite des blocs. Une autre partie refuse de céder à la panique et propose de passer des transactions en dehors de la chaîne principale afin de la désengorger. Cette seconde proposition, c’est le Lightning Network.

Le Lightning Network, qu’est-ce que c’est ?

Le Lightning Network est un protocole de paiement permettant d’envoyer et de recevoir des bitcoins sans passer directement par le réseau principal. Il vise à augmenter la capacité et la vitesse des transactions, avec des frais contenus, tout en maintenant les principes originaux de Bitcoin (décentralisation, self-custody…).

Lightning est un protocole dit de surcouche, ou de seconde couche. C'est-à-dire qu’il s’appuie sur le système Bitcoin de base, sans pour autant y exécuter tous les paiements. Toutes les transactions Lightning sont faites off-chain et seul le résultat de ces transactions est publié on-chain.

Puisque les capacités transactionnelles sur le système Bitcoin de base sont limitées par des compromis techniques, Lightning vient tenter d’apporter une solution de passage à l’échelle des paiements. Il peut être intéressant de l’utiliser pour réaliser des micro-paiements à moindre coût, pour bénéficier de son règlement instantané, ou encore, pour éviter la congestion de Bitcoin lors des périodes de forte utilisation.

Contrairement à la plupart des altcoins, qui ont tenté d'augmenter leur capacité transactionnelle en modifiant directement leurs réseaux principaux, le passage à l’échelle de Bitcoin se fait donc off-chain. Cela permet de ne pas avoir à faire de compromis sur la sécurité et la distribution du protocole de base. 

➤ Découvrir les différences entre Bitcoin et les altcoins.

Les canaux de paiement Lightning

Le Lightning Network s'articule autour de canaux de paiement bidirectionnels, permettant à deux parties d'envoyer des bitcoins de l'une à l'autre. Les parties prenantes sont généralement appelées des « nœuds Lightning » (à ne pas confondre avec les nœuds Bitcoin).

Par exemple, imaginons qu'Alice et Bob souhaitent effectuer des paiements off-chain entre eux, avec le Lightning Network. Pour ce faire, ils vont devoir ouvrir un canal de paiement entre leurs nœuds Lightning. L’ouverture d’un canal se caractérise par le dépôt de bitcoins on-chain, sur une adresse multi-signatures 2/2. C'est-à-dire que pour dépenser les bitcoins bloqués dans cette adresse, il faut produire 2 signatures : une avec la clé d’Alice, et l’autre avec la clé de Bob.

Si Alice est à l’origine de cette ouverture de canal, elle va demander à Bob sa clé publique, puis elle va construire une transaction de dépôt pour bloquer des bitcoins sur l’adresse multi-signature. Elle demande également à Bob une signature sur une transaction de retrait afin d’éliminer au maximum le besoin de confiance envers lui. Une fois les communications entre les protagonistes effectuées, Alice peut diffuser sa transaction de dépôt sur le réseau Bitcoin.

Lorsque la transaction est confirmée on-chain, le canal de paiement Lightning entre Alice et Bob est ouvert. Du point de vue de Lightning, on peut imaginer ce canal comme un boulier. Les bitcoins peuvent librement être déplacés du côté appartenant à Bob, ou du côté appartenant à Alice. En revanche, les bitcoins ne sortent jamais du canal en lui-même.

Dans notre exemple, imaginons qu’Alice est à l’origine de la création du canal, et qu’elle y a déposé 500 000 sats. Ces satoshis sont pour le moment de son côté du canal, puisque c’est bien elle qui les a déposés.

Alice peut dorénavant envoyer des bitcoins via Lightning à Bob. Par exemple, imaginons qu’elle lui envoie 200 000 sats.

Suite à cette transaction Lightning, Bob dispose de 200 000 sats de son côté du canal, et Alice n’en a plus que 300 000. La capacité totale du canal reste la même. Il y a toujours 500 000 sats bloqués on-chain sur l’adresse multi-signature qui n’ont pas bougé. Pourtant, il y a bien eu un paiement Lightning effectué off-chain.

Bob peut désormais envoyer des satoshis à Alice. Par exemple, imaginons qu’il lui en envoie 25 000.

Le solde de ce canal est à présent de 325 000 sats pour Alice, et de 175 000 sats pour Bob.

Lorsque Alice et Bob n’ont plus besoin que ce canal soit ouvert, ils peuvent choisir de le fermer. Cette fermeture se matérialise par une transaction on-chain, qui va dépenser les bitcoins bloqués sur l’adresse multi-signatures, et qui va les envoyer vers des adresses normales appartenant à Alice et à Bob. Si tout se passe normalement, cette fermeture doit répartir les fonds en fonction du dernier état du canal. 

Si l’on reprend notre exemple, Alice dispose d’un solde de 325 000 sats dans le canal Lightning et Bob dispose de 175 000 sats. La fermeture du canal va donc dépenser les 500 000 sats disponible on-chain sur l’adresse multi-sig. Les sorties de cette transaction seront de 325 000 sats vers une adresse classique appartenant à Alice, et 175 000 sats vers une adresse appartenant à Bob. 

Il existe différentes façons de fermer un canal. La meilleure est de le réaliser de manière collaborative avec son pair. Cela permet de récupérer rapidement les fonds on-chain et d’économiser sur les frais Bitcoin dépensés lors de la clôture. 

Si le pair ne répond pas, il est possible de réaliser une fermeture unilatérale. Cette méthode requiert un temps d’attente supplémentaire. Enfin, si le pair tente de tricher sur l’état du canal lors de la fermeture, l'autre partie peut utiliser une transaction de pénalité. Cette transaction donne tous les bitcoins du canal à la partie honnête comme une pénalité pour la tentative de tricherie de l’autre.

L’utilisation du Lightning Network requiert ainsi de réaliser deux transactions on-chain : une pour l’ouverture d’un canal et une pour la fermeture d’un canal. Entre les deux, les utilisateurs peuvent réaliser un grand nombre de paiements Lightning, sans avoir besoin d’utiliser à chaque fois le protocole Bitcoin de base.

Cependant, il peut être assez fastidieux de devoir ouvrir un nouveau canal dès que l’on souhaite réaliser un paiement Lightning vers une nouvelle personne. C’est pour cela qu’il existe un système pour router des paiements à travers le réseau Lightning.

➤ En savoir plus sur le fonctionnement d’une transaction Bitcoin de base.

Le réseau Lightning et le routage de paiements

Tous les canaux tels que décrits dans la partie précédente peuvent être reliés pour acheminer les paiements entre des parties qui ne disposent pas d’un canal direct. Pour ce faire, il suffit qu’une route soit possible entre les deux protagonistes, et qu’il y ait suffisamment de liquidités dans les canaux sur cette route.

Reprenons notre exemple entre Alice et Bob, qui ont ouvert un canal direct ensemble. Imaginons que dorénavant, Alice souhaite faire un paiement de 50 000 sats à Frank, sans pour autant devoir ouvrir un canal avec lui.

Certains des participants ont déjà ouvert des canaux entre eux, et il existe une route entre Alice et Frank.

Alice va pouvoir faire son paiement Lightning en passant par les nœuds de Bob, puis de Charles, puis de David, pour enfin arriver chez Frank. Les montants dans les canaux bidirectionnels vont tous se déplacer afin de router le paiement d’Alice jusqu’à Frank.

Si l’on regarde individuellement chaque canal, leurs montants n’ont pas changé. Il est important de comprendre que la capacité d’un canal seul est constante, malgré le routage des paiements. C’est-à-dire qu’il y a toujours exactement le même nombre de bitcoins dans chaque canal.

Si l’on regarde individuellement chaque nœud intermédiaire, le routage du paiement d’Alice vers Frank n'a aucune incidence financière. Par exemple, le nœud de Charles a reçu 50 000 sats dans son canal avec Bob. Il a ensuite envoyé 50 000 sats dans son canal avec David. C’est donc une action à blanc pour chaque nœud intermédiaire comme Charles. Aucun d’eux n'a gagné ou perdu de bitcoins. Ils ont simplement transféré de la valeur à travers leurs canaux Lightning. Cette méthode de transmission du paiement à travers les nœuds est une forme de routage en oignon.

Pour simplifier, j’ai intentionnellement négligé les frais Lightning dans ma vulgarisation. En réalité, chaque nœud intermédiaire peut réclamer des frais de transaction Lightning pour router le paiement d’Alice vers Frank.

Évidemment, il existe de nombreux autres mécanismes utilisés dans le Lightning Network. Parmi ceux-ci, il y a les HTLC (Hashed TimeLock Contracts) qui jouent un rôle primordial pour éviter le besoin de confiance entre chaque nœud lors du routage d’un paiement. Leur fonctionnement est assez complexe, alors, je vous en parlerai dans un prochain article dédié.

➤ Abonnez-vous à notre newsletter pour ne pas manquer nos prochains articles.

Conclusion

Le Lightning Network est un protocole élégant qui permet de réaliser de nombreux paiements en bitcoins off-chain. Il permet d’obtenir des règlements instantanés et d’effectuer des transactions à moindre coût.

Même si Lightning a énormément évolué en quelques années, son modèle de base n’est pas parfait. Comme vous avez pu le comprendre avec cet article, l’utilisateur doit forcément disposer de liquidités entrantes avant de pouvoir recevoir des paiements. C’est très embêtant pour l’expérience utilisateur. De plus, la structure même du Lightning Network fait qu’il est très complexe d’avoir de la confidentialité avec certains paiements.

Enfin, le système des canaux de liquidité fait qu’il y a forcément une incitation pour l’utilisateur à se connecter seulement à quelques gros nœuds d’entités. Contrairement à Bitcoin, il y a donc une tendance naturelle à la centralisation dans le fonctionnement de Lightning.

Depuis peu, on commence à voir arriver d’autres protocoles de seconde couche sur Bitcoin avec des cas d’utilisation similaires à Lightning. C’est le cas, par exemple, du prometteur protocole Ark, annoncé en mai 2023 par le développeur Burak. Même si le développeur de ce protocole le présente comme un système complémentaire à Lightning, on ne peut pas s’empêcher de penser qu’il en est en partie le concurrent. Cela montre qu’il est absolument possible que de nouveaux systèmes de seconde couche plus efficaces émergent et prennent le pas sur le Lightning Network.


Ressources : 

Vous avez aimé cet article ?

Inscrivez-vous à notre newsletter pour recevoir les prochaines publications.

Ces articles pourraient vous plaire

Découvrez les derniers articles publiés.

Envie de lancer votre épargne en Bitcoin ?

Découvrez Bitstack, l’application la plus simple d'Europe pour investir dans le Bitcoin !

Télécharger Bitstack