|Curve的Layer 2选择:简析ZK Rollup各项优势( 二 )


为了解决这一短板 , 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代币进行交易 。
*当前局限
【|Curve的Layer 2选择:简析ZK Rollup各项优势】目前Zinc VM还没有集成到zkSync核心中 。 Zinc编程语言中的一些重要功能也可能有缺失 。 这有待后续的完善 。


推荐阅读