也许 Layer2 才是区块链的未来
也许 Layer2 才是区块链的未来
区块链要多快,才叫快!
在当前阶段,区块链大规模应用的最大瓶颈就是缺乏可扩展性。没有可扩展性,系统的吞吐量就上不去,因此一个“撸个猫”游戏就造成了整个网络的拥堵,更别谈,支持大规模的应用了。在互联网应用中,加几个服务器,就意味着多了几台服务器的吞吐量。但在区块链中,这招却不管用,因为区块链系统受限于可扩展性:
O(n) < O(c)
区块链系统中的任何一笔交易,都要网络中的所有节点进行确认。因此,区块链系统的计算能力(n),受限于单个节点的计算能力(c)。
2017年12月,比特币暴涨,它的日交易量,也达到了它的历史巅峰,为 424,579 笔。而以太坊的日交易量的历史巅峰数据是 1,349,890 笔。我们再讲讲淘宝双十一的日交易量数据大概是 1,480,000,000 笔,VISA 和淘宝是同一个量级的。而互联网每天的信息吞吐量大概是 2,000,000,000,000 次。折算成 TPS,比特币 5,以太坊 16,淘宝 17,000,全球 23,000,000。
光讲这些数据数据,你大概没有什么感觉。我们来对比一下,一个人跑步的速度,大概是 5m/s,好比比特币。优秀的自行车运动员的骑行速度大概是 14m/s,好比以太坊。而要达到 VISA 的速度,就要宇宙飞船了,旅行者1号在离开太阳系的速度是 17,000 m/s。要满足现有的全球的信息流通量呢?大概是 10^7 的量级,和光速 3*10^8 只相差一个量级。
Layer 1 改进包括,共识算法和底层区块链的架构。在 Layer 1 层,通过改良 POX 共识算法,比如 DPOS,充其量也就是自行车变汽车。架构上的改变,比如分片技术,1 个区块链和 100 个分片通讯,就算做速度再乘以 100X。因此,无论在 Layer 1 上怎么玩,顶多摸到宇宙飞船的尾巴,要想达到光速,对不起此路不通。
项目 | 交易/天 | TPS(平均) | 类比 |
---|---|---|---|
比特币 | 424,579 | 4.9 | 汽车^1 |
以太坊 | 1,349,890 | 15.6 | 跑车^2 |
EOS | - | 1,932(最快) | 航天飞机^3 |
VISA/淘宝 | 1,480,000,000 | 17,129 | 宇宙飞船^4 |
全球 | 2,000,000,000,000 | 23,148,148 | 光^8 |
只有 Layer 2 上做文章,才是唯一能够达到光速的手段!
Layer 2,主要是指在构建在区块链之上的可扩展性、计算、存储方面的基础设施。我们习惯把 Layer 2 叫做链下,相应地, Layer 1 就是链上。跳出 Layer 1,也就跳出了 Layer 1 的单节点限制问题。本文讨论的就是 Layer2 可扩展性问题的解决方案。在 Layer 2 层,用类似于传统互联网的手段,通过网络将所有节点连接起来。任意节点之间都可以随时发起交易,没有了单个节点的性能限制,就可以通过增加节点和通道的方式不断扩展,达到光速。
闪电网络
Layer2 最有名的可扩展项目,要属闪电网络了。
我们用 Bob 到 Cooffeeshop 买咖啡来举例子介绍闪电网络:
- 资金上链:Bob 存入 0.05 BTC 上链,Cooffeeshop 存入 0 BTC 上链,只有通道关闭时,链上资金才会被释放。此时,交易的初始信息为: Bob 0.05 BTC| Coffeeshop 0 BTC。
-
链下白条交易:Bob 和 Cooffeeshop 建立支付通道(例如,通过 IP/TCP 协议建立支付通道),在该通道内的双方通过相互在白条上签名来完成交易。每次交易,双方都保存一份相同的带有双方签名的白条。保存的白条,是处理后续交易,解决交易纠纷的关键。比如 BoB 通过白条支付给 Coffeeshop 0.005个 BTC,双方的白条信息就此更新为:
Bob 0.045 BTC| Coffeeshop 0.005 BTC
。
-
关闭链下通道:任何一个人都可以随时关闭链下支付通道。比如BoB 可以拿着白条:
Bob 0.045 BTC| Coffeeshop 0.005 BTC
,到链上申请关闭链下支付通道,并进行交易结算,结算完成后 Bob 可以拿到 0.045 BTC,Coffeeshop 拿到 0.005 BTC。上述结算的前提是,提出结算的一方是诚实可信的,但是现实中,只要有利可图,就有造假的风险。
如果 Bob 实际买了 10 杯咖啡,双方真正的余额是 :Bob 0 BTC| Coffeeshop 0.05 BTC
,但是 Bob 却打起了歪脑筋,用第一次买咖啡的白条Bob 0.045 BTC| Coffeeshop 0.005 BTC
,到链上申请结算。如果任由咋骗的情况发生,扩容网络也就废了。
闪电网络提出的方案就是,提出关闭通道一方 Bob,后进行链上资金结算,另一方 Cooffeeshop 先进行链上资金结算。举个例子,Bob 提出关闭通道,那么 Bob 要 100 小时小时后才能进行链上资金结算,而 Cooffeeshop 立刻能够取到链上资金。这样 Cooffeeshop 可以在 100 小时内,拿着第十次 Bob 买了 10 倍咖啡的白条Bob 0 BTC| Coffeeshop 0.05 BTC
,去链上申请仲裁,取到本应该属于他的资金。
链下通道安全性的关键就是:链下如何给链上提供欺诈证明。闪电网络的假设是,参与发 Bob 或 Cooffeeshop 在指定时间内,比如 100 个小时内,不会一直掉线,然后在 100 个这小时内,后退出的一方可以到线上申请仲裁。
-
双人通道 => 多人通道。Alice 和 Bob 已经建立"支付宝"支付通道,Bob 和 Carol 已经建立"微信"支付通道。如果 Alice 给 Carol 之间要进行交易,有两种方案,第一种是 Alice 和 Carol 再建立一条“Apple”支付通道,另外一种方案是通过 Alice 和 Carol 通过 Bob 进行桥接支付。 任何交易双方都需要建立一个一对一的通道,这显然会带来很多麻烦。闪电网络支持中间人桥接建立支付通道,步骤如下:
- Alice 要给 Carol 支付现金,要通过中间人进行桥接支付。但是中间人不一定可靠,那么 Carol 就和 Alice 约定一个“谜题”,如果 Alice 从 Bob 哪里收到的 “答案”能够解开“谜题”,就说明 Bob 真正的把资金给了 Carol。
- Alice 把“谜题”和转账信息给了 Bob。
- Bob 和 Carol 进行协商转账,如果 Carol 把“答案”告诉 Bob,Bob 就把钱给 Carol 转过去。这实际上也就和输入秘密进行支付一样。
- Alice 和 Bob 进行了同样的协商转账,如果 Bob 把“答案”告诉 Alice,Alice 就把钱给 Bob 转过去。
需要注意的是,第 3 步和第 4 步的先后顺序,是 Bob 先垫付的资金,然后 Alice 才把资金给了 Bob。也就是说 Alice 需要给 Carol 支付,需要动用整条价值传输链路上的资金。 在只有一个中间人 Bob 的时候,Alice 和 Bob 的资金都被动用了。如果有 10 个中间人,那么动用的资金量就是 Alice 直接支付给 Carol 的 11 倍!理解这一点,判断链下状态通道好坏的关键。
Network
在传统互联网的信息传输中,只需中间人越少速度越快,也就是最短路径算法。但是区块链是价值传输,因此不仅要考虑最短路径,还有考虑最短路径上节点的有没有可以使用的资金。不然就会出现 Bob 虽然支付宝支付通道上有钱,但是微信支付通道上面没钱,导致整个 Alice 不能通过 Bob 支付 Carol 资金的尴尬 。链下通道关键就是:如何在整体上保证传输消耗的资金量最少(最短路径),且维护整个网络中通道资金的平衡(且资金链不断裂)。闪电网络,只是做了一些非常简单的处理,比如选择多条最短路径,但这不能从根本上解决问题。
- 多人通道 => 支付网络: 既然多人之间可以建立状态通道,那么推广开来,在更多人之间就可以建立起一个支付网络来。现在闪电网络也已上线。下图就是闪电网络主网,它有 2934 个参与者,参与者之间建立 8041 个一对一的支付通道。目前上面的流通资金量还是非常少的,只有 81 个比特币。
Layer 2 的难题
从技术角度看,闪电网络的可扩展性,其实是牺牲了用户的可用性,并且是需要大量流动性资金做支持的。
- 可扩展性:增加一个参与者/节点,网络整体性能也随之增加。
- 可用性:用户需要在某个指定时间内保持一次在线。
- 流动性:参与交易双方和中间节点的需要将大量的资金押注在Layer1层。
其他 Layer2 的解决方案
在如何提高用户可用性和减少流动性资金的需求,有很多 XXX Network 的解决方案。其中,比较出名的有 Liquidity Network 和 Celer Network。
Liquidity Network 也是一个 Layer 2 的项目,因为看 V 神点了赞,丹华也投资了,我也就拿过来研究了。延续闪电网络中,提高的 Layer2 上解决可扩展性问题的两个关键:
Liquidity Network 白皮书中并没有提到如果保证链下安全性的。但在如果提高链下速度上,有着非常详细的描述,还提出了 REVIVE 路由算法,其核心思想,就是“分而治之”。
其官网的宣传图片,很好的介绍了路由的思想。地球一共七洲,每个大洲上都有几个 Liquidity Network 的枢纽,枢纽的概念有点像交易所。每个大洲上都有几个国家级的交易所,平时大家都在交易所中进行交易,交易所进行交易的速度非常快,能很好的满足大家的日常需求。每个交易之间,也会通过特殊的通道进行连接,组成一个全球的交易网络。
[图片上传失败...(image-27f7ce-1535297135203)]
实际上,Liquidity Network 的枢纽和交易所还是有很大区别的,枢纽中并没有一个中心化的机构掌握金钱。另外和去中心化交易所,也有点区别,他的支付行为是在链下发送的,而不是在链上进行的。
但是个人感觉 Liquidity Network 路由算法局限性很大。这个算法的前提在于,交易双方在一个枢纽中效率才是最高的。但是区块链本来就是个全球性的东西,将更多的交易双方尽可能集中在一个枢纽之中是很难实现的。因此该路由算法的局限性非常大。
Celer Network 是我个人非常看好的一个项目。任何 Layer2 的可扩展解决方案,都会牺牲了用户的可用性 ,并且是需要大量的流动性资金做支持的。而 Celer Network 提出的经济模型,很好的弥补了可用性和降低流动性资金的要求。另外路由算法,也是非常牛逼的。Celer 在这篇文章中就不具体展开了,后续有机会可以细谈。
Lightning Network | Liquidity Network | Celer Network | |
---|---|---|---|
支持公链 | BTC... | ETH... | ETH... |
通道 | 支付通道 | 支付通道 | 通用状态通道 |
信任模型 | 时间换安全 HTL | 未知 | 时间换安全 HTLR |
用户掉线 | 不支持 | 未知 | 支持 |
链下 App | 不支持 | 不支持 | 支持 |
链下支付 | 支持 | 支持 | 支持 |
路由 | Flare: 最短路径 | Revive: 分制+再平衡 | cRouter: 拥堵梯度(高山流水) |
资金利用率 | 低 5% | 高 | 高 90% |
吞吐量 | 慢 1X | 快 | 快 20X |
是否上线 | 已上线 | 已上线(不可用) | 未上线 |
市值 | 未知 | 61M | 150M |
融资 | 未知 | 65% | 30% |