curve and matter labs团队很高兴地宣布,以太坊向安全和去中心化扩展迈出了一大步:今天,我们与curve finance推出了**基于DAPP的zksync L2智能合约测试网络。
为什么ZK汇总?
可伸缩性是以太坊的迫切需求——隧道尽头有一盏灯。Vitalik buterin刚刚宣布,rollup是现阶段扩展以太坊的“唯一选择”[6],强调了其[独特的无信任安全保障](/matter labs/evaluating-ETHereum-l2-scaling-SOLutions-a-comparison-framework-b6b2f410f955 quot; unique trust free security assurance quot;)。
ZK rollup(zkr)是两个现有的汇总版本之一,另一个是**汇总(or)[8]。两种方法都有各自的权衡(见详细比较[9])。这是主要的实际区别:
安全—即使只有一个验证器,ZK汇总也非常安全,因为它们依赖纯数学,而不是持续的经济激励来确保资金安全。除了密码假设之外,zkr与基L1一样安全。这对于处理资产价值高的协议尤其重要。与zkr相比,**上卷具有较强的抗网络效应:其安全性与锁定值成正比。事实上,有必要控制资本上限(在数千万美元范围内),以便将其安全地置于单个**上卷中,从而保持对针对L1的高度合理攻击的抵抗力[10]。只要以太坊仍然是一个能量链,它就无法缓解。
**确定。ZK rollup的最终确定时间(分钟)较短,因此它支持资本快速返回L1(L1:第一层,即以太坊自己的网络)。相反,**累积被迫在快速退出和资本效率退出之间做出选择,而不是两者都选择。大多数研究人员认为,或需要至少一周的争议延迟。这对于与L1上的契约的互操作性很重要,L1将继续在生态系统中扮演重要角色,至少最初是这样。
可编程性-支持EVM与优化汇总的完全兼容性更容易。一般认为or方法是将现有以太坊智能合约引入L2(L2:layer 2 network)的唯一可行方法。但这种情况即将改变。
ZK汇总智能合约?
直到最近,在ZK rollup中支持任何用户定义的智能合约都是一项具有挑战性的任务。但是现在,在零知识证明领域,事情进展得很快。在2020年,我们取得了一些突破,最终使之成为可能:matter labs引入了Zink编程语言和snark友好的Zink VM,并实现了以太坊递归的防爆震验证[12]。这些技术的结合将促进智能合约在zksync上的实现。
锌VM是如何工作的?
合同是用锌编程语言编写和编制的。编译器输出是双重的:
锌虚拟机的字节码。
合同的snark身份验证密钥。
zync VM字节码+认证密钥可以在未经许可的情况下部署到zksync网络。合同将在L2中分配一个新地址。每当用户与合同交互时,zksync的验证器将执行zync VM操作码,并生成交易有效性的零知识证明–友好snark zync VM的特殊设计使之成为可能。然后,由rollup块电路根据部署的验证密钥递归地验证证明。然后,以太坊上的zksync智能合约验证块证明,通过授权状态转换,可以在一个块中快速验证所有事务状态转换。
因此,zksync上的锌智能合约继承了有效性证明的严格安全保证。
如何为zksync编写智能合约?
目前,我们必须使用锌编程语言编写锌虚拟机的智能合约。看看**版本的锌书[13],你会发现一个完整的入门指南和一个完整的开发者参考。我们期待您的问题和反馈在锌吉特聊天室[14]。
锌目前处于封闭式β开发阶段。如果您有兴趣尝试您的项目,请与我们联系[15]
锌和固含量/类有什么区别?我可以移植现有的源代码吗?
锌遵循简化的rust语法,但它利用了所有智能合约元素和坚固性结构。任何有经验的SOLidity/Vyper开发人员都可以在几天内了解它。
由于锌在结构上与固含量相同,所以将现有的固形代号转换为锌是很容易的。主要的挑战是锌还没有完全图灵完成。这意味着禁止递归和无限循环(有限循环是可以的)。
其次,流行的ETH智能合约语言Vyper并不是图灵完备的。因此,今天的任何Vyper程序都可以同构转换为锌。这就是curve在zksync上的工作方式:matter labs帮助curve团队将现有的curve合同重写为zinten版本。它几乎一行一行地与原始源代码相同。
尽管zinten本身并不是图灵完备的,但实际上任何可以在SOLidity中完成的事情都可以在zinten中完成,只需很少的修改,部分原因是大多数DeFi应用程序代码很少需要循环或递归,部分原因是图灵机完整组件可以通过使用事务级递归来重新实现,也就是说,契约通过外部调用调用调用自己的公共方法(仍然可以在zksync中实现)。
此外,我们还有更多的好消息:matter labs正试图在不久的将来完成zinthuring。在此之前,我们很乐意支持您的团队使现有的SOLidity代码可移植。请联系[16]
可组合性怎么样?
ZKSyncL2网络中的所有合约都能够以与以太坊家庭网络完全相同的方式进行原子式调用。
如何管理用户密钥?
在第七轮gitcoin赞助[17]中,zksync直接集成到结帐流程中,这需要信任gitcoin的网站。在这个演示中,zksync私钥永远不会离开连接.zksync.dev[18] 范围。这种类的集成类似于web2世界中的单点登录认证方案,后者广泛用于Google/apple/Facebook登录。这实际上意味着zksync现在可以用于任何以太坊钱包和任何数量的完全不可信的dapp。
即使zksync网站被黑客攻击,我们的方法也需要通过使用以太坊钱包对每条消息分别进行签名来验证两次。目前,我们的服务器已经验证了该签名,尽管递归plonk-proof现在允许我们将其直接集成到zkp电路中,而不需要太多开销。
同时,我们正在与其他团队合作开发一个通用的以太坊L2签名标准,这将使用户在与L2合同进行交互时更加愉快。
锌Alef的局限性是什么?
测试网络功能齐全。您可以编写智能合约,将其部署到测试网络,在本地测试它们,并生成智能合约执行的零知识证明。每一笔交易都会在zksync测试网络上产生真实的代币转账,这将反映在区块浏览器和钱包中。
然而,在这个阶段,锌VM还没有集成到zksync核心中。锌编程语言中的一些重要功能也可能丢失。根据社会需求,优先发展功能。
文章标题:Curve+zksyncl2:以太坊的zkrollup智能合约
文章链接:https://www.btchangqing.cn/151780.html
更新时间:2020年11月30日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。