目前,Alice 和 Bob 已经开通了一个双向支付通道,并分别往通道中存入了 5btc。他们已经来回完成了两笔交易。在当前通道状态下,Alice 和 Bob 可以通过终止通道各自取回 5btc。
现在,他们想要在通道中放入一个哈希时间锁合约(HTLC),以确保 Bob 在用 1btc 交换 Carol 手中的秘密值后,Bob 可以从 Alice 那里取回 1btc。
就像之前的步骤一样(详见 Part 1),Alice 和 Bob 先要各自创建一笔新的承诺事务。这两个承诺事务跟之前创建的承诺事务很像,包含一个普通的输出、一个带有 CSV 时间锁(相对时间锁)的多签地址输出和一个特殊的哈希锁。接着,像之前的步骤一样,Alice 和 Bob 交换之前的秘密值来让之前的通道状态失效。一旦交换过秘密值后,Alice 和 Bob 就可以签署各自的承诺事务,并在任何时候将这承诺事务发送到区块链上。
现场丨BCA创始人孙博涵:NFT可以理解为一个图画形式的比特币:金色财经现场报道,10月17日,BCA NFT艺术沙龙于京举办,活动中BCA创始人兼CEO孙博涵演讲表示,NFT可以理解为一个图画形式的比特币,NFT具有很大的应用前景,可以用于身份认证、电子存证、数字收藏品、实物资产、电子门票、游戏等。[2020/10/17]
这些步骤与之前的步骤基本相同,除了一点。Alice 和 Bob 新创建的承诺事务包含一个新的输出,而这个输出价值 1btc。(因此,支付通道中的 btc 余额变成了 Alice:4;Bob:5;新的输出:1。)
这个新的输出本质上是哈希时间锁合约,而且相比其它输出更有趣,因为有三种方式可以解锁它。
第一种方法是,只有当后序事务包含 Bob 的签名和秘密值时,(包含在 Alice 和 Bob 的承诺事务内的)新的输出才会释放 btc。无论 Alice 或 Bob 是否签署并广播承诺事务,只有 Bob 可以解锁该输出 —— 只要他将秘密值包含在后序事务内。但是,两个承诺事务存在一处细微差别:如果 Bob 终止通道,会受到 CSV 时间锁的约束。这时,Bob 必须等待 1000 个区块才能取回自己的 btc。(如果 Alice 终止通道,Bob 就可以立即取回自己的 btc。)
BlockVC创始人徐英凯:新金融可以从资产创新、技术创新和模式创新三部分来理解:金色财经现场报道,8月6日“2020 Cointelegraph中文大湾区·国际区块链周”在深圳举行。BlockVC创始人徐英凯在“新金融,新生态,新格局”圆桌论坛上表示,新金融可以从资产创新、技术创新、模式创新三部分来理解。资产创新方面,数字资产本身就是信息金融资产,本身是商品,有些也被当做具有使用权的货币来使用,这就创造了新型资产;技术创新则是区块链与互联网的结合,尤其是移动终端的普遍,移动化与DeFi的结合,会使得新金融有更大的发展;模式创新部分,传统金融的银行保险通过与数字经济结合,会出现不少金融产品,不管是供应链还是保险资产,以后会有越来越多的基于区块链的新型金融模式出现。[2020/8/6]
为什么 Bob 需要等待 1000 个区块呢?原因跟我们之前解释的差不多:如果 Bob 试图签署并广播过期的通道状态,Alice 就可以拿走 1 btc。这就是解锁输出的第二种方法。如果 Alice 提供 Bob 的(最新)秘密值,就可以 “偷走” 通道内的资金。
动态 | dotBC与Digimarc合作 结合区块链技术提供版权管理解决方案:据Music Business Worldwide消息,美国版权管理公司dotBC与Digimarc Corporation合作,在dotBC产品中提供数字音频水印技术Digimarc音频条码。Digimarc公司首席执行官Bruce Davis表示,“两家公司的合作伙伴关系展示了Digimarc音频条形码与区块链相结合的强大功能,以确保权利所有权与受版权保护的内容正确且安全地相关联。”[2019/4/10]
Alice 和 Bob 可以玩这样一个游戏:如果 Alice 试图广播过期的通道状态,Bob 可以使用 Alice 的秘密值取走那 1 btc(甚至无需提供秘密值)。
声音 | 赵余:“彩虹表攻击”可以简单理解为“字典攻击”:EOS LaoMao 的赵余在《宁话区块链》之全球EOS节点答疑的节目中称 “前两天发生的’彩虹表攻击’,是由于有些开发者通过设计的自定义助记词功能不完善。既没有过滤空字符串,也没有强制用户设置足够长的助记词。导致黑客可以通过简单的穷举,就能拿到部分账户的私钥。EOS 彩虹表攻击始末:EOS 官方库 eosjs-ecc(https://github.com/EOSIO/eosjs-ecc) 提供了一个自定义助记词生成密钥的接口。有些开发者使用这个接口,做了一个用户可以自定义助记词的密钥生成工具。但是由于产品设计问题,具体问题是下面两个:1. 没有过滤空字符串;2. 没有强制要求用户自己填写的助记词的长度必须达到足够安全的长度(比如 12 个独立的单词作为助记词,就可以认为安全性很高了)。导致部分用户,使用了简单的字母或单词作为助记词生成了自己的私钥。比如 a, b, c, hello, world 等等。这就导致黑客可以轻而易举地“穷举”常见的单词,字母,以及单词组合,进而拿到用户私钥,最终转移用户资产。这个“穷举”的方法,一般也被称为“彩虹表”攻击。对于使用自定义助记词功能生成私钥的用户,建议自查助记词长度,确保助记词长度不少于 12 个单词。”[2018/7/17]
第三种方法是,与其它哈希时间锁合约一样,这两个承诺事务也包含常见的 CLTV 时间锁(绝对时间锁)超时退回机制,即,如果 Bob 没有在限期(比如两周)内将秘密值包含在后序事务内,Alice 就可以取回自己的1btc。在这种情况下,终止通道的人是 Alice 还是 Bob 都没关系。
德国咨询公司 Camelot开发区块链医疗信息管理解决方案:Cointelegraph报道称,德国咨询公司 Camelot已经开发了一项基于区块链技术的解决方案,以帮助铭感医疗信息的管理。该公司利用其Hypertrust X-Chain管理系统为健康管理产业提供安全的数字平台,以用于交易客户信息,旨在为治疗过程中的所有授权角色提供区块链下去中心化的数据储存。[2018/4/10]
那么,具体是如何操作的?
Alice 和 Bob 各自持有部分有效的承诺事务。如果 Alice 将自己持有的(也是 Bob 发给她的)承诺事务发送到区块链上,就会立即发送 5btc 给 Bob。Alice 则需要等待 1000 区块之后才能取回自己的 4btc。另外,Bob 有两周时间提供秘密值,解锁 “哈希时间锁合约输出” 对应的 1 btc。(如果他没有在两周内提供秘密值,Alice 就可以取回这 1btc。)
与此同时,Bob 随时都可以将他的承诺事务上链,并立即将 4btc 发送给 Alice。接着,他必须等待 1000 区块过后才能从一个地址那里取走 5 btc,如果他在限期内提供秘密值,还能解锁 “哈希时间锁合约输出” 对应的 1 btc。(如果他没有在两周内提供秘密值,Alice 就可以取回这 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 万笔交易也是这个结果,因此极大地减轻了区块链的负担。
格外感谢 Rusty Russell 和 JosephPoon 的信息和额外的反馈。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。