原文标题:《UNDERSTANDINGTHELIGHTNINGNETWORK,PART3:COMPLETINGTHEPUZZLEANDCLOSINGTHECHANNEL》
原文作者:AARONVANWIRDUM
原文编译:闵敏?&?阿剑,以太坊爱好者
闪电网络
目前,Alice和Bob已经开通了一个双向支付通道,并分别往通道中存入了5btc。他们已经来回完成了两笔交易。在当前通道状态下,Alice和Bob可以通过终止通道各自取回5btc。
现在,他们想要在通道中放入一个哈希时间锁合约,以确保Bob在用1btc交换Carol手中的秘密值后,Bob可以从Alice那里取回1btc。
人民数字FINTECH推出区块链科普动画:人民日报数字传播发布微博称,人民数字FINTECH出品《趣味科普|区块链动画》。[2020/3/31]
就像之前的步骤一样,Alice和Bob先要各自创建一笔新的承诺事务。这两个承诺事务跟之前创建的承诺事务很像,包含一个普通的输出、一个带有CSV时间锁的多签地址输出和一个特殊的哈希锁。接着,像之前的步骤一样,Alice和Bob交换之前的秘密值来让之前的通道状态失效。一旦交换过秘密值后,Alice和Bob就可以签署各自的承诺事务,并在任何时候将这承诺事务发送到区块链上。
这些步骤与之前的步骤基本相同,除了一点。Alice和Bob新创建的承诺事务包含一个新的输出,而这个输出价值1btc。
这个新的输出本质上是哈希时间锁合约,而且相比其它输出更有趣,因为有三种方式可以解锁它。
动态 | 链客社区联合北京交通广播推出区块链技术科普节目:12月11日15:15—16:00,区块链技术社区——链客区块链技术社区将联合北京交通广播FM103.9从零开始为大众科普解码区块链技术,蜻蜓FM及北京广播网同期进行全球直播。首期做客嘉宾为链客区块链技术社区创始人郄建军和百度区块链产品负责人于雅楠。[2019/12/11]
第一种方法是,只有当后序事务包含Bob的签名和秘密值时,(包含在Alice和Bob的承诺事务内的)新的输出才会释放btc。无论Alice或Bob是否签署并广播承诺事务,只有Bob可以解锁该输出——只要他将秘密值包含在后序事务内。但是,两个承诺事务存在一处细微差别:如果Bob终止通道,会受到CSV时间锁的约束。这时,Bob必须等待1000个区块才能取回自己的btc。
为什么Bob需要等待1000个区块呢?原因跟我们之前解释的差不多:如果Bob试图签署并广播过期的通道状态,Alice就可以拿走1btc。这就是解锁输出的第二种方法。如果Alice提供Bob的秘密值,就可以「偷走」通道内的资金。
动态 | 央行官微旧文重发“再科普”:范一飞详解数字货币:据中国经济网消息,今日,央行官微公众号头条重新发布央行副行长范一飞在2018年1月25日题为《关于央行数字货币的几点考虑》的文章,对央行数字货币再次进行科普。同时,微信公众号第二条发布支付司副司长穆长春8月10日在第三届中国金融四十人伊春论坛上的演讲。近年来,各主要国家和地区央行及货币当局均在对发行央行数字货币开展研究,新加坡央行和瑞典央行等已经开始进行相关试验,人民银行也在组织进行积极探索和研究。[2019/8/21]
Alice和Bob可以玩这样一个游戏:如果Alice试图广播过期的通道状态,Bob可以使用Alice的秘密值取走那1btc。
第三种方法是,与其它哈希时间锁合约一样,这两个承诺事务也包含常见的CLTV时间锁超时退回机制,即,如果Bob没有在限期内将秘密值包含在后序事务内,Alice就可以取回自己的1btc。在这种情况下,终止通道的人是Alice还是Bob都没关系。
动态 | 浙江卫视节目科普支付宝区块链防伪溯源产品:昨日,在浙江卫视播出的科普综艺栏目《智造将来》现场,支付宝首次展示了支付宝区块链防伪溯源产品,以接地气的方式公开向大众展示区块链在生活中的应用。[2019/3/4]
那么,具体是如何操作的?
Alice和Bob各自持有部分有效的承诺事务。如果Alice将自己持有的承诺事务发送到区块链上,就会立即发送5btc给Bob。Alice则需要等待1000区块之后才能取回自己的4btc。另外,Bob有两周时间提供秘密值,解锁「哈希时间锁合约输出」对应的1btc。
与此同时,Bob随时都可以将他的承诺事务上链,并立即将4btc发送给Alice。接着,他必须等待1000区块过后才能从一个地址那里取走5btc,如果他在限期内提供秘密值,还能解锁「哈希时间锁合约输出」对应的1btc。
当然了,如果Alice或Bob在将来任何时候试图作恶,签署并广播过期的通道状态,另一方都可以阻止作恶方,并偷走通道内的所有btc。
结算状态
这时,Bob一定会收到1btc来交换他手中的秘密值。他要做的只是签署并广播他从Alice那里得到的承诺事务,将秘密值包含在一个后序事务内,然后签署并广播该后序事务。
Alice知道这一点。她没有办法走Bob的btc,即使她通过其它手段得到了秘密值。
因此,Alice和Bob还不如在支付通道外进行「结算」。Bob可以将秘密值给Alice,Alice可以同意更新通道状态,这样就不需要哈希时间锁合约和截止日期了。
假设Alice和Bob都想让通道保持开启,这也很正常:比起在链上终止通道省事多了。
关闭通道
最后才是闪电网络真正强大的地方:
本系列文章中所述内容几乎都不需要实际上用到比特币区块链。
如果Alice和Bob想要和平关闭通道,可以创建一个事务来完全覆盖掉开启通道事务之后的所有事务。他们可以根据最新通道状态中所示的btc余额归属情况,通过关闭通道事务将自己应得的btc余额发送给自己。
具体来说,这意味着如果Alice想要关闭通道,她可以创建一个事务向自己支付4btc,同时向Bob支付6btc,然后让Bob签署并广播该事务。Bob没有理由不答应这个请求,他大概率会配合Alice关闭该通道。
最后,只会有两笔事务被广播到比特币网络并打包进区块:开启通道事务和关闭通道事务。哪怕Alice和Bob之间发生了100万笔交易也是这个结果,因此极大地减轻了区块链的负担。
格外感谢RustyRussell和JosephPoon的信息和额外的反馈。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。