基于ZK-Rollup的Curve要来了
在过去几个月的DeFi冲击之下,以太坊网络不堪重负。Layer 2和分片是以太坊未来可扩展性的路径。不过分片的成熟落地需要好些年,目前来说,最有可能的扩展路径是Layer 2,而在目前的各种Layer 2路径中,Rollup系列是最被看好的技术路径。
Rollup系列中主要有ZK Rollup和Optimistic Rollup,目前它们的进展都还算顺利。9月底 Optimism团队宣布其测试网第一阶段开启;Fuel也向测试网推进;Loopring、zkSync、Deversifi(基于Starkware技术)也已经有了ZK Rollup的落地。之前蓝狐笔记提到的Zeroswap《ZeroSwap:基于ZK-Rollup的 DEX》也要推出基于Zk Rollup的AMM模式DEX。Layer 2在未来半年到一年时间里会呈现出蓬勃发展的态势,尤其是在DeFi领域。
而Curve在Layer 2方面的推进速度较快,如今基于Zk rollup技术的Curve 也马上要来了。根据Matter Labs和Curve的公告,在Matter Labs的帮助下,Curve团队将现有的Curve合约重写为Zinc版本,目前已经开放测试网进行测试。
(https://zksync.curve.fi)
Curve 的Layer 2 选择
之前蓝狐笔记也介绍过layer 2赛道《以太坊的Layer 2赛道》《以太坊layer2突破性进展:意味着什么》,也介绍过ZK Rollup和 Optimistic Rollup的区别《一文读懂ZK Rollup和Optimistic Rollup:以太坊重要的扩展方向》。那么,Curve为何选择了基于ZK Rollup的 Layer 2方案?
虽然市场上每个Layer 2技术都在提自己的优势,但最终来说,每个解决方案都有其均衡选择。有些协议对于安全的需求没那么高,而对于性能的需求更高,比如游戏类的项目。有些协议在安全上无法妥协,比如DeFi协议,DeFi协议锁定的总资产量超过百亿美元,在其上交易的资金量高达数十亿美元。对于这些协议来说,安全性是首要考量的因素。
当前来看,相对而言,Layer 2方面,ZK Rollup和 Optimistic Rollup获得了更多DeFi协议的青睐。尤其是ZK Rollup在安全性上接近于Layer 1的级别,因此也被视为是未来一段时间内最具前景的Layer 2方案。当然,在这个过程中,也有可能会有新的更好的解决方案冒出来,这需要时间来催化。
Curve选择ZK Rollup很重要的原因是其安全性的考量,目前Cuvre上锁定的资产量超过15亿美元,近期日交易量大约1.5亿美元,已经具备了相当的规模,无法在安全性上进行过多权衡。ZK Rollup几乎可以达到Layer 1级别的安全。这是Curve 选择ZK Rollup的一个重要原因。
相对于采用经济激励的博弈模型,ZK Rollup安全性更依赖于纯粹的数学。此外,Optimistic Rollup有潜在的安全性问题,会随着其锁定资产量的增加,其安全性反而可能下降。因此,它有一个相对安全的资产范围,如果资产规模过大,可能会遭遇攻击。
此外,在最终性方面,ZK Rollup相对于Optimistic Rollup也有一定的优势,ZK Rollup可以在几分钟内达成最终性,它支持资金快速撤回到Layer 1。而Optimistic Rollup有一个争议延迟时间的设计,一般至少需要一周时间。
当然,Optimistic Rollup也有其优势,相对于ZK Rollup,它在可编程性方面更友好,它支持EVM兼容,在将现有以太坊智能合约带入Layer 2方面更便捷。
为了解决这一短板,Matter Labs宣称其在ZK Rollup上实现了一些突破,尤其是支持任意用户定义的智能合约方面。Matter Labs引入Zinc编程语言和对SNARK友好的Zinc VM,并为以太坊实现了递归PLONK证明验证。这三者结合将支持在ZkSync上的智能合约。
*Zinc编程语言
根据Matter Labs的公告,在目前情况下,必须使用Zinc编程语言编写Zinc VM的智能合约。Zinc遵循简化的Rust语法,同时借鉴了来自Solidity的所有智能合约元素和结构。Zinc在结构上跟solidity基本相同,将现有的Solidity代码转换为Zinc相对容易。不过,当前它还不支持图灵完备(后续有计划支持),因此它禁止递归和无限循环。此外,当前的Vyper程序都可以同构转换为Zinc。有经验的Solidity/Vyper的开发者可以在几天内掌握。
Zinc本身不是图灵完备,不过在它上面可以完成在Solidity上的工作,进行少量的修改即可。目前多数DeFi应用的代码很少需要循环或递归,此外,图灵完备的组件也可以通过利用交易级别的递归来重新实现。
*Zinc VM
按照Matter Labs的介绍,合约用Zinc编程语言进行编写和编译。Zinc VM字节码和SNARK验证密钥可以以无须许可的方式部署到zkSync网络。
合约会在Layer 2内分配到一个新地址。当用户跟合约交互,zkSync的验证者会执行Zinc VM操作码,并产生交易有效性的零知识证明。证明将由rollup 区块电路通过已部署的验证密钥来进行递归验证。区块证明则由以太坊上部署的zkSync智能合约验证,以授权实现状态转换。在可组合性方面,所有zkSync Layer 2的合约都可以相互调用,跟以太坊主网上一样。
*用户密钥管理
根据Matter Labs的声称,zkSync直接集成到结账流程中,这种集成类似于web2.0的单点登录的身份验证方案。假设zkSync网站被黑,也需要通过用户以太坊钱包额外以消息签名方式进行双重因素验证。该签名当前由其服务器验证。为提升用户体验,Matter Labs正计划跟其他团队合作开发通用的以太坊Layer 2签名标准。
*开放测试
测试网功能已经齐全。用户可以编写合约,并部署到测试网上,进行本地测试,并生成智能合约执行的零知识证明。每笔交易会在zkSync测试网上进行真实代币转移,这些都会反映到区块浏览器和钱包中。用户需要用真实的测试网 ERC20代币进行交易。
*当前局限
目前Zinc VM还没有集成到zkSync核心中。Zinc编程语言中的一些重要功能也可能有缺失。这有待后续的完善。
-----
风险警示:蓝狐笔记所有文章都不能作为投资建议或推荐,投资有风险,投资应该考虑个人风险承受能力,建议对项目进行深入考察,慎重做好自己的投资决策。