闪电网络可能是部署在比特币之上的最受期待的技术创新。约一年前,约瑟夫·庞(Joseph Poon)和塔奇·德里亚(Tadge Dryja)首次提出了支付层,它承诺在不增加成本的情况下支持用户之间几乎无限数量的脱链交易,同时利用比特币提供的安全性。.
至少三家公司-Poon和Dryja’s 闪电, 区块流 和 区块链 –目前正在研究该技术的实现。但是,除了这个小技术前沿之外,几乎没有人完全了解“小额支付的未来”将如何提高比特币的功能.
在这三部分的系列中, 比特币杂志 列出了闪电网络的基本构建块,并展示了它们如何组合在一起以实现这一即将到来的协议层.
本系列的第一部分介绍了基本构建块,并解释了如何使用这些构建块建立双向支付渠道。第二部分说明双向支付渠道如何转变成网络.
网络
在上一篇文章中,爱丽丝和鲍勃建立了双向支付渠道。现在,爱丽丝想向第三方卡罗尔(Carol)支付一个比特币.
为此,爱丽丝和卡罗尔可以在他们之间建立支付渠道。但是他们实际上并不需要。事实证明,鲍勃和卡罗尔已经有了一个共同的渠道,因此爱丽丝可以通过鲍勃向卡罗尔付款.
具体来说,爱丽丝(Alice)可以向鲍勃(Bob)支付一枚比特币,而鲍勃(Bob)可以向卡罗尔(Carol)支付一枚比特币.
但是,爱丽丝并不真正信任鲍勃(Bob)或卡罗尔(Carol)。她担心如果她付给鲍勃(Bob),鲍勃(Bob)就永远不会付给卡罗尔(Carol)。也许鲍勃 将要 付钱给卡罗尔,但卡罗尔会声称她从未收到这笔钱,爱丽丝也不知道该怪谁.
因此,爱丽丝想确保她只付给鲍勃一个比特币, 如果 他还付给Carol一枚比特币。这是通过一个简单的密码技巧(部分)完成的.
当爱丽丝想向卡罗尔发送比特币时,她告诉卡罗尔创建一个值(数字的随机字符串)并向她发送哈希值。爱丽丝还告诉卡罗尔,请他与鲍勃交换原始价值的比特币.
同时,爱丽丝从卡罗尔那里拿走了哈希,转向鲍勃,并告诉鲍勃,如果他提供给她相应的价值(只有卡罗尔拥有),她将给他一个比特币。.
因此,鲍勃求助于卡罗尔,并给卡罗尔一个比特币作为回报.
然后,鲍勃将值返回给爱丽丝。爱丽丝知道鲍勃一定已经从卡罗尔那里获得了价值,以换取比特币,因此得出结论,卡罗尔得到了她的比特币。所以爱丽丝可以放心地给鲍勃一个比特币.
大家都开心.
出色地… 几乎 大家都很开心.
在这种“幼稚”的情况下,中间人鲍勃仍然必须信任爱丽丝和卡罗尔。鲍勃(Bob)必须信任卡罗尔(Carol)在给他寄送比特币后才能真正给他带来价值,鲍勃(Bob)必须信任爱丽丝(Alice)在向她提供价值后才可以真正给他一个比特币。.
因此,必须在网络上绝对保证比特币换价值交易。进一步来说: 如果 鲍勃给卡罗尔一个比特币,他 必须 一定要从爱丽丝那里收回比特币.
那就是哈希时间锁定合同(HTLC)出现的地方.
散列时间锁定合同
因此,爱丽丝(Alice)和鲍勃(Bob)希望通过HTLC将比特币换成该值。 (鲍勃和卡罗尔也想用相同的价值交换比特币-但现在不要紧。)
为此,爱丽丝没有直接向鲍勃发送比特币,而是向新的(也是时髦的)多重签名地址发送了比特币。锁定在该地址上的比特币可以通过两种不同的方式解锁.
第一种选择是让Bob包括他的签名 和 价值.
第二种选择是让爱丽丝包括自己的签名。但是,此选项带有CLTV时锁:只有在两个星期过去之后,爱丽丝才能签署并广播交易。.
这意味着鲍勃有两个星期的时间来创建后续交易,在交易中他包括他的签名和价值,并进行广播以将比特币从时髦的多重签名地址发送给自己。因此,这种交易是有保证的。鲍勃可以 只要 声称爱丽丝(Alice)提供的价值是他的比特币:通过比特币网络进行广播,使爱丽丝(Alice)可以公开看到它.
而且,如果鲍勃(Bob)没有及时提供价值,那么爱丽丝(Alice)有一种“超时选择”来收回她的比特币。简单的.
回到网络,这就是为什么需要此HTLC设置的原因.
如前所述,不仅Alice和Bob,而且Bob和Carol都建立了HTLC。所以, 如果 卡罗尔向鲍勃·鲍勃索要她的比特币 将要 获得价值作为回报;它将在区块链上可见.
所以, 如果 那样的话,鲍勃肯定也会从爱丽丝那里得到比特币。 Bob可以采用Carol在区块链上公开可见的价值,将其包含在Alice的HTLC中,也可以为自己索取比特币。这两个渠道有效地联系在一起.
最后的细节 是 重要的是鲍勃从卡罗尔那里获得价值 前 爱丽丝可以从鲍勃那里收回她的比特币。如果Bob仅从Carol获得价值 后 爱丽丝已经收回了她的后背,鲍勃毕竟被困在中间。因此,鲍勃和卡罗尔HTLC的超时时间必须到期 前 爱丽丝(Alice)和鲍勃(Bob)的HTLC的超时时间已到期。 (例如,恰好在十天后,而不是两周后。这也是HTLC需要CheckLockTimeVerify(CLTV)而不是CheckSequenceVerify(CSV)的原因。)
最后,还有一个问题要解决:要使闪电网络有用,必须在链外完成所有这些工作。本系列的第三篇也是最后一篇文章将介绍如何做到这一点。.