不能解决小额支付,闪电网络还能活多久?

Nov 3, 2022 at 19:20:30

2018年存档文章

闪电网络自推出以来饱受质疑。为了解决比特币小额支付的问题,闪电网络引入了链下交易,并且协议运行得十分完美。截至2018年,比特币全网已经拥有了7408个闪电网络节点,4万多个channel,闪电网络总容量也达到了1000BTC,折合4百万美元,并且这些数字还在保持高速增长。看起来闪电网络回击了外界的质疑,一切都运行得十分良好。

但是事实真是这样的吗?我们要从闪电网络的原理说起。

闪电网络的原理

闪电网络通道是什么,两个节点之间如何转账

闪电网络通过一个预设的智能合约来处理交易,通过智能合约,闪电网络将大量的交易转移到链下进行,从而规避了高昂的比特币手续费。这里面有一个概念是通道(Channel),闪电网络要求发生转账的双方事先开启一个通道,存入一定数量的比特币,之后发生的转账都从通道里面扣除相应数量的比特币。直到这个通道被关闭,才会产生一次宣告,将最后结算出来的余额广播到链上。

闪电网络所有节点组成了一张网

实现了两个节点之间的通道和转账,闪电网络进一步将全网的通道连接起来,形成了一张网。

闪电网络的网状交易网络

如果A要向D发起一次1BTC的转账,A和D之间没有直接的通道,只能通过A-C-D或者A-E-D两条路径来完成转账。闪电网络会自动选择一个手续费较低的通道来完成交易,我们假设这里选择了A-C-D。A->D的1BTC转账,会被拆分成A->C的1BTC转账,和C->D的1BTC转账,这样就化简为了上面说的两点之间互相转账的场景。转账结束之后,A-C通道的余额会从10-0变成9-1,C-D通道的余额会从5-2变成4-3。

通过这种路由的方式,闪电网络将各个节点连成了一张网。如果A->D转账1BTC,D->A再转账1BTC,实际上A-C-D的通道余额又变了回去,就像什么都没有发生。 而如果使用传统的BTC转账,则会发生两次手续费。闪电网络的优势得以体现。

真实世界里的闪电网络表现糟糕

目前看来,闪电网络在所有节点都是对等的情况下完成得相当好,既加速了转账又减少了手续费。但是如果真实世界里的节点不都是对等的呢?

上面的理论分析并没有考虑各个节点在真实世界所处的角色,那现在我们假设A是一个消费者普通用户,D是一个杂货店。A在真实世界里面几乎只会发生消费,而不会发生收款,D则相反。

A为了使用闪电网络,必须至少建立一个通道,往里面存入相应的BTC,而这部分钱就被锁死在了通道里面,A每次消费就从通道里面扣除相应的BTC。由于A只会付钱不会收钱,所以通道的余额总是减少的,当用完这部分余额A只能再建立一个通道继续重复下去。想象一下,你每个月总消费是五千块,如果你不想每个月都去开通道的话,你需要一次性存入五千块以上锁死在通道里面。这真的很蠢。

而作为D则更尴尬了。D想收钱,D和C开通一个通道,D存入了10BTC的余额,那么C-D通道的余额是多少呢?是0-10。也就是说,C如果没有主动去存入通道余额,C是没法向D转账的,换个角度看就是D永远也没办法收款!如果你是D这个杂货店老板,你想接入闪电网络,你甚至需要去求别的节点往你的通道里面存点钱!简直智障。

闪电网络在理论上所有节点都是对等的情况下表现优异,但是真实世界是有的节点只会付钱,有的节点又只会收钱,闪电网络不能满足这部分节点的需求。对于消费者,或者对于杂货店老板,闪电网络基本处于不可用的状态。那么到底还有谁能用呢?

或许机构间结算才是闪电网络的出路

比特币世界里有不少的机构,甚至说大部分BTC都掌握在机构的手里。交易所、矿池、在线钱包等占据了绝大部分的比特币。这些机构每时每刻都在产生转账。

用户经常从交易所里面提取比特币到在线钱包,也经常从在线钱包转账到交易所。用户会用在线钱包支付BTC给商家,商家也会将BTC转账到交易所换成法币。这些机构之间的转账才是比特币世界里暗潮汹涌的大部分。

链上交易成本太高,机构之间不可能每次转账都去做一次链上交易,机构间可能会签署某些协议,通过双方的约定来实现链下交易,每天或者每个月再做一次链上结算。

而这个约定,正好可以用闪电网络。闪电网络提供了一个安全可靠的智能合约,比起纸面协议,闪电网络拥有物理上的强制约束力,更加可靠和高效。

闪电网络如果被认为足够的健壮,或许机构会采用闪电网络来做结算,或许这才是闪电网络最终的归宿。