Comment le réseau Lightning aide Blockchains Scale –
Cette introduction au Lightning Network a été initialement publiée sur le site de Bruno's Bitfalls et est reproduite ici avec sa permission
Bitcoin est actuellement impossible à utiliser en raison de transactions lentes et coûteuses blockchain . La plupart des gens l'utilisent comme réserve de valeur (l'erreur numérique sur l'or numérique ) ou pour échanger sur les échanges. Un concept connu sous le nom de Lightning Network a été présenté comme une solution à ce problème d'évolutivité
The Basics of Lightning Network
Le Lightning Network a été décrit pour la première fois dans un livre blanc . ] par Joseph Poon et Thaddeus Dryja. Le concept, cependant, a été introduit par Satoshi Nakamoto dans un courriel de à Mike Hearn en 2013 .
The Lightning Network fonctionne par chaînes de paiement qui sont en fait des portefeuilles multi-sig ( signature multiple). Un portefeuille multi-sig est juste une adresse Bitcoin qui nécessite une signature ou des clés privées de plusieurs propriétaires avant que l'argent ne soit dépensé dans cette adresse. Vous pouvez les voir comme des coffres de banque qui nécessitent le tour de deux clés différentes en même temps pour s'ouvrir.
Un portefeuille multi-sig peut, par exemple , être l'adresse commune Bitcoin d'un couple marié, dans lequel ils doivent tous deux signer une transaction afin de dépenser leur Bitcoin commun.
Le but des canaux de paiement est l'exécution régulière de paiements plus petits et d'éviter des frais de transaction élevés. Des exemples de relations idéales pour les canaux LN sont employé-employeur, consommateur-producteur, fournisseur de services publics, café-buveur-café, etc. L'idée est de laisser un client ouvrir un canal de paiement avec son café en payant régulièrement avoir à attendre la confirmation (10 à 60 minutes actuellement)
Comment fonctionne le réseau Lightning
Expliquons-nous avec un exemple étape par étape. Notre scénario imaginaire est le suivant:
Bob veut payer Alice pour écrire des articles pour lui. L'offre est de 10 BTC pour un total de 100 postes, soit 0,1 BTC par poste.
Dans un système Bitcoin traditionnel, cela prendrait une heure en moyenne avec des frais de 5 à 500 dollars par transaction, en fonction du retard du réseau. est. Parce que Alice et Bob sont maximistes bitcoin ils ont choisi d'ouvrir un canal LN plutôt que d'aller avec un altcoin moins cher et plus facile à utiliser . 19659015] Bob envoie une transaction initiale d'ouverture de canal » width= »1024″ height= »396″ class= »aligncenter size-large wp-image-165874″/>
Bob crée une transaction Bitcoin régulière sur la chaîne principale qui définit ce qui suit:
- qui ouvre la chaîne avec
- combien de BTC il envoie dans le channel (10 BTC)
- après combien de temps (une semaine dans ce cas) il a le droit de reprendre le 10 BTC si Alice ne répond pas.
Ce dernier est en fait une sous-transaction dans la transaction principale avec une fonction "timelock", qui s'assure que, malgré les deux parties l'ayant confirmé, l'argent n'est pas mobile pendant une semaine.
Ainsi, Bob envoie à Alice deux transactions – une dans laquelle il suggère l'ouverture un canal de paiement avec un dépôt de 10 BTC sur un multi-sig qui est ouvert avec cette transaction, et une dans laquelle il dit que le 10 BTC reviendra à lui s'il n'y a pas eu d'activité dans le canal pendant une semaine
Étape 2: Accepter l'ouverture d'une chaîne
[19659005] Alice reçoit deux transactions dans lesquelles elle peut voir que Bob offre 10 BTC sur l'adresse multi-sig avec les deux comme les parties participantes. Elle peut aussi voir qu'il a ajouté la condition de lui rendre l'argent après une semaine d'inactivité. Elle accepte cela et signe les transactions, après quoi elle diffuse les transactions et les envoie à la blockchain principale, finalisant la création de la chaîne.
Il est important de définir deux concepts ici: signature d'une transaction et confirmation ou diffusion d'une transaction. Une transaction signée est simplement prête à être envoyée à la blockchain et constitue un accord entre les parties. Ce n'est pas visible sur la blockchain. Une diffusion ou une transaction confirmée est envoyée à la chaîne de blocs et ferme le canal de paiement, réglant les soldes.
La signature de la première transaction ouvre le canal et provoque le dépôt de 10 BTC de Bob dans l'adresse multi-sig. Signer l'autre, en dépit de permettre à Bob de récupérer les 10 BTC, ne peut devenir actif qu'après une semaine
Alice et Bob ont maintenant une semaine faire le premier pas.
3. Envoyer la première transaction
Alice a écrit un article et Bob l'aime. Il paie 0.1 BTC en faisant ce qui suit:
- Il génère une nouvelle transaction qui indique "J'envoie 0.1 BTC de l'adresse multi-sig contenant 10 BTC, et j'envoie 9.9 à moi-même". Parallèlement, il génère une autre transaction: "Si la transaction précédente n'est pas diffusée dans la semaine suivant sa signature, alors je m'envoie tous les 10 BTC de l'adresse multi-sig."
- Il envoie les transactions à Alice pour signature via les nœuds du réseau Lightning sans les envoyer à la blockchain principale. Rappelez-vous: les transactions ne sont finalisées dans la blockchain qu'une fois que les deux parties les ont signées et diffusées.
- Alice reçoit les transactions et vérifie les conditions: 0.1 BTC pour un article, OK, et une semaine pour accepter et obtenir 0.1 BTC ce qui signifie que j'ai un semaine pour envoyer un nouvel article.
Alice n'a pas à signer ces nouvelles transactions. En ne répondant pas à eux, elle déclenchera le délai d'attente d'une semaine qui rapportera l'argent à Bob et annulera leur arrangement. Pour garder le deal ouvert, elle doit le garder "sur la table" en le signant et en ne le diffusant pas.
Ce "départ sur la table" est la partie que les nœuds du réseau Lightning prennent en charge. Le logiciel accepte et signe les transactions, mais uniquement sur la couche LN, et non sur la blockchain Bitcoin principale. Après une signature d'Alice, le nouvel état de la chaîne est l'état valide .
La transaction est, à un moment donné, immuable et les conditions qui y sont décrites doivent être satisfaites avant qu'un changement ne survienne: soit une semaine doit expirer, soit la transaction doit être diffusée par Alice ou Bob pour finaliser la dernière distribution: 0.1 – 9.9 BTC.
4. Envoyer la deuxième transaction
Alice envoie un nouvel article trois jours plus tard et c'est à Bob d'envoyer un nouveau 0.1 BTC. Voyant qu'il n'est pas possible de modifier une transaction existante et que Bob est incapable d'envoyer un autre 0.1 dans la même transaction, il en génère un nouveau qui dit: "De l'adresse multi-sig avec 10 BTC j'envoie 0.2 BTC à Alice et 9.8 pour moi "et un autre" Si Alice ne signe pas et ne diffuse pas cet état dans une semaine, j'obtiens tous les 10 BTC. "
Alice maintenant a l'opportunité de signer et de diffuser la nouvelle transaction, prenant ainsi 0.2 BTC et finissant la relation de travail, ou continuer avec, envoyer plus d'articles, et obtenir plus de ces transactions incrémentales. Elle peut également rester hors ligne ou inactive pendant une semaine et tout perdre
5. Docking Pay
Dans le deuxième article, Alice a accusé une entreprise concurrente de plagiat, mais n'a pas fait assez de vérification des faits. Cela a nui à la réputation de l'entreprise et Bob décide d'amarrer 0,05 de son salaire.
Bob génère une nouvelle transaction qui dit "De l'adresse multi-sig avec 10 BTC j'envoie 0.15 BTC à Alice et 9.85 BTC à moi" une transaction disant "Si Alice ne signe pas et ne la diffuse pas dans une semaine, j'obtiens tous les 10 BTC"
Alice a maintenant les options suivantes:
- tolérer le salaire couper et signer la transaction, continuer avec le travail
- diffusé la dernière transaction signée, celle pour 0.2 BTC et obtenir plus d'argent que Bob offre actuellement, mais cela finirait leur relation
- pas répondre et tout perdre.
5a. Alice Cheats
Supposons que, à cause de l'incident du second article, la relation a été définitivement endommagée et Alice veut sortir, mais elle a déjà signé la transaction BTC 0,15. Peut-elle décider de signer le 0.2 BTC au lieu de cela encore sur la table?
Le LN est mis en place de telle façon que signé (mais pas envoyé ) les transactions sont classées par âge. Essayer d'envoyer une ancienne transaction signée est une infraction punissable dans le réseau qui envoie tout l'argent du multi-sig à la partie non-fautive.
Ce système de sécurité s'assure que seule la dernière transaction signée peut être diffusée, mais a d'autres implications: les utilisateurs doivent être constamment en ligne pour que leurs nœuds puissent communiquer entre eux. Pour empêcher les utilisateurs d'être en ligne à tout moment, le concept de Watchtowers a été introduit, que nous expliquerons dans un autre article.
5b. Bob Cheats
Supposons que Bob est le tricheur. Alice a envoyé le troisième article, mais Bob décide de la punir davantage en ne payant pas du tout. Alice ne sait pas si elle sera à nouveau payée et veut mettre fin à la relation. Elle peut simplement diffuser la dernière transaction signée et la BTC 0,15 lui sera envoyée. Elle perdra seulement autant d'argent qu'elle a dépensé pour écrire un (troisième) article.
Mais que se passe-t-il si cela offense davantage Bob? il décide d'envoyer une autre transaction dans laquelle il dit "de l'adresse multi-sig, j'envoie 0 à Alice et 10 à moi, et si elle ne signe pas et ne diffuse pas dans une semaine, tout est à moi de toute façon". [19659005] C'est ici qu'intervient le concept de transactions signées et diffusées mentionné plus haut. Pour qu'une transaction LN soit valide, elle doit être signée par les deux parties. Si elle n'est pas signée, la dernière transaction signée est valide pour la diffusion.
Cela rend Alice à l'abri de la fraude ultime.
5c. All Good
L'alternative qui convient le mieux à toutes les personnes impliquées est que Alice fasse parfaitement son travail et que Bob envoie des transactions supplémentaires. Disons que Alice a eu une autre erreur ou deux et a fini par gagner 9,9 BTC, c'est ce que dit la dernière transaction de Bob: 9,9 BTC à Alice, 0,1 BTC pour lui. Les deux sont heureux avec cet accord et Alice signe et diffuse cette transaction.
Ce qui suit a lieu:
- Alice signe et diffuse la transaction et il est écrit à la blockchain.
- La transaction coûte un frais de transaction, amarré du total étant payé. Vu que c'est seulement un tx maintenant, et pas 100 d'entre eux, c'est seulement le coût d'un seul tx.
- Dans dix minutes à une heure, la transaction sera finalisée sur la blockchain Bitcoin et l'argent sera transféré,
Il est important de noter que, bien que ce processus semble incroyablement complexe, ils cherchent à masquer cette complexité et à la cacher aux utilisateurs. Les canaux de paiement sont censés être invisibles dans le logiciel de l'utilisateur final.
Réseau et routage
Dans l'exemple ci-dessus, Alice et Bob ont une relation clairement définie avec un objectif final en tête. En théorie, les canaux de paiement resteront ouverts indéfiniment à cause du routage . L'idée est de connecter plusieurs nœuds et d'acheminer les paiements de l'un à l'autre, ce qui permet d'envoyer des paiements à des nœuds avec lesquels vous n'êtes pas connectés via des nœuds. Par exemple, si Alice travaille avec Roko, un graphiste, et Bob travaille avec lui, supposons qu'Alice aura besoin d'un travail de conception graphique de 0.1 BTC. . Elle peut envoyer ceci à Roko par Bob tant que Bob a au moins 0.1 BTC dans le canal ouvert vers Roko, et Alice a 0.1 BTC dans son équilibre vers Bob. Bob utilise un nœud médiateur Lightning Network dans ce cas
Le problème est que si quelqu'un a déjà payé Roko par Bob et Bob n'a plus de solde de 0.1 BTC vers Roko, personne d'autre ne peut payer Roko par Bob; ils ont besoin de trouver un autre itinéraire. Cette vidéo explique bien .
Ceci est un argument pour garder les canaux ouverts indéfiniment et définitivement verrouiller les fonds dans le LN, car on suppose que la popularité de LN sera si grande que n'importe qui pourra payer n'importe qui. Mais tout cela a son propre ensemble de problèmes que nous aborderons dans un autre article
Conclusion
Essentiellement, le LN est une solution pratique à certains problèmes qui actuellement n'existent pas le réseau Bitcoin. Est-ce que cela en fait un moyen efficace de mettre à l'échelle Bitcoin? Nous ne le pensons pas, car certains problèmes semblent impossibles à résoudre. Nous pensons cependant que le concept est intéressant et attendons avec impatience de voir où les développeurs peuvent le prendre.
Source link