Analyse approfondie du réseau Lightning (Partie 1): Canal de paiement

Pièce intéressante 2021-09-14 04:26:06 阅读数:964

analyse approfondie du seau lightning

Le réseau Lightning est une solution technique décentralisée en aval de la chaîne,Peut supporter des dizaines de milliers de transactions simultanées par seconde,Près de Visa La mesure dans laquelle le système peut le faire(Par exemple,).Et à l'heure actuelleBitcoin(La monnaie cryptographique la plus populaire au monde)Blockchain,Le traitement des approbations par seconde ne peut être pris en charge que 7 Services de stylo,Et des frais de manutention élevés,Et attendre longtemps pour confirmer l'entrée en vigueur de la transaction,Ces facteurs rendent presque impossible l'envoi de petites transactions en bitcoin.Et le réseau Lightning a résolu ces deux problèmes.

Introduction

Le réseau Lightning est un système de canaux de paiement,Il n'y a pas de différence par rapport aux portefeuilles Multi - signatures courants.Ce qu'on appelle un canal ouvert,C'est le participant qui crée un portefeuille Multi - signature,Et remplir le portefeuille d'argent.Le montant de l'argent reçu par ce portefeuille devient le solde de ce canal.Et puis...,Les transactions subséquentes entre les participants sont toutes effectuées àEnvironnement en dehors de blockchainC'est arrivé..N'importe quel participant peut fermer ce canal à tout moment,À ce moment - là.,La dernière transaction sous la chaîne(Détermine le solde de chaque participant à ce canal)Sera envoyé à blockchain,Annuler toutes les transactions intermédiaires en même temps,Parce que toutes ces transactions utilisent la même sortie de transaction.Le résultat est,On a juste besoin d'un accord pour ouvrir le passage、Un accord pour fermer le passage,Toutes les transactions intermédiaires sont envoyées et reçues instantanément,Pas besoin d'être enregistré sur blockchain(Donc pas besoin d'attendre).

(Note du traducteur:Bitcoin n'est pas le solde du compte,C'est un chèque;Tous les chèques ont été créés par une transaction spécifique;Chaque chèque sera annulé une seule fois.(C'est - à - dire qu'il ne peut être utilisé que dans une seule transaction).La transaction peut attribuer arbitrairement la valeur du chèque utilisé pour produire un nombre arbitraire de nouveaux chèques.)

Le réseau de ces canaux vous permet d'envoyer des fonds à un autre participant au réseau,Même s'il n'y a pas d'accès direct entre vous.La seule condition est qu'il y ait un lien entre vous. “Chemin”,C'est - à - dire qu'il y a des canaux qui vous connectent les uns aux autres d'avant en arrière.En outre,Grâce à des contrats intelligents spéciaux(HTLC,Contrat de verrouillage du temps de hachage),Vous n'avez besoin de faire confiance à personne sur le Web,Le contrat garantit la livraison en toute sécurité des fonds que vous payez.

Comprendre comment fonctionne le réseau Lightning,La première chose à comprendre est le fonctionnement du canal de paiement et ce qui constitue la base du canal de paiement HTLC.Aucun de ces sujets n'est petit.,J'ai donc divisé l'article en deux parties.,Commencez par expliquer comment fonctionne le canal de paiement.

Voies de paiement

Comme indiqué ci - dessus,.Le canal de paiement reliant les deux participants est essentiellement un portefeuille Multi - signature ordinaire.La première transaction détermine le solde d'un canal,On appelle ça “Opérations de recharge” Ou “Opérations d'ancrage”.Cette transaction doit être diffusée sur le réseau et enregistrée sur blockchain,Pour indiquer que le canal est ouvert.

Après cette étape,,Pour mettre à jour le solde des deux côtés du canal,Les deux parties doivent échanger leurs signatures manuellement. “Engagements”.Ces transactions sont efficaces en elles - mêmes.,Peut être envoyé au réseau bitcoin à tout moment,Mais les deux parties le garderont pour le moment.,Ne pas diffuser,Sauf si vous êtes prêt à fermer le canal.Et ainsi de suite.,État du solde des deux parties dans le canal,Ça change des milliers de fois en une seconde.,La vitesse de mise à jour est limitée par la création par les deux parties seulement、Vitesse de signature et d'envoi des transactions engagées à l'autre partie.

Chaque fois qu'un nouvel engagement est échangé,Ils annulent l'état précédent du canal.;Donc,,Seule la dernière transaction engagée peut “Mise en œuvre”.L'objectif est d'empêcher une partie de frauder l'autre,Éteignez le canal en envoyant une chaîne obsolète mais en votre faveur.J'expliquerai ci - dessous plusieurs mécanismes de prévention de cette fraude.

Enfin,Le passage peut être fermé d'un commun accord —— C'est fermer une transaction.(Appelé “Services de règlement”)Envoyé au réseau bitcoin —— La fermeture peut également être décidée unilatéralement.,C'est envoyer la dernière transaction promise au réseau.Il s'agit d'empêcher qu'une partie ne soit déconnectée de sorte que le solde de l'autre partie dans le canal soit toujours “Verrouillé.” La situation.

Tout au long du cycle de vie du canal,.Seules deux transactions ont été envoyées au réseau bitcoin et enregistrées sur le blockchain bitcoin(Est la transaction de recharge et la transaction de règlement).Entre ces deux transactions,Les deux parties peuvent échanger d'innombrables engagements,Aucune de ces transactions n'a besoin d'être engagée sur blockchain.

 Analyse approfondie du réseau Lightning (Allez.):Voies de paiement

Un cas simple de canal de paiement

Avant d'expliquer les mécanismes plus complexes,Commençons par un simple、Exemple de canal unidirectionnel.Pour simplifier cette interprétation,,Supposons que les deux parties soient honnêtes..Nous examinerons plus tard les mécanismes qui nous aideront à prévenir la fraude.

Supposons qu'un canal ait deux participants,Emma Et Fabian.Fabian Fournir un service de streaming vidéo payant,Et les téléspectateurs font de petits paiements par le canal —— Chaque seconde que vous regardez, vous payez. 0.00001 btc,équivalent à l'heure 0.036 btc .Emma Est un utilisateur régulier qui veut voir des vidéos.

 Analyse approfondie du réseau Lightning (Allez.):Voies de paiement

Emma Et Fabian Utilisez un programme spécial pour synchroniser la lecture vidéo et l'exécution des canaux de paiement.Emma Lancez ce programme dans votre navigateur Web,Et Fabian Utiliser le même programme sur votre propre serveur..Ce programme a toutes les fonctionnalités d'un logiciel de portefeuille bitcoin commun,Il peut créer et signer des transactions.Tout le mécanisme du canal de paiement peut être complètement caché,Le fait que l'utilisateur voit est que cette vidéo est facturée en secondes.

Maintenant regardons le flux de travail spécifique de ce service payant.Au début,Emma Et Fabian Pour ouvrir le canal:Créer un 2-2 Adresse Multi - signature pour.Du point de vue de l'utilisateur,Ce programme crée un P2SH Adresse(Un portefeuille Multi - signature)Et demander aux utilisateurs de recharger suffisamment pour payer une heure de service vidéo.Emma Tourne. 0.036 btc À cette adresse,Et c'est ce qu'on appelle une opération de recharge..

Une fois que la transaction de recharge est emballée dans un bloc,Ce canal est ouvert.,La vidéo commence à jouer..Dans la première seconde,L'utilisateur a créé et signé une transaction engagée,Modification du solde dans le canal:Maintenant Fabian C'est bon. 0.00001 btc,Emma Il reste 0.03599 btc .Cette transaction utilise la sortie de la transaction de recharge,Et a créé deux sorties,C'est ce qu'on dit ici..Du point de vue du prestataire de services,Le programme a reçu la transaction,Alors signez aussi.、Avec la vidéo de la première seconde Emma.Maintenant, les deux parties ont un contrat signé manuellement par l'autre、Transactions engagées reflétant l'état le plus récent du canal;Si nécessaire,L'une ou l'autre des Parties peut envoyer l'accord au réseau bitcoin.

Deuxième seconde.,Emma Le programme de ce côté crée une nouvelle transaction d'engagement,Utilise également la sortie de la transaction de recharge(Comme au premier coup.),Cette fois,La première sortie de la transaction engagée estFabian 0.00002 btc,Prends ça. 0.03598 Voilà. Emma.Cette transaction est utilisée pour payer la deuxième seconde vidéo téléchargée.

Supposons que,Emma Regarde 10 Vidéo en minutes,Et il s'est retiré..Pendant ce temps,Elle a signé et envoyé 600 Engagement de stylo(600 Seconde vidéo).Le dernier coup a deux sorties:0.03 btc Voilà. Emma,Et 0.006 Voilà. Fabian.Emma Canal fermé,Diffuser la dernière transaction promise sur le réseau bitcoin comme Services de règlement.Voilà.,Il n'y a qu'une seule transaction, une à la fin, enregistrée sur le blockchain.

 Analyse approfondie du réseau Lightning (Allez.):Voies de paiement

Canal non fiable

Bien sûr.,Dans cet exemple,,Tout va bien.,Mais c'est parce que les deux parties sont honnêtes..Il n'est pas difficile d'imaginer un moment,L'un d'eux se trompe l'autre.,Un design aussi simple que celui - ci pourrait ne pas suffire.

  • Bien que le canal soit ouvert,Emma C'est toujours nécessaire. Fabian Pour retirer l'argent,Parce que ce passage est 2-2 Adresse Multi - signature pour.Si Fabian Disparu,Emma L'argent pourrait être enfermé dans ce passage pour toujours..

  • Bien que le canal soit ouvert,Emma Vous pouvez utiliser n'importe quelle transaction d'engagement signée par les deux parties.Regarder la vidéo 10 Dans quelques minutes.,Elle peut mettre sa première promesse dans la chaîne.,Pas besoin de passer. Fabian Accord renouvelé.

Verrouillage du temps

.Une solution à ces problèmes est l'utilisation de verrous temporels dans les transactions engagées(Verrouillage du temps au niveau de la transaction(nLocktime)).Pour s'assurer que l'argent n'est pas verrouillé à jamais dans l'allée,Emma Une transaction de remboursement a été créée en utilisant la sortie de sa transaction de recharge.Elle donne d'abord. Fabian Envoyer cette transaction,Attendez. Fabian Après signature et retour,Emma Pour diffuser une transaction de recharge sur un réseau bitcoin,Ouvrez leurs canaux..

Cette transaction de remboursement est également devenue la première transaction d'engagement,Et son verrouillage temporel fixe une limite supérieure à la durée de vie du canal.Hypothèses Emma Régler le verrouillage du temps à 30 Oh, mon Dieu.(4320 Blocs bitcoin)(C'est - à - dire: 30 Il faudra des jours pour que cette transaction soit enregistrée sur blockchain).Tous les engagements suivants,Les serrures de temps seront plus courtes l'une que l'autre,De cette façon, les transactions mises à jour peuvent être diffusées sur le réseau plus tôt.

Maintenant Emma Ne t'inquiète plus.,Elle sait que même si Fabian Le jeu a disparu.,Elle peut aussi être ici. 30 Récupérez vos fonds dans quelques jours.(Si c'est un canal de paiement bidirectionnel,C'est - à - dire: Fabian Et ils économisent de l'argent.,Il a proposé un remboursement de son propre point de vue.).

 Analyse approfondie du réseau Lightning (Allez.):Voies de paiement

Chaque nouvelle transaction engagée a un cadenas plus court que la précédente,Donc,,Une nouvelle transaction d'engagement peut toujours être une chaîne plus matinale que l'ancienne et annuler l'ancienne transaction(Impossible de remonter la chaîne),Cela empêchera l'une ou l'autre des Parties d'utiliser malicieusement l'ancienne transaction promise.Si tout se passe bien,,Emma Et Fabian Il suffit de diffuser les transactions générales de règlement convenues par les deux parties.,Par conséquent, une transaction d'engagement avec verrouillage temporel n'est utile que lorsqu'une partie est déconnectée.

Par exemple,,Si le calendrier de la première transaction engagée est 4320 Blocs,La deuxième transaction d'engagement peut alors être réglée comme suit: 4319 Blocs,Et ainsi de suite..Et ainsi de suite.,No 600 Une transaction engagée peut être antérieure à la première transaction engagée 600Block upchain.

 Analyse approfondie du réseau Lightning (Allez.):Voies de paiement

Vous avez peut - être remarqué,Cette approche peut aider à empêcher une partie de lier des engagements antérieurs(Fraude),Mais il a deux inconvénients évidents:

  • Le verrouillage temporel de la première transaction engagée limite la durée de vie de ce canal.Si le verrouillage du temps est réglé trop longtemps(Par exemple, 1 Année),Les canaux peuvent durer longtemps,Mais si l'un d'eux a disparu,,L'autre partie a dû attendre longtemps pour diffuser la dernière transaction promise、Récupérer ses propres fonds.

  • Le verrouillage temporel de la première transaction engagée limite également le nombre de transactions qui peuvent se produire dans le canal.Dans notre cas,Cette valeur est 4320,Cela ne peut se produire que dans ce canal 4320 Services de stylo,Parce que chaque nouvelle transaction soustrait le temps de verrouillage du temps de 1 Blocs.Et,Par bloc(10 Minutes)Intervalle,C'est un bloc qui force les participants à tracer le réseau bitcoin,Pour ne rien rater.,Et enchaîner la dernière promesse au mauvais moment.Bien sûr.,Cet intervalle peut être prolongé,Mais le prix est que le nombre de transactions qui peuvent être envoyées à l'intérieur d'un canal devient moins.

Donc,,Le verrouillage du temps nous permet de faire des promesses inutiles et de nous assurer que les deux côtés du canal peuvent fermer le canal en toute sécurité:S'ils sont tous d'accord avec l'état actuel du canal,Ils peuvent envoyer une transaction de règlement sans verrouillage temporel(Même chose que la dernière transaction engagée),Fermez le canal;Si une partie n'est pas en ligne,L'autre partie peut également attendre le dernier temps promis pour déverrouiller,La transaction promise est ensuite diffusée sur le réseau bitcoin.

Engagements irrévocables asymétriques

Une autre solution au problème de confiance mentionné ci - dessus est d'annuler les engagements antérieurs.En fait,,“Annulation(cancellation)” Ce mot est inexact.,Parce que dans le réseau bitcoin,,Une transaction en chaîne(Transactions confirmées par bloc)Est irrévocable.Mais,Une construction spéciale peut rendre les transactions engagées plus tôt dans la chaîne non rentables.Il suffit de donner aux parties “Annuler la clé(revocation key)” C'est tout..

Hypothèses Hitesh Et Irene Décider d'ouvrir un canal.Les deux côtés sont pleins. 5 btc Dans ce passage,Le solde initial du canal est déterminé.Maintenant,Les deux parties ne signent pas la même chose,Au lieu de créer deux、Engagement asymétrique.

Hitesh Reçu par Irene La transaction signée a deux sorties,Première sortie sans verrouillage du temps,Maintenant. Irene Paiement 5 btc,Et la deuxième sortie a un verrou temporel,Paiement 5 btc Voilà. Hitesh,Mais attendez.(Cette affaire est en cours.) 1000 Après les blocs,Cette sortie peut être utilisée.Les détails sont les suivants:

6h6CubzDl0EUUhjctuaD5amcY66p5ILi9XLQnhC3.png

En même temps,,Irene Ou par Hitesh Une transaction engagée signée,Il y a deux sorties:Un pour le moment. Hitesh Paiement 5 btc,L'autre produit est Irene Paiement 5 btc,Mais attendez. 1000 Blocs à dépenser.

Tlfze1D5aQjVVUcbcsOLrH9c6mjO8l8rmGFDNKgX.png

Donc,,Les deux parties ont reçu un engagement signé par l'autre.Hitesh Et Irene Peut être diffusé à tout moment après avoir signé l'engagement,Mais,Une fois que c'est fermé,,L'autre partie recevra l'argent immédiatement.,Et je ne peux attendre que 1000 Les blocs ne seront pas disponibles avant,C'est un grand inconvénient..Mais,Ce n'est pas suffisant pour que les deux parties soient honnêtes..

 Analyse approfondie du réseau Lightning (Allez.):Voies de paiement

C'est notre dernière fonction.,Clé révocable,Si l'une ou l'autre des parties tente de frauder,Chacun peut être puni. TA,Et l'a vidé de son sang..

Comme indiqué ci - dessus,Chaque engagement a un “Report” La sortie de,Nous avons rendu cette sortie un peu plus complexe:Cette sortie peut être attendue 1000 Bloc utilisé par l'expéditeur de la transaction engagée,Peut également être utilisé par l'autre côté du canal,Si TA Si vous avez une clé de révocation.Quand Hitesh Créer une transaction engagée et la remettre à Irene Heure,Sa deuxième sortie peut être utilisée par lui - même(Attends. 1000 Bloc de)Ou pour Irene Utiliser,Si ce dernier a la clé d'annulation.

Hitesh Garde cette clé secrète.,Envoyé seulement s'il décide d'utiliser une nouvelle transaction engagée pour mettre à jour l'état dans le canal Irene.Les détails de la transaction sont les suivants::

(Note du traducteur:Le Code sera plus clair.:La première sortie est pour l'instant Irene Paiement 5 btc;La deuxième sortie est conditionnelle,La clé de révocation peut être utilisée,Accès immédiat 5 btc,Également disponible à 1000 Après les blocs,Utiliser Hitesh Pour utiliser cette sortie.Attention ici “IF…ELSE…” Conditions de la formule,C'est la même chose que dans d'autres programmes informatiques.)

Un exemple peut être plus facile à comprendre.Hypothèses Irene J'espère que oui. Hitesh Envoyer 2 btc,À ce stade, ils mettent à jour l'état du canal,C'est - à - dire créer une nouvelle transaction engagée.Chaque partie crée une transaction d'engagement asymétrique,Et,Avant de signer,Donnez d'abord la clé de révocation de la dernière transaction engagée à l'autre partie,C'est bon. “Annuler” La dernière promesse..Si Hitesh Vous voulez régler avec le solde final du canal,Et Irene C'est mieux pour toi de regarder et de penser que c'est plus vieux.,Elle peut essayer de signer sa dernière promesse et de la diffuser sur Internet,Mais la clé de retrait de cette transaction promise a été exposée à Hitesh;S'il découvre que cette promesse est liée,,Il est plein. 1000 Les blocs de temps peuvent prendre tout l'argent dans le passage(La première sortie lui a été donnée immédiatement.,Et la seconde sortie peut être utilisée immédiatement, simplement en fournissant la clé de révocation)(C'est vrai,C'est “Annulation” Les mouvements ne peuvent pas être automatisés,Hitesh Attention! Irene Si une ancienne transaction engagée a été envoyée au réseau,Puis utilisez la clé Undo).

Donc,,Ce canal, qui utilise des engagements révocables asymétriques, est plus efficace,Parce qu'il ne limite pas la durée de vie du canal,Il n'y a pas non plus de limite au nombre de transactions envoyées.

Conclusion

Par ici.,Notre premier article est terminé.,Ça va prendre du temps pour digérer.,Vous pouvez également poser des questions dans les commentaires.Dans le prochain article,Nous vous expliquerons HTLC La fonction de,Explique enfin comment fonctionne le réseau Lightning.

Voir plus

Cet article est publié pour le compte officiel de qiqian.com,Les opinions ne représentent que l'auteur lui - même,Ne représente en aucun cas l'approbation ou la confirmation de la description.Texte partiel/Photos/Vidéo/Audio, etc. du réseau,En cas de violation des droits du titulaire du droit d'auteur,Veuillez nous contacter(Wechat/QQ:1074760229).Le présent document n'est pas une proposition de gestion financière des investissements..Veuillez indiquer la source de la réimpression.:Funky Currency net

版权声明:本文为[Pièce intéressante]所创,转载请带上原文链接,感谢。 https://netfreeman.com/2021/09/20210913182444465z.html