区块链研究实验室 | 闪电网络编码教程-花费HTLC执行可撤销交付

 这篇文章的目标是花费HTLC执行可撤销交付,这与白皮书的图12相对应。 


区块链研究实验室 | 闪电网络编码教程-花费HTLC执行可撤销交付_第1张图片

花费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。

区块链研究实验室 | 闪电网络编码教程-花费HTLC执行可撤销交付_第2张图片
区块链研究实验室 | 闪电网络编码教程-花费HTLC执行可撤销交付_第3张图片

以同样的方式,Bob构建C2b。

构建RD2a和RD2b

请参阅“构建RD1a和RD1b”部分的前一篇文章。

构建HTD1b

如果Bob不能应答R,只有Alice可以在3次确认时间锁定后广播此交易以退款0.1 BTC。对于Bob,最好在该时间锁定到期之前回答R。

区块链研究实验室 | 闪电网络编码教程-花费HTLC执行可撤销交付_第4张图片

Json格式scriptSig如下: 

区块链研究实验室 | 闪电网络编码教程-花费HTLC执行可撤销交付_第5张图片

请注意,HT1a与HTD1b有点不同,请参考https://github.com/tak1827/lightning-network-tx-flow/tree/spend-HERD

构建HE1b

Bob只要知道R,就可以随时广播此事务。不幸的是,他没有从该交易中收到0.1 BTC。

区块链研究实验室 | 闪电网络编码教程-花费HTLC执行可撤销交付_第6张图片

Json格式scriptSig如下: 

区块链研究实验室 | 闪电网络编码教程-花费HTLC执行可撤销交付_第7张图片

请注意,HED1a与HE1b略有不同,请参考:https://github.com/tak1827/lightning-network-tx-flow/tree/spend-HERD

构建HERD1b

Bob只能在10次确认时间锁定后才能广播此交易。 最后,Bob从此交易中收到0.1 BTC。

区块链研究实验室 | 闪电网络编码教程-花费HTLC执行可撤销交付_第8张图片

请注意,构建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就可以立即收到。

区块链研究实验室 | 闪电网络编码教程-花费HTLC执行可撤销交付_第9张图片

花费HTD1b

Bob花费这笔交易来回答R。

区块链研究实验室 | 闪电网络编码教程-花费HTLC执行可撤销交付_第10张图片

花费HERD1b

在10次锁定后,Bob花费此交易来接收0.1 BTC。

区块链研究实验室 | 闪电网络编码教程-花费HTLC执行可撤销交付_第11张图片

好的,本章节到此结束,下一节我们将会继续讲解; 

本文转载公众号:区块链研究实验室,专注区块链技术,产品社群,经济模型等全方位的知识体系输出,为大家带来不一样的社群学习体验。欢迎联系作者微信加入社群:csschan1120   

你可能感兴趣的:(区块链研究实验室 | 闪电网络编码教程-花费HTLC执行可撤销交付)