大家好,我是潘致雄。今天和大家分享的主题会围绕以太坊Layer 2,从Plasma到现在最流行的Rollup扩容方案。

其实以太坊社区在三年前就已经非常关注扩展性问题了,但也就从今年真正应用生态的爆发之后,大家才深刻地认识到扩容的重要性,所以大家也越来越多地讨论到我们在现阶段应该做什么样的事情。

今天的分享主要是回答以下这些问题:

1、以太坊为什么要亟需扩容?

2、目前有哪些Layer 2的方案?

3、第一代扩容技术Plasma有哪些具体的问题?

4、第二代扩容技术Rollup原理,为什么Rollup可以扩容,它是怎么来实现的?以及Rollup有哪些子方案,包括ZK Rollup和Optimistic Rollup这两类。

5、Rollup生态如何?

一 以太坊为什么非常紧迫的需要扩容?

其实是来源于以太坊本身的限制,以太坊在设计之初整体的容量,至少没到以太坊2.0之前,它的容量是有限的。根据大家简单的估算,以太坊网络中如果是纯普通转帐类的交易,每秒交易数量(TPS)应该是会少于30笔。如果有一些更高级或更复杂的智能合约类需要运算的,它的TPS可能会远小于30笔,所以它存在天然的瓶颈。

以太坊区块链又是一个竞价机制的网络,每个人都可以出自己的目标价格,价高者的那笔交易会尽快被确认,所以以太坊网络中被称为gas price的指标就可以很明显地来评估以太坊网络的拥挤程度。我们拉取了Blockchair统计的以太坊链上每日gas的中位数,以此来衡量以太坊每日gas的情况和趋势。

在以太坊真正投入使用,并且gas开始发生波动的时候可能是在2017年左右,其实在2017年、2018年、2019年,甚至2020年初,可以看到gas费一般都是在10以内,甚至是个位数。可能会有些波峰,比如在2017年底,以太坊第一次真正大规模的应用就是降低了初创团队融资成本的应用,把以太坊的gas一下就推到了接近100左右的水平。

2018年也会有些其他更通用应用的场景,也把gas推到了100左右的水平,但是一次性的,立马就回到了个位数的水平。

我们看到2020年年中之后,以太坊的gas费突飞猛进,增长非常快,最高达到了500多,可能是原来平均水平的几百倍,至少提升了两个数量级。

540那天正好是以太坊链上最著名的一个去中心化交易协议Uniswap当天发布了新的动向,并且做了些空投的操作,导致链上有非常非常多的人进行转帐或者操作,导致以太坊这个链非常拥挤。

540是什么样的水平呢?最普通的转帐,就至少要几美元甚至十几美元,复杂点的智能合约类的操作也要至少几十美元、上百美元,所以就是这样的一个水平。Uniswap这件事情过了后,我们看到虽然下落很明显,但依旧保持了比较强的历史高位水平,可能100不到的平均水平。

换个角度看,链上金融业务一个很明显的数据,我们用了DeBank的数据,DeBank采取了以太坊链上所有的数据。这是今年一整年以太坊链上去中心化交易所相关的交易次数的趋势图,在年初的时候,每日交易次数可能1万不到的水平,到了年底,每日已经到十几万的水平,至少提升了一个大的数量级。

而且最大的问题是根本没有任何下降的趋势,交易次数是直接和以太坊gas成本相关,而且相关性非常强,因为每次交易都需要付出gas成本,而且链上金融类、交易类的智能合约是比普通的转账要更复杂一些,所以它所需要花费的成本会更高,会消耗链上更多的计算资源。

所以问题就来了,既然碰到以太坊链上应用根本没有任何下降或者是更少的趋势,那现在最大的问题就是非常需要扩容,因为在提升了1-2个数量级的gas成本之后,以太坊普惠金融的这种概念已经没法去实现了,所以需要非常快的速度来让更多人能使用到它,如果需要让更多人使用到的话,就需要非常快的速度来进行扩容。

二 以太坊2.0或Layer 2?

(1)Layer 2可以快速落地。

以太坊2.0我们都知道,它最终解决的也是可扩展性和扩容的问题,但是以太坊2.0可能真的需要2年甚至更长时间来最终上线以太坊的第一阶段和第二阶段。虽然现在第零阶段已经上线了,但也只是信标链,而且以太坊本身的基础架构和方向也有些微调。

我们看到至少在今年这段时间,已经有一些Layer 2网络的项目上线了,明年还有更多Layer 2网络的项目会上线,所以开发者的选择也会越来越多,这个生态可能也会越来越复杂。

(2)以太坊2.0也会围绕Layer 2技术。

以太坊2.0应该也会围绕Layer 2,特别是Rollup这一类,来进行可扩展性的提升。

至少大家都还挺认同的一点,就是应对近期和中期的扩容性需求,整个以太坊生态系统需要将发力点集中到Rollup上,Rollup就是Layer 2其中的一种技术。

三 什么是Layer 2?

既然大家都确定要大力发展Layer 2,那什么是Layer 2呢?

Layer 2中文直译就是二层网络,它其实是个相对概念,而不是很直接的概念。它相对的概念是Layer 1,什么是Layer 1呢?就是区块链底层协议,对于以太坊来说,Layer 1就是以太坊网络本身。在以太坊网络本身之外,上面再搭建的其他独立出来的网络,可以提供其他额外的计算或者储存、普通交易,都可以把以太坊本身的这些资源在Layer 2上进行,然后通过一些节点以及无许可的方式,Layer 2网络和Layer 1网络进行具体数据交互,就可以为以太坊网络进行扩容。

当然,这根本的原因是因为以太坊网络的容量本身就是有限制的,每秒交易的次数就在30以内。那怎么样把以太坊Layer 2的网络用得更好呢?其实还有一点,这里我虽然只画了一个Layer 2网络,其实对于以太坊网络而言,它是可以兼容非常多,每个团队都可以开发一个自己的二层网络,所以以太坊网络可能是单个Layer 1再加上多个Layer 2网络的形式,共同发展。

四 Layer 2有哪些扩容解决方案?

如果按时间来分,2018年之前我称它为第一代扩容技术,2018年之后可能慢慢兴起了一些第二代扩容技术,实际上官方不会这么提,但这样比较好记。

第一代扩容技术主要是以Plasma为主,另外其实还有一些比较早期的扩容技术方案,包括状态通道。状态通道有点类似于比特币的闪电网络,两个用户之间可以建立一个快速的网络通道,两者可以在通道内存取一部分资金,定时去更新它们的最新状态,最终退出时到Layer 1上进行结算。

Plasma稍后会大概介绍下,其实目前已经有几家研究团队放弃了Plasma技术,包括Plasma技术里面最重要的一个团队Plasma group,它们是以太坊基金会资助的团队,在去年末今年初的时候表示Plasma团队会解散,然后重组,重组之后他们会研究Rollup技术,他们研究的Rollup技术叫Optimistic Rollup。但目前还有Matic和OMG团队仍在开发和研究Plasma的技术,Matic的主网应该已经上链了。

第二代扩容技术,也就是以Rollup为首的一些其他相关方案。Rollup主要有两个比较大的概念:(1)ZK Rollup,利用零知识证明来实现数据的安全性;(2)Optimistic Rollup是Rollup的一些特性糅合上了Plasma的一些特性,所组合出来的一种扩容方案。当然,还有Volition(Validium),这套方案也有点糅合了Rollup和Plasma相关的技术。所以整体来说,Layer 2的扩容解决方案中还是以Plasma和Rollup两个比较大的为主。

我这里整理了相关的时间线,可以作为参考。Plasma论文发布其实是在2017年8月,后续也发布了几个优化版,包括Plasma Cash等,有一些进展。但到了2020年,Plasma Group团队解散,它们重组研究Optimistic Rollup技术。

Rollup和ZK Rollup其实是在2018年的9月份,在2019年年中的时候,有团队提出Optimistic Rollup概念,糅合了ZK Rollup和Plasma的一些优点,组合出这样一个概念。差不多在2020年的时候,关于ZK Rollup和Optimistic Rollup概念的项目已经有上测试网。

包括国内的团队路印(Loopring),它们在2020年初的时候,ZK Rollup的交易就已经上线了,不过它们是专用解决方案,是只为它们自己交易所的应用来实现,目前还没有给其他团队提供通用的解决方案。

五 Plasma

我会简单介绍下Plasma是怎样的实现方式,后面我会用更多的时间来介绍Rollup。

这是第一版Plasma白皮书中画的一张图,简单理解,最下面的Root Chain就是以太坊,以太坊之上有一个Plasma Blockchain,就等离子体区块链的另外一层网络。上面的Alice是其中一个人,当然还有其他人,会定期把很多人的状态一层层汇总到Plasma Blockchain,并且会定期把最底层的一些Hash值发布到以太坊网络中,作为一个证明。它还糅合了一些欺诈证明的机制在里面,如果发布的过程中有些问题,还是可以去质疑或者惩罚节点的。

简单来说是这样一个概念,但真正在社区推的时候或者项目在采用时会发现一些问题,比较大的两个问题有两个。

1、在Plasma区块链和以太坊链进行交互时,是没有包含Plasma链的所有交易数据,其实也就是没有包含Plasma链每一次状态变更的数据,会导致以太坊链如果脱离了Plasma圈,是没有办法复原每一次的数据,所以它非常依赖Plasma保护。

2、退出期比较长,因为每个节点都定期把相关的数据提交到以太坊链上,但因为使用欺诈证明的机制,用户在进入以太坊链的时候是非常快的速度,但要退出Plasma区块链的时候最少可能需要一周时间,才能保证比较高的安全性,不然可能有人在其中短时间作恶,资金可能就会产生风险。

不过Plasma本身还是会有些优势,因为不会把所有数据都提交到主链上,所以潜在的扩容效果会很高,可能远比之后Rollup的方案更高。

六 Rollup

接下来会介绍Rollup,Rollup目前还没有比较合适的中文翻译,可以把它理解成蜷曲、卷起或者是收纳、聚合的概念。虽然社区里也有讨论过给它起个中文名,但我觉得也不是特别合适。

其实Rollup现在主要有两个概念,主要是解决了Plasma数据可用性的问题,其实使用了两套不同的方案来实现,一个叫ZK Rollup,一个叫Optimistic Rollup。

ZK就是使用零知识证明,Optimistic是乐观的意思,它的机制里面会有很多很乐观的地方,相信诚实的人会提交诚实的数据,如果不诚实它会进行惩罚。

ZK Rollup主要的团队包括Matter Labs、路印、Hermez和Aztec这四个团队。Optimistic Rollup主要有OPTIMISM、Offchain Labs、Fuel Labs,OPTIMISM其实是之前Plasma Group重组的团队。OFFCHAIN从大类上分也是属于Optimistic Rollup的,但它们又称为Arbitrum Rollup,使用了更复杂的多轮交互方案。

最直观的来理解什么是ZK Rollup和Optimistic Rollup。ZK就是零知识证明,它利用了零知识证明技术;Rollup,像我前面解释,它是聚合的意思,或者你可以把它理解成压缩的意思,我觉得把它理解成交易压缩会比较好理解。那Optimistic这个词是来源于Plasma中的欺诈证明,欺诈证明就是它先乐观的相信你会提交准确数据,然后再去质疑你。

所以Optimistic Rollup是Plasma的欺诈证明机制加上了Rollup所直接代表的交易压缩含义。那ZK Rollup,社区里也会把它叫做有效性证明,就相对于欺诈证明Fraud Proof,也可以叫Validity Proof,因为它是直接提供了一个非常明确的证据,告诉你这笔交易是有效的。

我们可以先简单来理解一下什么叫“交易压缩”,什么叫Rollup?

我们拿取Hermez团队白皮书中的一个截图,我觉得很好理解。左边是一笔普通的以太坊转账交易所需的字节数,简单说就是所需要的容量,比如说一笔接收用户的地址就需要20字节,但同时以太坊链上的交易需要提交ECDSA签名,就证明这笔交易是某个发送者发出的,需要签名,才能确保它的安全性,这个签名就要64bytes。

Hermez而当时提供的方案是发送者和接收者都只需要3bytes,Amount只需要2bytes,所以相比之下差别非常大,只要不到10bytes里就可以实现一笔交易。

我们更详细的来看,更直接的来理解,到底ZK Rollup是怎么来压缩数据并且加上了ZK部分。比如说链上有一些交易,每一笔交易都有它的发送地址、接收地址、数量或者签名数据,就像刚刚Hermez团队一样。发送地址、接收地址可能都是比较复杂的以太坊链上公钥的地址,是20字节的,那ZK Rollup怎么做呢?

第一步,把零散交易的发送、接收和数量这些数据进行压缩,可以把原来非常复杂的公钥地址映射到某串数字上,比如说可以映射成10293这样的数字上,发送地址、接收地址都可以压缩到这么小的数量上。

第二步,针对签名数据进行压缩,使用ZK,零知识证明其中有一个特性,怎么理解呢,就它把原来的这6笔签名数据等价的变成了一个零知识证明,只要拿着这一个零知识证明就能证明这6笔交易都是由发送者签名发出的有效交易。然后把这6笔交易打包成一笔大的Rollup交易,然后提交到主链上。

当然在实际操作中,真正交易的数量会更多,上千甚至更多,我这边6笔只是做一个简单的示例。随着数量的增多,零知识证明容量的增幅可能不会这么大,所以很多交易都会平摊它那部分证明的成本。

ZK Rollup也会带来一些新的挑战,当然也有它的优势。

挑战1:它与签名机制不同,生成零知识证明需要大量计算资源,可能会针对不同的硬件去开发不同的解决方案,所以计算资源这件事情可能是需要比较大的投入。

挑战2:在通用智能合约的支持上难度相对较大,因为零知识证明它不是普通的智能合约就能实现的,里面是有它的电路、设计之类的东西,所以在通用的智能合约支持上难度相比较之后OR的来说,会相对难度大一点。

优势:

相比较Plasma,它的优势在于每笔交易数据都是存在于以太坊链上。可以提供与Layer 1几乎相同的安全性,因为它也是相当于每笔交易都有自己的签名,来证明每笔交易都是有效的。在用户进入网络和退出网络的时候速度可以非常快,而不像Plasma或者OR,退出网络可能是以天为单位来计算的,它们可能几分钟就可以实现。

根据各家之前公开的数据来看,ZK Rollup能达到的扩容效果可能是提升最多两个数量级,应该会小于3000的TPS,但是提升一个数量级就对整个网络的贡献非常非常大了。

其实Optimistic Rollup理解起来,可以直接和ZK Rollup进行一些对比,怎么理解呢?压缩(Rollup)的部分都是比较类似的,可以把发送、接收的数据进行压缩,但它有个很大的特点是没有零知识证明确保状态准确无误,也没有零知识证明来保证它的每笔交易都是有效的,但它是通过欺诈证明来确保的。

就是任何节点都可以将这笔Rollup交易发送到以太坊主链,但如果有人发现提交的数据有误,是可以提交欺诈证明的,提交自己的证据,如果这个证据也能被证明是有效的,那之前提交的节点是会受到一些经济上的惩罚。所以是通过博弈论以及经济学的机制设计来确保链的安全性,确保Optimistic Rollup的安全性。

Optimistic Rollup相比ZK Rollup的挑战、优势也不太一样。

挑战1:由于采用欺诈证明,所以用户的退出周期比较长,带来的用户体验可能比较差。当然,其实有一些项目在尝试解决退出期比较长的问题。

挑战2:虽然大家都说Optimistic Rollup的安全性是可以达到和主链相同,但整体来说,因为它没有ZK的部分,所以我们会认为它整体安全性可能会略低于以太坊主链。

不过还是有它自己的优势。

优势1:和ZK Rollup一样,相比较Plasma,每笔交易数据都是存在主链上,所以数据可获得性是没问题的。

优势2:支持通用智能合约技术比较容易,比如说Optimism的OVM技术就可以兼容以太坊的智能合约,所以对于开发者来说它的迁移成本在Layer 2上可能会低一些。

也有些团队公开了它们的扩容效果,大概来看其实也就和ZK差不多,最多两个数量级的水平,可能也是理论最大值了。

我们直接来看这三者的对比,两个Rollup相比较Plasma最大的优势就是交易数据、状态转换数据都是保存在主链上,所以这个链脱离了Layer 2(二层网络)也是能继续运作的,而不是说脱离了Plasma之后数据可获得性就没有了。

还有些特点,ZK Rollup是依赖了密码学和零知识证明的,Optimistic Rollup是依赖了欺诈证明,依赖了博弈论、经济机制设计。支持通用型智能合约,ZK Rollup相对而言会难一些,另外两者相对简单一些。退出期来看,Plasma可能要2周左右,当然有更优的方案可能会更短,Optimistic 可能以天来计。安全性来说,可能ZK Rollup是安全性最高的,其他两者虽然也不会损失资金,但可能会付出一些时间成本在里面。

可以看下我们近期制作的以太坊八大扩容方案生态全景图,从通用解决方案来说,前面的3-4个团队可能是目前生态建设最好的项目,它们有着比较强的投资机构,包括以太坊基金会都在里面。Paradigm、STARKWARE、MATTER这些,都在支持扩容方案的团队。

从生态来看,Optimistic已经有了OPTIMISM,ZK Rollup有了Matter Labs。应用上其实Optimistic的应用SYNTHETIX、UNISWAP、Compound都是头部团队,以太坊上金融DeFi应用的头部团队。下面的一些团队,Aztec、LOOPRING、Fuel、Hermez目前也还在搭建它们的生态。

今天主要回答了这几个问题:

为什么以太坊亟需扩容?因为应用发展的速度太快,特别是金融类应用发展速度太快,以太坊链的容量存在天然的天花板,短期内没法直接把它打通。

目前有哪些Layer 2方案?核心的可能还是Plasma和Rollup,是社区最关注的两套方案。

第一代扩容技术Plasma最大的问题是缺少了数据可获得性,所以这几年时间里没有得到快速应用。

第二代扩容技术Rollup,它最大的原理就是对链上交易、状态或者是智能合约进行数据压缩,当然还有子方案,包括ZK Rollup是用零知识证明,Optimistic Rollup是用欺诈证明,来保证了安全性。

Rollup生态如何?刚刚我们看到它发展的速度非常快,不同的解决方案都已经在建设生态了,明年可能会是Rollup生态更快速发展的一年,很多应用及网络可能就会在明年正式上线。

以上就是我今天的分享,感谢大家的时间。

【注:本文仅代表演讲嘉宾观点,不代表万向区块链立场】

End