学习
实践
活动
工具
TVP
写文章

闪电网络(三):建立闪电通道

我们仔细想想,为什么比特币转账这么慢?

还不是因为每笔交易都要广播到全网,然后被区块打包,接受所有节点的验证。一句话来说,就是交易要上链,所以才慢。

如果A和B两人有业务往来,相互之间经常要转账,假如每一笔转账交易都上链的话,那肯定是既慢又耗手续费。他们就想,这比特币反正就在我俩之间转来转去,没必要每次转账都记录到区块链(其实,上一篇里有两笔交易就没上链,还记得是哪两笔吗?),只要把最终咱俩结束合作时的金额,用一笔交易上链就可以了啊!

比如,A和B经过长时间的合作后,转账了100笔,但100笔的效果,其实就是A转了1个比特币给B,那中间的100笔交易其实没必要上链,只要最后构造一笔交易,让A转1个比特币给B,就OK了。

这就是闪电通道要做的事,A和B可以在闪电通道里用不上链的交易实现闪电般地转账。

今天我们就来看看如何建立一个闪电通道。咱们上个图,慢慢撸:

为了后面叙述的流畅,先对此图做几个说明:

1、沿用上篇我们构建的资金池:A1B1多重地址,里面有4个比特币,A和B各转了2个,这是这个闪电通道的启动资金;

2、建立闪电通道的双方是A和B两个人,其中A1、A2、A3等是A的普通比特币地址,同样,B1、B2、B3等是B的普通比特币地址;

3、建立通道的过程以及后面转账的过程,会建立很多个多重签名地址,比如,A1和B2的公钥建立的A1B2多重地址,B1和A2建立的B1A2多重地址。

好,接下来就看具体的步骤:

第一步:A构造一笔交易①,发起地址正是A1B1多重地址,目的地址有2个,一个是A1B2多重地址,另一个是A1,各转2BTC。

第二步:A再构造交易②,发起地址是A1B2多重地址,目的地址是B1,但这笔交易如果播布出去,需要经过1000个区块的时间才能打包。

第三步:A对交易①和交易②用A1的私钥签名后,发给B。

第四步:B收到交易①和交易②后,会在自己电脑上用B1、B2的私钥,在A1已签名的交易①和②上进行签名测试,以验证A的签名是否有效。

第五步:B按照A在第一到三步的做法,也构造类似的交易③和④,同样A也有如第四步的回应。操作是对称的,具体过程就不说了,大家对着看图应该能看明白。

至此,闪电通道建立完毕,咱们下篇见!

。。。。。。

开玩笑的,咱不是这么不负责的人。

我们来看看这一系列交易的玄机。

以A构造的交易①和②为例,首先在交易①里,这4个初始比特币,转了2个给A1,转了2个给A和B控制的另一个多重地址,这明显是有利于A的,再看交易②,虽然是把A1B2多重地址的2个比特币转给A1,但是中间要经过1000个区块的时间,以10分钟一个区块来算,那就是差不多7天时间。如果A发现B有什么不当行为,也完全有足够的时间去应对。最关键的是,A自己那2个比特币通过交易①就可以马上回流,也不怕B搞什么幺蛾子。

所以,A发起的交易①和②是明显有利于A的,所以B不会签名发回给A。但B还是会验证A的签名是否有效,因为不管怎么说,如果执行这两笔交易,自己至少还是可以拿回那2个比特币,所以,验证一下以备不时之需。

于是,情况就变得有点微妙了:

1、A构造了有利于自己的交易①和②,但B掌控了①和②的主动权;

2、B构造了有利于自己的交易③和④,但A掌控了③和④的主动权。

在这种情况下,交易①②③④肯定都不会广播到比特币网络,全部都悬在这里,僵持着,不上链。正是这些看似很玄乎的交易,搭建起了A和B之间的闪电通道,下一篇,我们来看看他们如何利用这个通道进行快速转账。

不投资毋宁死

自由,就是拥有选择的权利,而每一次选择都是一次投资。

谢谢阅读

✬如果你喜欢这篇文章,欢迎分享到朋友圈✬

评论功能现已开启,灰常接受一切形式的吐槽和赞美☺

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181014G1GICS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券