比特币官网

闪电网络很难懂?你需要看看这篇文章 | 硬核科普

有了这两个工具,让我们看看那群程序员天才们是如何构想出一个程序,使得互不相识的双方能够诚实记账的。  有了这两个工具,让我们看看那群程序员天才们是如何构想出一个程序,使得互不相识的双方能够诚实记账的。

  在原理的白话版我们已经讲过了关于通道的三个步骤:开启通道,通道内交易,关闭通道。

  开启通道较为简单,Alice和Bob分别向多签地址1转入5个BTC。这是一个2/2地址,也就是必须两人都签名,此地址的比特币才可以转出去。

接下来是通道内交易,我们需要讲解Alice和Bob之间的两次交易才能完全明白双向支付通道的巧妙之处。第一次Alice需要向Bob支付1个BTC,第二次Bob需要向Alice支付1个比特币。  接下来是通道内交易,我们需要讲解Alice和Bob之间的两次交易才能完全明白双向支付通道的巧妙之处。第一次Alice需要向Bob支付1个BTC,第二次Bob需要向Alice支付1个比特币。

  第一次交易的流程是,Bob首先在自己电脑的闪电网络软件上构建交易,如下左图所示。

Bob在构建交易时需要通过闪电网络软件的通信模块和Alice建立联系,获得Alice创建的密文的哈希值,然后把这个哈希值作为哈希锁放在自己构建的交易里。这笔交易Bob把10个比特币分别转给Bob控制的普通地址6个和另一个“多签地址2”4个BTC。  Bob在构建交易时需要通过闪电网络软件的通信模块和Alice建立联系,获得Alice创建的密文的哈希值,然后把这个哈希值作为哈希锁放在自己构建的交易里。这笔交易Bob把10个比特币分别转给Bob控制的普通地址6个和另一个“多签地址2”4个BTC。

  (通俗来讲,就是A和B的财产放在一起,但是B主动从A那里要了一把锁把A的财产锁住了,没有A的钥匙B也无法打开。)

  多签地址2是一个1/2地址,也就是两个条件有一个满足即可解锁。具体来说,需要Bob用自己的私钥和Alice的密文(此时Bob只有密文的哈希值,并不知道密文,所以Bob是不可能获得这6个比特币的)同时来解锁;或者Alice等待1000个区块后用私钥来解锁。如下图,这两个条件是双向支付通道的精髓所在,请先记住它,稍后分析中会讲设计的原因。

Bob构建完交易后会签名,然后把这笔未完成的交易以点对点方式发送给Alice,而不是广播到全网。显然,上述交易是对Bob有利的,一旦Alice签名并广播,Bob可以立即获得6个比特币,而Alice需要等到1000个区块之后才能拥有4个比特币。  Bob构建完交易后会签名,然后把这笔未完成的交易以点对点方式发送给Alice,而不是广播到全网。显然,上述交易是对Bob有利的,一旦Alice签名并广播,Bob可以立即获得6个比特币,而Alice需要等到1000个区块之后才能拥有4个比特币。

  这也就是上文提到的单方面“起诉离婚”会受到延时惩罚的技术实现细节。然而,这笔对Bob有利的交易的主动控制权却掌握在Alice手里,因为Alice不签名并广播的话,这笔交易暂时不会生效的。

  在Bob创建这笔对自己有利的交易同时,Alice也创建了类似的一笔对自己有利的交易,两者是一种镜像。

  这个过程相当于是Alice帮Bob在他的小本本上记了一笔账,这10个比特币Bob占6个,Alice占4个,同理Bob也帮Alice记账了。具体来说,就是Alice电脑里保存着Bob创建并签名的未完成交易,Bob保存着Alice创建并签名的未完成交易。两者合在一起,就完成了他们之间第一笔交易的记账过程,完整过程如下图。

这个过程并不需要互相信任,只需双方同时在线,建立联系并交换哈希值,再在各自的电脑里创建交易最后发送给对方。整个过程不需要经主链由矿工打包确认,所以  这个过程并不需要互相信任,只需双方同时在线,建立联系并交换哈希值,再在各自的电脑里创建交易最后发送给对方。整个过程不需要经主链由矿工打包确认,所以非常快速并且没有手续费。也可以看到,任何一方都可以随时强制关闭通道,将自己占主动权的交易签名并广播全网,代价是1000区块延时。

  但是这里仍然有一个问题,就是外界无法知道通道内的交易次序,因此无法鉴别通道关闭后广播出去的交易,是否为最终交易。例如,如果双方在这个通道里不断发生交易,最后导致Alice手中有9个,Bob手里有1个,但假设最后Bob强制关闭交易通道,并广播出去Alice有5个,Bob有5个,Bob便能凭空赚得4个。(虽然这4个要等到1000个区块后才能获得,但这是值得的。)该怎么解决这个问题呢?

此文由 比特币官网 编辑,未经允许不得转载!:首页 > 比特币行情 » 闪电网络很难懂?你需要看看这篇文章 | 硬核科普