logo头像

区块链学习小栈

什么是闪电网络?

1. 引言

比特币网络的拥堵问题由来以久,关于扩容的争论也喋喋不休,在多次共识失败之后,比特大陆团队硬分叉出bch,通过扩大区块容量来实现网络扩容,而bitcoin core团队则通过软分叉方式激活了隔离见证,为后续的闪电网络做准备。

比特币是世界上使用最广泛和最具价值的数字货币,它允许任何人在不受信任的环境下进行价值传递。比特币被称为“数字黄金”,这个称谓是对其在加密货币领域地位的肯定,但比特币也表现出黄金的一些缺点,Peter Thiel表示,比特币“就像金库中永不移动的金条一样”,说的正是比特币高昂的交易费和极低的处理速度,能否成为支付手段是比特币能否在未来大行其道的关键。

闪电网络可以提供扩容性方面的重大改进。因此,在不影响核心协议的基础安全性的情况下,交易速度和交易费率应该大幅改进。然而,至关重要的是,与闪电网络支付相关的安全性可能使闪电网络不适合大额支付(或者至少将其用于大额支付可能是不负责任的)。目前加密货币领域的主要推动力量似乎是投机和投资,而这些资金流动需要这些较大额度的支付,相比之下,小额零售支付的体量还相对较小。正因为如此,至少在中期内,闪电网络可能并没有像有些人想象的那么大的作用。虽然爱好者似乎很快就会采用这种技术,但其广泛应用可能需要相当长的时间。
目前闪电网络测试网已经上线,虽然也爆出不少问题,但毫无疑问这是区块链网络扩容问题上的一大探索。相信随着参与者越来越多,闪电网络也会越来越成熟。

2. 什么是闪电网络?

什么是闪电网络呢?在状态通道一文中我们提到过,闪电网络是状态通道的典型应用。是一个分布式网络,通过智能合约功能以支持跨参与者网络的即时付款,同时利用区块链的特性消除将资金托管给第三方带来的风险。主要作为用于即时、高容量的微支付。

闪电网络的目的是实现安全地进行链下交易,其本质上是使用了哈希时间锁定智能合约来安全地进行零确认交易的一种机制,通过设置巧妙的‘智能合约’,完善链下通道,使得用户可以在闪电网络上进行零确认的交易。

核心的概念主要有两个:RSMC(Recoverable Sequence Maturity Contract)和 HTLC(Hashed Timelock Contract)。RSMC 保障了两个人之间的直接交易可以在链下完成,HTLC 保障了任意两个人之间的转账都可以通过一条“支付”通道来完成。这两个类型的交易组合构成了闪电网络。从而实现任意两个人都可以在链下完成交易。

  • RSMC

Recoverable Sequence Maturity Contract,中文可以翻译为“可撤销的顺序成熟度合同”。其实主要原理很简单,就是类似准备金机制。
我们先假定交易双方之间存在一个“微支付通道”(资金池)。双方都预存一部分资金到“微支付通道”里,之后每次交易,就对交易后的资金分配方案共同进行确认,同时签字作废旧的版本。当需要提现时,将最终交易结果写到区块链网络中,被最终确认。可以看到,只有在提现时候才需要通过区块链。

任何一个版本的方案都需要经过双方的签名认证才合法。任何一方在任何时候都可以提出提现,提现需要提供一个双方都签名过的资金分配方案(意味着肯定是某次交易后的结果)。在一定时间内,如果另外一方提出证明表明这个方案其实之前被作废了(非最新的交易结果),则资金罚没给质疑成功方。这就确保了没人会拿一个旧的交易结果来提现。

另外,即使双方都确认了某次提现,首先提出提现一方的资金到账时间要晚于对方,这就鼓励大家尽量都在链外完成交易。

  • HTLC

微支付通道是通过 Hashed Timelock Contract 来实现的,中文意思是“哈希的带时钟的合约”。这个其实就是限时转账。理解起来其实也很简单,通过智能合约,双方约定转账方先冻结一笔钱,并提供一个哈希值,如果在一定时间内有人能提出一个字符串,使得它哈希后的值跟已知值匹配(实际上意味着转账方授权了接收方来提现),则这笔钱转给接收方。
不太恰当的例子,约定一定时间内,有人知道了某个暗语(可以生成匹配的哈希值),就可以拿到这个指定的资金。

推广一步,甲想转账给丙,丙先发给甲一个哈希值。甲可以先跟乙签订一个合同,如果你在一定时间内能告诉我一个暗语,我就给你多少钱。乙于是跑去跟丙签订一个合同,如果你告诉我那个暗语,我就给你多少钱。丙于是告诉乙暗语,拿到乙的钱,乙又从甲拿到钱。最终达到结果是甲转账给丙。这样甲和丙之间似乎构成了一条完整的虚拟的“支付通道”。

HTLC 的机制可以扩展到多个人,大家可以想象一下,想象出来了就理解了闪电网络。

闪电网络采用了更合理的支付网络架构,代表着效率的提高。与其向所有人广播交易,交易可以更直接地发送给收款人。只有当交易双方不诚实时,才需要进入繁琐的流程——链上共识操作。通过这种方式,可以实现相当于互联网上各方之间直接沟通所能达到的性能和效率,同时保留比特币区块链的一些安全特性。然而,如果各方想在出现问题时可以随时回归到区块链上并收回资金,那么建立这样一种支付系统是非常复杂的,并且还存在着一些重大风险和局限性。

3. 闪电网络是如何工作的?

闪电网络的正常使用包括通过向区块链网络提交正常的资金交易来开通支付通道,然后进行任何数量的闪电交易,更新通道内资金的临时分配而不广播到区块链,最后关闭支付通过广播最终版本的交易来分配通道内的资金。
闪电网络是基于比特币区块链构建的智能合约系统,允许两方直接进行快速,廉价的支付。为了实现这些快速而廉价的交易,采取了以下步骤:

  • 设置一个多重签名钱包,其中包含一定数量的比特币(由双方中的至少一方提供)
  • 钱包地址然后保存到公共比特币区块链中,包括资产负债表(智能合约),证明该比特币存款的多少属于谁
  • 在此支付通道进行一次设置之后,这两方就可以进行无限次的交易,而无需触及存储在区块链中的信息
  • 对于每次交易,双方签署更新的资产负债表以便始终反映存储在多信用点钱包中的比特币的金额属于谁
    更新后的资产负债表不会上传到区块链,而是双方保留其副本。
  • 每当发生争议或支付通道关闭时,双方都可以使用最新的互相签署的资产负债表来支付他们在多信用卡钱包中的份额。

这听起来非常麻烦,但实际上对于最终用户来说,进行闪电支付几乎不需要烧脑的工作,所有上述操作都将在后台自动进行。

闪电网络使用支付渠道有效地允许用户直接与对方进行交易,而不是将业务广播到整个世界(又名公共区块链)。通过彼此跟踪彼此之间的支付,双方可以避免与区块链进行昂贵且耗时的交互。如果Lightning Network上的余额存在某种争议,那么由双方提供的最近的资产负债表将决定多sig钱包中资金的分配方式。

闪电网络不需要对手方合作退出支付通道。双方都可以选择单方面关闭通道。因为所有各方都有多个多签名。在这个网络上有许多用户之间的通道,理论上可以通过这个网络向任何人发送付款。

4. 闪电网络的主要特点

理论上来说,闪电网络应该允许网络中的所有参与者通过在节点之间找到一条路径,由此能够在各个方向上进行近乎即时且廉价的交易。因此,只要没有出现问题,就可以避免向比特币网络进行广播,从而形成可扩容网络。该体系架构甚至允许小微交易并增强了付款隐私性。

由于相对时间锁定功能,通道可以无限期地保持开放,并且不存在交易对手方风险; 如果有人试图通过恶意地关闭通道来窃取资金,交易的其他参与方将有一个很长的时间窗口来发起他们自己的赎回交易并收回资金。

  • 快速支付:在既定通道内的支付几乎可以像数据通过互联网在两个节点之间传输一样快。
  • 无需可信第三方:通道中的两个参与者直接使用常规的比特币交易进行互相支付(其中只有一个是广播的),因此任何第三方都不能控制其资金。
  • 为区块链减负:只有开启通道,关闭通道和争议性交易需要提交到区块链上进行,允许闪电网络内的所有其他交易保持未提交状态。这这使得闪电网络用户可以通过比特币进行频繁支付,而不会使必须处理区块链上每笔交易的完整节点承担过多的负担。
  • 支付通道可以无限期地保持开放:只要频道中的双方继续彼此合作,频道可以无限期地保持开放 - 没有强制超时期限。根据双方的意愿,可以长期保持通道开启,这可以进一步减少区块链上的负载,同时也可以稀释最终的费用。
  • 双方约定可快速关闭通道:如果双方同意,可以立即关闭支付通道(双方可能希望等待一个或多个确认以确保支付通道在正确的状态下关闭)。双方未达成协定(如一方消失)也可以关闭通道,但需要耗费更长的时间。
  • 洋葱式路由:支付路由信息可以以嵌套的方式加密,以便中间节点只知道他们收到了可路由支付的人和下次发送给谁,防止中间节点知道发起者或目的地。
    具有多重签名功能:每个参与方都可以要求通过多个密钥对他们的付款进行签名(https://en.bitcoin.it/wiki/Lightning_Network#cite_note-poon_multisig-2)。
  • 跨链:如果另一条区块链支持用于哈希锁的相同哈希函数,以及具备创建时间锁的能力,支付通道就可以跨多个区块链(包括侧链)进行路由。利用异构区块链共识规则,交叉链式原子互换可以立即发生在链外。只要链可以支持相同的加密散列函数,就可以跨区块链进行交易,而不需要信任第三方托管商。
  • 小额支付是可能的:由于费用与支付金额成比例,您可以支付一分钱; 会计甚至以千分之一的精确度完成。
  • 付款即时结算:资金在通过网络到达目的地和返回所需的时间内发送,通常为几分之一秒。
  • 改进隐私:并非每个交易都存储在公共区块链上,只有当支付通道最终关闭并且余额支付给双方
  • 5. 是否每个交易都需要开设新的支付通道?

不是的,闪电网络(因此它的名字)被构建为一个网络。尽管Alice可能还没有与Dave建立开放的支付渠道,但Alice通过Bob间接与Dave连接,或者甚至在两者之间使用多个步骤。借助闪电网络,用户可以与任何通过多跳连接到他们的支付通道网络的人进行交易。从理论上讲,每个人都可以通过网络与其他人连接。人们也会通过(小)费用来激励这些连接节点,每次交易使用其中一个连接时都会支付这些费用。闪电网络的测试网实施的早期结果证实,确实可以创建足够分散的网络。

闪电网络的架构仍然是值得信赖的(因为它基于智能合约),并且始终确保资金将通过中介机构到达目的地,或者在没有间接路径到达目的地的情况下退款。

Bob和Carol在网络上充当“节点”。闪电网络上的节点在某种程度上与比特币网络上的矿工类似。

6. 闪电网络下的安全风险

一个巨大的未知因素是人们和企业如何实际使用这个网络,评论员们的看法似乎也不尽相同。有些人认为闪电网络最终会在小额支付场景中无处不在,其中的复杂性将以自动化方式处理。其他人对闪电网络持怀疑态度,通常的设想是在使用该系统时需要更多以手动方式来构建闪电网络的各个组件,其用户体验还会因为通道意外关闭和闪电网络宕机的困扰而变得糟糕。实际上,真实的情况可能位于这两种愿景之间,随着时间的推移,闪电网络可能会更加趋近于雄心勃勃地那种愿景。这种分歧似乎可以归结为闪电网络的怀疑者认为它是一个复杂,不完整和不切实际的支付系统,其完全依赖于通道架构系统。支持者则将闪电网络视为比特币区块链上的第二层可扩展构件,最终将由钱包,支付协议系统和通道服务公司进行补充,从而带来简单而无缝的用户体验。最后,钱包可以互相通信,在无需用户知情或者操心的情况下,自动动态地决定最佳支付方式——链上支付或是经由闪电网络上的最实际的方式。

  • 收款时要求必须在线:如上所述,收款人在收款之前需要签名回收交易,以便付款人知道他们可以在发生恶意通道关闭或拒绝签名的情况下回收资金。因此,要收款就需要一个热钱包,这意味着如果发生安全事故,私钥可能会暴露。
  • 监控通道的需求:闪电网络参与者或服务商可能需要主动监控支付通道。这可能给用户或服务商带来负担,并可能降低通道内资金相对于存储在链上的比特币的安全性。可能会因为未能适当监控通道或链上网络的拥堵,导致错过回收交易截止日期。
  • 矿工可以审查通道关闭的交易:51%的算力可能有能力通过审查通道关闭的交易来窃取闪电网络用户的资金,在这种情况下矿工是对立方。即使没有闪电网络,此类攻击的潜在后果已经相当具有破坏性,但闪电网络可能会为恶意矿工提供更大的攻击面。
    收款时私钥暴露到到网络上的可能性,恶意的关闭通道的风险以及矿工审查通道回收交易的风险,虽然这三个因素中单独的每一个似乎都不是那么重要,但加在一起,我们认为这明显导致了更低的安全性 - 虽然所有这些风险都可以在一定程度上加以管理。

有一种风险是,懒惰或信息贫乏的用户在通道中留存了过量资金,并且由于其中一种事故情况而导致资金丢失或被盗。同时还存在的风险是由于价格波动,用户在支付通道中会留存比意图中更多的资金。

  • 匹配失败:如果其中一个对等方没有响应,用户可能需要等待数小时才能关闭付款通道并通过替代路线重新发送资金
  • 没有离线付款:用户无法支付不在线的人
  • 对于大额付款并不理想:尽管可能存在通过各种支付渠道的路线,但同行多个钱包中的资金可能不足以转移大额资金
  • 集中化:闪电网络可能会鼓励支付中心的集中化(类似于矿工集中),这也是为什么有人说闪电网络实际上会出现类似银行的超级节点的原因。

來源:网络