摘要:在这篇文章中,我们解释了搭建闪电网络的动机,以及为什么它的规模化效益比今天我们所用网络的更好,且将显著改善现有网络。我们将介绍一些使闪电网络成为可能的基本技术基石。然后,考察一下它的局限性,包括与存在于区块链上的交易相比它在安全性上的劣势,以及为什么这劣势使得闪电网络可能不适合用于大额支付。
资料来源:flickr.com
搭建闪电网络的动机
区块链的支付系统一般都是以 “广播给所有人” 的模式操作,因为当进行支付时,需要将交易广播给网络中的所有参与者。
这种系统中的节点必须:
- 无限期地存储交易;
- 验证交易;
- 传递交易。
与此同时,以确定交易是否进入区块链记账本,采矿公司需要走的流程是能源密集且竞争性大的。
收款人没有特别的待遇。例如,如果使用比特币购买咖啡,则交易将广播到整个比特币网络,而不优先将交易数据传播到咖啡店或咖啡店的支付处理器。许多人认为这个过程是低效的。如果目标是建立一个全球数百万人使用的支付系统,这种方法似乎不合逻辑。
在 2000 年 5 月的星期三,阿森纳的 3-3 逼和谢菲尔德时,依然使用着老式的“广播给所有人”的传播模式。在手机被广泛采用之前,体育场播音员通过公共广播系统将信息传播给所有在场的人。移动电话使这个过程更快捷,更高效,因为信息可以直接发送给指定的接收者。
闪电网络代表效率的提高,并使用更优化的支付网络系统。交易可以直接发送给收款人,而不是向所有人广播该交易。只有在交易双方不诚实的情况下,才需要诉诸繁琐的程序,进一步分散审查权限以达到网络共识。通过这种方式,可以在保持比特币区块链安全特性的同时,实现直接向网络上的节点广播相当的性能和效率。
但是,建立一个如果出现问题各方都可以诉诸区块链且回收资金的支付体系是复杂的,且存在一定的风险和局限性。
闪电网络的基本技术基石
单向微支付通道。资料来源:BitMEX 研究
上图基本描绘了建立单向支付渠道的传统方式。尽管建立该渠道涉向所有人广播交易,但一旦建立了该渠道后,便只需要让 Bob 将数据发送给 Alice ,就可以实现从 Bob 到 Alice 的多次支付,避免了将数据广播到整个网络。支付过程可以一直重复,直到渠道资金,在该情况下为 1 个比特币,被用完为止。
从理论上讲,上述渠道基于以下原因是安全的:
如果 Bob 出尔反尔, Alice 所需要做的就是签署并广播给 Bob 最初付款时签署的网络交易 P1 。只要在交易 B 的一周锁定时间之前得到确认,无论 Bob 做什么 Alice 都能安然无恙的收到她的 0.1 比特币。
如果 Alice 为了使 Bob 反感而拒绝签署,那么 Bob 需要等交易 B 在一周后自动生效,然后他便可以通过广播交易B将渠道中已经获得 Alice 签名的钱汇回给到自己。
不能被第三方推动( TXID 更改)的交易过程是更安全的,否则可能Bob已经创建的交易 B 只有当交易 A 改变时它时才变为无效,从而使 Alice 能够无限期地不让 Bob 撤回资金。
根据中本聪发给比特币开发人员 Mike Hearn 的电子邮件,这个基本结构是中本聪的想法:
nLockTime 的其中一个用途是参与者间可以进行高频交易。他们可以通过一致同意不断更新。支付的人是下一个版本的第一个签署人。如果任何一方不同意更新,则最后一个状态将记录为 nLockTime 。如果需要的话,可以在每个版本之后准备一个默认的交易,这样同意 n-1 的参与者们可以将没有反应的人给剔除。中间交易不需要广播。只有最后的结果需要被记录到网络上。就在 nLockTime 发生之前,参与者们和几个见证节点广播他们见证的最高序列的 tx 。
资料来源:https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2013-April/002417.html
闪电网络是如何操作的
这种小额支付结构可以被认为是闪电网络的核心组成部分,它实质上就是这些支付通道组成的网络结构。支付出的款项将寻找一条已经相连上的渠道,直到这些款项到达最终的收款人手上。
闪电网络使用的渠道虽然是基于这种结构,但它具有更先进和更复杂的技术。上述结构是单向的,为了加强实用性,收付款需要的是双向链接。例如,可以想象通过在 Alice 和 Bob 之间构建两个渠道来双向地支付。更确切地说,闪电网络使用了 Poon-Dryja 的渠道搭建方法。与简单地在反方向建立单向付款渠道网络相比,这具有较低的流动性需求,否则将需要锁定两倍的资金在渠道内。然而,与其他方法相比, Poon-Dryja 渠道结构存在明显的弱点。 Poon-Dryja 渠道结构要求在每次更新渠道时(付款时)收付款双方都需签署新的交易,而在单向频道中,只有发送者需要在频道更新时签名。
旧的锁定时间功能可以被更高级的功能所取代:
- 检查锁定时间验证( BIP65 )可以证明输出不能在特定日期之前被花费,而不是确保输出的花费在特定日期之前无效,这就是锁定时间的功能。
- 相对锁定时间( BIP68 )可以用相对于相应输出的日期替换特定的结束日期。这可以允许支付渠道在无限期内保持开放。透过关闭交易来触发时间窗口,在此期间另一方具有有限的时间段(例如两周)来广播其回收交易并且回收资金。
- 哈希时间锁定合同( HTLC )可以要求收款方提供一个字符串,该字符串在某个特定日期之前哈希值到某个数,或者将资金返还给付款人。这个相同的哈希可以用来触发渠道网络中的其他支付,从而能够通过一系列渠道进行支付。
由此产生的闪电网络及其优势
那么理论上闪电网络应该允许网络中的所有参与者通过在节点之间找到的路径来做出面对几乎所有方向的即时和廉价的交易。因此,只要没有意外,这种操作避免了向比特币网络直接广播,且将形成一个庞大的网络规模。该架构甚至允许微支付,并提高了付款的隐私性。
由于相对锁定时间的特点,且在没有对手风险的情况下,渠道可以无限期地保持开放;如果有人试图通过恶意关闭渠道来窃取资金,其他交易参与者将有一个很长的时间窗口来赎回交易并拿回自己的资金。
网络功能和用户体验
未知的是人们和企业将如何使用该网络,评论者似乎有不同的看法。有些人认为,在小额支付领域闪电网络最终将无处不在,以复杂且自动化的方式处理这个小额支付。其他对闪电网络有质疑的,通常认为网络的各个组成部分需要在使用系统的同时进行许多的手动调整,而且意想不到的渠道关闭和闪电网络停机时间将困扰着用家和造成糟糕用户体验。
对闪电网络持怀疑态度 | 对闪电网络持乐观态度 | |
渠道建立 | 为了建立闪电网络渠道,用户必须手动创建一个新的昂贵的链上交易。 | 建立的闪电网络渠道可以与现有钱包和系统内置无缝过程。当收到和支付比特币时,资金需要存到某个地方。资金可以在收到时立即进入闪电网络的渠道中,因此建立该渠道不需要额外的步骤或成本。 |
渠道关闭 | 一旦支付完成,就需要透过手动创建昂贵的在线交易来关闭渠道。 | 可能不需要关闭渠道,用户可以无限期地或长时间地将钱存放在渠道中。 |
网络路由 | 路由可能是一个较大的问题,因为找到各方之间最短的路径对于演算法来说是个难题。如果找不到清晰的路线,则用户和商户将不得不通过繁琐的过程来手动改变并选择在链上交易的过程。 | 1. 现有的P2P网络已经需要网络拓扑和消息传递,节点通常具有八个连接。闪电网络拓扑结构只是其中的一个延伸。 |
2. 路由不是一个重要的问题,因为即使在大规模网络中,用户之间路径的平均步数也是很小的。
3. 即使路由有问题,也可以简单地在链上进行支付,而用户甚至感觉不到两者的差异。
4. 少数大型渠道运营商可以防止路由发生任何问题。支付渠道的中心化网络将集中围绕在几个大型交易枢纽,因为这是最有效的模式。这种集中化增加了系统性渠道失效的风险,即少数大渠道出现故障,导致支付渠道同时大量外流,造成连锁拥堵,使部分资金在到期前无法退出渠道。有些经济奖励措施是用来对抗这种中心化的,任何人都可以设立节点,因为进入门槛低。除此之外,还可以通过收取较低的费用来削减其他节点对网络的影响力。
即使网络集中在几个大型交易枢纽上,闪电网络仍然提供了一个有用而有趣的系统。比特币已经有一些像 Coinbase 这样的大机构来管理大量的资金。在闪电网络下,这些机构没有资金保管权,只是用来传递用于支付的数据。流动性支付渠道流动性不足,因此其规模将受到限制。任何较具规模的支付几乎可以立即消耗掉整个渠道的流动性,瘫痪闪电网络的支付渠道。将有机制激励用户运行闪电网络节点,并提供流动性,以收取费用,网络便可以用于小额支付,支付额度可以远小于最大渠道容量,确保有足够的流动性。要求收款人在收款时在线通过链上交易,发件人需要的是收款地址,而收件人不需要在线。与此相反,收款人在接收付款之前需要签署收回交易。这是一个重大的限制,意味着收件人必须将私钥暴露在热钱包中。这使得闪电网络在下列许多情况下便的不切实际,例如在 ATM 上,在商店 PoS 系统上进行大额支付,或者支付给那些难以连上互联网的收款人。虽然收件人必须在线才能收到付款,但这与大多数在线支付系统没有显着不同,因为如果收款人不在线上,他们不知道或无法验证收款。直接收款的用户或设备也不需要存储私钥。例如,商店 PoS 终端或加密 ATM 机可以在收款前通过互联网从公司的总部确认签署回收交易,因为无论如何双方在收款时都需要沟通。监督渠道的潜在需求闪电网络参与者可能需要监督支付渠道,然后在一定期限内采取行动,以保护他们的资金。例如,恶意的回收交易可能会触发另一方也必须在某个期限之前发出回收交易来保护其资金。这对用户来说是一个很大的负担。渠道不需要被长时间监督着,因为这取决于相对锁定时间提供的窗口。渠道监督服务(瞭望塔)可以代表用户通过监控渠道来降低风险:在用户提供事先签署同意的情况下,这些服务可以在发生恶意回收交易时提醒用户,或者可以自行发出回收交易。
事实上,闪电网络的发展可能存在这两种观点之间,随着时间的推移,网络可能会转向更雄心勃勃的目标。这种分歧似乎可以归结为闪电网络怀疑者认为它是一个复杂的,不完整的,不切实际的基于渠道建设的支付系统。而支持者将闪电网络视为比特币区块链上可规模化的第二层技术,最终将由钱包,支付系统和渠道服务公司进行进一步补充,从而带来简单而无缝的用户体验。最终,钱包可以互相沟通,然后通过闪电网络自动决定下列最优化的支付方式,链上交易或通过闪电网络采取最实用的方法,而用户甚至不需要知道或关心选取了哪种支付方式。
闪电网络较大的安全风险
- 在收款时必须在线的要求:如上所述,在收款之前,收款人需要签署收回交易,以便汇款人知道如果渠道不正常的关闭或拒绝签署的情况发生,他们可以收回资金。因此,收钱需要一个热钱包,这意味着如果发生安全事件,私钥可能被暴露。
- 监督渠道的要求:可能需要闪电网络参与者或瞭望塔主动监督网络渠道。这可能给用户或瞭望塔带来负担,并且与存储在区块链上的比特币相比,潜在地降低了渠道内的资金安全性。未能适当监督渠道或由在线网络造成的拥塞可能增加用户错过了回收交易截止日期的风险。
- 矿工可以审查渠道关闭交易:作为不属于交易双方的矿工可以通过审查渠道关闭交易,一旦他们具有 51% 的哈希率便可能有能力从闪电网络用户窃取资金。虽然这种类型的攻击就算在没有应用闪电网络的情况下已经具有破坏性的后果,但闪电网络的应用可能会提供一个更大的攻击面。
尽管这三个因素中个别分开来看的重要性都一般,但将在收款时可能会将个人密钥泄露到互联网的风险,被恶意关闭渠道的风险以及矿工审查渠道赎回交易的风险加在一起,我们认为,闪电网络整体安全性明显较差,尽管所有这些风险都可以在一定程度上加以管理。
有一种风险是,懒惰或不了解情况的用户在渠道中保留了太多的资金,并且由于上述其中一种故障情况而导致资金丢失或被盗。另一个风险是因为价格波动导致用户需要在支付渠道上放置更多的资金以便交易。
结论
我们认为,闪电网络似乎可以在整体网络交易规模上带来重大改进。从而导致交易速度提高和交易费用大幅下降,而整体又不会影响核心基础安全性。然而,至关重要的是,闪电网络自身在安全性上的不足可能使闪电网络不适合用于大额支付(或者至少用其进行大额支付的行为可能是不负责任的)。投机和投资等行为是需要大额支付的,而这些行为目前看来是加密货币领域的主要的交易推动力,相比之下,零售小额支付的数量相对较小。因此,至少从中期来看,闪电网络可能不像有些人想象那样可以带来什么大变革。虽然拥护者似乎很想尽快采用这种技术,但真正被市场广泛采用可能还需要一段相当长的时间。