什么是闪电网络?比特币闪电网络是怎么回事?

时间:2024-07-28  分类:电子

假设Alice和Bob共享通道,Bob又与Carol共享另一个通道,则Alice和Carol可通过Bob相互发送付款。如果Dan与Carol建立连接,Alice同样可向他发送付款。试想将这种模式扩展到支付通道相互连接的庞大网络中。按照这样的设置,只要通道关闭,就无法确定Alice究竟向谁发送了资金。


闪电网络如何运作?


我们已经解释了闪电网络如何依赖高层次上各节点的通道。现在研究一下其底层的具体原理。


多重签名地址


多重签名(或英文简称multisig)是可供多个私钥支付的地址。用户创建多重签名后,就能指定用于支付资金、签署交易所需的私钥数量。例如,5取1方案指五个密钥生成一个有效签名,且签署交易仅需一个密钥。3取2方案表示,如有三个密钥,需其中两个才能支付费用。


要预置闪电网络通道,参与者需在2取2方案中锁定资金,即仅需两个私钥用以签署交易,而转移代币同样需要两个私钥。让我们回到Alice和Bob的示例。接下来几个月内,他们需相互支付大笔费用,因此,他们决定开启闪电网络通道。


首先,他们在共有的多重签名地址中分别存入3BTC。需特别强调的是,未经Alice同意,Bob无法把资金转出地址,反之亦然。


他们只需在调整两边余额时留下一纸记录。双方各自拥有3BTC的初始余额。如果Alice想向Bob支付1BTC,为何不直接记下Alice现有2BTC,而Bob的余额为4BTC呢?在决定真正转出资产之前,这样记录可以追踪到余额。


这种方式行之有效,但其中有什么奥妙呢?其实更重要的是,这样是不是让彼此合作变得易如反掌了呢?假设Alice最终拥有6BTC,而Bob空无分文,那么Bob拒绝释放资金就不会有任何损失(或许失去的只是与Alice的友谊吧)。


哈希时间锁合约(HTLC)


上述系统很枯燥单调,与目前的受信任设置相比,没有什么过人之处。我们接下来介绍的机制可强制执行Alice与Bob之间的合约,就会有趣得多。如果其中一方不按规则行事,则另一方可采取补救措施,将资金撤出通道。


这种机制称为哈希时间锁合约,或缩写为HTLC。这个术语听上去令人生畏,但实际上是个非常简单易懂的概念。它结合了哈希锁和时间锁两种技术,对支付通道中各种拒不配合的操作采取补救措施。


哈希锁是加在交易中的条件,具体需证明自己知道某个秘密才能动用资金。发送方对一段数据进行哈希运算,并将带有哈希值的交易发送给接收方。接收方只有提供出与哈希值匹配的初始数据(即秘密),才能动用资金。唯一能获取该数据的途径是由发送方告知。


时间锁是防止在特定时间前动用资金的限制条件,可指定具体时间,或特定区块高度


哈希时间锁合约(HTLC)通过结合哈希锁和时间锁而创建。在实际运用中,哈希时间锁合约(HTLC)可用于创建条件支付,即接收方须在特定时间前提供某个秘密,否则发送方收回资金。以下通过示例解释会更加浅显易懂。那么,让我们说回Alice和Bob。


开启和关闭通道


我们之前举了例子,设想Alice和Bob刚创建交易,双方向共享的多重签名地址存入资金。但是这些交易还没发布到区块链当中!我们需要先做一件事。



三枚代币来自Bob,还有三枚代币则来自Alice。


请记住,从多重签名中取出这些代币的唯一途径是Alice和Bob共同签署交易。如果Alice要把全部六枚代币发送到外部地址,需获得Bob批准。她先发起一笔交易,指明将六枚比特币发送到该地址,然后加上自己的签名。


如果她尝试立即发布交易,但没有Bob的签名包含其中,则交易无效。Alice须先将不完全交易交给Bob。他签名之后,交易才生效。


到此为止,我们还没建立督促众人诚信交易的机制。正如前文所述,如果交易对手拒绝合作,资金就会彻底困住。让我们来了解一下预防此类情况的机制。该机制涉及多步骤操作,请耐心听我们逐一介绍。


双方各提供一个秘密,我们称之为As和Bs。双方一旦透露秘密,结果不堪设想。因此,他们暂时要保守住秘密。两个秘密分别生成各自的秘密哈希值,即h(As)和h(Bs)。这样双方无需分享秘密,只需彼此分享哈希值。



Alice与Bob相互分享秘密哈希值。


Alice和Bob在向多重签名地址发布首笔交易之前,还需创建一系列承诺交易,即防止对方扣押资金的补救措施。


如果把通道想象成我们之前提过的迷你账本,那么承诺交易就是对账本的更新。每当创建一组新的承诺交易,就是在对二位参与者的资金进行再平衡。


Alice的交易有两个输出,一个支付她拥有的地址,另一个锁进新的多重签名地址。她签名后交给Bob。



Alice的交易有两个输出,一个到她自己的地址,另一个到新的多重签名,且需Bob签名才能生效。


Bob的情况一样,一个输出支付自己,另一个支付其他的多重签名地址。他签名后交给Alice。



两笔大同小异的不完全交易。


通常而言,Alice可在给Bob的交易中添加签名,让交易生效。但是我们注意到,这些支出资金来自于尚未拨款的的2取2多重签名。这类似于试图从目前余额为零的账户中支出支票。因此,这些部分签名的交易只有在多重签名启动和运行后才能使用。


新的多重签名地址,即3BTC输出的目的地,具有一些特性。我们来看一下Alice签名给Bob的不完全交易。多重签名输出可在以下条件下使用:


双方可以合作签署交易。由于有时间锁,Bob在一段时间后才能自行花销。Alice如果知道Bob的秘密Bs,就能够动用资金。


对于Bob给Alice的交易:


双方可以合作签署交易。Alice在一段时间后方可自行花销。Bob如果知道Alice的秘密As,就能够动用资金。


请记住,双方均不知道彼此的秘密,因此第3点暂时无法实现。另一个注意事项是,如一方签署了交易,交易对手就能够立即动用资金,因为他们的输出未设置任何条件限制。签署方需等到时间锁到期才能自行花销资金,或与对方合作直接共同花销。


一切顺利!现在就能把交易发布到初始的2取2多重签名地址中去。这样做是安全的,因为您可以在交易对手放弃该通道时收回资金。


交易确认后,通道将开启并运行。第一对交易显示的是迷你账本的当前状态。这时,账本向Bob支付3BTC,并同样向Alice支付3BTC。


Alice要向Bob支付新款项时,两人会创建两笔新的交易来取代第一组交易。操作方式如出一辙,这笔交易会由各自签署一半。只是Alice和Bob要先放弃他们的旧秘密,并为下一轮交易交换新的哈希值。



例如,Alice要向Bob支付1BTC,两笔新交易会把2BTC存给Alice,而4BTC给Bob。这样,余额就会更新。


双方均可随时签署和发布最近的一笔交易并在区块链完成结算。然而,签署发布方需等待时间锁到期,而另一方可马上花销费用。请记住,如果Bob签署和发布了Alice的交易,她就能拥有一次无条件输出。


双方可达成共识同时关闭通道,即合作关闭。这是资金返回链上最便捷的途径。但是,如有一方没有回应或拒绝合作,另一方可在时间锁到期后收回资金。



-->> 2/3 文章未完,请继续阅读

以上就是什么是闪电网络?比特币闪电网络是怎么回事?的全部内容,望能这篇什么是闪电网络?比特币闪电网络是怎么回事?可以帮助您解决问题,能够解决大家的实际问题是非常好学习网一直努力的方向和目标。