IOSG Ventures_CN

Posted on Jan 17, 2022Read on Mirror.xyz

L2 zkSync专访|兼容EVM的ZK Rollup去中心化应用扩展解决方案

本文首次发布于2021-07-17,微信公众号IOSGVC

在Layer 2领域,有一场市场竞争。较早启动主网的项目可能会获得更多的吸引力,并在其网络周围建立壁垒。众所周知,高昂的链上交易成本与不尽理想的用户体验使人们意识到,以太坊网络迫切需要扩容。使用扩容方案解决以太坊拥堵问题无疑将有助于其大规模采用。Optimistic Rollup 和 ZK Rollup 是两种主流的以太坊 Layer2方案。Optimistic Rollup拥有EVM的兼容性和较低的技术成本, ZK Rollup 则拥有着更短的提现时间和更低的链上计算成本。再来看zkSync,作为一个兼容EVM的ZK Rollup项目,正展现着强劲的发展势头。

IOSG Ventures 与 Chainlink 联合主办的 Layer2黑客松 第二场workshop于今日以线上视频采访的方式完成。IOSG Ventures 的 Partner, Xinshu Dong 深度对话 MatterLabs 的联合创始人兼 CEO, Alex Gluchowsk,此次专访带大家深入了解ZkSync,并探索其背后的逻辑、技术原理、当前进展、及优势等,帮助并解答了参赛者最关心的问题。 Part.1 采访原文回顾

🎉 文末有彩蛋哦 🎉

🎙️ Xinshu:

大家好,我是Xinshu,IOSG Ventures 的合伙人。

今天我们有机会邀请到来自MatterLabs的Alex为我们讲讲可扩展性相关的内容。相较于传统单向展示的workshop形式,今天我们将以专访的形式呈现。我将向Alex提出一些相关问题,也会选出一些我们这次黑客松参赛的开发者比较关心的问题向Alex咨询。

我个人认为zkSync是一项超前的技术,它具有我们需要的一切功能,比如可扩展性,安全性和去中心。最近你们又推出了编程语言Zinc,解决了可编程性的问题。一切听起来很有未来感,但其实我们也确实等到了。请Alex分享一下产品成功的秘诀吧,这是怎么实现的呢?

🎙️ Alex:

没问题!谢谢你们邀请我,很荣幸能跟大家分享。zkSync事实上基于零知识证明,是大家眼中的黑科技,它确实解决了诸多问题,且方法独特,绝无仅有,V2的zkSync能够兼容EVM,但是还没准备好,目前仍在完善阶段,我们很快会开始公测。尽管目前还需要时间进行优化才能投入生产,但产品已经实打实诞生了。这项技术的所有组件也有了。剩下的就交给工程逐步补足。我认为它能以看起来轻松的方式,解决那么多问题,是因为我们花了大心思,去做出用户友好,开发者友好的体验。开发者就是我们的用户,因此我们专门把产品架构成现在这样,让现有项目实现顺利迁移。要是缺少这层考虑,便达不到这样的效果。如果我们仅考虑其技术适用性,现在我们可能还有很多难点需要攻克。但我们一开始就设计好了。这个系统需要有简单的迁移机制,这是我们的首要目标。

🎙️ Xinshu:

嗯,很好的设计,能不能多分享下,你们如何从平台的角度实现产品设计的?尤其是基于zkSync的有效性证明作为一个里程碑,它如何推动实现整个产品的设计?又是如何实现我们想要的功能特点的?

🎙️ Alex:

我们专门为此做了视频,详细解释了一些技术要点,总结起来就是,成功的关键创新在于递归, 即递归证明组合,带着不同执行路径的不同类型的交易都被整合进一个大的区块。我们要做的就是,利用以太坊兼容的EVM证明这一整个区块的执行。整合之后只需向以太坊证明一次,这便是关键性技术。自去年实现递归之后,余下的就只是工程上的问题。MatterLabs 一点点查缺补漏,使这种组合切实可用。

🎙️ Xinshu:

听起来很棒!我认为zkSync技术的美妙之处在于,一方面它背后的数学计算极其精妙,保证了产品的安全性。另一方面,用户和开发者的体验非常友好。用户并不需要尽知其背后的机巧,就可以自如地掌握它的功能,对吧? 

🎙️ Alex:

我想假设真的实现了扩展性强且快速安全的应用平台,理论上来说,我们或许有两种方式与智能合约,也就是现在的Dapp交互。

🎙️ Xinshu:

你们为什么会考虑将智能合约从到Layer1迁移到Layer2时,既不重写回归到Zinc,也不采用编译器把Solidity加到Zinc里面?

🎙️ Alex:

整体迁移当然是一种方法,相当一劳永逸,只需在Layer2操作就可以。但还有另一个途径,即通过整合Layer2上的用户和资产来直接与Layer1上的合约和Dapp交互。有些项目选用的就是第二种途径。比如Aztec和Layer2.Finance。

🎙️ Xinshu:

那么关于这两种途径的优势劣势,你个人的见解是什么呢?

🎙️ Alex:

我很喜欢整体迁移的途径,可以帮助你实现意想不到的功能。比如Optimism正在做的隐私应用,可以提供进入 DeFi的隐私通道。而这两种途径的主要区别在于用户体验。这也将驱动用户拥抱原生Layer2的功能。如果不正面解决这个问题,用户体验只会大打折扣。因为如果你选择整合交易,就意味着你在执行一项交易时,并不是完整交易。你必须等同批次的其他用户发起相同的交易。这就需要庞大的用户体量来保证类似交易的基数。

比如你在Uniswap上,想兑换一些不常见的代币,你就必须等待许多想使用相同交易对的用户来证明这笔交易执行。如此一来这一批才算结束。成本由该批次用户分摊。这样的方式耗时颇,从几小时,到几天不等,交易无法迅速完成。但是如果有一些Layer2原生资产,当Layer2项目迁移的时候,你的交易可以被瞬间确认。尽管可能还需要等一小时左右,来最终完成交易,但交易确认信息可以立即生成。一同生成的还有区块内的经济保障。大部分用户持有该确认信息就可以了,如果你的交易没有高到几百万美元,那么这个经济保障就足够了,能够立即得到确认。对用户来说这是极佳的体验,其产生的情感反馈也是极为重要的,大家会不自觉的对它产生粘性。

但另一方面讲,还有一些经济优势。就好比等的时间越长,价格变化概率越大。用户也不得不提高交易滑点,即时交易可就高效多了,用户自然会喜欢。等待的时间少了,非交易员型的用户交易利润也更高。

🎙️ Xinshu:

是这样的,我想应该还是有些权衡的吧。你刚刚提到的等待时间,可能不同类型的DeFi应用对这两种方式来说也一样合适,对吧?

🎙️ Alex:

如果用户对价格波动敏感度高,那么该用户可能会选择迁移应用到Layer2上,并在上面稳定运行。

🎙️ Xinshu:

说到运行智能合约,或者在Layer2编写智能合约的问题,鉴于我们的观众们,都具有开发背景,能不能分享一下您针对zkSync开发语言的个人见解?比如Zinc Cairo和Noir,您如何看待它们?开发者该如何选择最适合他们应用的zk开发语言?

🎙️ Alex:

我想先把零知识语言Noir拎出来,它跟Solidity Cairo和Zinc之类的语言不一样,这些是通用的智能合约编程语言,用来打造普通应用的,即基于Layer1的应用。但是Noir之类的语言针对的是私人智能合约,使用的是完全不同的范式。你写的代码中不包括那些执行代码的惯用函数。你写的是能验证承诺的判断式,你必须完全换个思路,这个暂且不深聊。总之 如果你需要构建私人智能合约,你就必须使用那类的语言,学习它们的范式,切实理解它们的原理。如果你只是想写几个Layer2的可扩展的智能合约,你就不需要那些。你要么可以直接用Solidity写代码,或者用新的办法,比如我们正在打造的Zinc或者Cairo等语言来写你的合约。

我的建议是如果你在以太坊上有一个应用,无论是针对Layer1还是Layer2的,无论你在Polygon还是在Layer1开展实验,都不用费太多心思,可以直接用Solidity的代码部署。

不用修改,就可以在zkSync上部署。除非你的代码里包含特殊设置,比如密码学,否则完全可以正常运行,任何代码都不用修改。

如果你要开发新的应用,Rust这些更高级的函数语言,就可以帮到你。Zinc就是Rust的子语言,它们会更适合你的代码,面临各种情况都更稳定,再加上各种函数性质,句法上更简明,容易审计,降低随机错误概率。因为句法以安全为宗旨,我们最终会实现支持完整的Rust语言。Zinc VM其实搭建于LVM编译器之上,所以我们可以处理正常的Rust代码,把它转换编译到虚拟机上。

如果你在从零开始开发程序,针对某一Layer2平台,比如zkSync,你可以直接用Zinc代码进行部署。或者你应用的部分代码,是用Rust写的,而你恰好想保留这部分代码,那么这个机制就对你非常有利了,但其实大部分用户用Solidity就可以。

🎙️ Xinshu:

听起来感觉工具链已经发展得很好,用Solidity语言开发完全没有问题,你甚至可以把Solidity代码,至少大部分代码,转到zkSync上运行。

🎙️ Alex:

没错。

🎙️ Xinshu:

我看了V2的发行介绍,目前还有少量边角案例,以及极少的指令还未能支持。但我想它们也可以用其他指令替代吧。至于SHA3和Keccak,可以暂时用其他东西替代,最终会支持的。您能否再聊一聊,开发者们是否需要担心,这些边角案例支持不了,会不会造成不兼容问题。还是说他们完全不用担心?

🎙️ Alex:

第一次发布的产品,只有少数几个方面不能支持,后续会补。但我们不计划在第一次发布中包括它们,首要内容是关于密码学的相关操作,即增加、减少或移除等模块化操作。还有将预编译函数,转码为密码学函数,如EIP 1962等、验证配对等等,这些功能暂不支持,但他们也并非大部分应用需要的。本质上需要这些功能的,只有正在搭建零知识证明的应用,或者正在用密码学搭建预警的应用。大部分DeFi智能合约,不需要这些功能。如果你确实需要这些功能,就必须耐心稍作等候,便可以在zkSync上获得更高的收益。zkSync平台上有很多不设限的密码学原语,比以太坊上的便宜许多。因此zkSync上递归零知识证明加密验证不会比一次普通交易贵特别多。

第二种操作,针对的是比较困难的问题。还有许多内容要添加,比如Keccak哈希方程,即以太坊本地哈希方程,以及我们区块帖子中列出的其他事项,在第一版中不会呈现。要用到Keccak的地方,都会被替换成一个不同的函数,我们称之为代数哈希方程。如此一来 如果只是程序内部需要哈希值,该程序不会受影响。如果你的合约需要计算外部哈希值,然后在合约内部进行验证。这就有一个问题,用户必须花时间等待,验证以太坊签名时也一样,当用户从外部签字时,必须在合约内进行验证,而我们的第一版不支持该行为。这样操作的合约也不多,但确实有需要的用户 就得等一阵子了,尤其是针对Keccak的改进。

🎙️ Xinshu:

代数哈希方程产出的哈希值,符合所有规定的参数吧?

🎙️ Alex:

是的,跟其他非代数方程的值一样,比如SHA256和Keccak。我们严格按照规定方式计算,得出与以太坊一样格式的哈希值,支持所有的哈希方。如果要说困难,我们一直支持Keccak和SHA256。但是像签名,用户可以直接签 不需专门的签名程序,可以直接从MetaMask或其他钱包向zkSync发起交易。我们面临的挑战是可变化的哈希方程出现长度不一的哈希值时,必须额外补充内容,比如zkSync的预编译函数等等,确实是些额外工作,还是得花些时间等它完成。

🎙️ Xinshu:

我们把话题转到更大的层面,现在已经有了ZKRollup架构。我也感觉人们对于Validium的热情日渐增长,更有人偏向二者的结合Valition。你们团队还推出了zkPorter。我觉得大家清楚其中的区别,尤其在数据可用性方面,以及它们目前承诺的功能,或者能够承诺实现的更强的功能。只要以太坊推出数据可用性层。但我的问题是开发者是否需要关注它们的区别,他们的开发逻辑应该如何分割来适应这两种架构,还是说他们什么都不用做?有没有工具辅助他们?

🎙️ Alex:

在两个架构间分割逻辑和数据,开发者实际上不用做任何事。因为从zkSync的角度来说,它们是一模一样的系统,我们只不过有两个不同类型的账户而已。但是系统本身彼此完全一致,你可以在两个账户间互动,也可以调取不同地址的多个智能合约,然后与ZKRollup和ZKPorter的账户互动。这些过程没有区别,除了手续费略有不同而已,但都在可接受的范围之内,用户可以自行决定使用哪一个合约。作为开发者确实无需担心。交给用户决定吧,他们愿意为最高的安全性多支付一些的交易费,因此选择zkSync Rollup账户,还是看重侧链上低廉的交易费,并愿意为此承担一定的安全风险。因为选择zkProter账户,后者的单笔交易费仅一美分。当然也会有办法改进合约,更大程度利用后者的优势,但都取决于用户的意愿。我们会专门出份指南帮助用户在zkPorter上,搭建智能合约 降低交易费,但这完全取决于用户选择,用户如果直接用Solidity,不做其他事情。它依然可以顺利运行,无需修改或重新审计。

🎙️ Xinshu:

听起来像是 开发者只需要基于一个平台进行开发和使用的时候,可以自动进行两套部署 对吗?

🎙️ Alex:

用于zkRollup(和zkPorter)。因为他们就是一个平台,是一个平台上的两种账户类型。

🎙️ Xinshu:       

想象的到,要么终端用户自主决定,要么一些用户端的应用或前端应用。会帮助用户决策。

🎙️ Alex:     

没错

🎙️ Xinshu:

那您个人的判断呢?一到两年之后,两种决策途径的占比会是多少?用户自主决策VS应用助推用户决策,也就是zkRollup部署和zkPorter部署的比对?

🎙️ Alex:

好问题!部署情况来看。所有的应用都位于Layer2系统之上。因此用户可以自行判断,用户选择主要取决于交易费即gas费用。我个人认为会上涨,因为总体上以太坊和区块链的应用在逐渐扩大。一旦更多人可以负担得起,在该系统上交易,我们就会迎来数以百万的新用户,纷涌而至。广泛接触DeFi、NFT和类似产品,最终大幅抬高交易费用。与之类似的是:你如何使用银行卡账户?有储蓄账户和现金账户的话,大家是不是都会把大部分资金存入储蓄账户?同时在活期账户留些可用资金来保障日常交易。尽管面临相应的诈骗风险,毕竟信用卡有可能被盗,但是好在卡上的额度并不高。这与我们的账户类型相似。大额资产会被放置在zkRollup账户内保管,就像巨鲸们、大型基金、大额交易员们 以及大部分用户一样,把黄金资产储存在安全的账户里。但是用zkPorter完成日常其他活动,后者相对费用低廉。

🎙️ Xinshu:

嗯!很实用。这样设计很棒。好处是一次部署可自动完成两项交易, 或者说两种交易。一经推出肯定会大受欢迎。这是对于部署在zkSync上应用的情形,我说的对吧?无需再执行任何额外操作?

🎙️ Alex:

不用。

🎙️ Xinshu:

能跟我们说说。关于上线后交易的延迟性和TPS或其他方面的预期吗?主网还会在八月上线吗?

🎙️ Alex: 

测试网应该在这个月会上线。我们这个月会对外开放测试网。主网上线时间具体要看系统情况。我们没有设定特定的时间,但不会让大家等太久。关于TPS,zkRollup会有以太坊的限制,会和其他Rollup共享以太坊区块空间。所有Rollup都会抢这个空间。当然了zkRollup有优势,因为它对链上数据的要求更少,所以吞吐量会更高。如果我们用上以太坊所有的区块空间,我们可以做到每秒两千或三千笔交易。这取决于交易类型,比如说每秒三千笔转账,但不是所有交易都是转账,有些涉及到DeFi的交易需要对存储进行更多检查。你要调取更多的数据,所以吞吐量也会降低。但我们不可能用上所有空间,毕竟还有其他应用和其他以太坊用户。现实中我们可以做到每秒数百笔或上千笔交易。zkPorter的话,我们没有任何限制,它可塑性很大。当然我们对去中心化验证者是有限制的。我们在Layer2还是要运行另一个共识,Layer2来决定放什么到区块里。这才是限制因素,而不是零知识证明。因为把这些交易做成去中心化,而不是由中央服务器运作是很重要的。这和一些最好的共识机制类似。如果你关注Facebook Libra或其他以太坊杀手的话。它们可支持的级别,我们也可以做到。所以尽管天花板很高,但还是会有极限的。

🎙️ Xinshu:

关于延迟性,就用户体验来说,用户会立刻收到交易确认,在以太坊交易最终交易完成会花更长的时间。根据交易数量情况可能要花几分钟,甚至几小时。交易越多,我们就能加入更多检查点,这由验证者来决定。比如说每秒有1000笔交易, 那么每分钟或者每半分钟可能会有一个检查点 。但如果开始时交易数量没那么多。比如每秒只有几十笔交易,甚至更少的话,你就要等到交易数量足够多。比如说一个区块里要收集到三千到一万笔交易,才会提交到以太坊上。如果我对自己的基础设施足够自信的话,是不是也可以运行一个节点来做验证。那么至少就我的应用和流动性来说,我能够几乎做到即时结算。这可能吗?

🎙️ Alex:

这不太可能。和在以太坊上运行你的节点一样。你还是需要等矿工敲定交易。跟Optimism Rollup不一样,zkRollup的话,你完全依靠以太坊的安全性,你不用有自己的节点或验证,才能保证完成交易。但只有当区块足够大的时候才会有最终确认这个检查点,交易才会完成。但在区块完成收集前你会收到交易确认, 你提交的同时就会立刻收到确认。在区块被提交到以太坊之前,矿工可以决定在区块里重新安排交易。你能够看到所有动作,而且能够获得补偿。这就是为什么我说,你会立即收到资产安全确认,说明你这次交易是会成功的。

🎙️ Xinshu:

对于一般金额的交易是这样,但如果你要转10亿美金,那你就要等检查点告诉你交易是否成功。那么补偿资金池从何而来?

🎙️ Alex:

验证者会生产区块。验证者的共识就像去中心化的排序者。但刚开始时这个排序者是中心化的,由一个服务器接受交易然后把交易放到区块里。用户要提交交易的话就要信任排序者。如果用户不信任的话,就要等检查点。检查点一旦有多名验证者的话,就会有将交易收集到区块的共识。它会指定其中一个验证者将这个区块提交到以太坊。

🎙️ Xinshu:

明白。当然,这些费用是由用户支付的。明白,非常感谢Alex。我觉得很有意思,有很多酷炫的技术。接下来我们可以谈谈更高层面的内容,也是非常重要的问题。就像我提到的,zkSync是我们现在非常神奇且极具前瞻性的技术。我觉得它在这个生态系统里有很大的优势。我很好奇你有没有什么担心的事?有什么因素会阻碍到zkSync和zkPorter的应用?

🎙️ Alex:

这个问题非常好。如果出现黑天鹅事件的话,无论出现在生态系统的哪个地方, 如果Layer2出了问题,Layer2所有都会受到影响。如果发生在你的项目那更是如此。比如说代码里有错误,智能合约里有漏洞,导致受到攻击,或者可靠性出了问题, 共识或服务器出了问题,系统临时崩溃。这都会减少对技术的信任。目前正在上线的项目都是新的,我们对zkSync版本1运行了一年。这期间崩溃了几次,但从来没有发生安全事件。我们对安全性超级上心,但不能排除这个可能性。尾部风险一直有,要做好充足准备。为了做好应对 我们有多层次的防御策略。

那么我们是怎么保护用户资金的呢?我们不久前发了一篇文章讲这个在我们的博客上。我们有多重认证保护,在一笔交易被放到区块里之前,首先要经过服务器和验证者的验证。只有在交易验证有效后 我们才会产生知识证明,这是双重认证 智能合约会验证此证明,而且我们有升级机制。如果系统出现问题,我们会对升级系统和修复问题,伴随升级而来的是时间锁定。如果我们团队出现了恶意情况,试图通过升级盗取用户资金,破坏状态或任何非法行为。用户总有抽身的时间窗口,而且时间会更长, 不是一周这么短。比Optimism Rollup给的时间窗口更长,Optimism Rollup但在某些情况下,你的动作需要快点。我可以想象会有这样的故障情况。

虽然对于zkRollup来说,几乎不可能出现盗取资金的情况,但有可能出现系统停摆。系统可能会用不了,会崩溃一段时间,然后就需要升级。为了让升级更快捷 我们引入了安全理事会。我们邀请社区里声望高的人。由15名成员组成,在出现问题的时候,他们可以加速升级,风险不会降到没有。还是要看有多少位安全理事会成员为升级担保。平均耗时会降到一两周,甚至三天。但我们修复问题的应对时间也会相应缩短。我们在策略里都考虑到了,我也建议用户都去看看。

🎙️ Xinshu:

没错,听起来你们考虑得非常周到,所有可能出问题的风险都考虑到了。非常感谢你们,让开发人员可以放心用zkSync。接下来我们用十几分钟快速过一下我们这次活动参与者提出的一些问题。

第一个问题是关于硬件加速的。我记得你在之前的视频里有提过。可以介绍一下最新进展吗?尤其是在生成证明方面。你在硬件加速方面有什么想法或计划吗?能分享一下是基于ASIC还是FPGA吗?

🎙️ Alex:

我们很快就有更新了。我们现在的硬件证明功能齐全,也在不停提升性能,很快就有新消息,是基于FPGA的。因为我们有FPGA实例云资源供我们使用。

🎙️ Xinshu:

明白,但成本可能会很高?至少在刚开始的时候。

🎙️ Alex:

不会,硬件加速的目的就是降低成本

🎙️ Xinshu:

好的,但对于大规模生产来说ASIC更加省钱。

🎙️ Alex:

确实如此,但比起ASIC,FPGA执行这些任务效率更高。因为我们会执行一些特定的数学操作,包括多次幂指数运算和变换,它们对内存要求很高,ASIC对内存加速没什么作用。和FPGA相比,ASIC的好处可能是两倍,但仅此而已,所以和FPGA比起来没有太多好处。FPGA 已经被广泛使用,可以重新编程,甚至可以在云端按需使用,

🎙️ Xinshu:

所以我们选择了FPGA。这也会有利于验证者的去中心化。

🎙️ Alex:

对的,因为任何人都能租FPGA。

🎙️ Xinshu:

好的,我们的社区有更多问题等着你。第二个问题,zkSync会和分片兼容吗?这里应该指以太坊上最终会实现的分片。你对兼容性有什么考虑吗?

🎙️ Alex:

要等分片出来了才能说得准,我们还在等分片最终在eth2上实现的细节,距离实现分片还需要一些时间。首先我们要推出PoS权益证明,然后PoS要运作得好,之后才会到分片。这要看分片最终是如何实现的,对应用有什么好处,是否可以同时访问不同分片,是否可以实现同步性等等。但分片应该能成功的,它增加了网络的吞吐量,并且为数据可用性提供更多带宽,能提高容量,每秒能处理更多交易,所以我们不用特别去计划用于分片的兼容性。

🎙️ Xinshu:

现在有个相当长的问题 ,这个问题是——zkSync是否仍然有很大的空间来提高可扩展性?比如说以太坊L1本身,提高了可扩展性,gas也降低了。这也就是说,eth2的关键里程碑取得进展会不会影响到zkSync的可扩展性。

🎙️ Alex:

一点也不会影响。eth2唯一能提高以太坊可扩展性的是分片技术。但就像我说的, 我们不知道具体分片如何运作。最有可能的情况是分片会变成同步的,分片间不具备可组合性,这将不适用于大多数DeFi的应用程序,这也是为什么Vitalik宣布以Rollup为中心的以太坊路线图。其中,Rollup仍将在eth2履行,与在eth1同样的功能。我们会带来相同的可扩展性。届时Rollup上的吞吐量将与分片的吞吐量共同发力。但我们得具体知道怎么操作,其实最难的是细节,我们需要了解分片究竟能做到多少,然后我们就能更好地评价。

🎙️ Xinshu:

是的,我觉得这个路线图,就是你刚提到的以Rollup为中心的以太坊路线图,应该能保证即使分片上线Rollup也不会收到影响。接下来这个问题是关于DDOS的,它也和去中心化的过程有所关联。有个小伙伴很好奇zkSync将如何抵御DDOS攻击?

🎙️ Alex:

DDOS对网络的攻击?其实所有的区块链都有对抗DDOS的机制,以太坊是靠支付费用,它是非常相似的,所以我不觉得zkSync在这点上和以太坊有何不同。如果以太坊上这个方法不奏效,那放到zkSync上也是一样。所以没什么不同,方法是一样的。

🎙️ Xinshu:

接下来的问题是关于EVM何时推出 。我在之前的视频中听到过你们可以支持EVM,但不是重点,对吧?有了zkSync你们已经,可以直接EVM功能了,关于这点您是否有补充?

🎙️ Alex:

好的,我试着解释一下这个系统到底是怎么运作的。有了以太坊上的EVM,你就可以把你的Solidity智能合约编译成EVM字节码;有了zkSync,你可以将你的Solidity代码编译到zkSync字节码。这个虚拟机的字节码是不同的字节码,和Optimism的原理很相似,Optimism有虚拟机,你把Solidity编译到它的字节码。但对于开发者来说并没有不同,你所做的就是把代码编译到字节码,然后在系统中部署。当然这个字节码是不一样的,它是优化的,在知识证明中是有效运行的,但是它有着同样的功能,通过了Solidity同样的测试等等。

🎙️ Xinshu:

对,所以从源代码级别它就可以支持Solidity。

🎙️ Alex:

没错。所以没有任何近期的计划要转到字节码。是,我们没这个规划。但是如果你在你的源代码中,Solidity智能合约使用程序集,那这个程序集将会运行得很顺利,因为这个支持还是很详尽的。 

🎙️ Xinshu:

接下来是个常见的问题——zkSync和其他Layer2相比怎么样?但是我想这个问题已经有很好的阐述了,比如Delphi Digital仔细辩论了一番,从业者我都建议去读读,了解下。现在如果你可以对那些试图在两种不同的解决方案中做出选择的开发人员分享一些重要的建议,你的建议是什么?

🎙️ Alex:

我先回答第一个问题——和其他Layer2相比zkSync怎么样?我觉得zkSync会是唯一一个从长期来看将占领首席地位(的解决方案)。这个陈述听上去很强势,但我可以解释为什么我这么说。zkRollup是Layer2技术里面唯一具备拓展性的,像zkPorter或者Validium一样。你可以在同系统中既有Rollup也有侧链,而且自动可组合,没有其他Layer2可以做到一点,这点至关重要。重要的原因是,我们看到了币安链和Polygon的崛起,这清楚地表明存在着有一大批用户在乎交易费用高低,这是最重要的,他们更在乎的不是安全而是低费用。

另一方面,我们看到大多数交易仍然发生在以太坊上进行,这意味着又有一波用户不在乎高昂的费用,他们想要的是最高程度的安全,他们会优先考虑绝对高度的安全。当然,它必须是可用的,你不应该等一星期才能取钱,我们有不同的系统针对不同的用例进行优化,zkRollup是唯一能将它们组合在一起的技术。设想以太坊将实现极度互操作,来自Polygon或币安链的用户可以在同一笔交易中在以太坊上的Uniswap互动。他们可以进行交易,使用Uniswap和Aave以及其他协议互动然后所有资金回到自己账户上,他们只需支付Polygon上的低费用,这不可能。

对于两种系统,你首先要把资金转移,需要一些时间才可以进行交易,交易很贵,然后你要把资金转移回来,也很贵,而且还需要耗费时间,但用上zkSync 这还是有可能的。你在zkPorter有账户,而且超级便宜,你在zkRollup网站上有账户,它们就像以太坊本身一样可靠,它们有最高级别的安全措施,它们是完全透明的。因此我相信zkRollup一定会成为主流,目前来看没有其他东西能做到这一点。还会有其他的项目类似zkRollup,比如Starkware的Cairo,我们还有其他更新的项目正在研究zkRollup技术,我认为没有项目做到了zkSync这样。Starkware可能吧,其他项目很有很长的路要走。Starkware着重用Cairo,他们没有做太多的以太坊兼容性。所以问题将会是:您需要Solidity和EVM兼容性吗?您想重用现有的应用程序吗?您想加入项目的生态系统吗?那些从以太坊迁移到系统的项目,因为他们不想重新审校代码 ,他们有过多的代码库,他们只想在那里使用相同的产品,或者你是否愿意用不同的语言从头开始构建应用程序,并在全新的生态系统中开始它。这都是你的选择。如果你关心最终的性能,比起Solidity 你更喜欢某种编程语言,也许是因为你更喜欢 Python,或者你知道Cairo的句法和更相似,那么你可以这么做。但如果你想留在生态系统中,想和Uniswap Aave, Compound, Curve Balancer所有这些现有的项目一样,它们已经致力于留在Solidity生态系统中,那zkSync对你更有好处。

🎙️ Xinshu:

听起来像是zkSync有内置的本地互操作性,即使是在不同链的生态系统中。听起来是非常美好的东西!

🎙️ Alex:

当然。

🎙️ Xinshu:

让我们开始最后的问题来结束今天的讨论,我想也和我们刚才讨论的内容有关。问题是——你是否认为zkSync会发布不同的Rollup?你知道,一些更适合比如说流媒体, 一些更适合数据密集型的计算,或是用于其他类型的应用,或者说你看到的只是背后你会有Rollup和zkPorter,但只有一个zkSync,你的设想是如何?

🎙️ Alex:

我们肯定专注于一件事,不存在任何干扰,我们要用单一的系统来建造zkSync,支持Solidity,优化其在DeFi和NFT以及各个场景的使用,我们想把DeFi带给大众。作为项目,我们的使命是推动公共去中心化的区块链被主流采用, 用这个技术连接主流用户,我们会专心做这个

🎙️ Xinshu:

听起来太棒了!谢谢Alex!我相信对于所有看这个采访的人而言,今天的谈话内容非常鼓舞人心,我希望你和我一样享受这个过程。谢谢大家!

🎙️ Alex:

谢谢所有屏幕前的观众,很荣幸能有这次机会采访Alex!

写在最后

此次专访收获颇丰,感谢Xinshu老师非常专业的深度采访,也非常感谢MatterLabs对我们黑客松活动开发者的支持与赞助,也很感激Alex分享的实践干货及其远见卓识。希望本次活动能为大家,尤其是layer2黑客松参赛者带来不一样的思考,激励大家勇于进行不一样的尝试。接下来我们将继续邀请更多嘉宾参与,无论是专访,还是Workshop形式或者其他任何方式,我们都希望能为有志于在layer2方向深入探索的伙伴带来更多灵感,为此尽绵薄之力!

关于 Alex Gluchowski:

Alex 是一名软件架构师,拥有超过15年的工程和创业经验。他目前是Matter Labs 的联合创始人兼CEO,该项目的任务是用零知识证明解决区块链的可扩展性挑战。Alex 对个人自由、自我所有权和去中心化有着极深的热情与追求。

关于 Xinshu: 

IOSG Ventures 合伙人,新加坡国立大学计算机博士,科学家,前扩容区块链高吞吐量共识计算项目Zilliqa联合创始人兼CEO。在新加坡国家研究基金会(NRF)、能源市场管理局(EMA)和新加坡交易所(SGX)的资助下,他领导了关键基础设施的网络安全和区块链的企业使用案例等多个技术项目。他是一位推动技术转型的科学家和实践者,为高吞吐量应用开发安全的公共区块链网络。

彩蛋:活动预告

接下来,我们将分别进行The Graph,Polygon,Aztec等等针对本次黑客松的线上workshop分享,敬请关注!

The Graph

  • 主题:通用API层:用GraphQL, The Graph 与 Next.js在以太坊上开发
  • 时间:2021.7.18

👀  直播链接:http://live.bilibili.com/23288126 

Polygon

  • 主题:如何使用Polygon进行应用扩展
  •  时间:2021.7.20 

👀  直播链接:http://live.bilibili.com/23288126 

Aztec

  • 主题:待定
  • 时间:2021.7.24 (拟)

👀  直播链接:http://live.bilibili.com/23288126 

其他workshop时间及主题正在确认中,敬请关注!

zkSync