关键要点
- 闪电网络于2016年首次提出,是建立在比特币区块链之上的Layer-2支付协议,利用比特币原生智能合约功能实现近乎即时的支付。
- 该网络由多个双向支付通道组成,这些通道在主线区块链之外并行处理交易。
- 闪电网络旨在解决比特币的扩容难题,如过长的区块时间、有限的吞吐量以及高昂的交易费用。
用比特币买咖啡?比特币的可扩展性问题
中本聪在2008年发布的比特币白皮书构想了一套“点对点电子现金系统”——一种去中心化且无需信任的数字支付体系。但比特币要完全实现这一愿景,还需克服一系列缺陷与限制。
假设有人在早高峰时段想用比特币购买一杯咖啡,却要排在冗长的队伍中等待。这个实际场景立刻暴露出两个问题:
第一,仅支付并确认一笔交易可能耗时10分钟至1小时不等(取决于咖啡店要求的确认次数)。
第二,交易手续费可能接近甚至超过咖啡本身的价钱。比特币无法保证此类交易能快速又廉价地完成,这种不确定性使其作为日常支付方式缺乏吸引力。
比特币作为支付系统的局限包括:
相对较长的区块生成时间
一笔交易要被打包进区块链上的区块,必须通过挖矿过程得到验证。矿工验证是比特币去中心化、安全特性的基石,但这也意味着交易并非即时完成,需要较长的确认时间。事实上,截至目前,一个新区块大约平均每10分钟才被挖出。
有限的吞吐量
作为对比,像Visa这样的支付巨头在其网络上可支持约24,000笔交易每秒(tps),而比特币区块链最多只能处理约7 tps(截至撰文时)。作为一个支付网络,比特币的吞吐量太低,难以承载大规模交易,严重阻碍了广泛采用。
小额支付收取过高费用
比特币交易费率在2021年4月曾一度超过60美元。或许对于部分用户来说这不算大数目,但如果商家决定接受比特币支付,尤其是针对小额消费,交易成本必须大幅降低才算得上可持续。
这正是闪电网络应运而生的原因:它使比特币更像最初构想的“数字现金”。通过让小额支付(比如购买咖啡)绕过主网,闪电网络可以在自身网络中近乎即时地处理海量交易,同时仍然借助比特币网络的去中心化和安全性。
什么是比特币闪电网络?
简单来说,闪电网络是建立在比特币区块链之上的Layer-2支付协议,通过支付通道让参与者之间实现近乎即时的支付。
闪电网络是作为比特币的扩容方案而设计的:为缓解比特币网络拥堵,它利用支付通道在链下处理比特币微支付。这些支付通道共同构成了整个二层网络。
支付通道是一条与主链并行运行的链下网络。其思路是,在希望进行交易的双方之间建立一条通道,该通道内的交易基本绕开了主区块链。这样便可在不需要主网(例如比特币网络)全球共识和确认的情况下进行多笔交易。结果是,交易几乎即时完成,且费用极低。
支付通道内的用户可以进行任意笔交易,而且这些通道可以根据需要持续运行。支付通道只有在开启和关闭时才会触及主网。当通道关闭时,参与者最新的“状态”——一份链下交易,相当于双方认可通道内信息正确的“收尾签名”——会被合并为一笔交易,然后广播至主网。
闪电网络简史
2016年:Joseph Poon 和 Thaddeus Dryja 首次提出闪电网络的概念,并创立了 Lightning Labs 来开发该网络。
2017年:隔离见证(SegWit)作为比特币的一次协议升级上线,被视为全面催生闪电网络 Layer-2 方案的关键里程碑。同年,莱特币上完成了第一笔闪电支付,展示了其超越比特币网络的潜力。
2018年:经过测试阶段后,闪电网络最终在比特币主网上线。
闪电网络如何运作?
闪电网络依赖节点网络运行,截至目前大约有16,000个活跃的闪电节点。闪电网络与比特币的主要区别在于,它不需要全球共识,节点之间可以私下进行交易。为在网络中执行转账和支付,闪电节点使用支付通道。
第一步:开设闪电通道
假设Alice想向Bob支付比特币。要建立一条支付通道,Alice或Bob(或两者)需要将比特币存入一个2-of-2多重签名(多签)钱包。这一操作会生成一笔链上“资金交易”并记录在主网中;资金被锁定在双方共同拥有的多签地址中。通道开启时的“状态”会显示双方注资的金额。初始的开设交易得到确认后,他们便可立即进行交易。
第二步:在闪电通道内交易
通道里有资金后,Alice就可以向Bob发送付款。闪电网络采用双向支付通道来促进转账,这意味着Bob也可以在同一通道内向Alice发送资金(如果他愿意的话)。
Alice和Bob之间的所有交易均由智能合约执行,并在链下进行,费用低廉,前提是双方对每笔交易都进行签名(否则交易可能无法通过)。系统设计为每一方持有一把私钥,通道内资金的重新分配只有经双方确认后才能完成。每完成一笔交易,通道的余额状态也在链下更新。
沿用上述例子,Alice和Bob在开设通道时各存入1枚比特币。链下发生了三笔交易:1) Alice向Bob转账0.25 BTC;2) Alice再次向Bob转账0.25 BTC;3) Bob向Alice转回1 BTC。当通道关闭时,关闭交易会将这些先前的交易计入,并更新双方的最终余额:Alice获得1.5 BTC,Bob获得0.5 BTC。
第三步:关闭闪电通道
与初始创建通道的资金交易一样,关闭闪电通道也是一笔链上交易。一方可以发起关闭,但双方必须达成一致,之后资金会被发送回各自的钱包。通道成功关闭后,代表双方余额的一笔单一交易会被广播到链上。
路由与多跳交易
闪电网络的多签和智能合约设计确保网络独立运行且不存在对手方风险,这对多跳交易尤为有用。比如,Alice与Bob开了一个通道,Bob恰巧与Carol有通道,Carol又和Dave有通道。如果Alice想向Dave发送资金,但他们之间没有直接相连,该怎么办?此时,支付将通过Bob和Carol进行路由,以他们作为“中继跳”。
只要双方已经各自建立好支付通道,他们可以让网络决定支付如何路由至收款人。闪电网络结合使用源路由与洋葱路由协议来实现这一点。源路由让节点可以完全控制自己的支付路径;洋葱路由允许节点选择最优路径,确保跳数最短并降低费用,且每一跳都被加密。
哈希时间锁合约
这一切都是借助哈希时间锁合约(HTLC)安全完成的。简单说,HTLC作为一种智能合约,使收款人能在指定时间段(或区块高度)内满足特定条件后收到资金。以Alice为例,我们来看一笔向Dave的支付是怎样进行的(见下文图示)。在这个场景中,Alice想发送1 BTC给Dave,并设有10个区块的退款超时。Alice的节点决定最优路径并计算出费用(例如,发送1 BTC的费用为0.002 BTC)。
多跳交易示例
1. Dave创建一个只有他自己知道的“秘密”(R),并对其执行哈希函数生成哈希值(H),然后将H发送给Alice。
2. Alice设立一个HTLC,该合约规定预先定义的条件,满足后释放资金。此处Alice承诺,如果Bob能在接下来的10个区块内成功提供秘密(R),就向Bob支付1.002 BTC;否则,资金退回给Alice。
3. Bob并不知道可以认领Alice锁定的1.002 BTC所需的秘密(R),于是他设立一个HTLC,承诺向路径上某个知道如何解出哈希‘H’的人(本例中是Carol)支付1.001 BTC。该HTLC中,如果Carol在接下来的9个区块内提供(R),则得到1.001 BTC;否则,资金退回给Bob。
4. 同理,Carol与Dave建立一个HTLC,约定如果Dave在接下来的8个区块内提供(R),则向其支付1 BTC;否则,资金退回给Carol。
5. 此时,Dave知道能够解出哈希‘H’的秘密‘R’,于是他解锁HTLC,从Carol那里收到1 BTC支付。Dave使用秘密接收资金的同时,秘密也随之对Carol可见。
6. Carol获得秘密后,解锁Bob发送给她的1.001 BTC,并将秘密展示给Bob。
7. 最后,Bob运用该秘密从与Alice的通道中获得1.002 BTC。
为什么哈希时间锁合约至关重要
HTLC是运行闪电网络的关键,因为它:1) 通过确保交易中特定条件的满足,在网络中实现无需信任的系统;2) 安全地促成“多跳”交易。对Alice而言,这意味着她不必信任作为中间人的Bob和Carol——协议代她完成工作,确保Dave安全收到代币;否则,代币会自动退回给她。
闪电网络的现状
闪电网络至今已展现出巨大潜力,但它并非完美无缺。
以下是其主要问题与不足:
支付路由问题可能受到节点可靠性和可用性的影响(例如,路由节点与其他优质路由节点之间缺乏足够的开放通道,导致路由不可靠)。此外,还存在无法归因的支付路由失败情况——参与方可能使用了有问题的节点却毫无察觉。
路径流动性不足,即通道内缺乏资金,会导致该通道上的支付失败,大额交易尤其容易遇到这种情况。
严重漏洞和其他安全威胁确实存在,如僵尸攻击或骚扰攻击(griefing attack),恶意群体堵塞网络并使某些节点瘫痪,从而锁定与其相连的所有通道中的资金。此外,还可能发生双花攻击(网络中配置不当的瞭望塔可能让恶意行为者多次花费同一笔资金)。
尽管闪电网络存在缺陷,但值得注意的是,过去几年的开发与实施工作一直在推进。2023年初,MicroStrategy宣布计划开发闪电网络解决方案。更近一些,数字支付公司Strike在菲律宾推出了基于闪电网络的汇款服务。
闪电网络仍在不断成长,生态系统中已有数百家公司、项目和应用,分配了数百万美元的资本。由于比特币领域的大多数新进展都通过闪电网络实现,未来几年继续看到它的进步以及业界不断推动这一技术向前发展并不令人意外。

