Layer2的起源 - 状态通道和闪电网络
Layer2的起源 - 状态通道和闪电网络
对于比特币的支付能力,Visa和Master一向是看不起的。成熟的清算组织和支付机构TPS(transaction per second)达到10万笔的级别,而比特币需要1小时确认交易。区块链作为一种去中心化的分布式数据库技术,性能瓶颈解决的关键,是如何在高效和安全之间取得平衡。在区块链=去中心化?中谈过区块链的不可能三角,去中心化、性能和安全,三者只能取其二。
而成人的世界是既要又要,于是诞生了Layer 2(后面简称L2)技术。所谓Layer 1(后面简称L1)是指比特币、以太坊等确认共识的公链,用于最后的清算,满足去中心化+安全的需求。而L2是致力于提供高性能,在L1之外建立额外的信息传输通道,完成快速信息交互后再上传到L1做最终结算。
这么描述比较抽象,用现实类比的话,L1相当于公证处。L2就是咖啡厅。当事人在咖啡厅完成各种协商,最终把达成的条件呈交公证处确认。至于条件达成背后的诸多细节,公证人并不关心。可以这么说,L2的重心是信息的交互,L1的重心是信任的交互。
State channel状态通道
L2技术迭代不停,当前最流行和热门的是以太坊上的rollup技术。不过,我们还是从第一个成熟的L2技术-状态通道-说起。
状态通道(state channel)可以顾名思义地理解为不断更新状态的通道。比如Alice经常在1024网站看视频,用BTC支付费用。不管是她和1024运营方,都觉得每次交易要6个区块的确认太长了,于是决定建立链下的状态通道,在视频真正看完前产生的费用,彼此间做线下结算。
状态通道技术由第三方组织提供,Alice和1024一起在本地运行第三方状态通道软件。首先Alice会发送特定金额的比特币到链上作为初始保证金,比如1BTC,且这是需要Alice和1024共同签名的多签交易,以确保双方在线。之后的交易都会在1BTC的初始保证金内进行。
假设1024视频收费为0.001BTC/min,自Alice开始播放视频开始,每看1分钟视频,Alice和1024都会签名支付一笔金额0.001BTC的交易。如下图所示。如此往复,知道Alice停止播放为止。最后一笔交易称为结算交易,会广播到链上最终确认。
自始至终,只有开始的承诺交易和最后的结算交易才会需要链上确认,中间发生的任何事情都在状态通道中线下交互,效率大幅提升。
这里涉及的一个典型安全问题是,Alice可以把更早的交易作为结算交易广播到链上,比如在看了30分钟视频后,Alice把1min时的0.999 BTC to Alice,0.001 to 1024广播到链上,从而花费0.001便收看了30分钟视频。
有不同的技术处理类似的场景以解决信任问题,这在谈rollup时细讲。此时只需知道,状态通道中使用的技术,需要1024随时监控链上情况(这是一个小缺点),若Alice出现上述作弊行为,1024有办法拿回全款并惩罚Alice。
Lightning network闪电网络
状态通道是双方基于一定信任度建立的,且需要锁定一笔钱作为承诺交易,因此建立通道的成本高昂。为了利用已有的状态通道,避免频繁建立通道的低效,闪电网络成立了。
假设老王要给小红打钱,他们并未建立状态通道,但是通过闪电网络内的路由规则,发现可以用这个线路中转交易:老王 > Alice > Bob > Carol > 小红,因为他们两两间都建立有状态通道。
为了防止中间节点比如Bob截断资金盗窃,小红会用随机数生成一个密钥R,用哈希加密后发送H(H=hash(R))给老王。接着,从老王到Carol,大家依次用一个技术给下一人支付款项,这个技术叫hash time lock contracts(HTLC,哈希时间锁合约)。
HTLC是一个简单的合约,它的伪代码如下:
If
# 如果持有R
验证 Hash(R)是否等于 H
Else
# 若一直没有R来验证
在指定时间后回退金额给支付方
你想到老王和小红怎么使用HTLC了吗?
假设老王要给小红转1个BTC,老王收到小红发送的H以后,就开始发送1.003BTC给Alice,其中0.003BTC是给中间每个转接方的小费。Alice收到老王的1.003BTC的HTLC后,就给Bob发送1.002BTC的HTLC,最终Carol给小红发送1BTC的HTLC。
因为小红持有密钥R,那么她就会发送R给Carol,并在HTLC的第一个IF条件句中验证通过,从而直接获得1BTC,完成收款。Carol拿到小红的R以后发送给Bob,通过HTLC验证获得1.001BTC,由此往前,最终老王发出的1.003BTC被Alice获取,整个支付完成。
中间还有更多细节就不深入展开,比如如何确定路由线路,怎么保证节点和资金的隐私,闪电网络的运营方安全性如何等。这些都是需要长期优化和解决的问题。
1ML有个看板展示闪电网络的实时数据,可以看到社区还是非常活跃的。
区块链的演化
L1和L2的演化和互联网协议的发展类似。正如网络世界有TCP,IP,HTTP,WIFI等各司其职的多层协议,区块链也有L1和L2以解决不同问题,还有L0和桥等技术解决协议之间的通信问题。
从大家着眼于协议也可见,区块链还处于很早期的阶段,只有当协议和基础设施完善后,才能大规模地出现应用层创新,正如当下热闹的互联网。