首页 资讯 正文

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

链三丰 2019年07月08日 03:31

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

 t6C4VcYooI0qTvHBAyyNANPa7kDxxYvz2PFY6kp1.jpeg

花费HTLC执行可撤销交付的14个步骤:

由于内容存有重复,前面步骤忽略,直接由第五步开始。 如果您想了解前面4步,请参阅之前的文章。

  1. 多签名资金

  2. 建造C1A和C1B(No sign)

  3. 建造RD1a和RD1b

  4. C1A和C1B的交换签名

  5. 建造C2A和C2B(No sign)

  6. 构建RD2A和RD2B

  7. 构建HTD1B

  8. 建造HE1B

  9. 建造HELD1B

  10. C2A和C2B的交换签名

  11. 建造BR1a和BR1b

  12. 花费C2B

  13. 花费HE1B

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

201907072304321.png

201907072304401.png

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

构建RD2a和RD2b

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

构建HTD1b

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

201907072305301.png

Json格式scriptSig如下: 

201907072305411.png 

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

构建HE1b

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

201907072306181.png

Json格式scriptSig如下: 

201907072306431.png 

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

构建HERD1b

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

201907072307241.png

请注意,构建HTR1a与H1b略有不同,请参照https://github.com/tak1827/lightning-network-tx-flow/tree/spend-HERD

 C2a和C2b的交换签名

Alice让Bob签署C2A。现在,Alice可以随时广播此事务。

201907072307561.png

以同样的方式,Bob让Alice签署C2b。

 构建BR1a和BR1b

跳过重复说明。 请参阅“Build BR1a和BR1b”部分的上一篇文章。

 花费C2b

Bob花了c2b。即使他知道R,他也不能立即收到Alice的0.1btc,因为herd1b上的时间锁定。

但是,如果Alice花了c2a,Bob只要知道R就可以立即收到。

201907072308291.png

 花费HTD1b

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

201907072308571.png

花费HERD1b

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

201907072309191.png

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

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