ROL:给区块链扩容难吗?从比特币到以太坊

活动预告

Layer2可以为DeFi带来什么?扫描文末二维码进群参与今日话题讨论,即有机会获得imToken精美周边。

DeFi业务的增长从2020年起飞,TVL从$600M到$25B,增长了40倍。从一个现象就能直观感受:DEX去年从每日数千笔到达数十万笔规模,Uniswap的单日交易量甚至一度超过了老牌中心化交易所Coinbase。

以太坊上的交易量不断攀升,区块容量却开始吃紧,而矿池选择GasPrice竞价排序交易使其利益最大化。同时考虑到DeFi业务技术上存在抢跑攻击,用户心理上存在FOMO等问题,导致最终大家愿意付出更高的价格让交易跑得飞快。高价矿工费,使我们离普惠金融的初衷渐行渐远。

那么以太坊为什么不选择直接提升区块容量,承载更多交易呢?原因很简单,区块链核心限制在于「每一笔交易都要由网络中每一个节点验证处理」,那么当区块大小扩大几倍时,则会让更多小型节点退出,逐渐走向中心化。

给区块链扩容难吗?

早在2010年时中本聪就已经探讨过扩容问题,最初中本聪在比特币源码中设定区块容量为32M,但后来区块交易量一直很小,就把容量设置为了1M。他自己也认为如果有扩容需求,那么在代码中设定区块高度自动升级区块容量就好了。

但是后来比特币扩容却不是那么顺利,主要分歧在于是采用「隔离见证和闪电网络」,还是「增加区块容量」。前者认为「区块容量增大要求更高带宽和存储,会使节点逐渐走向中心化」,希望借助隔离见证和闪电网络这两项技术完成扩容,不增加区块容量。

注:这也是为什么Eth2希望采用PoS降低节点门槛,从而让更多人可以成为验证人,使其完成去中心化世界账本的理想。

当然这最后已经不是技术问题了,而是上升到了意识形态之战,经历香港共识的出尔反尔与不信任,最终走向硬分叉的道路,形成目前BitcoinCore和BitcoinClassic两条扩容路线。

比特币扩容过程就像一场戏剧,我们可以看到诸如SegWit、SchnorrSignature、LightningNetwork等扩容技术落地实现,但还未有质的改变。

SegWit:交易数据压缩至25%;

SchnorrSignature:单签名数据压缩至50%;多重签名:多笔交易压缩成单笔交易体积;

LightningNetwork:缺少点对点小额支付场景,资产规模仅有1000BTC。

后来闪电网络白皮书的作者JosephPoon转战以太坊社区,与Vitalik在2017年发布Plasma白皮书,试图解决以太坊的扩容问题。

Plasma主张将交易的计算和存储搬到Layer2,然后将多笔交易压缩成一个区块,并将区块的默克尔根提交到Layer1Plasma合约,从而提高吞吐量和降低交易成本。

Layer2依赖Layer1Plasma合约作为安全信任和仲裁层,如果Layer2出现问题/作恶,那么用户可以借助Layer1Plasma合约退出资金。退出资金要等待约2周的挑战期,在此期间任何人都可以提交「欺诈性证明」证明退出无效,从而获得奖励。反之,若无问题则等待挑战期结束,顺利退出。

Vitalik称Plasma是sidechainsthathaveanon-custodialproperty,究其原因主要是用户需要信任SideChain机制,而无法保障自己资金的所有权,但Plasma通过交互式欺诈性证明可以让用户随时申请退出资金,即便Plasma子链出现问题/作恶。?

Plasma曾是社区的希望,我们可以看到许多Plasma变体实现诸如OmiseGo、Matic、Loom等,但因为一些缺陷,它并没有获得社区最终的青睐:

缺少数据可用性,用户不得不依赖Plasma可信任节点数据或不断监控网络是否作恶,无法获得同等于Layer1的安全性。

提款周期长,依赖长达两周的欺诈性证明挑战期,如果有人作恶,同时挑战期内无人发现并提交作恶证明,那么用户资金存在损失风险。

上面这段话可能有些难以理解,我们来举个数据可用性的例子:

当你去玩德州扑克时,你从柜台将美元换取筹码,然后你开始随便找了一张桌子玩了几个小时德州,当你赢到盆满钵满的时候,你准备起身到柜台兑换筹码。此时的坏人给你当头一棒,你失去了记忆,牌桌上的荷官当作什么事情没有发生过一样,重新开始刚才的牌局,走你本应赢到的筹码。

?从过去比特币和以太坊扩容情况来看,我们逐渐找到了理想扩容方案应该有的样子

保持区块容量大小,避免走向中心化;

支持数据可用性,用户可以从L1上重建交易状态;

随着2019年以太坊硬分叉升级-Istanbul,我们离理想扩容方案越来越近,此次升级包含两个Layer2友好的EIP提案

EIP-1108:使SNARKs和STARKs验证运算更便宜;

EIP-2028:降低CalldataGas消耗量,以便L2数据采用Calldata形式低成本上链。

Layer2Rollup的现状

什么是Rollup??

Rollup有不少中文译名,其中一个打趣的翻译是「春卷」,你可以想象将食物卷起来一口吃下去的感觉。实际上,Rollup就是将交易数据压缩放到Layer1上,从而实现同样的区块容量可以塞下更多交易,将30TPS扩容到3000TPS级别,再搭配上Eth2Sharding扩容,效果可以媲美当下Visa的水准。

如何压缩数据?

压缩是Rollup的精华,巧妙的压缩技巧可以塞下更多的交易,同时压缩数据上链可以提供「数据可用性」,保障用户资产安全。

一笔简单的以太坊交易通常消耗约110字节。然而,在Rollup上发送ETH仅消耗约12字节。我们以收款地址和交易签名举例:

To:使用「索引」来代替20字节的地址;

Signature:利用零知识证明的特性,将数千笔交易签名转化为零知识证明,通过检查证明的有效性,从而证实数千笔交易有效。

Rollup方案对比

Rollup方案主要分为两种:ZKRollup和OptimisticRollup。前者采用有效性证明,后者采用欺诈性证明,这两种证明方式背后的理念是不同的:

有效性证明:采用数学的方式保障资金安全、用户体验流畅和隐私,但短期内无法支持通用的EVM计算;

欺诈性证明:支持通用EVM计算,但短期内无法采取零知识证明,所以折衷选择欺诈性证明,保障资金安全。

最后,本文为了讲述Layer2发展历程提及了一些过往不同的扩容方案,但这并不意味这些方案的思路是失败的。这其中除了技术问题,商业可行性也是值得深思的,正如Vitalik对这两种Rollup方案的评价:

短期内,OptimiticRollup很可能在通用的EVM计算中胜出,而ZKRollup则可能在简单的支付、交易和其他特定应用场景中胜出。但从中长期来看,随着ZK-SNARK技术的改进,ZKRollup最终将在所有场景中胜出。

-今日话题讨论-

Layer2可以为DeFi带来什么?

扫码回复关键词「L2」加入讨论群

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:5ms0-3:761ms