在 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 时间及主题正在确认中,敬请关注!