路印协议创始人王东分享新版本特性及以太坊 Layer 2 方案的优势。

原文标题:《专访王东:关于路印新版本的一切》
受访者:王东,路印协议创始人
采访与撰文:李画

零知识证明这种技术被证明是非常可行的,它有一个特别好的优势是它并不在第二层引入某种共识的机制。

ZK Rollup 也许是迄今为止最匹配区块链系统的用于解决特定问题的 Layer 2 方案,而路印是第一个落地了 ZK Rollup 技术的协议。

它们计划在今年年底推出 3.6 版本,这是基于 ZK Rollup 的首次「实战经验」推出的一个较大的改进版,该版本或许意味着路印在 ZK Rollup 解决方案上不是领先一步,而是领先出了两步。

但对于路印协议我们仍有很多疑问,路印的 Layer 2 上可以做什么,不能做什么?它的安全性从何而来,它最大的优势又是什么?为此我们采访了路印协议的创始人兼首席执行官王东,请他回答这些问题。

专访王东:路印新版本支持 AMM 和订单簿,Layer 2 与分片会共存

3.6 版本:比 CEX 更快的到账速度

问:3.6 版本最值得介绍的有什么?

王东:现在线上运行的是 3.1 版本,做设计的时候我们依赖很多假设的,因为没有参考的对象,所以许多假设都相对保守。举一个例子,3.1 里面注册用户数只能是 100 万,超过 100 万就没法容纳。当时是假设零知识证明的成本很高。

但现在看来 100 万的这个限制是完全没有必要的,因此在 3.6 版本里用户数不是 100 万,而是几十亿,世界上所有人都来用也容纳得下。

账户只是零知识证明里边的一个因素,其他的设计指标还很多,比如支持多少币种,在 3.1 里支持 256 个 Token,而 3.6 里支持 6 万多种不同类型的币,所以它也是扩容的一个方面。

3.6 一方面包含很多针对于 3.1 的改进,另外我们还把一些新的想法、新的功能也都放到 3.6 中。

其中有一点是 3.6 才引进的,我们想在 Layer 2 支持 AMM (自动做市商)。这是对之前定位的一个补充。之前我们一直把路印定位成一个基于订单簿的去中心化交易所的协议,现在它是三种定位的组合:一个是转账(Layer 2 转账基本上特别快,秒到);另一个是基于订单簿的交易;第三个就是 AMM。

除此之外还是有非常多小的功能,比如在 3.1 中,大家都说提现速度太慢了,一个小时也不到账,那 3.6 上线之后,这个到账应该是一个以太坊区块的时间,比中心化交易所到账还要快,可能你一提现,10 秒钟就到账了。

问:你说的到账是直接在 Layer 1 上面可以体现出来的到账吗?

王东:对。比如说你在 Layer 2 有 1 个 ETH,想提出来,那你提的时候这个钱立刻就从二层账号消失,这几乎是秒级就完成了,然后大约十几秒,一个以太坊区块的时间,你的钱就应该在 Layer 1 到账了,就这么快。

以前慢是因为之前提现是用户要发送一个以太坊交易,然后等待以太坊十几个确认,然后我们再去改内部的账,ZK Rollup 要改账,改完账之后要生成证明,生成证明之后,这个证明要上链,然后上链的这个交易确认又需要一个块的时间,然后钱才到用户的账号。

未来 3.6 上线后,我们做的就是一旦发现请求是有效的,这个请求转多少钱,就立刻用我们自己的钱或者流动性提供商的钱先给用户打过去,相当于有一个中间方先把钱给用户了。这种快速提现机制会比中心化交易所有明显的优势。

问:可以这样理解吗:路印协议 Layer 2 账户之间的转账,只需要一秒就能到账;把钱从 Layer 2 的账户转到 Layer 1 的账户,只需要十几秒就能到账?

王东:3.6 版本会提供这个体验。

AMM :一个账号两种交易模式

问:采访之前我不知道 3.6 版本可以支持 AMM,你们的 AMM 是怎样运行的?

王东:首先 AMM 与订单簿是在一个 ZK Rollup 里面,所以它们之间是不用通过 Layer 1 转来转去的。然后,在内部协议层面,这两个账号是共享的,不过在产品层面,我们现在没有太确定怎么去做。

比较倾向的一种方式是 AMM 与订单簿是两个独立的产品,但是后台的流动性是打通共享的。不过用户不用那么困惑,从用户角度来讲他看到的可能是一套账号系统,两个不同的交易模式。

问:AMM 和订单簿的流动性是共享的?

王东:对的,或者这么说吧,就是我可以下一个普通订单,把这个订单放到订单簿里面去吃流动性,也可以下一个订单,直接扔到 AMM 里边去跟 AMM 的池子来成交。

从协议的角度来讲,都是一个订单,要么吃 AMM 的流动性,要么就吃掉订单簿的流动性。但是从用户的角度来讲,当他跟订单簿来交互的时候,他是有订单这么一个概念的;如果他跟 AMM 来交互,那就跟 Uniswap 的体验是一样的,不会涉及订单这个概念。

我们的设计会有一个很大的优势:当一个做市商或者一个套利的人,他发现 AMM 那边的价格跟订单簿有点差别的话,他就一定会去把那个平掉,所以 AMM 相对来讲滑点会稍微低一点,但我不太敢用一个量化的指标说它跟别的 AMM 的滑点相差多少,因为这与订单簿的池子量也有关系。

只要流动性来了,肯定是把 AMM 和订单簿通过套利的方式让价格保持一致。所以不管哪边有更好的流动性,用户都是可以去吃那个流动性的,流动性是共享的,但从用户体验角度来讲这个过程是不被感知的。

支付:未来小额转账都会在 Layer 2

问:路印 3.6 可以支持 Layer 2 账号与任意 Layer 1 账号的互相转账?

王东:本来在 Layer 1 就是任何两个人之间都可以转账;在 Layer 2 也是任何两个人之间可以转账。现在的路印 3.1 是说你充值必须得充值到自己的 Layer 2 账号,提现必须得提现到自己的 Layer 1 账号。

而在 3.6 版本中,张三可以通过提现把 Layer 2 的资产转给李四的 Layer 1 账号,李四也可以通过充值把 Layer 1 的资产转给张三的 Layer 2 账号。

问:可以理解为这是一种跨层的支付 / 转账功能吗?你们做了哪些改变使得路印可以支持这种功能?

王东:可以这么理解。这就是协议的一个改动,之前我们是没有往这个方向去设计,因为当我们做 3.1 的时候,最主要是从一个交易所的角度去设计。

当 3.1 上线之后,Vitalik 就跟我们说现在转账费用太高了,你们能不能支持转账?我们说其实转账也做了,只是没有作为第一优先级的事情把它上线,所以大约一个星期之后我们就把转账也上线了。

后续我们发现对方如果没有 Layer 2 账号,就没有办法直接转,这也是当时设计一个没有考虑到的地方,3.6 对此做了改进,接收转账无需事先注册了。

问:你们似乎花了一些精力在做路印支付,你觉得支付的需求大吗?

王东:支付本质上来讲就是路印 Layer 2 的转账,我们觉得这个非常必要,如果说未来真的有 10 倍、100 倍的人使用以太坊,那是没有办法在 Layer 1 做小额转账的,大家被迫都得去 Layer 2。在未来,小白用户可能几乎都会到 Layer 2 上来,只不过是选某一个 Layer 2 而已。

专访王东:路印新版本支持 AMM 和订单簿,Layer 2 与分片会共存

问:路印开发了智能钱包,是为了更好地提供支付服务吗?

王东:路印智能钱包是为小白用户设计的产品,不仅提供支付功能,还能进行交易、质押。我们想通过路印钱包降低用户进入区块链的门槛,给用户带来安全友好的交易体验。

路印协议是我们的一条腿,我们另外一条腿就是智能钱包,这是我们真正想要给用户提供的一个终端产品。把技术隐藏在后面,用户根本不用知道什么叫 ZK Rollup ,只要他用起来舒服,不会丢币就好。

一切技术隐藏在背后才是真正好的技术,小白用户应该像使用美国 Robinhood 那样的炒股软件一样,想要买卖的话一点就可以了。

零知识证明这种技术被证明是非常可行的,它有一个特别好的优势是它并不在第二层引入某种共识的机制,它不像侧链。但它目前为什么没有一下就吸引很多的流动性或者用户呢?还是在于有个学习门槛,已经不是技术方面的东西,所以这就需要开发让用户上手特别容易的产品。

我们可能在年底前同时上线智能钱包。智能钱包本身是在 Layer 1,但是它会集成 Layer 2,在用户转账的时候我们会尽量引导用户在 Layer 2 做转账,这样的话就省钱了,目前路印转账是零费用。

我们做智能钱包是经过一些思考的。除去技术的考量外,我们相信智能钱包是一种财富管理理念的回归。

多数人习惯了基于信任来管理财富,现在我们就是相信银行,相信国家背书的机构来管理我们的财富。有了区块链之后,很多极客倡导每个人都自己管理资产,可是多数人是没用知识、经验,更没有信心来管理自己的资产的。责任,或者说完全的控制权,是一把双刃剑。

路印的钱包允许用户通过一个可信的关系网来管理资产,而这个关系网是用户自己有权利决定的。只要关系网中的多数人是可信诚实的,资产就会很安全。(注:此处是指账号的安全性依赖,而不是指 Layer 2 的安全性依赖)

因此路印钱包设计的核心理念是基于去中心化技术,把财富管理回归于信任这个基础,而非让每个人都学习区块链技术和一些专业术语。

问:路印支付可以提供 API 吗,就是说其他的应用可以把路印支付功能接到自己的应用里去吗?

王东:我们现在已经提供了一套 API。如果现在有钱包说要支持 Layer 2 的转账,就可以看看我们的 API 文档(docs.loopring.io),接入到路印的中继里面来,就可以给他的用户提供非常便宜甚至是免费的转账。

Layer 2 的安全与效率

问:路印协议为什么有与主网一致的安全性?

王东:有一个技术的东西叫 Merkle tree (默克尔树),它是把不同的数据一层一层的哈希,最后变成一个简单的哈希值,这个值就叫树的根。这个根实际上能代表树里边一切的状态,虽然不知道具体的状态是什么。

这棵树本身是要能够在某个地方找到的,如果没有这棵树,只有根,那这个账户也是不安全的。这就是为什么 Vitalik 说 Starkware 的 Validium 技术本质上并不是跟主网一样安全,因为它的这棵树是不能通过以太坊主网的数据来恢复的。

我们的 ZK Rollup 就是在 Layer 2 维护这样一棵树。它最开始的时候非常简单,里边什么都没有,然后当你交易或支付时,就会改这棵树里边的数据,这个改动本身是要放到以太坊上去的,作为一个数据存到以太坊上。(注:并不是把这棵树放在以太坊上,这棵树在 Layer 2,但要把对这棵树的改动的数据放在以太坊上)

因此,你可以通过以太坊把这棵树在任何一个时间点的历史状态全部恢复出来,恢复出来之后,你可以通过树根来验证你恢复的数据是不是对的。

最极端的状况,如果这个交易所在某一个状态停止了,破产了或者团队跑路了,这个时候可以通过以太坊的数据把这棵树恢复出来,任何一个用户都可以把从叶子节点到根的一串数据拿过来,这一串的数据叫默克尔证明。

把这个证明扔到以太坊的路印协议的智能合约里,合约就会算这个默克尔证明能不能证明你确实是在这棵树里面,如果能证明你在这棵树里,就会把这棵树里标记的你有多少钱从以太坊的智能合约里解锁出来,直接转到你的以太坊账号里。

总的来讲,关键的一点是把包括 Merkle tree 的根在内的数据上链,第二个点是这个默克尔证明本身是能够通过智能合约去验证的,而且一旦验证成功就把钱打给对方。这就是在最不理想的情况下提现的方式。

专访王东:路印新版本支持 AMM 和订单簿,Layer 2 与分片会共存

问:ZK Rollup 的高 TPS 从何而来?

王东:当我们说 ZK Rollup 也好,说离线账号也好,本质上都是在说这棵 Merkle tree 的大小是什么、里边有什么信息、能存放多少币、多少账号之类的。为什么 ZK Rollup 能够扩容,能够变得那么快、那么省钱,与对这棵树的更新涉及到的一些计算相关。

比如一个人的账户状态改了,那要怎么改 Merkle tree 的根?需要一层一层的去算,算到那个根。所以一笔交易可能要改大约 4、5 个叶子节点,一笔转账大概要改 3 个叶子节点,这些改动是非常多的。

但现在,这些改动跟以太坊没有关系,它不用去做这些改动过程的计算,计算都是在 Merkle tree 上面,在中继里边做的,以太坊上只要把零知识证明验证一下就行了,可能就花费 10 万 gas 还是多少 gas,大概是这样。

比如说做 1000 笔交易,改动可能是大约 4000 个叶子节点,可能要算几万次哈希算出一个根,但这些数据都在 Layer 2,最后扔到以太坊上的数据其实就是三种:第一个是对各个叶子怎么改的;第二个是对根怎么改的;第三个是一个证明来证明前两者的一致性。

零知识证明做什么呢?零知识证明就是验证改这棵树里边这么多数据的时候,这个根的计算跟各种改动是能够匹配得上的。零知识证明只是做了这么一件事,就是证明数据的一致性。

它对应的也不是每一笔交易怎么去证明,而是说一大堆交易打成一个包 / 块,如何去证明这个包,它是一个批处理的过程。

中继:「一键」交易所、共享流动性

问:路印协议有一个中继系统,是不是任何人或机构都能通过它来构建属于自己的、但又是使用路印 ZK Rollup 技术的交易所?

王东:简单回答是这样的。我们在最初的时候把自己定位成一个协议类型的项目,中继做什么呢?中继就是维护订单簿、撮合、生成零知识证明,然后保证一切交易所核心的数据、逻辑没有错,然后能够符合协议的要求。

中继是一个非常庞大的系统,我们觉得是很有价值的,我们把中继做成一个服务开放出来。像 WeDEX 没有后台中继的开发人员,那你(路印)干脆就帮我(WeDEX)做个云服务。我给你一个亚马逊账号,你帮我去开发、部署、上币、运营,只是运营的决策是我来做,上什么币、费率多少也是我来做。

中继服务的这种理念我们还是会坚持下去,避免重复开发。所以对于小团队来讲,如果是对 ZK Rollup 这种技术感兴趣,可以先尝试着用我们的中继服务,后续如果对中继服务不满意,那拿到投资了就可以自己去开发。

问:假如一个酒店 / 应用,它需要在主页给客人提供一个数字货币交易的服务,那它是否可以直接通过中继系统构建一个路印的 ZK Rollup 上的交易版块?

王东:你举的这个例子实际上我们现在就可以实现,只是我想再延伸一下,这个中继及服务器其实有两种不同模式。

第一种模式,假如你想做一个自己的交易所,所有的上币、所有的费用、所有的灵活性、所有的控制都想自己拿到手,那这个时候你用你的账号,我们给你做一个中继的集群,这个集群跟路印的集群完全分开,中间没有任何联系,所有的运营都是你来做。这种模式成本可能会稍微高一点,因为要花钱去付云计算的各种费用、租金。

还有一种模式是这样的,在 3.6 版本上线以后,你就用路印的这一套中继,这时候,比如你想上线一个币叫 abc,这个 abc 路印是不想上的,在路印官方页面交易所不会看到 abc,但因为大家后台用的中继系统是一套系统,一个人如果登录了路印的交易所,他也可以同时登录到你的系统、你的交易所。只不过他登录到你的之后,在你的界面上会看到 abc,他在你那里看到的资产类别跟在我这里看到的就不一样。这种就会更灵活,运营的成本就会低很多。

问:基于路印 ZK Rollup 的不同的交易所间可以共享流动性吗?

王东:就是我刚才说的两种不同的模式,如果这个团队是完全要独立出去,那他的流动性就不能共享。如果是用同一个后台,全部的流动性都能共享。实际上当大家看一个交易对的时候,可能看到的订单簿的深度都是一样的,流动性全部是共享的。

如果用户想要通过路印协议来自建交易所的话,长期来看,我们是希望他来使用我们同一个中继的,就是跟我们共享流动性,我们也共享给他。这样的话,在一些特别流行的交易对上,比如说像 ETH/USDT 这样的交易对上面,如果共享,大家一上来就有很多的流动性在里面。

然后其实也是共享用户群体的,只不过是说如果你运营的好,一个用户到你那儿去登录,到你那里去交易,那这笔交易费就归你,如果从我这儿交易,那这笔交易费就归我。如果你运营的不好,由于这个中继都是共享的,你的成本就会下降很多。

所以总体来讲它的优点非常多,成本能下降很多。我们会鼓励大家共享我们的中继、共享流动性,只是在运营层面你运营你的我运营我的,中间把怎么去分润、怎么去做收益做好就可以了。

专访王东:路印新版本支持 AMM 和订单簿,Layer 2 与分片会共存

问:路印的代币可以捕获到其他交易所的价值吗?

王东:路印代币的的价值捕获是通过质押来做的,所有质押 LRC 的用户都会在所有交易所的交易里面得到一个百分比,目前这个百分比是万分之六,但有可能会有变化。

不管是哪一个交易所成交的交易,只要基于路印协议构建的交易所,都会有奖励固定到一个质押的奖励资金池里面,是这种捕获方式。整个路印协议上的交易量越大,它捕获的越多,跟交易量几乎是成正比,和交易所的数量倒是没什么关系。

ZK Rollup :限定领域的专属解决方案

问:路印协议与 Layer 1 上的协议的交互性是怎样的?

王东:Layer 2 是有一个智能合约在 Layer 1 上面的,出入金的时候要经过这个智能合约,Layer 1 和 Layer 2 之间价值转换的相关部分也是通过智能合约来做的操作。这个智能合约可以跟 Layer 1 的任何的项目做交互,在出入金的那个交易里面跟 Layer 1 做可组合。

但比如你在第二层做转账、交易,因为已经挪到了 Layer 2,就没有办法在 Layer 1 做聚合,这也是 ZK Rollup 在聚合性方面要比纯粹在 Layer 1 的项目要差的一个原因。

这算是一个取舍,我们其实并不鼓励这种聚合,因为一旦有这种聚合的话,你必须还要去 Layer 1 去跟一个费钱、慢的操作来做聚合,又要用到 Layer 1 的资源,那么你在 Layer 2 做的这个省钱、高效的工作就没有办法省钱和高效,Layer 2 本身的目标没有办法达成了。

我们的原则就是不再那么大地去使用 Layer 1 的资源,包括计算和存储,而是把计算和存储拿到 Layer 2 去。

ZK Rollup 或者所有这种 Rollup 的本质的设定就是不在 Layer 1 上去做什么事,如果协议设计的目标是每一笔都要跟 Layer 1 有交互,那就不能够容忍 ZK Rollup,这两个的目的是冲突的。

我们想做的事情,就是为用户或者为我们的合作伙伴提供安全又廉价的转账、交易以及 AMM 服务,它是非常限定在某一个应用领域的专属的一个解决方案,不是通用的。

问:有没有可能把现在一些主流的 DeFi 协议放到路印的 Layer 2 上面来?

王东:很遗憾,至少目前为止是不能。基于目前最好的技术,zkRollup 也只允许你把某一种特定的应用场景编程到 Layer 2。比如说路印的 Layer 2 就是支持用户之间的转账,支持用户之间的交易。

能不能在路印 Layer 2 上用我的逻辑、用我的某种语言来写一个程序?是不能的,它是一个不支持可编程的技术,它是专门针对某一个业务逻辑写死的一个技术。

当然,我觉得未来是非常有可能在 Layer 2 也进行编程的,只不过目前的这种技术,真正在上面实现了特定业务的也是非常少的。

在我看来未来一、两年之内,主流的还是要把某个特定的应用场景,把它的存储跟计算拿到它自己的 Layer 2 去做加速,然后每一个 ZK Rollup 本质上都是不同的东西。ZK Rollup 不像侧链,侧链是一个可编程的链,你可以把什么都拿过来。

问:这是不是跟零知识证明这个技术本身有关系?

王东:我们现在来看零知识证明可用的工具,你这种说法是对的。这里边目前来讲最大的限制是你写一个电路之后,要做一个安全设置,这个过程一旦设置好了之后,电路的代码就不能变了。

未来零知识证明在理论与实践上如果发展起来的话,有可能是允许你动态来写这个零知识证明的电路的,电路你可以随便改,改完之后它也是安全的,但现在还不行,不过我们也看到了苗头。

未来,要在这一步实现之后的第二步才是真正的在这上面做可编程,那个时候零知识证明技术的完美性就会更彰显出来,现在还在非常早的阶段。

杂谈

问:你之前有说过把以太坊作为数据层面,而不用作计算层面,怎么理解这种说法?

王东:现在的以太坊是要把数据都同步下来,把每一笔交易都运算一遍,所以同步的过程是非常慢的,因为你后一笔计算要依赖于前一笔计算的结果。但如果说以太坊变成一个纯粹的数据层面,计算非常少,那以太坊同步起来就会非常快。

硬盘多便宜,但是 cpu 的计算会限制吞吐量。所以你看现在以太坊是把数据变得更便宜一点,然后把计算维持的比较贵。我觉得数据应该要继续更便宜,然后计算要更贵。最后可能是一笔转账,如果你在以太坊上做,没有十几、二十美金应该是做不成的,这才是比较合理的一种做法。

也就是在未来,真正要上链来做的一些计算,一定是高价值的一些存在,比如说这个交易转了 10 万以太,上链没问题,花几十美金,或者是像我们这样把成千上万的交易打包成一笔,我们花几十美金上链,这也许是可以承受的。

不应该是每一笔小的转账都跑到以太坊上去,这样的话以太坊永远都没有办法真正的扩容。

问:如果分片技术上线的话,还需要 Layer 2 吗?

王东:需要,分片解决不了这么多的问题。首先每一片的性能,跟以太坊现在的性能应该差不了太多,如果说它再优化,可能是乘以 2、乘以 3,差不了太多,是个线性的,然后分片,你再乘以一个数,假如说就是 1024 的话,那这对于整个世界来用以太坊是不是足够呢?

我举个例子,以前路印 2.0 的时候,以太坊主网如果全被路印来使用,每秒才能清算 3 笔交易。那你想,如果以太坊扩容 1000 倍,全被我所用(路印 2.0),这个吞吐量也就是 3000 笔每秒,这够吗?绝对不够。

专访王东:路印新版本支持 AMM 和订单簿,Layer 2 与分片会共存

问:你们在设计 3.1 时会担心零知识证明的成本,那为什么在 3.6 中不太需要担心成本问题?

王东:在说原因之前很想说一点,就是我们上线后发现零知识证明的成本其实还好,不像我们预想的,至少比以太坊的 gas 费还要便宜。

此外,我们做了 3 个改进,第一个改进是在 3.1 版本里,零知识证明的类型是非常多的,有几十个不同类型的证明,但在 3.6 里边这种证明的数量指数级下降了,只有几个,因此整个架构服务器有一个优化的空间,少一点机器处理少一点类型的数量的证明,效率会更高一点。

第二个是我们优化了 libSTARK 内部的一些代码,然后在数值计算方面,尤其是矩阵运算方面做了大量的优化,这个帮我们提升了非常多的效率,成本就下降了。(注:libSTARK 是路印协议使用的零知识证明代码库)

第三个是我们为另外一个后端服务设立一个不同的模式。现在叫 Server mode,什么意思呢,就是它是一直等着别人来跟它提出计算零知识证明的申请的,常驻内存,你来一个我就处理一个,效率会高很多。以前我们是做完之后资源就释放掉,再有一个请求的时候再要一台机器,初始化内存、初始化计算环境都需要时间。

这些是一个工程上面的,说起来其实也不是一个革命性的东西,但是这三个加在一起就让我们的 3.6 不管是成本也好,或者计算的时间也好,都会有好几倍的下降,所以我们越来越觉得能够把 ZK Rollup 放在生态环境里面去运行了。

结束语:

文章的最后一个问题对于大多数人来说不是特别有效的信息,放在文中也会让文章显得过长,但我留下它,因为喜欢最后一段的这种表达。