Loopring CTO Steve: 二层网络的真正未来是什么

摘要

Frankle
路印协议

--

9月8号下午2点半,路印CTO Steve Guo受邀参加深圳市南山区块链技术应用协会主办的“第二届BLOCKCHAIN2140深圳区块链周”线上直播活动。

在会上,Steve做了以”二层网络的真正未来是什么“为题的主题演讲,该演讲深入浅出的阐述了二层技术演进的历史路线,在深入分析各个二层项目优缺点的同时,指出了二层网络未来的发展方向。

以下是Steve的演讲正文:

大家下午好,我是路印协议的CTO Steve Guo。不知道昨天晚上大家尝试在一层做了交易没有,我试着SWAP了一笔,结果花了几百美金,而且最气人的是还失败了!这种交易的高费用显然对大规模的应用和推广是很难接受的,这也是我今天想分享的主题:二层网络的真正未来是什么。

现在我们进入正题,先看这张图,这张图总结了什么是叫二层网络。二层网络在我的定义里面是资产安全性要靠一层网络来保障的网络才叫二层。所以我把一些侧链,比如xDai,Polygon这种侧链都没放在里面。

二层目前可以归类为三类技术,最早的叫状态通道(State Channel)技术,然后从状态通道演化到Plasma,然后到最新的Rollup技术。Rollup又分两种方案,乐观汇总(Optimistic Rollup)和zkRollup,这两条赛道里面分别都有不少项目在做,路印协议则是第一个推出zkRollup的协议

状态通道(State Channel)

接下来我们先看第一种layer 2的技术,那就是状态通道(State Channel),状态通道(State Channel)的核心思想其实来源于比特币的闪电网络。比如说Alice跟Bob之间要转账,如果都走链上的话成本会很高,那么可以约定让Alice和Bob各自把资金都先存到一个智能合约里面,二者存好之后,在链下Alice和Bob之间就可以无限次的不消耗任何Gas进行转账,最终大家要退出的时候再利用智能合约进行结算。这张图就演示了最早大家各充5块钱,然后链下转账之后最后结算为一个3块,一个7块。

这种方式链下转账确实能很快,而且也很便宜。但是它有一些问题,首先它需要两端都把资金存进去,资金占有率很高。还有就是它是点对点的,比如说A要跟B再跟C转账,那么就需要建立好几个状态通道,这样的交互是不可取的。

再之后演进的方向,比如说像雷电网络和CelerNetwork都进行了扩展到可以点对中心。任何一个人要交易都可以跟中心打交道,但这样还是有相同的问题, 因为中心本身要存入大量资金才能保证资金周转利用率,而且这种方案只能做转账支付这一个应用场景。正因为状态通道的这些限制,所以自然演化到下一代叫Plasma的技术,Plasma技术就是想去尝试解决状态通道的资金利用率问题。

Plasma

Plasma在链下提供一种比如UTXO(Unspent Transaction Output)的结构模型,大家的转账记录都是类似于比特币UTXO交易。当这笔交易在Plasma的链上确认之后,Plasma会把所有的状态的Merkle根递交到以太网上的一个智能合约。智能合约记录了所有链下的世界状态,最终它依赖挑战机制来保证所有对链下交易的执行处理是正确的,比如说转账不能是被双花的。

Plasma的确比状态通道更进了一步,也即解决了资金利用率问题,但是它带来的新问题是挑战的退出期,Plasma至少要一周以上的退出期才能保证交易最终的确认性。同时Plasma要求每个人都要去监控Plasma的所有UTXO交易,用户必须自己监控这些交易,然后才能根据这些历史交易来挑战交易有什么问题,这对普通用户来说也是无法接受的。

所以Plasma也需要自然演进,这也就演进到下一个最近比较热的Optimistic Rollup技术,也即乐观汇总。乐观汇总可以解决Plasma里面的挑战问题,同时还能支持通用EVM,而不仅仅只是转账支付了。

Optimistic Rollup

Optimistic Rollup把所有链下原始的交易数据,包括世界状态的根一起全部递交到链上,然后允许任何人根据链上所记录的所有原始信息来做Challenge。如图所示,Optimistic Rollup把世界状态、交易原始数据上链,然后任何人都可以根据这些数据来Challenge这笔转账是不是有效。

Optimism

这个思想其实目前已经有两个主网上线的项目实现了。

第一个项目叫Optimism,该项目的开发团队其实是由Plasma继承过来的,它的核心思想我刚才已经解释了。那么它的突破点是什么呢?当然是扩展了Plasma的应用场景。

前面状态通道、Plasma全都只是针对转账支付这么一个场景,那么如何把转账支付进行扩展呢?比如说做图灵完备的编程来完全在链下兼容EVM的指令,让大家直接可以在链下执行Solidity语言。

Optimism的思路就是在链上部署一个智能合约,然后用智能合约接受链下的EVM-compatible也叫OVM的指令的执行。Optimism尽量做一件事情,就是保证OVM的byte code是跟EVM的byte code一一映射,但是其实还有可能大概20个左右的byte code很难去做这种映射。所以Optimism目前存在的问题就是它不能做到100%的EVM兼容性。而正是看到Optimistic有这个问题,所以Arbitrum才进一步提出了改进方案。Arbitrum在8月底主网已经正式上线,大家可以先试用一下。

Arbitrum

Arbitrum在Optimism基础上的巧妙改进在于,它在链上不执行EVM的bite code,而是去定义它自己的AVM的byte code。AVM的byte code是极度精简的一个子集,这样的话用户在一层上做挑战的时候,Gas会更低,消耗也会更低。

目前的效果就是Arbitrum的转账费用大概是Optimism转账的1/2左右,Arbitrum同时还进行了挑战机制上的改进,允许用户分片挑战。

什么叫分片挑战呢?比如说一个区块内有1000笔交易,但其中只有一笔是错的。那就可以用类似于二分法的思路,让用户证明比如前512个是不是对的,如果是对的,那么再挑战接下来的比如说256个,后续继续利用二分法来进行挑战,最终来做一个挑战的输出,成功还是失败。

zkRollup

这就是Arbitrum,那么这就是二层网络的未来么? 我觉得并不是。

以太坊V神在年初的时候说过一句话,他说短期内最有可能兼容EVM的是Optimistic Rollup,但中长期他更看好的是zkRollup。zkRollup其实跟Optimistic Rollup的本质区别在于不依赖任何挑战机制,而是即时的在链上保证清算的最终确定性。zkRollup依赖于一套名为零知识证明的数学体系,这张图大概解释了一下什么叫零知识证明。

零知识证明本质上在干一件事情,就是在不告诉对方答案的情况下,向对方证明自己知道答案。比如说针对问题y有函数f,我能根据我私有的一个秘密x,通过这个函数运算后得到y,最后我向大家公开的是函数f和问题y。但是我的x不能直接说出来,我同时又要让大家知道我知道一个x算出 Y,这就叫零知识证明。

这样说可能还挺抽象的,我举一个实际的例子,比如说在这张图上寻找鄂尔多,我想向大家证明的是我知道这张图上面的小人位置在哪,如何来做这样的一件事情呢?因为我不能直接把位置告诉你,我可以这么来做,比如说我找一块很大的黑布,我把这个画盖起来,然后黑布上就把这个小人给剪出来,然后把这个小人给透出来,这样你是不是就能知道,我肯定知道这个小人在画上的位置,但是我又没有把这个位置泄露给你,这就是零知识证明。

我证明了一个东西,但是我又没有把这个秘密告诉给你,这样的一套听起来有点黑魔法的技术,它最核心的技术思想统称叫zkRollup。这张图大概描述了一下核心的理念。

其实zkRollup的核心理念就是把所有的世界状态归类为一个大的Merkle树,然后所有链下发生的交易,本质上都只是在更改一个一个账号的世界状态。最后由中继的一套系统来收集链下所有的交易,然后把这些交易处理完之后的世界状态的根的哈希也记录到链上,同时把这些交易的元数据的tx信息也记录到链上,同时还递交了一个叫零知识证明的证明。这个证明只要在链上验证过,那么就说明链下的计算是去如实的处理了每一笔tx信息的,这就是zkRollup跟Optimistic Rollup最大的区别。Optimistic Rollup只把元数据和根哈希递交到链上,zkRollup同时还要递交一个零知识证明,这样就能不需要依赖于任何挑战机制就能保证最终的可结算性。

Loopring

我们路印协议是在19年底上线的,是世界上第一个zkRollup主网上线的系统,我们前后经历了好几个版本:第一个版本只支持订单本的DEX交易,然后第二个版本我们支持转账支付,然后第三个版本我们支持的AMM的闪兑的这样一个模式,然后在今年9月初我们正式发布了在二层支持NFT的铸造、转账、交易,能降低整体Gas费用的版本。

zksync

同时zkRollup赛道还有好几个项目也在进行,大家比较熟知的还有一个叫Matter Labs的zkSync。

路印和zkSync方案的最大的区别在于选用的零知识证明算法不一样,Loopring采用了叫Groth16的一套算法,zkSync采用的叫Plonk的算法。这两个算法的本质区别就在于要不要有一个最早的初始可信设置。路印是需要的,改变任何一笔电路的行为都需要做一次可信设置,zkSync是不需要有的。Matter Labs其实也已经历了两个版本,分别叫1.0和2.0。2.0叫zkPorter然后1.0叫zkSync。他们主要的区别是,为了在2.0上进一步降低Gas的消耗,Merkel树、元交易数据也都不上链了,而是用链下的一个类似于Community POA的Proof来保存数据。

但大家请记住,一旦元数据不上链,其实用户资产的安全性就不能称之为真正的由Layer1来保证了。这样的一套系统,在我看来本质上就是让用户自己去做选择,要安全就走1.0,要更便宜就走它的zkPorter。

同时我们还知道 Matter Labs也在做一个EVM compatible的一个zkRollup系统,它定义了一套名为Zinc的编程语言,总之二层项目最后都会走到zkEvm这条路上来。

starkEx

zkRollup还有一个知名项目就是StarkWare推出的StarkEx。最早的时候人们对它很诟病,因为它刚上线的时候声称自己是zkRollup,但其实它没有把应用的元数据上链。其实这样的一套系统不能称之为zkRollup,所以V神当时给它取名叫Validium。后面它进行了扩展,也支持一种把元数据递交到链上的模式,我们也可以统称它为zkRollup方案。

StarkEx最早就定义了自己的编程语言,它最早就想做具有可编程性的zkRollup系统。StarkEx定义的语言名叫Cairo ,其核心思想是让用户利用Cairo语言编写智能合约。然后它再帮你转成比如说EVM的byte code,然后再在StarkEx的整套零知识证明体系上做验证做计算。

zkEVM

我讲了这么多,大家可以看到,目前我认为还没有一个非常完美的二层解决方案,要不就是有限制,要不就是不具有数据可用性。在我看来最终的完全可用的二层网络,应该是zkEVM,什么叫zkEVM?

顾名思义,开发者只要用EVM写智能合约,那么这个智能合约的byte code直接就可以在一个zkRollup的类型环境里去执行。不是像现在一样在EVM的虚拟机里面执行,而是跑到了一个叫zkEVM的虚拟机执行。zkEVM能保证byte code执行出来之后,zkEVM能向一层网络证明zkEVM在链下执行的智能合约的确是如实执行的。

对于zkEVM,目前的设计思路其实有两大类。

像我之前提到的Matter Labs的Zinc和StarkWare的Cairo语言,包括还有一个项目叫Hermez,也是最近提出要做zkEVM。他们的核心思路是自己定义一套语言,然后把这个语言翻译成EVM的语言。也就是他们会自己定义一个EVM语言,然后把EVM的byte code翻译成他们的EVM code,然后本质上在zkEVM里执行的是他们自己的byte code。但很遗憾,这个方案很有可能做不到完全的100%的兼容性。

另外一个方案就是以太网基金会正在做的一个项目。其实这个项目我们路印也正在参与,它叫zkEVM。

它的思想是不需要任何翻译,直接将 Solidity 代码编成 EVM 的 byte code,直接把 byte code 执行在 zkEVM 的虚拟环境里。它这套虚拟环境最大的做了两件事情,第一个是证明 byte code 的执行是对的,叫 EVM 的 proof;第二个是证明世界状态的修改是对的,这里面包括对 storage、对 memory、对 stack 存储的零知识证明。这个方案我认为可能是最终形态的二层网络。

开发者只需要写一套EVM的代码就可以在一层运行,在二层也可以无缝运行。而且这个方案是zkRollup,能保证最终结算的即时性。当然这个方案我觉得不是那么容易上线,估计预期在一年左右的时间,大家应该能看到原型甚至可商用的一个初版。

谢谢大家,我的演讲结束。

最后,社区提问:

郭博士您对Solana跟Cardono是怎么看的呢?您可以说一下吗?

Steve:

前面我说了什么叫二层网络,二层网络安全性一定是要从一层来保证的,所以像Solana和Cardono这样的项目,在我看来只能定义叫侧链。类似于以太坊现在也有自己的侧链比如xDAI、Polygon,这些都算是以太坊的侧链。侧链最大的问题是什么,你资产的安全性只能由侧链自己本身来保证。

就是说白了就是你的币一旦跨到侧链上,你的币的安全性就只能是看这条链上怎么来处理了,但是这些链的存在也是有意义的,这意义在于什么?

在我看来之后的一个演进方向有可能是类似于App chain的概念,你这一条链是一个专用的链,你这条链专门用来处理一些特殊的场景,比如说最近的 NFT 有 Flow项目对吧?他也是自己给它专用的App chain。类似于Solana,它其实最早推出来的时候就专注于在解决订单本交易。我觉得这种为专门特定应用设置的App chain,以后还是有机会的。未来的格局我认为有可能就是一个大的layer 1网络,然后下面是layer2的网络,同时还有侧链,总共三个网络,这是一个并存关系。

关于路印

路印协议 是全球首个基于以太坊二层的 zkRollup 去中心化可扩展交易协议。路印基于以太坊二层开发了多个高性能、高技术产品,包括全球首个支持社交恢复的以太坊智能合约钱包,全球首个集成 zkRollup 且支持订单本、AMM 挖矿的去中心化交易所,以及全球首个基于支持二层 NFT 的 zkRollup 协议。

更多问题,请添加路印微信客服:L_Loopring 或 Y_Loopring。

TwitterDiscordForumTelegramRedditGitHubDocsYouTubeWeiboGitbook

--

--