区块链研究实验室 | 闪电网络编码教程-花费HTLC执行可撤销交付
这篇文章的目标是花费HTLC执行可撤销交付,这与白皮书的图12相对应。
花费HTLC执行可撤销交付的14个步骤:
由于内容存有重复,前面步骤忽略,直接由第五步开始。 如果您想了解前面4步,请参阅之前的文章。
多签名资金
建造C1A和C1B(No sign)
建造RD1a和RD1b
C1A和C1B的交换签名
建造C2A和C2B(No sign)
构建RD2A和RD2B
构建HTD1B
建造HE1B
建造HELD1B
C2A和C2B的交换签名
建造BR1a和BR1b
花费C2B
花费HE1B
花费HED1B
构建C2a和C2b(No sign)
首先,Alice创建原像R并且还创建相应的哈希H。Alice想要仅在Bob知道原像R时向Bob支付0.1 BTC。对于Bob,当Alice提供H时,他应该回答R以接收0.1 BTC。 在这个时候,Alice使用私钥作为R,公钥作为H。
以同样的方式,Bob构建C2b。
构建RD2a和RD2b
请参阅“构建RD1a和RD1b”部分的前一篇文章。
构建HTD1b
如果Bob不能应答R,只有Alice可以在3次确认时间锁定后广播此交易以退款0.1 BTC。对于Bob,最好在该时间锁定到期之前回答R。
Json格式scriptSig如下:
请注意,HT1a与HTD1b有点不同,请参考https://github.com/tak1827/lightning-network-tx-flow/tree/spend-HERD
构建HE1b
Bob只要知道R,就可以随时广播此事务。不幸的是,他没有从该交易中收到0.1 BTC。
Json格式scriptSig如下:
请注意,HED1a与HE1b略有不同,请参考:https://github.com/tak1827/lightning-network-tx-flow/tree/spend-HERD
构建HERD1b
Bob只能在10次确认时间锁定后才能广播此交易。 最后,Bob从此交易中收到0.1 BTC。
请注意,构建HTR1a与H1b略有不同,请参照https://github.com/tak1827/lightning-network-tx-flow/tree/spend-HERD
C2a和C2b的交换签名
Alice让Bob签署C2A。现在,Alice可以随时广播此事务。
以同样的方式,Bob让Alice签署C2b。
构建BR1a和BR1b
跳过重复说明。 请参阅“Build BR1a和BR1b”部分的上一篇文章。
花费C2b
Bob花了c2b。即使他知道R,他也不能立即收到Alice的0.1btc,因为herd1b上的时间锁定。
但是,如果Alice花了c2a,Bob只要知道R就可以立即收到。
花费HTD1b
Bob花费这笔交易来回答R。
花费HERD1b
在10次锁定后,Bob花费此交易来接收0.1 BTC。
好的,本章节到此结束,下一节我们将会继续讲解;
本文转载公众号:区块链研究实验室,专注区块链技术,产品社群,经济模型等全方位的知识体系输出,为大家带来不一样的社群学习体验。欢迎联系作者微信加入社群:csschan1120