11

兼容EVM又高效安全的zkSync有何潜力?

 3 years ago
source link: https://www.jinse.com/blockchain/1130782.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

兼容EVM又高效安全的zkSync有何潜力?

zkSync是Matter Labs 开发的Layer 2扩容方案,基于零知识证明运行,同时强调一流的用户及开发者体验。目前,计划中的V2版本zkSync能够兼容EVM,并很快就会开始公测。尽管还需优化才能上线,但zkSync已经展现着强劲的发展势头。

Zinc——zkSync官方打造的编程语言:

Zinc是zkSync创建的,专门为基于零知识证明的智能合约而设计的安全、简单且高效的编程框架和基于虚拟机的运行环境。与Solidity、Starkware的Cairo等类似,是用来编写基于底层的一般应用;零知识语言如Noir等针对的是隐私智能合约,代码中不包括那些执行代码的惯用函数,写的是能验证承诺的判断式,使用的是完全不同的范式。如果需要构建隐私智能合约,就必须使用零知识语言,切实理解它们的原理。如果只想写Layer2的可扩展智能合约,可直接用Solidity或者用Zinc、Cairo等语言进行。

  • 已经在以太坊(无论Layer1还是Layer2)上的应用,可以直接用Solidity的代码正常在zkSync运行。除非代码里包含特殊设置,否则不用修改任何代码。

  • 如果要开发新的应用,Rust这些更高级的函数语言会有帮助。Zinc就是Rust的子语言,它们面对各种情况都更稳定,再加上各种函数性质,句法上更简明,容易审计,降低随机错误概率。Zinc VM搭建于LVM编译器之上,可以处理正常的Rust代码,把它转换编译到虚拟机上。

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

zkRollup & zkPorter:

在 zkSync 2.0 中, L2 状态将会分成两个部分:数据可用性在链上的 zkRollup 和数据可用性在链下的 zkPorter。从zkSync的角度看,两者是一模一样的系统,只不过有两个不同类型的账户而已。用户可以调取不同地址的多个智能合约,然后与ZKRollup和ZKPorter的账户互动。这些过程除了手续费略有不同没有其他区别。用户可以自行决定使用哪个:

  • 愿意为最高的安全性多支付一些的交易费,可以选择zkSync Rollup账户;

  • 看重侧链上低廉的交易费,并愿意为此承担一定的安全风险。可以选择zkPorter账户,单笔交易费仅一美分;

之后官方会专门出份指南帮助用户在zkPorter上搭建智能合约,降低交易费。但这完全取决于用户选择,用户如果直接用Solidity,zkPorter依然可以顺利运行,无需修改或重新审计。

5436725_image3.png

zkRollup和zkPorter的用户选择:

用户选择主要取决于gas费用。总体上以太坊和区块链的应用在逐渐扩大,一旦更多人可以负担得起在该系统上交易,就会迎来数以百万的新用户纷涌而至。广泛接触DeFi、NFT和类似产品,最终大幅抬高交易费用。可以举例的是:我们如何使用银行卡账户?有储蓄账户和现金账户的话,大家是不是都会把大部分资金存入储蓄账户,同时在活期账户留些可用资金来保障日常交易?尽管面临相应的诈骗风险,毕竟信用卡有可能被盗,但好在卡上额度并不高。这与zkSync的账户类型相似:

  • 大额资产会被放置在zkRollup账户内保管,就像巨鲸们、大型基金、大额交易员们以及大部分用户一样,把黄金资产储存在安全的账户里;

  • 同时用相对费用低廉的zkPorter完成其他日常活动。

预期TPS(Transaction PerSecond,每秒系统处理的数量)

关于TPS,zkRollup会受到以太坊的限制,和其他Rollup共享以太坊区块空间,所有Rollup都会抢这个空间。

如果zkSync用上以太坊所有的区块空间,可以达到每秒两千或三千笔交易。这取决于交易类型,比如不是所有交易都是转账,有些涉及到DeFi的交易需要对存储进行更多检查、调取更多数据,所以吞吐量也会降低。但zkSync不可能占用所有空间,毕竟还有其他应用和其他以太坊用户。

现实中,zkSync可以做到每秒数百笔或上千笔交易。对于去中心化验证者是有限制的。在Layer2需要运行另一个共识,决定放什么到区块里。因为把这些交易做成去中心化,而不是由中央服务器运作是很重要的,这和一些最好的共识机制类似。总的来说,尽管TPS的天花板很高,但还是会有极限。

兼容EVM(Ethereum Virtual Machine,以太坊虚拟机)

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

潜在风险 & 防御策略

如果出现黑天鹅事件,无论出现在生态系统哪个地方,所有Layer2都会受到影响。代码错误、智能合约漏洞导致受到攻击,或者共识或服务器出了问题、系统临时崩溃,都会减少对技术的信任。zkSync V1运行了一年,期间崩溃了几次,却没有发生安全事件。但尾部风险依然会持续存在,对此,zkSync 有多层次的防御策略:

  • 双重认证:在一笔交易被放到区块里之前,首先要经过服务器和验证者的验证。只有在交易验证有效后才会产生知识证明,智能合约会验证此证明。

  • 升级机制:如果系统出现问题,官方会升级系统和修复问题。

  • 时间锁定:如果团队出现了恶意情况,试图通过升级盗取用户资金,破坏状态或任何非法行为。用户总有抽身的时间窗口,而且时间窗口较长。

  • 安全理事会:由15名成员组成,邀请社区声望高的人担任,在出现问题的时候,可以加速升级,程度要看有多少位安全理事会成员为升级担保。平均耗时会降到一两周甚至三天,修复问题的应对时间也会相应缩短。

zkRollup VS 其他Layer2方案

zkRollup可能会是从长期来看将占领领先位置的解决方案:

  • 一方面,zkRollup是Layer2技术里面唯一具备拓展性的,像zkPorter或者Validium一样,可以在同系统中既有Rollup也有侧链,而且自动可组合,没有其他Layer2可以做到一点。我们看到了币安链和Polygon的崛起,这清楚地表明存在着有一大批用户在乎交易费用高低,他们更在乎的不是安全而是低费用。

  • 另一方面,大多数交易仍然发生在以太坊上进行,意味着又有一波用户不在乎高昂的费用,他们会优先考虑绝对高度的安全。当然,前提是它必须可用。有不同的系统针对不同的用例进行优化,而zkRollup是唯一能将它们组合在一起的技术。

设想以太坊将实现极度互操作,来自Polygon或币安链的用户可以在同一笔交易中在以太坊上的Uniswap交互。他们可以进行交易,使用Uniswap和Aave以及其他协议交互然后所有资金回到自己账户上,他们只需支付Polygon上的低费用,目前这不太现实。对于两种系统,用户要先把资金转移,需要一些时间才可以进行交易,交易很贵,然后要把资金移回来(也很贵且还需要耗费时间)。但用上zkSync就有可能:用户可以在zkPorter有账户且超级便宜,在zkRollup网站上有账户,它们就像以太坊本身一样可靠,有最高级别的安全措施且完全透明。

因此我们相信,zkRollup有较大概率成为主流。Starkware等及其他更新的项目也正在研究zkRollup技术,大家都任重而道远。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK