• app_navCreated with Sketch.app_navCreated with Sketch.

    App

    扫码下载APP

  • tougao_navCreated with Sketch.tougao_navCreated with Sketch.

    投稿

  • Sign in_navCreated with Sketch.Sign in_navCreated with Sketch.

    登录

  • register_navCreated with Sketch.register_navCreated with Sketch.

    注册

比特币扩容的未来:闪电网络介绍以及其他替代方案(BCH与LBTC)
鸵鸟区块链 05-18 23:539253

基于比特币POW的链上扩容会可能需要对去中心化程度作出妥协,因此人们开始考虑通过链下扩容的方式改变比特币交易处理能力低下、手续费畸高的问题。闪电网络通过构建基于密码学算法的支付通道,支付通道仅在建立、关闭时消耗链上资源,因而使交易双方可以在通道内进行任意次数的无手续费交易。


本文介绍了构建闪电网络的两大基础交易模式-RSMC和HTLC,并说明了为什么闪电网络作为链下扩展方式,同样可以做到像链上交易那样无需信任。


然而,闪电网络所需的基础设施建设尚有欠缺,且维护支付通道成本较高,使得闪电网络在发展过程中极有可能产生大规模专业化金融机构,正如今天的银行。而这正是比特币所对抗并试图取而代之的中心化机构。因此,闪电网络在比特币支持者中也引发了激烈的争论。


闪电比特币(LBTC)是一个比特币的分叉版本,并试图另寻其道来解决比特币的扩展问题。LBTC在保留了比特币UTXO的基础上,结合了DPOS共识机制,以这种创新性的方式完成了扩展性的需要,尽管相对于POW会稍微牺牲一些去中心化的程度。


LBTC认为在比特币POW的基础上扩展区块容量,是边际收益有限而潜在危害巨大的(例如BCH);而链下扩容又可能带领比特币生态重回中心化中介机构统治的传统模式(例如闪电网络)。在比特币的扩容之路上,以闪电网络为代表的链下扩容,和以LBTC为代表的链上扩容,可能是解决比特币扩容问题最有潜力的两个试验。


比特币扩容的未来:闪电网络介绍以及其他替代方案(BCH与LBTC)


1.比特币的扩容问题


1.1比特币交易的TPS与手续费引发的问题

比特币块大小2M,大约每10分钟出一个块。基于此,我们可以计算比特币的理论TPS:

TPS(BTC)

= Block Size / TX Size / (10 * 60)

= 2 * 1024 * 1024 / 500 / (10 * 60)

≈ 7

可见,比特币平均一秒钟内可以处理交易7笔左右的交易。并且,随着使用比特币的人数增多,比特币交易激增,容易造成比特币交易拥堵。拥堵时,交易形成队列,等待处理上链,对于使用者造成一定的困扰。

此外,交易拥堵还会造成另一个严重后果,即交易手续费激增。比特币的交易是由矿工打包处理的,矿工通过挖矿奖励、交易手续费获得报酬,因此矿工有提高交易手续费的动机。由于用户希望更低廉的手续费、而矿工希望更高额的手续费,因此市场会形成均衡,达成大家可以接受的手续费水平。但是,如果交易发生拥堵,市场的供需平衡将会被打破,天平倾斜,矿工可以要求更高的手续费(理论上矿工有权利选择优先处理和打包的交易)。


比特币扩容的未来:闪电网络介绍以及其他替代方案(BCH与LBTC)


历史数据(上图:纵轴为以美元计价的交易手续费)显示,比特币单笔交易手续费曾经在2017年底达到40美元+之巅峰,即使在前后两个月时间内也稳定在15-20美元的平台上。在非活跃时期,交易手续费一般可以维持在0.3-1.5美元之间。


虽然淡季的手续费似乎是可接受的,但是人们不可能满足于现状。毕竟,比特币是被寄希望于走向大规模应用的加密货币,应当具备应对大规模交易的能力。也正因为如此,比特币的扩容问题(Scalability Problem)成为最为批评者所诟病的缺陷。


1.2 比特币的链上扩容

我们已经在前文提到,比特币的关注者已经意识到比特币扩容问题的严重性和急迫性。那么如何扩容?这是引发争议的核心环节。


第一种扩容思路称为链上(On-Chain)扩容。所谓链上扩容,顾名思义就是通过修改共识协议的参数,实现更高的TPS数据。对于比特币而言,提高出块的时间间隔、提高块容量、减少交易的容量占用都是理论可行的思路。然而,比特币作为当今市值最庞大的加密货币体系,对它的修改可谓牵一发而动全身,不得不万份谨慎。事实上,为了防止因全节点门槛过高而丧失去中心化程度,比特币几乎不可能缩短出块时间间隔。因此,可能性被压缩到了块容量和交易容量占用上。


在交易容量占用方面,比特币的框架已经决定了交易的格式和内容,能够减少的余地有限。隔离见证(SegWit)升级后,交易的结构得到了一定的优化,但是这方面带来的变化一定是很有限的。


我们不得不把目光转向块大小方面。由于比特币初始协议约定了1M的块容量,而在互联网基础设施高速发展的当下,这似乎不会构成任何压力。有部分支持者提出可以放开容量限制、提高容量上限。事实上,比特币的一个分叉协议-比特币现金(BCH)正是这么做的:BCH直接把块容量提高到32M,并扬言未来还可以继续大幅提高。比特币也在隔离见证升级后,得到了将近2M的块容量。


但是,这种扩容的思路是值得商榷的:理由是扩容的收益很有限,然而对去中心化造成的损害很大。

我们可以做一个简单的比较:

·比特币现金(BCH)把块大小提升到32M,可以实现相比于比特币(BTC)16倍的TPS提升;

·闪电比特币(LBTC)通过基于UTXO的DPOS,可以实现相比于比特币(BTC)约200倍的TPS提升。

然而,BCH提高块体积,会大大增加全节点的门槛,以及区块在P2P网络中流转的效率与速度。这一点是比特币原教旨主义这非常担忧的问题。也正因此,比特币(BTC)在提高块容量方面极为谨慎,始终不愿意放开限制。


1.3另一个思路

如果链上扩容的收益很有限而潜在损害很大,那么是否可以把目光转向非链上的扩容思路?


答案是可以的。非链上的扩容,可以通过链下(Off-Chain)或跨链(Cross-Chain)的思路来解决。


先说跨链。跨链指通过将比特币网络对接后绑定到一个TPS更高的区块链上,来实现实质上更高的TPS。但是这么做需要一个公认可行的跨链技术方案,以及子链(Child Chain)生态体系的方案。这种做法显得比较尴尬,因为我们必须引入一条全新的区块链。


而链下扩容正是目前人们最为关心的、也是可行性比较高的方案。大名鼎鼎的闪电网络(Lightning Network)正是这样一个链下扩容方案。


链下扩容的含义是指,交易在链下达成,并不占用链上资源;当一系列交易达成后,再将一个最终的结果传达上链。通俗地理解,你可以看成是有一家小银行帮助你完成一系列转账交易,然后再定期把余额数据传送到链上。


在下文中,我们会具体描述闪电网络的运行机制,并评价这种扩容方式是否真的有效。


2.闪电网络的基本运行原理


2.1支付通道

很多人接触到闪电网络后都会有一些疑问,例如说:既然闪电网络是链下的交易,我们又为何可以信任它呢?


这是一个好问题!如果你问出这个问题,至少说明你对区块链是有一定认识的。闪电网络的确是在链下完成交易,但是我可以保证它的运行机制是很可靠的。闪电网络依赖于一些列密码学上十分安全的方案,来完成支付通道建立、支付与余额变更、乃至节点路由等等功能。


在这里我们引入了一个新名词:支付通道。支付通道听起来有些抽象,但你可以这样理解:它是一个开设在两位交易者之间的账户,由两位交易者共同维护。发生交易时,交易会被记录在这个账户中。经过一段时间、若干次交易后,账户的余额才会在比特币链上进行登记。


闪电网络,就是一个支付通道的网络。除了支付通道的创建与关闭需要通过链上交易来实现以外,其余操作都是链下的。基于这一点,闪电网络实现了良好的链下扩展性,极大地延伸了比特币的交易潜力。


2.2 支付通道与RSMC交易

支付通道的开启、关闭、余额变动,都是通过一种被称为RSMC的交易类型来实现的。


RSMC的全称是Revocable Sequence Maturity Contract,意为序列到期可撤销合约,是由一系列交易组成的、以实现特定的功能。


比特币扩容的未来:闪电网络介绍以及其他替代方案(BCH与LBTC)


我们以Alice和Bob互相转账、构建两人之间的支付通道为例,尽量简单滴解释支付通道的建立过程。


整个通道的构建步骤如下:

1)Alice、Bob各拿出自己初始拥有的BTC,构建一笔Funding交易。这笔交易的输入是两人各自拿出的BTC;输出是一个2-of-2多重签名的条件。此时,该Funding 交易尚未被两人签名、没有广播。

2)Alice创建两笔Commitment交易。

其中第一笔交易的输入花费了Funding交易,交给Bob签好名(此时Alice未签名);该笔交易含有2个输出的结构,第一个输出要求Alice和Bob的多重签名(Alice2表示Alice的另一个私钥),第二个输出要求Bob的签名。

而第二笔交易是指向第一笔交易的第一个输出,先交由Bob签名,其自身的输出指向Alice的地址。此交易带有Sequence条件,也就是要求必须前一个交易有Sequence个确认以后,该交易才能被打包进区块。

3)Bob也创建两笔Commitment交易,交易结构与Alice创建的交易完全对称。

4)双方完成以上Commitment交易的设定后,再各自对Funding交易签名,并广播之。


再来简单解释一下:

Funding交易的作用是,让双方各拿出一笔资金建立通道;后面的Commitment交易的作用是允许双方单方面要求退还(refund)这笔资金。Alice和Bob都有权利单方面触发refund。但是,谁先触发refund,对方就可以立即拿到refund,而自己要等待Sequence时间后才能拿到refund。由此,Alice与Bob双方随时都可以取消通道、终止合作,且可以保证双方资金的安全。


2.3支付通道中的余额更新

现在支付通道已经创建好了,如果Alice和Bob希望互相转账,又应该如何操作呢?


具体思路是:当双方商量发起一笔交易时,双方共同构建另外一套Commitment交易,取代原先的Commitment交易,并在交易内容中更新余额信息。


问题来了,原先的Commitment交易也还在,且双方都交换签名了,如何才能废弃?


解决的方式也非常巧妙。双方在新创建Commitment交易时,要求发起方的签名是对应一个新的私钥(姑且称为Alice3、Bob3);此时,Alice告诉Bob她原先的私钥Alice2,Bob就可以修改原先的交易为一笔新的惩罚性交易,该交易的输出是自己、并且取消Sequence限制;这样万一Alice私自签名Commitment交易,那么Bob就可以广播修改后的交易去实施惩罚,导致Alice失去自己的资金。因此,一旦Alice把Alice2告诉Bob,就等于宣布原先的Commitment交易作废。Bob这边也是同理。


原理确实有些复杂对吗。给出一个简单易懂的结论:在需要更新交易余额的时候,交易双方可以通过构建新的Commitment交易,保证其中任何一方,都无法单方面篡改资金余额使自己获利。


至此,我们的疑问彻底解决了。在支付通道的构建、关闭、余额变动的过程中,都能够保证双方在互不信任的情况下,实现相关交易的构建。因此,即使是链下的支付通道,也是完全去信任(Trustless)的。


3.闪电网络的节点路由


3.1 为什么需要节点路由

支付通道的建立,保证了任意两个交易方都可以在链下建立一套用于记录交易余额变更的账户,并且实现去信任框架下的交易行为。


但是,仍有一个问题尚未解决。我们知道,小额支付行为往往是高频且对象不固定的,那么是否意味着任意两个个人需要完成支付或转账交易的时候,都必须建立两人之间的支付通道呢?当然不可能!前文已经提到,支付通道的建立和关闭,都是通过链上交易实现的。如果闪电网络的用户在进行支付前都需要和对手方建立一次支付通道的话,这样就和在链上直接交易没有任何区别。这显然是荒谬的。


为了解决这个问题,我们需要在不同的支付通道之间构建一个路由(Routing)机制。


举个例子,假设Alice已经和Bob建立了支付通道,而Bob也和他的朋友Kevin建立了支付通道。现在Alice想要给Kevin转账,那么他们就可以由Bob来做中介,通过Alice→Bob→Kevin的路径来实现支付行为,不需要额外建立新的支付通道!


3.2 支付通道路由与HTLC交易

HTLC交易全称Hashed Time-lock Contract,意为哈希时间锁定的合约。简单理解,就是该合约是被一个哈希值以及一个到期时间参数所锁定。


相信大家已经厌倦了那些极为复杂的技术解释,下面就用一个简单的比方来说明HTLC的基本原理。

在上例中,我们已经找到了一条路由路径Alice→Bob→Kevin。我们假设Alice希望支付1BTC给Kevin。


首先,Bob制作了一个保险箱,存入1BTC,并交给Kevin;Alice也制作了一只类似的保险箱,存入1BTC并交给Bob。这两只保险箱的密码都是相同的,并且需要由Kevin来提供。当Kevin提供密码时,这个密码会被公示,也就是说任何人都可以看见这个密码。


交易执行时,Kevin会通过提供密码来打开Bob送来的保险箱,获得1BTC;Bob得知密码后,打开Alice送来的保险箱,获得1BTC。


我们注意到,Bob相当于交易里的中介(Escrow),他的存在使得Alice→Kevin的交易得以实现。因此,理论上Bob可以收取一定的佣金,作为撮合Alice与Kevin交易的报酬。例如,Bob可以在给Kevin的保险箱中放入0.99BTC,留下0.01BTC作为此次交易的佣金。


虽然我们的比喻可能不一定完全符合实际情况,但我相信也可以大致说明HTLC的原理了。HTLC同样是去信任(Trustless)的。这就意味着,我们可以通过由无数RSMC和HTLC合约构建的巨大网络,来支持链下的高频小额支付活动,并且无需担心资金的安全。


4.闪电网络 VS. LBTC:扩容方式之争


4.1 对闪电网络的一些评价

不得不说,闪电网络是一个很天才、也很成功的设想,至少它已经在走向大规模实施的路上了。目前来说,比特币社区密切关注闪电网络的实施情况,闪电网络内部的交易也有一定的活跃度。


但是,闪电网络距真正的大规模应用,是有一定距离的。我认为闪电网络可能存在这样几个问题,或者至少是值得关注的点:

1)闪电网络对于基础设施的要求很高。由于闪电网络的定位就是小额高频支付,那么必须有配套的设备和软件应用去支持闪电网络所需的算法。但是如果你观察当下的情形,会发现可以支持闪电网络的钱包大多还是托管式的钱包,并不是真正的去中心化钱包。然而,真正的去中心化钱包距离被普通用户接受也还有很远的距离。在这种大背景下,闪电网络的意义是存在一定疑问的。

2)闪电网络作为链下的支付设施,对中介机构以及交易双方的要求都会比链上更高!具体来说,就是需要中介机构在线运作,也需要交易双方在线,方可提供签名、构建RSMC与HTLC交易。这样的模式,对中介机构提出了挑战,能力脆弱、规模小的中介机构势必很难存活。相比之下,链上交易对于中介机构与节点都没有那么多严格的要求;新生成的比特币交易只要抛到P2P网络中,等待交易被打包并生产新区块就可以了,你无需担心太多问题。


虽然提及了一些缺点,还是必须得说在实际使用中,闪电网络到账快、手续费低的优势是存在的。此外,由于闪电网络链下结算的特征,还具有交易隐私性保护等诸多侧面优点。


比特币扩容的未来:闪电网络介绍以及其他替代方案(BCH与LBTC)


4.2 深入闪电网络的内在矛盾

闪电网络已经引发了很多争议,其中最显著的一点就是:闪电网络重新鼓励了中心化机构的产生,而这正是比特币所努力取代的东西。


前文已经分析过,闪电网络需要依赖一些中介性质的节点,来撮合网络内部的交易对手。这些中介节点(我们暂时称之为Hub),需要保持在线无间断提供服务、需要获取客户并撮合他们交易、需要维护大量支付通道、也需要储备足够的BTC以应对流动性需求。当闪电网络兴起之时,整个网络必然会需要一些规模庞大、服务优异的Hub来撮合交易。


比特币扩容的未来:闪电网络介绍以及其他替代方案(BCH与LBTC)


Hub作为结算中心,亦可以在承担信用风险的情况下提供类似于传统的银行提供的那些金融服务,例如为机构与个人客户提供预付款、交易结算、临时贷款乃至长期抵押贷款的服务,只不过是以比特币的形式。在这个过程中,比特币在闪电网络中退化为一种结算工具,而逐渐丧失了资产属性,正如今天的贵金属在金融体系中的地位一样。


更夸张的是,Hub对于比特币资金调度和结算的职能,以及其庞大的资金体量,很可能催生监管部门对Hub进行多方面的约束。这些Hub会逐渐成为高度专业且持牌运营的金融机构,监管部门也会对企业或个人运行Hub设置很高的门槛。这些大型Hub可能会在很多方面被纳入监管体系,例如持有BTC资产的流动性、法定准备金率、对客户的授信与资产负债的期限管理等等,正如那些银行被监管部门所监督的环节一样。


那么试问,这些Hub,不就是比特币创造者当初所嘲讽并且意图取而代之的银行吗?


更为可怕的是,在比特币的资产属性、货币属性还不那么深入人心的现在,闪电网络可能直接催生一个线上的、以BTC作为结算媒介的金融机构体系,进一步将BTC交易媒介化。这实在是一件非常容易失控、非常令人恐惧的事。


4.3 闪电比特币是比特币扩容的另一个选择?

作为闪电比特币(LBTC)的支持者,我有必要向大家介绍LBTC在解决扩容问题上的思路。

LBTC采取了另一种思路:他既不希望像闪电网络那样完全采用线下中介化的方式解决小额高频支付问题,也不希望像BCH那样借助扩大区块容量来提高TPS。LBTC认为链下扩容是有悖去中心化原则的,而单纯地在POW机制下扩大区块容量是治标不治本的。


BCH义无反顾地采取扩大区块容量的方式来提高TPS,这个思路在理论上当然是可行的。但是,这种提高的边际收益是很低的。因为当BCH提高数十倍区块容量的时候,去中心化程度会受到极大地威胁。


有些POW原教旨主义者认为LBTC采用的基于UTXO的DPOS机制去中心化程度不够高?我可以很肯定地告诉你一个结论:如果BCH的TPS哪怕能够达到LBTC的几分之一,它的去中心化程度一定会降低到连DPOS机制都不如;而如果BCH保持了类似DPOS那样的去中心化程度,那么它的TPS又一定远远不如LBTC。


其中原因是,巨大的区块在P2P网络中难以流通,POW挖矿生态会不可逆地收敛导致去中心化程度的崩塌。如果说BTC从1M提高到2M是网络完全可以承受的话,那么再从2M提高到128M就几乎触碰到危险的边缘了。


我这里并非批评BCH。BCH的价值在于它仍然凝结了相当多的算力,但他也极度依赖这些算力。在真正的扩容问题上,我相信只有比特币闪电网络和LBTC两者是可以同台竞争的。但也许两者都会在各自的领域取得成功。


4.4 如果你不熟悉LBTC…

其实本文不是想要为LBTC广告,毕竟它的知名度远不如BCH和闪电网络。但鉴于有很多朋友会混淆LBTC(Lightning Bitcoin)与闪电网络(Lightning Network)的概念,我有必要做一个简单的介绍。


LBTC与闪电网络名字有些类似,但其实是没有关系的。据LBTC团队说,当初这个名字是处于表达LBTC交易确认速度快、希望发力小额高频支付这一应用场景的原因,与闪电网络并无关系。希望大家一定不要混淆。


LBTC采用了一种基于UTXO的DPOS,这是比较有创造性的一点。他们认为UTXO非常强健(Robust),因此不愿意替换掉UTXO这个比特币的精髓设计。LBTC的DPOS是固定时长出块,目前应该是3秒左右。LBTC认为这种共识机制既能维持一定的去中心化程度,也可以达到POW不可及的高速与高效。


中本聪在比特币的白皮书中,已经明确定义了比特币是一个点对点的电子现金系统。而LBTC团队则认为,实现这一目标的最佳方案,就是在效率与比特币稳健性之间取得一个平衡,使得效率的提高的边际收益最大。所以很不好意思,BCH在这里成为一个反例,因为我认为BCH并不是比特币扩容问题的出路。