Explorons l’expérience du Lightning Network

Traduction simplifiée de l’article Explorons la routine du Lightning Network (le second sur une série de trois), posté par Bryan Vu, le 30 mai 2018, sur le blog de Lightning Labs :

L’objectif de cette série d’articles est de donner à la communauté Bitcoin et aux utilisateurs potentiels de Lightning un aperçu sur l’expérience du Lightning Network […]. Pour illustrer les apports de cette technologie, nous vous présentons l’expérience de Carol, une nouvelle utilisatrice de Lightning.

Lors du dernier post, notre célèbre héroïne -Carol- venait de rejoindre le Lightning Network et avait commencé à faire ses 1ères transactions Lightning pour ses achats en magasins ou en ligne.
Au fur et à mesure qu’elle commençait à se familiariser avec cette technologie et son expérience utilisateur, elle s’intéressait même à Lightning d’un point de vue technique!Elle était même en train d’envisager de gérer elle-même un nœud de routage Lightning, pour économiser en frais de routage et ainsi de rembourser son abonnement mensuel à BitFlix.

Ce post s’adresse donc aux enthousiastes en herbe qui, comme Carol, s’intéressent à l’exploitation des nœuds Lightning, construisent des applications pour le réseau Lightning, et sont des curieux avec ou sans connaissances de Lightning et des canaux de paiement.

Les 8 sujets de ce post sont :

  • « Channel balance » : l’équilibre financiers des canaux
  • « (Gateway) Routing nodes » : les nœuds de routage (et leurs passerelles)
  • « Advertised and non-advertised channels » : canaux de routage connus et canaux de routage non-annoncés
  • « Buffer capital » : une réserve de capital
  • « Autopilot and node availability metrics » : le Pilote automatique et mesures de disponibilité des nœuds
  • « Source routing » : acheminement des sources
  • « Onion routing » : routage en oignon
  • « Bridge channels and network connectivity » : les ponts de canaux et la connectivité réseau
  • « Atomic multi-path payments » : les paiements atomiques par trajets multiples (AMP)

Nous espérons que ce post permettra aux lecteurs de mieux comprendre le protocole Lightning et la façon dont le réseau évoluera au fil du temps, ainsi que nos objectifs sur des sujets tels la résistance à la censure/décentralisation, la sécurité, la confidentialité, la facilité d’utilisation, l’évolutivité, la vitesse, le coût, mais aussi la disponibilité des fonds utilisateurs et la connectivité entre les participants au réseau.

1/ L’équilibre financiers des canaux

L’un des principaux concepts de Lightning se base sur l’équilibre des canaux :- les utilisateurs remplissent leur portefeuille Lightning et peuvent en dépenser tout leur solde. Lorsque le wallet est vide, il faut que son utilisateur le recharge avec du crypto-argent afin de pouvoir recommencer à dépenser sur une période de plusieurs jours ou semaines. Concrètement, les canaux Lightning sont similaires aux comptes bancaires : ils peuvent être vidés et re-remplis sans cesse par de nouveaux dépôts.- les canaux de paiement ont donc chacun une capacité équivalente au total des montants que chaque participant du canal y a envoyé.- tel que dans la vie réelle, on s’attend à ce que les utilisateurs de Lightning gardent les canaux ouverts pendant des mois ou des années, afin de minimiser les frais nécessaires pour fermer les canaux et en ouvrir de nouveaux. 
Cet système d’équilibre financier inhérent au fonctionnement des canaux s’applique de la même manière pour les transactions d’achats/ventes des commerçants, des exchanges et des autres entreprises professionnelles, qui gèrent des entrées et des sorties de fonds sur les canaux Lightning. Bien sur, les entreprises auront plus de canaux et une plus grande grande quantité de fonds que celle des utilisateurs finaux.
Les utilisateurs et les entreprises qui souhaitent augmenter les « limites » disponibles pour envoyer et recevoir via Lightning peuvent ouvrir des canaux supplémentaires ou augmenter la capacité des canaux existants (le processus de redimensionnement des canaux est appelé « splicing » et fera l’objet d’un futur post dans ce blog).
Le point essentiel à retenir : quelque soit leur statut, tous les participants au réseau Lightning géreront des flux entrants et sortants de leurs canaux, et cela est un processus identique à celui des systèmes financiers existants aujourd’hui.

L’attribut alt de cette image est vide, son nom de fichier est channel_balance.png.

Le flux de fonds entrants et sortants pour les participants au réseau : nous estimons que plus le réseau évoluera et se stabilisera, plus les participants auront une combinaison de flux entrants et sortants qui s’auto-équilibreront, même s’il y aura des périodes de flux déséquilibrés, dans un sens ou dans un autre.

2/ Les nœuds de routage (et leurs passerelles)

On prévoie que la majorité des utilisateurs de Lightning enverront et recevront leurs transactions via leurs cellphones ou leurs ordinateurs portables. Ce détail est crucial car il signifie que l’accès à internet sera sporadique et avec des qualités de connexion aléatoires.
Pour faire face à ces contraintes, une grande majorité de canaux sera ouverte entre les nœuds des utilisateurs finaux et les nœuds de routage. En effet, les nœuds de routage ont vocation à être constamment connectés et de gagner des paiements sur les acheminements de data effectués.
Les nœud Lightning -qu’ils soient de routage ou non- devront s’interfacer avec le réseau Bitcoin.
Ils pourront être des nœuds complets ou des nœuds allégés (cf neutrinos: utilisation de protocoles de clients légers). Cependant, les nœuds de routage à fortes capitalisation préféreront rapidement la sécurité totale attestée par la possession d’un nœud Bitcoin entièrement validé.
Les “Gateway”- les passerelles des nœuds de routage- ont comme mission de servir les utilisateurs finaux.
Comme les utilisateurs sont aujourd’hui peu nombreux (probablement des centaines), les nœuds sont peu sollicités et ont des besoins modestes en termes de matériel, de bande passante.
Comme notre objectif est de faciliter le développement d’un écosystème de nœuds de routage largement distribué avec de faibles barrières à l’entrée, des outils et des guides pour les opérateurs de nœuds de routage seront bientôt publiées.

3/ Les canaux de routage connus et canaux de routage non-annoncés

Il a aussi un aspect de Lightning sur sa visibilité: la majorité des nœuds et des canaux Lightning ne seront pas disponibles pour le routage ni même visibles dans le graphique du réseau général.En effet, par défaut les nœuds des utilisateurs finaux (smartphones, ordinateurs portables, etc.) ne « font pas de publicité » c’est à dire que par défaut, ils ne s’annonceront pas publiquement auprès des canaux.
Les canaux des utilisateurs finaux sont donc invisibles et ne deviendront connus et accessibles que grâce aux indications de routage intégrées dans leurs demandes de paiement Lightning. Ces indications supplémentaires permettront à un émetteur de paiement de construire des itinéraires combinant des sauts sur canaux connus et canaux invisibles (= les canaux non-publics des individuels) présents dans le réseau, même avec une perception incomplète du graphique du réseau dans son ensemble.

Il faut réaliser que plus ces canaux non-annoncés deviendront la solution par défaut des utilisateurs finaux, plus le routage Lightning sera efficace car il y aura une multitude de petites tables de routage remplies de nœuds plus fiables.

L’attribut alt de cette image est vide, son nom de fichier est routing_hints.png.

Les canaux de paiement disponibles uniquement par intermittence ne seront ni utilisés pour l’acheminement ni annoncés à l’ensemble du réseau.
attention ce schéma est doublement simplifié: une passerelle typique disposeront d’une très grande quantité de canaux entrants et sortants, et les appareils des utilisateurs finaux seront connectés à plus d’une passerelle.

4/ Une réserve de capital

Comme les nœuds de routage fournissent un accès continu au réseau, ils regroupent les flux entrants et sortants de nombreux utilisateurs, et cela offre un auto-équilibrage relatif des flux globaux de chaque nœud de routage. En effet, dans une même période, certains utilisateurs d’un nœud de routage dépenseront leur pécule alors que d’autres seront en train de réapprovisionner leur wallet de cryptomonnaie.
Il arrivera sans doute que des fonds soient acheminés dans une même direction pendant un période (ex: plus de dépenses que de recettes). Pour faire face à ce type de scénario, un des nœud de routage a la responsabilité de maintenir « un capital tampon/ un capital de réserve » suffisant pour pouvoir attendre que le flux de fonds -entrants ou sortants- s’inverse et donc retrouve un état plus équilibré. 
Les nœuds de routage qui n’auront pas suffisamment de capital pour gérer ces déséquilibres verront leurs canaux s’assécher et donc des défaillances de routage. 
Ce type de défaillance devrait être relativement peu fréquent, car les nœuds qui n’auront pas anticipés seront contournés, pouvant être jusqu’à être déconnectés par les autres nœuds. C’est pour cela que les opérateurs de nœuds sont fortement incités à anticiper sur un capital tampon suffisant pouvant prendre en charge un grand nombre de volumes de flux.

L’attribut alt de cette image est vide, son nom de fichier est buffer_capital.png.

Le capital tampon : les nœuds de routage doivent fournir un capital tampon suffisant pour éviter l’épuisement des canaux et les défaillances de routage.

5/ Pilote automatique et mesures de disponibilité des nœuds

Pour les utilisateurs finaux, Lightning dispose d’une fonction de pilote automatique qui automatise le processus de recherche des nœuds de routage de la passerelle et d’ouverture des canaux. 
Les prochaines itérations du pilote automatique utiliseront les principales mesures qui comprendront : le temps de fonctionnement, le volume des canaux sortants, l’étendue de la connectivité des canaux et la proximité de destinations spécifiques. Ces données seront recueillies par les nœuds de routage afin de faciliter la création initiale de canaux ainsi que l’optimisation continue des canaux. 
Essentiellement, le pilote automatique ouvrira des canaux avec les nœuds de passerelle qui ont montré leur capacité à faciliter des paiements fiables et peu coûteux. Pour la plupart des utilisateurs, le pilote automatique fonctionnera en arrière-plan, mais pour les utilisateurs plus avancés, les heuristiques du pilote automatique sont conçues pour être modulaires. Les membres de la communauté Lightning pourront optimiser les paramètres de sélection des nœuds pour leurs cas d’utilisation particuliers et/ou remplacer l’algorithme par défaut par des algorithmes entièrement nouveaux.
Il y a un autre point clé au sujet du pilote automatique: les utilisateurs finaux auront probablement des canaux ouverts avec plusieurs nœuds de routage totalement indépendants (5 est actuellement la valeur par défaut).
Cela donne aux utilisateurs finaux des points d’entrée disparates sur le réseau, ce qui améliore la fiabilité au cas où un nœud de routage serait hors ligne.
Cela contraste avec le système de routage sur Internet, où les options des FAI sont limitées par les coûts de construction de l’infrastructure physique (fibre et émetteurs radio).

Dans le cas de Lightning, le coût de l’ajout d’une infrastructure de connexion à d’autres nœuds est simplement le coût d’une transaction Bitcoin sur la chaîne.

L’attribut alt de cette image est vide, son nom de fichier est lightning_vs_internet.png.

La connectivité du réseau Lightning versus la connectivité du réseau internet.Les utilisateurs du réseau Lightning peuvent ouvrir des canaux n’importe où dans le réseau pour le mêmes coûts et memes frais de transaction, quelle que soit leur proximité physique. Cela s’oppose au routage Internet qui est soumis à des contraintes imposées par les coûts de l’infrastructure physique, et qui impose ce résultat de topologie en forme d’étoile.

6/ Routage à la source et routage en oignon

Dans le système de Lightning, c’est l’expéditeur du paiement qui construit lui-même la route de transfert de ses transactions. Il est la source du routage, qui dans d’autres systèmes est géré par les routeurs.De plus, Lightning utilise un routage en oignon pour les paiements à bonds multiples.

Cela signifie que les nœuds intermédiaires du chemin de paiement ne connaissent que l’identité de leur prédécesseur immédiat et que l’identité de leur successeur immédiat dans cet itinéraire.
Cette combinaison de routage à la source + de routage en oignon protège l’identité des expéditeurs et des récepteurs, améliore la confidentialité des utilisateurs et la résistance à la censure.
Cela signifie aussi que si aujourd’hui le protocole Lightning Network supporte Tor, les prochaines versions incluront le support de Tor, et les communications entre les nœuds des utilisateurs finaux et ceux de routage seront -par défaut- prises en charge par Tor, pour offrir une protection supplémentaire de confidentialité.

7/ Les ponts de canaux et la connectivité réseau

Rappel pour comprendre ce paragraphe : au paragraphe 2, nous avons dit que les (Gateway) Routing nodes en VO = les nœuds de routage (et leurs passerelles) en VF permettent aux utilisateurs de se connecter au réseau Lightning. 
L’étendue de la connectivité et la capacité d’envoyer des paiements rapidement de manière fiable à d’autres participants n’importe où dans le réseau est LA considération majeure des utilisateurs de Lightning. Pour ajouter de la connectivité fiable, efficace et peu coûteuse, des nœuds disposant de forts capitaux se déclareront également eux-même « noeud-pont / Bridge Channel » soit nœud de routage pour participer au trafic. Ces nœuds-ponts accepteront les canaux entrants annoncés par d’autres nœuds de routage et disposeront de canaux sortants proportionnellement plus importants connectés à d’autres nœuds passerelles et nœuds de passerelle. 
NB: il n’y a pas de distinction très claire entre un nœuds de routage / Routing nodes et un noeud-pont / Bridge Channel.Certains noeud-pont peuvent avoir relativement plus de canaux de nœuds de routage et d’autres peuvent se concentrer davantage sur les canaux de passerelle.
Les noeuds-ponts inter-passerelles traiteront généralement des paiements plus rapides que les passerelles de type (Gateway) Routing nodes.
Les noeuds-ponts inter-passerelles sont également susceptibles d’avoir des flux plus naturellement équilibrés puisqu’ils proviennent d’un plus grand nombre d’utilisateurs finaux. 
En raison de ces deux facteurs, nous pensons que les noeuds-ponts disposeront généralement d’un capital en réserve plus important que les les nœuds de routage et leurs passerelles, mais qu’ils traiteront un plus grand nombre de transactions avec ce capital. Cette efficacité donnera donc aux utilisateurs de Lightning Network une connectivité plus large à un coût inférieur pour l’utilisation des noeuds passerelles/Gateway.

Au fur et à mesure du développement du réseau, il y aura davantage de sauts et de bridge channels/ noeuds-ponts, ce qui permettra une prise en charge exponentielle des utilisateurs connectés. 
Notre modélisation initiale montre qu’un réseau de connections dans un diamètre de 10 à 15 sauts pourrait prendre en charge des milliards d’utilisateurs avec des volumes de transactions habituels et des frais bien inférieurs à l’équivalent de 0,01 $ par transaction. 
De plus, nous supputons que les nœuds de routage/Routing nodes et leurs passerelles équilibreront les flux entrants et sortants en ne servant que le nombre d’utilisateurs nécessaire, puis laisseront passer les transactions sur les noeuds-ponts inter-passerelles/Bridge channel qui fourniront une connectivité plus large.
Du point de vue de l’utilisateur final, les portefeuilles choisiront simplement des itinéraires à moindre coût, qui auront tendance à inclure des passerelles à faible coût.

NB: au sujet de la censure, confidentialité et sécurité – comme les utilisateurs finaux seront connectés au réseau en plusieurs points et que chaque nœud de routage sera connecté à de nombreux autres nœuds de routage, les tentatives de censure des transactions par un noeud-pont ou un Routing nodes/Gateway ont peu de chances d’aboutir. – les nœuds qui tenteront de censurer les transactions génèreront un nombre anormal d’échecs de routage, dont se déconnecteront automatiquement les autres nœuds. – le cryptage en oignon masque les informations de l’expéditeur et du destinataire des nœuds non-immédiat, donc rend impossible toute tentative de censure.

L’attribut alt de cette image est vide, son nom de fichier est multihop.png.

Vue simplifiée d’une voie de paiement en mode multi-sauts
Plus le réseau s’étendra, plus les paiements traverseront de nœuds de routage/Routing nodes et de noeuds-ponts inter-passerelles/Bridge channel, avec le passage dans des canaux non annoncés en début de parcours. Il existe aussi un logiciel de Lightning pourra même ajouter ou randomiser les sauts afin d’améliorer encore plus la confidentialité.

8/ Les paiements atomiques par trajets multiples (AMP: Atomic multi-path payments)

Le dernier sujet important de Lightning est l’acheminement car il permet à l’expéditeur de fractionner des paiements importants en plusieurs petits paiements (AMP). 
Pour l’utilisateur, le processus AMP se déroule automatiquement et en coulisses. Chacune des fractions du paiement est envoyée par une route différente à travers le réseau, et c’est le destinataire final qui les combinera, les rejetera ou les acceptera comme s’il s’agissait d’une seule et même transaction. 
Le prochain billet traitera de l’AMP plus en détail.

Conclusion

Dans cet post, nous avons abordé certains des concepts de base du routage du Lightning. 
Au Lightning Labs, nous pensons qu’avec le protocole actuel, le routage sur le réseau peut s’étendre à des millions d’utilisateurs de manière fiable et peu coûteuse, tout en renforçant la confidentialité des utilisateurs et en tirant parti de la décentralisation et de la résistance à la censure de Bitcoin. 
De plus, il est évident que Lightning n’en est qu’à ses débuts, et les améliorations des protocoles, des algorithmes et du matériel amélioreront l’efficacité, la confidentialité et l’évolutivité d’une manière que nous ne pouvons pas prévoir pour le moment. 
C’est pourquoi si cet article représente certaines de nos idées sur le routage, nous (et les autres implémenteurs de Lightning) travaillons sur d’autres types d’evolution du réseau, et des améliorations de protocole pour les futures versions de la spécification du réseau Lightning.
En effet, au cours des prochains mois et des prochaines années, nous nous attendons à ce que de nombreuses autres idées nouvelles, passionnantes et inattendues viennent de la communauté et de l’écosystème open source.

Source : blog.lightning.engineering


Traduction : Claire Desombre, co-fondatrice de l’accélérateur SLP France et PO en SSII. Les mécanismes et nouveaux usages les Blockchains sont passionnant car ils permettent d’analyser et de modéliser des problèmes en solutions novatrices, simples et évidentes.