在上一篇文章中,Alice和Bob建立了一个双向的支付通道。现在,Alice想要给一个第三方Carol支付1btc。
一般来说,Alice和Carol需要在彼此之间开设一个支付通道。但实际上并不需要。因为Bob和Carol之间已经有了一个通道,所以Alice可以通过Bob给Carol支付。
具体来说,Alice可以给Bob支付1btc,而Bob再支付1btc给Carol。
但是,Alice实际上并不信任Bob,或者Carol并不信任Bob。她担心把钱给Bob之后,Bob不会给Carol;又或者,他把钱给了Carol,但Carol谎称自己压根没见到钱,而Alice也不知道该找哪个来追责。
Messari前主管:如果理解了比特币 绝对没有理由不理解DeFi:Messari前主管、股票及加密货币交易员Qiao Wang发推表示:在加密货币的简短历史中,我们已经看到了无数故事。然而,DeFi是必将留下的极少数之一。自比特币以来,我们在区块链上有了“价值”。下一个合理的步骤是交易,借出,借入,抵押,转移风险等等。如果你理解了比特币,就绝对没有理由不理解DeFi。不要被标签所迷惑。[2020/10/5]
因此,Alice希望能保证,仅当Bob给了Carol1btc,自己才需要给Bob支付1btc。
动态 | 新韩银行与Ground X、Hexlant签订协议 向企业提供基于区块链的密钥管理解决方案:8月14日,韩国新韩银行宣布已与Kakao的子公司Ground X和区块链技术实验室Hexlant签订业务协议,旨在向企业提供基于区块链的密钥管理解决方案(PKMS)。[2019/8/14]
当Alice要给Carol支付1btc时,她让Carol先生成一个秘密值并把对应的哈希值发给她。Alice也告诉Carol可以用这个秘密值跟Bob交换1btc。
与此同时,Alice把从Carol处得到的哈希值发给Bob,并告诉Bob如果Bob能提供对应于这个哈希值的原始值,她就会给Bob1btc。
分析 | 63%机构受访者认为高级管理人员对区块链缺乏理解:据cointelegraph报道,市场研究公司PollRight代全球区块链业务委员会(GBBC)对机构投资者的调查显示,63%的受访者认为高级业务主管对区块链技术的理解不足。据报道,PollRight采访了71家机构投资者,包括私募股权基金、对冲基金和养老基金。此外,30%的受访者认为他们对新兴技术的了解是“平均水平”,其余7%的受访者认为高级管理人员对区块链的理解是“好的”。此外,76%的受访者表示并不认为大公司的高级业务主管致力于区块链,但预计2019年区块链技术的全球支出将增加108%。33%的受访者认为,在两年内,区块链在金融服务和银行业务中的应用将大幅增加。[2019/1/23]
所以Bob找到Carol,用1btc换来了Carol的初始值。
动态 | Block.One新游戏将使编码过程更容易理解:据cryptodaily消息,Block.One透露了一款新的视频游戏,旨在增加积极参与网络工作的EOS开发人员的数量,该游戏被称为元素战斗,使EOS.IO编码过程更容易理解。游戏教程有不同的阶段,供开发人员学习在EOS.IO上构建分散式应用程序所需的每个步骤。这包括如何编写EOS智能合约,游戏逻辑验证和编程人工智能代码的一般指南。Block.One表示,它是新想法的一部分,以增加网络上的编程社区。[2018/10/26]
然后,Bob找回Alice,提供这个初始值。Alice因此知道了Bob一定给过钱了,也就是Carol肯定已经收到了1btc,于是就把钱给了Bob。
皆大欢喜。
几乎,啊,几乎是皆大欢喜。
在这种「过家家」的情形下,中间人Bob还是需要新人Alice和Carol。Bob必须相信Carol给他的是一个真正有用的值,而且要相信Alice真的会给他1btc,假如他能提供对应于哈希值的原像的话。
这时候,我们就需要哈希时间锁合约啦。
哈希时间锁合约
哈希时间锁可以让Alice和Bob用秘密值来交换btc。
为了使用哈希时间锁,Alice要将1btc发送至一个新的多签地址,而非直接发送给Bob。这个地址中锁定的btc可以通过两种方式解锁。
第一种方式是Bob将自己的签名和秘密值一起发送至该地址。
第二种方式是Alice将自己的签名发送至该地址。但是,这个方式存在?CLTV时间锁限制:Alice必须等待一段时间才能签署并广播交易取走这个btc。
也就是说,Bob有两周时间来创建一个包含签名和秘密值的交易,并广播该交易,将多签地址上的btc发送给自己。这样一来,这笔交易就有了保证。只要Bob能提供秘密值,他就能取走Alice的btc:在比特币网络公开广播该交易可以让Alice看到它。
如果Bob没有在规定时限内提供秘密值,Alice就可以取回她的btc。就这么简单。
再说回网络,因为这是哈希时间锁合约真正发挥作用的地方。
如上文所述,不仅Alice和Bob之间有哈希时间锁合约,Bob和Carol之间也有。因此,如果Carol向Bob索要btc,Bob也可以从Carol那里取得秘密值。这些在区块链上都是可见的。
因此,如果发生这种情况,Bob也一定可以从Alice那里拿到1btc。Bob可以将从Carol那里拿到的秘密值在链上公开,发送至他与Alice的哈希时间锁合约,然后取走多签地址上的1btc。这两个状态通道有效地关联了起来。
最后要强调的一点是,Bob必须在有效期内从Carol那里拿到秘密值,否则Alice就有可能取回多签地址上的1btc。如果等Alice取回1btc之后Bob才从Carol那里拿到了秘密值,Bob就会被卡在中间进退两难。因此,Bob和Carol的哈希时间锁合约必须比Alice和Bob的先到期。这就是为什么哈希时间锁合约需要CheckLockTimeVerify而非CheckSequenceVerify。
最后还有一个问题需要解决:要保证闪电网络的可用性,所有这些必须在链下完成。具体是如何实现的将在本系列第三篇文章中揭晓。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。