受访者:Ye Zhang,Scroll 创始人
采访:念青,链捕手
去年年初,三个年轻人在以太坊社区相遇,提到使用zk技术建设以太坊扩容的未来,他们一拍即合。这是Scroll开始的故事。
今年4月,Scroll宣布完成3000万美元A轮融资。值得一提的是,几位以太坊基金会成员和以太坊社区成员也作为天使投资人加入了这轮融资,从这一点上,也能看得出Scroll和以太坊社区保持的紧密关系。
相较Optimistic Rollup,zk-Rollup方案开发难度大,但每笔交易确认时间更短,手续费更低,安全性更强(仅仅依赖于数学和密码学的假设),Vitalik也曾表示长期更看好 zk方案。不过,Optimistic Rollup方案落地更快,目前在zk-Rollup领域,Starkware、zkSync尚不能做到像Optimistic Rollup那样顺滑的EVM兼容,名声最响的几个项目也还没有发币。
但近期,zk系开始集中发力,Polygon Hermez宣布开源 zkEVM,ZKSync 发布了ZKSync 2.0 计划,而Scroll在上线pre-alpha 测试网后也宣布了zkEVM的详细发展路径。
Scroll号称最兼容EVM的zk-Rollup。目前在zk-Rollup赛道,还存在两个普遍的问题:一是zk-Rollup目前仅支持支付、转账等较为简单的功能,尚未支持通用的功能;二是尚未建立起去中心化的验证网络。这些问题也是Scroll的起点。
近期Scroll创始人Ye Zhang接受了链捕手的专访,和我们一同探讨了目前zk-Rollup赛道的现状和Scroll在这场突围战中的技术方案与位置,以下是对话全文:
1、链捕手:请简单介绍一下Scroll团队和发展历史。
Ye Zhang:首先介绍一下我们三个主要的创始人。我本科在北大,从2018年开始从事ZK证明方面的工作,之前主要在研究zk证明硬件加速和zk密码学算法原理,后面博士也是zk方向的,但是现在quit掉了,全职在做Scroll的事情。
Haichen 本科就读于清华姚班,博士毕业于华盛顿大学,研究方向偏向于底层系统领域。毕业后在亚马逊从事搭建机器学习系统等方面的工作。他做的东西很硬核,在工程能力会比我强很多,但我在zk方面会更熟悉一些。
Sandy毕业于剑桥大学,曾在香港证监会从事研究方面的工作,17 年开始开始从事 Web3 项目投资方面的工作,之前也做过游戏、产品类的项目。目前在团队负责非技术领域的工作。
我们三个人中,我更熟悉zk一些,Haichen更擅长如何从理论到实践搭建起系统,Sandy更熟悉一个初创团队的品牌、合作伙伴关系、生态等。我们三个人的背景比较互补。
决定做Scroll 是因为我之前一直在接触zk,我很清楚zk的证明者(prover)的效率低的问题是可以通过在密码学和硬件上的突破而被解决的,这会让ZKP(zk-proof)速度提高百倍。而且当时行业内还没有人做通用的zk-Rollup,比如zksync1.0、路印协议的zk-Rollup搭建起来的应用仅限于支付和转账(swap)等一些基础的功能,很难构建通用的可组合DApp。所以,我们想做一个通用的L2网络,能更好地兼容EVM,来实现部署智能合约和通用计算等更复杂的功能。
当zk的效率不再成为问题,整个以太坊的扩容层基础设施架构上一定会有很大的机会。此外,以太坊社区是非常包容且有创造力的,我们也和以太坊社区和基金会保持着紧密的联系。
我们一开始有两个目标:一是建设通用的zk-Rollup,另外一个是真正实现zk证明者(prover)的去中心化。基于这两个想法,我们写了第一版白皮书,当时拿给以太坊基金会的成员看了,探讨之后发现以太坊基金会也要做zkEVM,我们的技术路线还是很匹配的,于是就决定不如从一开始就合作。
目前,以太坊和我们团队各有十多个技术人员在以开放式社区的合作形式做zkEVM,通过开源,即使在开发阶段,任何人都可以通过查看我们的 Github 存储库来检查我们的进度,迫使我们对社区保持透明和负责。
Scroll团队从去年发展到现在,已经有40个人左右。30多位成员都是zk或者区块链方面的研究员和开发者,可以说整个团队目前的技术性还比较强,负责生态运营的非技术工作成员相对较少。在现阶段,我们还是想先把技术基础打好,所以在市场上的声音比较小。
此外,团队也比较“去中心化”,成员分散在中国、美国、新加坡、欧洲等世界各地。
2、链捕手:你怎么看待当下的zk rollup赛道,Scroll如何在这场竞赛中突出重围?
Ye Zhang:很多zk-Rollup目前只能支持特定的应用,不支持通用的智能合约。如果说给以太坊扩容只扩展转账的部分,那还是一个比较局限的事情,很难发展真正的生态,所以我会将比较范围缩小到通用的zk-Rollup。相比较之下,我们有这些特点:
首先,从开发者的角度,我们想支持一个EVM等效的zk-Rollup,可以实现与以太坊字节码级别的兼容性,也就是说,所有的EVM操作码和基础层完全相同。这就意味着开发者的代码在Scroll和以太坊上的执行效果是一样的,可以实现无缝迁移,而无需进行深度修改或重写。我们希望通过这种方式,为开发者提供最友好最原始的开发环境,支持所有的以太坊原生开发工具,开发者可以快速迁移合约,也不需要重复审计。通过这种方式,我们可以吸引到大量的EVM原生生态,这比从头搭建整个生态系统要方便和快速的多。
Zksync和Starkware已经开始支持一些通用的功能了,但在开发语言上,它们还不能很好做到EVM兼容,比如Starkware用的是Cario语言,Zksync虽然实现了solidity兼容,但底层用的仍然是不同的虚拟机。这两者的架构需要专门的编译器将智能合约代码编译成新的zk友好的IR,这种方法是语言兼容而不是原生 EVM 兼容。
对于开发者来说,在把应用从一层迁移到二层的过程中,需要使用新的编译器(compiler)再重新编译一遍,相对比较麻烦。而虚拟机架构不一样,也需要用户不断去相信新的虚拟机和编译器都是安全的,代码可能需要重新审计。
其次,Zksync和StarkNet还没有做到去中心化。目前,他们的Sequencer和Prover都由官方团队运营,出块、验证、打包都是自己来做,代码也没有开源,更没有搭建好去中心化的矿工节点,社区无法参与。中心化导致的一个问题是,所有的算力都控制在团队自己手里,意味着团队要租机器来持续承担这部分的成本。
我们很早就意识到,这种方式是不可扩展的。因此,Scroll一开始就希望增强Prover的扩展性,允许任何一个人只要有GPU机器就可以成为证明节点。甚至,以太坊的矿工在合并后也有可能用自己的机器来成为我们的证明者(Roller),这种把权力下放到社区的方式是更高效的,加入的节点越多,算力就越大,成本也会降低。
这就会促成一个正向的循环,激励社区来更新更好更快的硬件,只有这样专属于zk的ASIC才能出现和迭代,从而进一步缩小L1的最终确认时间和证明的成本,让我们的用户体验更好。我们团队内部也在开发GPU的算法,将来也会开源供大家使用。所以说,正是因为有了这样一个开放的网络,才会有更多的人愿意来共同建设。
通过前面提到的技术特点,我们会给开发者最好的体验,并且有更高的社区参与度。 最后,除了技术本身,我们也会始终支持开源社区,即public goods,为社区做更多的事情,真正意义上帮助以太坊扩容,我很认同Vitalik的观点:legitimacy在长期来看是非常稀缺的事情。
3、链捕手:Starkware使用的新语言Cairo可以支持更多需求更复杂的应用,不知道这对Scroll有什么启发?
Ye Zhang:很多人会觉得新的虚拟机会成为未来,但是现阶段,我还没有看到那种必须要部署在新虚拟机上才能运行的杀手级应用。我认为,一个好的区块链虚拟机模型应该从更底层的逻辑和整个区块链架构的角度考虑,比如“如何做到更友好地和账户交互”之类的问题,而不是说换成C 、rust等其他语言就行得通的。
其次,即使拥有通用的zkVM,想要把体量巨大的游戏类应用直接编译过来,是不太现实的。游戏应用的proving overhead要比定制的zk证明大几个量级,改进虚拟机的同时也一定要和算法以及硬件配合,这需要长期的投入。
我个人认为要一步步来,先做到zkEVM兼容,然后再去考虑其他的可能性。对于Scroll来说,我们意识到L2是服务于L1的,需要从臃肿的L1承接部分应用,首先解决以太坊的拥堵问题,而且一定不能在安全和去中心化上妥协。所以,Scroll需要用最安全的方式兼容这部分应用的移植,况且,以太坊原生的生态已经是一波很大的流量了。
当然,我们不会停留在EVM兼容的层面,在完成和以太坊完全兼容之后,我们才会根据开发者的需求考虑探索虚拟机的灵活性。
4、链捕手:Vitalik最近发表了一篇关于zk-EVM的研究,他把目前的zk-EVM分为了四个类型,并认为Scroll的ZK-EVM项目正朝着2型(fully EVM-equivalent)方向发展,建议目前最好考虑类型3(almost EVM-equivalent)。对此,你有什么想法?
Ye Zhang:我觉得Vitalik的分类标准挺好的。3型实现了字节码级别的兼容,包括debug工具等开发者所有需要的工具,除了solidity之外还要兼容EVM兼容的语言,这是3型最基础的标准;2型是能够支持更细致的EVM里特殊的预编译。随着工程进度的推进,我们会逐渐从3型转到2型,现在Scroll对开发者的体验来说,已经和2型很类似了,但目前我们还有一些功能没有做到电路里,做完这些后,就会朝着2型发展。
Vitalik提到,以太坊基金会隐私和扩展探索团队正在构建类型 1 ,我们和这个团队也是合作关系。但目前,1型对我们来说效率比较低,因为以太坊的设计和zk的设计在底层上还是不一样的。我们会致力于给开发者提供和L1完全一样的开发体验,在1型的效率方面我们也会持续关注。
这篇文章中有一点我不太赞同,我觉得所有类型的gas费都要调整,因为证明的成本和直接执行的成本是不一样的,如果定价一样的话,可能会导致潜在的攻击。
4、链捕手:Scoll和Polygon Hermez的在zkEVM技术方案有相似之处,对比之下,两者的区别在哪里?Scroll在 zkEVM开发上的进度和计划如何?
Ye Zhang:我们跟Hermez最大的区别是在zkEVM的实现方式(implementation)上,Scroll跟以太坊原生执行方式会更像,比如,Scroll出块节点会直接复用以太坊一层节点的代码,以太坊客户端的这个节点叫Geth,通过这种方式保证我们在客户端和以太坊的执行方式也是一模一样的。我们会直接把该节点额外输出的trace信息作为生成zk证明需要辅助信息(witness),然后运行zk算法来直接生成证明。
Polygon Hermez团队则为zkProver创建了一套新语言,在executor执行交易时,要把EVM字节码翻译成另一套代码,叫zkASM( Zero-Knowledge Assembly)。Vitalik认为这是一种取巧的方法,虽然内部逻辑不同,但也可以说它实现了EVM兼容,只是在执行过程中可能存在一定的风险。
比如,Scroll字节码级别的兼容可以完全适应以太坊的各种升级,包括EIP等代码升级,但Hermez可能需要手动更新来保持同步。
此外,我觉得Scroll另外一个优势是和以太坊基金会的紧密合作,因为很多代码都是我们共同开发的,将来他们可能直接会把这一套用在以太坊网络上。我们更多是在共建以太坊的未来,能在愿景上保持一致。而且Scroll决策也相对独立一些,Hermez毕竟属于Polygon的一部分,未来它如何体现MATIC的价值?是否会成为Polygon的L2呢?
再说一下Scroll 在 zkEVM 开发上的进度。
我们的测试网有这么几个阶段:pre-alpha testnet、alpha testnet和比较完整的测试网。
目前pre-alpha testnet已有一些预部署的应用,比如已经可以把Uniswap v2的合约部署到测试网上,允许用户执行一些功能如L1和L2之间的转账,swap等用户级别的交互。但目前还仅对加入白名单的用户开放。
alpha testnet允许任何人在测试网上进行交互,是无需许可的,此外开发者也可以无需许可地在网络上部署合约,alpha-testnet预计会在近期上线。
完整的testnet预计在今年年底推出,到时候会支持测试完整证明(proof)的生成,目前的证明部分已经包含了大部分opcode和storage的读写访问,还有一些剩余的电路因为工程进度原因仍在逐渐完善。
5、链捕手:目前Starkware、Zksync和Hermez都有自己的数据可用方案,Scroll在这方面是否也有相关计划?
Ye Zhang:Scroll暂时没有设计专门的数据可用性方案。首先,我们对以太坊技术的时间线还是比较乐观的,不论是Danksharding还是Proto-Danksharding。其次,引入额外的数据可用方案会让系统整体的安全性有一定的妥协,所以我们认为长期来看最好还是用以太坊作为原生的数据可用层。
专用的数据可用方案更可能会出现在 L3的专门的应用上,到时候,应用自己的社区可以决定怎么存数据、是否愿意牺牲一定的安全性来换取更便宜的交易费用等问题。
6、链捕手:为什么说目前距离正常运行zkEVM还很遥远?
Ye Zhang:很多开发工作都需要较大的工程量,比如Scroll目前还有部分未实现的代数电路。此外还有审计工作,在正式落地之前需要非常仔细的审计,之后还需要做大量的性能优化。这三点都是非常琐碎的技术性工作,需要慢慢去完成。目前给大家看到的只是一套技术上行得通的东西,主要传达出一个信号就是,zkEVM已经来了,而不是所谓的zk还要等几年。
具体要说进度的话,我认为不管是哪个团队,最早也是明年才能推出主网,投入使用。
7、Vitalik曾表示长期更看好zk rollup,但zk技术开发难度大,其技术难度主要体现在哪些方面?
Ye Zhang:和其他成熟的开发语言不同,zk语言是一种纯数学语言(例如R1CS ),即需要通过基本的加减法和数学公式把复杂的功能一层层搭建起来,也不是图灵完备的,所以开发难度很大。
为特定的应用开发zk-Rollup 需要使用该特殊的zk编程语言来编写智能合约的逻辑(称为zk电路)。如之前提到的,该语言的需要复杂的设计,要求开发者精通数学和零知识证明,并且需要漫长的审计,还可能需要自己覆盖证明的开销,整套工具需要很强的技术栈支持,这对正常的合约开发团队几乎是做不到的事情。
我们希望通过直接支持原生 EVM 执行证明,为开发人员提供快速开发体验,同时支持 L2 内应用程序的可组合性。但是这个需要我们开发一个通用的zk-Rollup,直接为EVM虚拟机设计zk电路,这个比普通的智能合约对应的zk电路工作量和设计复杂度要高很多很多,但是它也同时将复杂的zk开发全部转移到了我们自己身上,一旦开发完成,应用层开发者是不需要了解底层zk细节的。
8、链捕手:近期,dYdX离开Starkware开始拥抱应用链,其背后的原因之一是Starkware技术开发周期长和L2短期内不够去中心化的问题,Scoll目前在去中心化验证网络方面进度如何?
Ye Zhang:L2的去中心化验证的确存在很多挑战,也会涉及到更复杂的经济模型和激励模型。前面提到,Scroll一开始就需要解决去中心化验证的问题,目前第一阶段是先通过硬件加速来提高prover的性能,实现prover的去中心化。下一步是sequencer的去中心化,届时,任何人都可以运行节点。但目前还需要中心化的sequencer把整个zkEVM的系统跑得非常稳定,否则过早将sequencer去中心化会极大地增加设计复杂度,并给系统带来一些安全隐患。
我们团队已经在这个领域研究了,并且比较几套不同解决方案,等zkEVM稳定之后,我们会着重朝这个方向探索。
9、链捕手:Scroll创立的时间并算不长,但也算较为迅速地在今年四月融到了上千万美元的资金,这个过程有什么经验之谈?
Ye Zhang:其实我们整个A轮融资在去年年底就结束了,只是在今年四月才正式宣布,并且在Dev connect正式亮相。zk也算是一个风口,而且我们致力于做最兼容EVM、更通用的zk-Rollup,整个融资过程相对来说还是很顺利的。
我们在挑选合作伙伴的时候比较谨慎,其中一个标准就是有比较强的研究能力和技术实力。这轮合作的几家机构比如Polychain、Geometry和Bain Capital Crypto,除了在投资组合里有很多相关的生态项目,他们团队自身有在zk、密码学等领域深耕多年的研究者,也有一些经验丰富的工程师,比如Geometry的创始人曾是Aztec的CEO。他们能够理解我们项目的困难度,也会给我们正确的帮助。
另外本轮投资者中也有很多以太坊社区中的人,通过这种形式建立联系之后,我们在技术交流上也更方便。
所以,我们希望先从小圈子开始里建立影响力,之后随着团队的扩大和产品的成熟,再做更多。
10、链捕手:Scroll未来一年的发展战略是怎样的?
Ye Zhang:我们计划在alpha testnet之后,将更多的精力集中在部署应用和测试上,在生态上,会先部署钱包、工具类的基础设施,之后再向更多应用扩展。
与此同时,我们也会做一些教育工作,举办黑客松等活动。最近我们和联合0xPARC给大家上课,课程内容包括Halo2背后的数学原理,如何使用开发工具等,慢慢扩大我们的影响力。未来也会寻找web2的一些合作伙伴,来搭建一些scroll原生的特色应用。