闪电网络“肮脏的小秘密”:哈希时间锁定智能合约能确保支付安全吗?
比特币闪电网络(Lighting Network)概念是在知名开发人员 Joseph Poon 和 Thaddeus Dryja发布的《比特币闪电网络:可扩展链下实时支付》(The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments)白皮书中提出的,本质上是由了哈希时间锁定智能合约(Hashed Time Lock Contract)来安全地处理“0确认“交易的一种机制,通过巧妙设置”智能合约“,用户可以在闪电网络上进行未确认的交易。
(星球君注:区块链去信任是指用户不需要相信任何第三方。用户使用去信任的系统或技术处理交易时非常安全和顺畅,交易双方都可以安全地交易,而不需要依赖信任的第三方。)
哈希时间锁定智能合约(HTLCs)
第一种是在提供正确密码的时候才能被打开的“锁“——我们称之为”哈希锁(hash-lock)“。
第二种是在一段时间延迟之后自动打开的“锁“——我们称之为”时间锁(time-lock)“。
图2:当哈希值达到指定值的时候(在本例中为45f8),输入密码即可打开哈希锁;而时间锁则是在指定时间过后就会被打开(在本例中为 48 小时)。
如果能够在 48 小时内找到 Carol 设定的密码,Bob 就能拿到 Alice 发出的珠子。与此同时,Bobby 也知道(因为 Alice 会告诉他)Carol 会公布这个密码来换取他的一个珠子。为了诱使 Carol 采取行动,Bob 可以在他和 Carol 之间放置一个相同的哈希锁,其中放置了他自己的一个珠子,然后 Bob 可以再设置另一个时间锁(如图 4 所示)。他知道如果要让 Carol 打开哈希锁并拿走珠子,Carol 必须要输入密码——很明显,这个密码会和 Alice 设定给 Bob 打开的那个哈希锁密码一样。 图5,Carol 公布了自己的密码,然后打开密码锁取出代币。 获取了 Carol 的密码之后,Bob 用同样的方式解锁了 Alice 给自己的珠子(如图 6 所示),整个支付交易完成。 图6,获取了 Carol 的密码之后,Bob 现在可以获取 Alice 给自己的珠子,整个支付交易也因此完成了。 你可能想知道,为什么 Bob 会是第一个参与整个流程的人?因为如果 Carol 没有参与合作的话,Bob 的珠子会被一直冻结,直到时间锁过期。而在实际交易中,Alice 向 Bob 发送的资金可能会比她给 Carol 的资金更多一点,因为 Alice 希望用这种方式作为 Bob 工作的费用,或是避免出现不必要的风险。支付交易完成之后,Bob 的账户余额会比这笔交易完成之前的更多一点,从而也激励他能去完成这笔交易(或是类似的交易)。 如果你对闪电网络支付流程感兴趣的话,可以深入探讨一下如果其中一方在不同步骤中变得不合作,Alice、Bob 和 Carol 会不会因为对方行为面临资金损失的风险。 闪电网络有一个很少人知道的肮脏小秘密,如果想要了解这个秘密是什么,以及这个秘密对闪电网络支付交易会有什么影响——我们需要再深入挖掘一下。 现在让我们回想一下,当 Alice 通过 Bob 向 Carol 发送一笔支付交易的时候,其中还存在一种“中间状态”(如图 7 所示)。我们就直接用比特币来做解释,渠道状态包括三种输出: 图7,此时闪电网络通道状态交易包含了三种输出:Alice 的比特币、Bob 的比特币、以及“交易过程中”的比特币。 图8,如果“交易过程中“的比特币低于粉尘阙值,则不能使用哈希时间锁定智能合约机制,因为在广播情况下通道状态交易无法被挖掘,此时”交易过程中“的代币会被倾倒进”矿工费用篮子“里。 2、一些小微支付交易可能会出现快速、连续地丢失(例如发生了一起闪电网络路由攻击),可能会造成重大损失。 想象一下,未来大部分支付交易都发生在闪电网络上,第一层上的交易费用一直都超过 100 美元,此时主链上低于 100 美元的粉尘输出就会变得没什么价值了,因为链上费用比交易金额本身还高。 未来,那些连接状态较好、但却收取较高链上费用的闪电网络路由中心必须要受到监管,因为他们已经能够对其客户资金进行“托管控制(custodial control)”了。 如果底层区块链不受约束,闪电网络就很可能无法像人们所期望的那样工作。 未来,当大多数比特币交易都发生在闪电网络上,而且区块链也收取高额费用的时候,人们可能会发现闪电网络和预期的有很大不同,除了本文提到的这个“肮脏的小秘密”之外,其他闪电网络的潜在问题还包括: 1、闪电网络扩容的是交易,而不是用户。运行完整闪电网络交易验证节点的成本仍然很高; 2、第一层上的问题(摩擦)会影响第二层可互换性(fungibility),代币存在“位置依赖(position-dependent)”价值; 3、流动性:通过闪电网络交易,大多数“财富状态”其实是无法获得的,支付失败也是不可避免的; 4、如果闪电网络铺的很大,路由就会变得越来越难:闪电网络路由中心将集中化地减少路由和流动性问题; 6、系统性风险:闪电网络通道(热钱包)里需要锁定大量代币,这样才能确保提供足够的流动性; 7、当区块奖励用完的时候,第一层上的总矿工费将不足以确保区块链安全。闪电网络的肮脏小秘密
为什么 “闪电网络肮脏的小秘密” 值得关注
最后的话