闪电网络提出了一种BTC链下的快速支付技术方案。它描述的场景看起来很吸引人,快速的小额支付,完美地使用在日常小额交易。闪电网络如果能普及,将会是一个加密货币行业的巨大进步。
但是,为什么经过这么久推广,仍然无法大规模使用呢?
是因为闪电网络有什么缺陷吗?有推广瓶颈吗?到底闪电网络有什么问题,是否值得我们关注或投身其中呢?这里逐一分析下。
闪电网络是如何运作的
一般介绍文章把闪电网络解释为Lay 2协议,直接切入闪电网络的技术手段,大众无法理解其中的含义。 这里,我们把闪电网络的技术手段隔离开,来讨论闪电网络的运作问题。
闪电网络的最基本用法
简单的讲,闪电网络是两个比特币持有方,产生一个新的地址,这个新地址由双方地址所决定。然后双方向这个地址转账比特币。其后,双方协商,用一种技术手段【后续讲解】,使得任何一方可以从这个地址转出特定金额的比特币。在转出之前,双方发送一些锁定数据并记账,形成交易支付,可以多次往来支付。直到交易记账结束,双方结算,新地址的比特币按结算数量被转给双方。
打入BTC到新地址的过程在闪电网络被称作:建立通道。
把BTC从新地址转走的过程称之为:关闭通道。
通道从建立到关闭之间,双方通过技术手段发送数据用于交易记账,保证无法双方无法作恶的过程,就是闪电网络支付的过程。这个技术手段是闪电网络的核心,后续讲解。
如果我们先不看中间的技术手段是否完善可靠,一个闪电网络的支付,就是在双方之间交换些数据。是个交换过程中,无需第三方参与,也不需要上链。速度可以非常快。这就是闪电网络的由来。
为了对闪电网络有一个运作全貌的理解,我们把闪电网络保证双方不作恶交换数据的技术手段放在其后讲解。直接看运作流程。
闪电网络最基本用法的要素
首先,双方都必须有合适的私钥公钥地址生成方法。对于非技术人群,这是BTC高级钱包的基本功能。
其次,双方必须有闪电网络节点软件。用于协商建立通道、关闭通道、双方交换支付数据等功能。目前,市面有一些节点软件,但是基本都要求使用人手动建立。大部分还是Linux平台。这是问题1。跟早期的BTC节点一样,大部分的使用人需要在LINUX下载或编译运行BTC节点才能拥有比特币。这基本上只有熟悉计算机系统的人才可以做。
再有,建立通道后,双方支付的限额是这个通道【就是那个新地址上】的BTC容量决定的,这个通道的容量,是问题2。如果超过这个限额的支付,就需要再开新通道,这又是一个链上交易。问题2后续还有讨论。
最后,建立通道和关闭通道,本质上是2个链上交易。这个速度是受制于BTC链上确认时间的。这是问题3。质疑者说,让全世界的人都开个通道,闪电网络就需要几十年。当然,这个问题不算大,最初没必要全球全覆盖。互联网普及到现在,还是有很多人还没电脑。再次,BTC链上演进有可能部分提高TPS。
多人使用的完整生态
两个人使用起来后,闪电网络的多人使用场景和生态,是最被质疑最多的限制。闪电网络多人使用的解决方案是,借用其他人桥接。如果X和Y没有通道,要么建立直连通道,要么经过中间人。让每个关联方建立通道显然是不现实的,因为建立通道本质就是链上交易,还不如直接链上付款。
那么经第三方的闪电网络如何实现呢?闪电网络的节点相互建立通道,形成一个网状结构。如果两个节点间能够找到接通的通道,这个支付就有可能成功。那么这里就有问题4,网络的有效性问题。如果没有做市商,通路往往是不成功的,但是如果有做市商,很多人质疑会破坏闪电网络的匿名性和去中心化属性。
多人使用还带来另外一个问题。问题5:通道容量是有限的,即使能找到路径,但是通道容量有限,时常使得稍大额无法支付。如果建立了充分的丰富的闪电网络节点和通道,很多人通过估算,认为数学上不太可能有效的支持完全的网络支付。这是问题6。
安全问题
在闪电网络使用的过程中,交换支付收据时,要求双方在线,也要签名数据。这使得私钥会在线使用。如果探测到地址上有大额比特币,那么私钥就会变成明确攻击目标。这是问题7,蜜罐效应。
隐私性问题
这个是社区讨论比较多的问题,集中在解决问题4带来的隐私暴露问题。这是问题8。
我们可以看到,在没有深入闪电网络内部技术实现【如何通过签名隐秘数据以及时间锁来保证双方不能链下作恶】之前,我们就有8个问题需要面对。而大部分的闪电网络开发还集中在闪电网络的内部技术实现【节点,协议,钱包】。目前使用闪电网络的人群都必须创建一个节点,虽然法国公司开始做手机节点和钱包。但是也是完全照搬PC上标准节点的方法。等节点和通道数量膨胀后,手机也不是一个很好的载体。