闪电网络(Lighting Network)是比特币的二层扩容方案,由 Joseph Poon 和 Thaddeus Dryja 在2015年提出,并在2016年撰写了其白皮书。
起源:
闪电网络的起源可以追溯到比特币白皮书里的微支付通道。微支付通道是一种单向的闪电网络,因此支持者们认为闪电网络起源于中本聪(Satoshi Nakamoto)的设计。
随着比特币的发展,比特币网络的两大弊病逐渐突显:确认速度慢和矿工费用高。
而闪电网络的设计目的就是为了解决上述两个问题。在闪电网络白皮书发布两年后,2018年,闪电网络实验室(Lightning Labs)成立,正式开始将闪电网络推向落地。闪电网路实验室主要由 Blockstream 公司主导,并获得了众多知名机构和投资人的投资,其中包括推特的创始人,Jack Dorsey.
原理:
比特币的白皮书阐述了微支付通道的实现,可以让双方之间开启一个单向的支付通道。其主要的流程如下:
创建2-2多签账户,并生成存款交易A;
使用 locktime 参数,生成 Refund 交易B;
将交易A广播至网络(注意顺序,先要拿到 Refund 交易,才能广播A,为什么?可以思考下);
下面就是不断地更新 Refund 交易C、D、E...,新的 Refund 交易的 locktime 为0,因此比 Refund 交易B拥有更高的优先权;
将 Refund 交易 N 广播至网络,通道关闭,兑现比特币。
原生的比特币网络不能实现双向的微支付通道,其主要的原因是交易延展性。交易延展性是指在父交易被签名之前,可以先签名子交易(花费尚未完成签名的父交易的交易)的能力。因为交易在完成签名前其交易哈希(txHash)尚未确定,而子交易签名时需要用到父交易的交易哈希,因此这是一个矛盾的需求,在原生的比特币网络下无法实现。
隔离见证(SegWit)的激活解决了这一问题。
在隔离见证环境下,交易哈希的计算将不包括签名部分。因此在父交易完成签名之前,它的交易哈希已经可以确定,进而实现了先签名子交易、后签名父交易的需求。
隔离见证的激活给闪电网络带来了可能。具体来说,闪电网络是在隔离见证环境下,利用了 RSMC (revocable sequence maturity contract) (利用 sequence 参数)来实现双向的微支付通道。
多个微支付通道之间可以互相打通,形成网络。例如 AB 之间开通了闪电网络通道,BC 之间也开通了闪电网络通道,当 A 要给 C 转账时,可以利用 B ,形成了 A -> B -> C 之间的通道。从全局来看这就形成了点对点之间的快速转账的通道网络,因此称为闪电网络。
现状:
闪电网络主网 beta 版于2018年3月15日上线。上线两年多以来,取得了一定的发展,但是总体数据并不理想。
截止2020年11月7日数据,比特币闪电网络一共运行着14,381个节点(其中7,411个节点开通了活跃的通道)。一共开通了35,043个通道,并锁定了1,030枚BTC。
比特币闪电网络锁定 BTC 数量
BTC 在闪电网络中的总质押(锁定)量相当于当前总流通量的0.0056%。跟闪电网路获得的关注和期望相比,这一数据显得尴尬。可以看出闪电网络当前在实际使用中并没有取得成功。
缺陷:
闪电网络在实际使用场景中的遇冷,跟其本身的缺陷密不可分。闪电网络的缺陷可分为设计缺陷和安全漏洞两大类。
使用闪电网络的前提是开通道和质押。因此它不符合偶发的需求。例如路过一家咖啡店,想用比特币买一杯咖啡。在你当前和该咖啡店之间没有通道的情况下(也没有其他路由),闪电网络就非常不适用。因为如果使用闪电网络,你即将面临打开通道、关闭通道两次操作,而每次通道操作其性质是向比特币主网络发送交易,这些都是需要花费手续费的。而不使用闪电网络的情况下,你只需要花费一次手续费。
另外一点的设计缺陷,是我们之前谈到的 A -> B -> C 的路由。在这些路由中,最小的一笔通道质押将成为整个路由的瓶颈。例如 AB 之间通道的质押有 10BTC,而 BC 通道之间的质押只有 1BTC。那么通过路由 A 向 C 之间最多只能转移 1BTC,而不是 10BTC。
这两点设计缺陷,已经让闪电网络在使用场景上大大受限。另外,闪电网络在实际的运行中,频曝安全漏洞。
在此之前,研究人员Jona Harris和Aviv Zohar发表了一篇名为《洪水与掠夺:闪电网络的系统性攻击》的论文。该论文阐述了通过同时关闭大量闪电网络通道,进而造成比特币网络拥堵,以至无法关闭通道,来实现的一种攻击方式。
此外,在2020年6月2日,Antoine Riard和Gleb Naumenko发表了另一篇有关闪电网络漏洞的论文,称为“时间扩散攻击”。Naumenko和Riard披露了有关时间扩散攻击的一个令人恐惧的事实,报告称“目前有可能通过使节点仅遮盖2小时就可以窃取所有的通道资金”。
在此问题发生后不久,Antoine Riard又讨论了另一种易受攻击的漏洞,称为“PIN攻击”(Pin 是通过发送 icmp 包进行网络测速的一个工具)。Riard指出,“当前部署的闪电网络服务器在[某些PIN攻击]场景中并不安全。”
除此以外,我们应该看到二层解决方案增加了系统的复杂性,从而导致了更多的安全风险。例如,我们无法从协议层面让闪电网络可以有效地抵御 DDOS 攻击。
结语:
最近比特币网络又持续拥堵,使得比特币对扩容的需求变得更加迫切。然而本被寄予厚望的闪电网络并未能在此时发挥作用。
早在 BCH 分叉之前,比特币社区对隔离见证和闪电网络就存在大量质疑。期间分成了大区块扩容方案和闪电网络扩容方案两派。如今从数据看来,在扩容方面,除隔离见证给比特币网络带来了60%左右的扩容外,由 Blockstream 主导的闪电网络方案几乎未起到任何作用。
基于以上种种缺陷,闪电网络并不适用于偶发性需求的交易。而偶发性需求一直都是主要需求,想要全面扩容比特币,我们唯有期待更加创新的方案。
—— 本文首发于微信公众号《谈谈区块链》