Encore un poncif


‘Bitcoin n’est pas une bonne monnaie pour des échanges en masse et à très peu de frais. On ne peut pas payer son café avec’.

Nous l’avons vu, le modèle de sécurité et de décentralisation de la reine des cryptomonnaies est conçu sur une base fixe et raisonnable de la taille des blocs afin de permettre à n’importe qui sur le réseau de l’enregistrer.

Pour être valide, un paiement doit être écrit dans un bloc et cette opération dure une dizaine de minutes en moyenne.

Nous savons aussi que l’écriture d’une transaction dans un bloc fait l’objet d’un marché annexe d’offres et de demandes pour les frais de mineurs, le placement des transactions dans le bloc à venir étant priorisé aux utilisateurs offrant le plus de ‘pourboires’, décidant eux-mêmes du degré d’urgence du paiement.

En pratique, le réseau Bitcoin seul permet environ 7 transactions par seconde pour des frais variant à des équivalents de 0,50 à parfois 20 euros en fonction de l’engorgement de la mempool (et de la taille de transaction).

‘Pas très efficace pour une monnaie qui se veut universelle’ entendons-nous encore sur les plateaux télés…

… Déjà résolu !

En vérité, ce problème – dit ‘de scalabilité’, entendez : passage à une plus grande échelle – est résolu depuis 2018 et opérationnel depuis 2019 !

La solution trouvée est un réseau de surcouche, c’est-à-dire déployé parallèlement au réseau Bitcoin, qui prend et délivre des informations sur la blockchain Bitcoin, mais qui fonctionne indépendamment de celui-ci.

Son nom : ‘Lightning Network’ ou ‘Réseau Eclair’.

Une vieille idée


Selon la légende, Satoshi Nakamoto lui-même aurait écrit un morceau de code permettant à une transaction en cours d’exécution d’être modifiée au dernier moment par son initiateur, mais il ne l’aurait finalement pas intégré.

Vers 2013, cette idée est reprise dans un article, mais à l’époque, elle est considérée peu pratique, car elle ne fonctionne que dans un seul sens et présente d’autres limites techniques.

Finalement, en 2015, deux développeurs écrivent alors un document technique où le procédé est grandement amélioré et ses obstacles surmontés (Joseph Poon et Thaddeus Dryja – ‘Bitcoin Lightning Network : Scalable Off-Chain Instant Payments).

Dès 2016, 4 entreprises de l’écosystème crypto planchent alors sur une exécution pratique de ce procédé.

En 2018, comprenant que l’interopérabilité de leurs solutions est une clé pour la réussite, elles s’unissent pour produire une liste de standards open source, les BOLT’s – pour ‘Basis Of Lightining Technology.

Dans un monde où la concurrence est âpre, le fait est suffisamment rare pour être relevé et salué.

Ces BOLT’s sont accessibles à tous et n’importe quelle société désirant développer un projet sur Lightning peut les reprendre pour y être parfaitement compatible.

Mais de quoi s’agit-il ?

Lightning est un réseau qui s’appuie sur Bitcoin.

Il profite donc de son modèle de sécurité sans autorité de confiance.

Cependant, le protocole de Lightning fait usage pour lui-même d’autres règles et d’autres compromis.

Un point qui a toute son importance : les transactions effectuées sur Lightning sont de véritables transactions Bitcoin, valides et publiables à n’importe quel moment sur la blockchain Bitcoin, mais qui peuvent demeurer indéfiniment sur Lightning si on le souhaite.

Lightning permet des micropaiements Bitcoin, quasiment instantanés (quelques secondes au maximum) et à très peu de frais (de l’ordre de quelques satoshis).

Depuis l’arrivée de Lightning, Bitcoin pourrait désormais être considéré comme un gros coffre-fort et Lightning comme le véritable porte-monnaie.

Eh oui ! Aujourd’hui, il est tout à fait possible de payer sa baguette, son café ou sa bière en bitcoin !

Le canal de paiement


La brique de l’édifice Lightning s’appelle le ‘canal de paiement’.

Il s’agit d’une transaction particulière initiée sur la blockchain Bitcoin, qui transfère du bitcoin en pointant vers une nouvelle adresse un peu spéciale – dite ‘2/2’ – car partagée par deux copropriétaires.

Cette transaction obéit à des conditions spécifiques permettant d’ouvrir automatiquement une communication entre les deux interlocuteurs sur le réseau Lightning, appelée le ‘canal’.

Nos deux compères vont alors utiliser cette communication pour partager, selon des règles strictes, du bitcoin apporté dans la transaction initiale.

Ils vont se payer l’un l’autre en communiquant et se mettant d’accord – par les mathématiques – sur la manière dont les fonds se répartissent entre eux.

Comparons : imaginons partager à deux un ancien porte-monnaie (vous savez, ce vieux modèle avec un fermoir à deux boules).

À l’intérieur, il y a une séparation en tissu partageant en deux le contenu.

On peut décider que la partie de gauche appartient à l’un et celle de droite à l’autre.

Faisons alors passer les sous d’un côté à l’autre de cette séparation en fonction des paiements que nous nous faisons, à l’abri des regards indiscrets.

Un canal fonctionne aussi simplement que cela.

Chic et pas cher

La proposition du Lightning Network repose donc sur ce principe : ‘les canaux de paiement bidirectionnels’ qui sont à chaque fois établis entre deux parties qui souhaitent effectuer des transactions entre elles.

Ils permettent de s’envoyer des paiements autant de fois qu’on le souhaite sans avoir besoin d’afficher chaque transaction dans la blockchain Bitcoin.

Ces transactions sont mutuellement signées pour être valides et demeurent stockées dans le canal, hors de la chaîne de blocs.

Ainsi, nos deux participants peuvent continuer à effectuer des transactions autant de fois qu’ils le souhaitent (tant qu’ils disposent de fonds suffisants dans le canal, bien évidemment).

Il en résulte une réduction considérable de la congestion de la blockchain et rend possibles des paiements plus rapides, moins coûteux… Et aussi plus confidentiels.

À chaque fois, le solde de chacun est mis à jour à l’intérieur du canal au fur et à mesure que de nouvelles transactions sont effectuées et les répartitions précédentes font l’objet d’un échange de clés de révocation.

Cette mise à jour est cryptographiquement sécurisée à travers un mécanisme appelé ‘Hash Time-Locked Contracts’ ou HTLC.

Contrat à déclenchement différé


Lorsqu’une transaction est effectuée dans le canal, un contrat HTLC est créé.

Ce contrat spécifie une condition de délai pendant lequel la transaction peut être révoquée.

Si les bonnes conditions sont remplies dans les délais impartis, la transaction est validée et les fonds sont transférés au destinataire.

Sinon, les fonds sont retournés à l’expéditeur.

Magie des réseaux

Mais quel avantage aurions-nous à utiliser un canal à deux ?

Parce que ces canaux peuvent aussi communiquer en réseau, pardi !

Les paiements dans Lightning peuvent être routés et relayés à travers plusieurs canaux.

Par exemple, si A veut envoyer des fonds à C, mais n’a pas de canal direct avec C, A peut faire transiter par un canal de paiement avec B qui a un canal de paiement avec C.

C’est très simple : il suffit d’utiliser des contrats HTLC successifs, où chaque participant valide la transaction et transfère à la partie suivante ; de relais en relais, la transaction finit par atteindre le destinataire final.

Cela s’appelle le ‘paiement multi saut’ (‘multi hop’, en anglais)

Fermeture du canal


À un moment donné, si au moins un des participants ne souhaite plus utiliser Lightning et terminer ses transactions hors chaîne pour revenir sur Bitcoin, il peut créer une transaction de clôture qui va consolider les deux soldes du canal.

Cette transaction est ensuite diffusée sur la blockchain Bitcoin, où elle est confirmée et enregistrée… mais seulement après un certain délai.

La ruine du tricheur

Car attention !

Malheur à lui si c’est un petit filou qui a décidé non pas de publier deux soldes finaux corrects, mais une ancienne répartition qui lui est plus favorable, car dans ce cas l’autre partie dispose alors d’un temps réaction non-négligeable.

Pour quoi faire ? Pour prendre tous les fonds qui se trouvent dans le canal en utilisant les clés de révocations : c’est ‘la transaction de pénalité’.

L’honnêteté dans Lightning est garantie par ce risque de punition totale. C’est une arme de dissuasion massive, capable de faire tout perdre au tricheur.

Une confidentialité accrue

Un paiement effectué sur Lightning ne se voit pas sur la blockchain.

Sur cette dernière, on ne peut voir que la transaction initiale et celle de fermeture.

Tout le reste est enregistré dans le canal et connu uniquement des deux participants.

Cerise sur le gâteau, la communication entre les canaux se fait au moyen de ce qu’on appelle un ‘routage en oignon’, un procédé de communication par relais chiffré et très efficace (semblable à TOR, pour les connaisseurs).

De cette façon, un canal qui relaie un paiement ne connaît ni l’émetteur ni le destinataire de celui-ci, ce qui améliore d’autant la confidentialité.

En résumé


Lightning offre plusieurs avantages.

Tout d’abord, il permet d’effectuer des transactions instantanées, à la vitesse télécom, puisque contrairement aux paiements sur la chaîne de blocs principale qui nécessitent une confirmation des blocs, les transactions dans Lightning s’opèrent en dehors de la chaîne.

Ensuite, Lightning permet des frais de transaction considérablement réduits. Étant donné que les transactions sont effectuées hors chaîne, les frais associés à l’utilisation du réseau Bitcoin sont éliminés. Ces frais ne sont payés que pour l’ouverture et la fermeture des canaux, ce qui en fait une option très économique pour de petits paiements.

Enfin, Lightning offre une évolutivité accrue pour la taille de Bitcoin, son passage à une échelle ‘universelle’. Compte tenu du nombre limité de transactions que la blockchain peut traiter, il permet de réduire considérablement sa congestion en effectuant des transactions hors d’elle. Ainsi, Bitcoin peut gérer un nombre de transactions d’un autre ordre de magnitude sans compromettre la sécurité et la décentralisation du réseau.

Aujourd’hui, de plus en plus de commerçants acceptent Bitcoin et le paiement en Lightning, pour eux bien plus pratique et rapide.

C’est entre autres le cas de certains bars… Alors, à votre santé !

Contrairement à Bitcoin, la sécurité de Lightning repose sur le maintien d’une connexion active entre les participants. Si l’une des parties ne répond pas pendant une période prolongée, cela peut entraîner une immobilisation inutile de fonds pour l’autre partie.

Cela peut aussi entraîner une perte dans certains cas.

Heureusement, des mécanismes tels que le « Watchtower » ont été proposés pour résoudre ce problème en permettant à une tierce partie de surveiller plusieurs canaux de paiement et ainsi protéger les participants.