分类
外汇交易新‪闻‬

长期或是ZKRollup

长期或是ZKRollup

注:原文来自bankless,作者是Alex Beckett。不要相信FUD,以太坊正在扩容。几周前,David 写了一篇题为《Ultra Scalable Ethereum》的文章。在文中,他解释了为什么以太坊正在从单一设计(共识、执行以及数据可用性都发生在一个地方)转变为模块化设计,以划分和优化这些功能。 图:CPU 和 GPU 经历了相同的单片到模块化的设计转换,以大幅提高可扩展性今天我们将深入研究执行层,执行层是我们今天大多数人参与DeFi的地方,但在明天,执行层将是rollup。而随着你对rollup的了解变得更多,你将开始意识到并非所有Rollup都是相同的。截至目前,有两种类型的rollup很突出,zkRollup和optimistic rollup。而今天我们聊的重点是zkRollup —— 一种使用零知识密码学证明来验证交易的rollup设计。我们不去谈技术细节,而是比较Matter Labs 和 Starkware 这两个获得巨额VC资金支持的zkRollup方案。零知识密码学是前沿的前沿,而通用 zkRollup则是以太坊扩容的圣杯。那什么时候zkRollup能够到来呢?Alex Beckett 向我们介绍了当今最好的两个 zkRollup 项目。 长期以来,以太坊在实施扩容解决方案方面面临着挑战,经过多年的研发,以太坊开发者社区已经转向以rollup为中心的路线图。但并非所有rollup都是相同的,而在今天,我们将重点讨论一下zkRollup。在zkRollup 领域竞争的两只领先团队是Matter Labs 和 Starkware。Matter labs拥有zkSync 1.0和zkSync 2.0,而StarkWare拥有StarkEx以及StarkNet。让我们深入研究这些项目,但首先,先快速了解一下Rollup是什么。Rollup 是一种扩容解决方案,它通过将交易捆绑在一起、压缩它们并将它们发送到共识层进行验证。这通过一次验证多笔交易来提高效率,同时还通过增加可以执行的交易数量来进行扩容。突然之间,以太坊可以在不牺牲安全性的情况下将tps从15扩展到3000+ 。特别是,相对于optimistic rollup而言,zkRollup能够使用零知识证明技术将隐私集成到rollup中。零知识通过允许一方向另一方证明某事而无需披露证明它所需的信息来实现隐私。然而,并非所有 zkRollup 都利用了零知识证明技术的隐私属性。此外,更多的用户进行zkRollup交易会使得网络的使用成本变得更低,这与典型的 区块链 是相反的,一般情况下,随着网络使用量的增加, 区块链 的使用费用会变得更加昂贵。rollup和以太坊之间的这种新的创新动态被称为“模块化 区块链 ”。StarkEx是StarkWare于2020年6月推出的zkRollup,其支持通用智能合约(此处的通用指智能合约具有运行任意逻辑的功能)。应用程序可以部署在StarkEx上,并利用zkRollup的可扩展性,同时提供与以太坊相似甚至更好的用户体验。迄今为止,StarkEx已通过其托管的四个协议(dYdX、ImmutableX、DeversiFi 和 Sorare)处理了 4200 万笔交易以及1850亿美元的累积交易额。 因为rollup部署在以太坊上,因为它们会受到以太坊局限性的限制,因此,StarkEx 推出了一个名为 validium 的新系统,为应用程序和用户提供更便宜的选择。Validium 的机制与 zkRollup 非常相似,唯一的区别是 zkRollup 中的数据可用性是在链上,而 Validium 将其保持在链下。这允许 Validium得以实现更高的吞吐量。Alex Gluchowski Validium交易费用非常便宜,在实践中,它们已经被StarkEx上的协议抽象掉了。ImmutableX就是这样一个例子,铸造和交易NFT的gas费用均为0美元,而以太坊的NFT交易费用在20-250美元之间。DiversiFi还提供了0美元的gas费用,使其能够遵循与中心化交易所类型的费用结构。StarkEx 还具有了 SHARP 功能,该服务允许将来自多个应用的rollup批量交易聚合为一笔交易,并立即发布到以太坊,它目前与 DeversiFi 和 Sorare 一起运行,使它们能够为用户进一步降低操作成本。zkSynczkSync 是由Matter Labs打造的zkRollup二层网络,它专为可扩展的支付而构建,用户可以将资金存入该网络并与其他 zkSync 帐户之间进行交互转账,而成本只是以太坊主网的一小部分。自2020 年 6 月主网启动以来,zkSync已处理了 400 万笔交易,转账的费用低至 0.20 美元 。用户交易可使用任何支持的代币(例如ETH、DAI、RAI)以及正在转移的代币进行支付,而无需持有特定的费用token。截至目前,zkSync 所有 存款 的 TVL 总额为 2400 万美元。zkSync网络迄今遇到的峰值负载是在Gitcoin 赠款期间,大约为每小时 20000 笔交易(TPS 5.6),尽管这比StarkEx 展示的 18,000 次转账少了很多,但它持续了整整一个小时的时间。今年7月份,zkSync 还增加了 NFT 的功能,用户可使用它铸造、交换以及转移NFT。 虽然 zkRollup不需要像optimistic rollup那样有一个提款的等待期,但zkRollup在发送到 L1 之前确实必须等待区块填充。实际上,这意味着如果交易数量低,提款可能需要等待几个小时的时间。 StarkNetStarkNet 是 StarkWare 的下一次zkRollup迭代,根据计划,他们将于本月推出StarkNet alpha 主网。这可能会使其成为第一个在完全可组合的网络上提供通用智能合约的 zkRollup,而这是一个被认为需要数年时间才能实现的壮举。所谓可组合性,是指应用程序协调、相互构建和互连的能力。截至目前,类似StarkEx这样具有智能合约功能的 zkRollup,还不具备使应用程序具有可组合性的能力。StarkNet的 测试 网自6月份开始启用通用智能合约,自8月份开始启用可组合性。应用程序部署是无许可的,因此任何人都可以编写智能合约,并使用原生编程语言Cairo在 测试 网上发布它们。StarkWare提供了一个简单的DEX,与dOrg合作演示StarkNet的功能。 为了提供与以太坊类似的开发体验,Warp 团队展示了将以太坊 EVM 代码编译成 StarkNet 合约的能力。 zkSync 2.0zkSync 2.0是初始 zkSync 网络的下一个版本,其目的是在zkRollup上实现完全可组合的智能合约。今年10月份,zkSync 2.0的 测试 网上线,而Curve Finance 成为了初始的 测试 应用。 ZkSync 2.0 还引入了 zkEVM 测试 网,这是一个模拟了以太坊环境的虚拟机,它允许将以太坊智能合约部署在zkRollup 上。据悉,项目方已通过UniSync(Uniswap V2 的一个分叉)展示了zkEVM 测试 长期或是ZKRollup 网的功能。自 10月份推出以来,UniSync已经在其 测试 网上处理了59万笔交易,尽管如此,zkSync 的所有 测试 网目前都处于封闭 测试 阶段,其只允许白名单的应用程序进行部署。路线图对于确定未来目标以及简化复杂旅程的目标非常重要。StarkNet和ZKSync 2.0都有显示其目标的路线图愿景,两者都朝着安全、稳定且完全去中心化的最终目标迈进。StarkNet的路线图有四个步骤:Step 0:基础Step 1:行星:单应用rollupStep 2:星座:多应用rollupStep 3:宇宙:去中心化rollup 最初的步骤为 StarkNet 的构建奠定了基础,这包括Cairo 编程语言和 SHARP ,它们允许开发者使用针对 zkRollup 优化的语言构建智能合约,同时分担成本。Step 2是 StarkWare 正在构建的当前阶段,它将随着 11 月StarkNet主网的发布而完成——这标志着 StarkNet 的发布是一个支持通用智能合约的完全可组合的zkRollup。最后一步是StarkNet过渡到完全去中心化、无需许可的 rollup。这不会与初始主网发布同时完成,因为系统仍将处于 alpha 测试 阶段,以确保可以在不损坏系统的情况下缓解任何漏洞。在最初的主网发布中,StarkNet 将运行唯一的排序器并进行许可制的智能合约部署。一旦 StarkWare 预计 StarkNet 的安全性足够,它将完成去中心化。zkSync 路线图的第一阶段始于 zkSync 的部署——一个专注于可扩展支付的 zkRollup。 第 2 阶段计划在名为 zkSync 2.0 的新网络上开发可组合智能合约,该网络有望在未来几个月的某个时间在主网上发布。与此同时,一种新的编程语言 Zinc 将作为智能合约的原生语言。zkSync 2.0 还将引入 zkPorter,这是一个PoS 链,它允许zkSync 2.0用户在zkPorter而不是以太坊上发布交易数据,从而实现更高的交易吞吐量。由于 zkPorter 交易不受以太坊交易费用的限制,因此有望成为更便宜的替代方案。第 3 阶段会引入隐私,这会解锁 zkRollup的另一个显着特性。这将在 zk 证明不会给系统增加大量开销的时候完成。最后一个阶段涉及将 zkSync 2.0 转变为抗审查——要求系统去中心化,并通过取消Matter Labs团队对网络的任何完整控制而变得无需许可。StarkWare和Matter Labs都以zkRollup的形式提供了具有尖端技术的网络,这些网络正在推动 区块链 扩容、隐私和高效密码学的界限。对于你现在可以使用的网络,StarkEx有四个应用程序,DyDx和DiversiFi用于交易,ImmutableX和Sorre用于NFT。而zkSync 适用于简单转账以及NFT交易。相比之下,凭借1850亿美元的累积交易量以及9000 TPS的可验证交易能力等指标,StarkEx证明了自己是最常用的zkRollup,其数据是zkSync、Optimism以及Arbitrum的10倍多。随着本月StarkNet 的推出,StarkWare还将推出一个完全可组合的通用智能合约zkRollup,而许多人认为这离实现还有几年的时间。最后,请留意StarkNet和zkSync 2.0的主网版本,因为这是我们所知道的 区块链 扩容的未来。

一文深绘以太坊Layer2未来蓝图

虽然现阶段的Layer 2网络总锁仓量屡创新高,但仍然无法满足目前市场上投资者的需求,而且,现在市场Layer 2热度都是基于Arbitrum、Opitimism等项目的炒热而升温,根本无法长期持续。基于此, Layer 2 热潮是否会成为“昙花一现”也成为了大众比较关注的事情。那么Layer 2技术目前发展如何?Layer 2网络的未来究竟是怎样的?而这一个个的疑问,路印协议CTO Steve Guo在一次演讲中给了我们答案。

Steve用简单的方式讲述了Layer 2技术的演进,深入分析了每个Layer 2项目的优缺点,并且向我们叙述了Layer 2网络未来的发展方向。以下内容来自Steve的演讲实录。

随着Layer 长期或是ZKRollup 2热度的高涨,一个疑问逐渐浮现在大众面前:Layer 2的真正未来到底是什么?

下图则代表了现在市场上对Layer 2的官方定义。但Steve的定义中,Layer 2是资产安全依赖于Layer 1的第2层网络。所以可以排除掉一些侧链,比如xDai和BSC。

目前的Layer 2技术可以分为三类技术,最早是State Channel(状态通道)技术,后来又演变为Plasma,再到最新的、比较热门的Rollup技术。Rollup主要分为两个方案,Optimistic Rollup和zkRollup。这两种方案中的每一种内都存在着许多项目。

第一个Layer 2技术State Channel的核心思想其实来源于比特币的闪电网络。例如,假设Alice和Bob必须转移资金,并且他们都在链上,那么其成本会非常高。因此,可以先同意Alice和Bob先将他们各自的资金存入智能合约。在他们各自资金被存储后,Alice和Bob可以不消耗任何Gas费,无限期地在链下转移资金,然后在所有人退出时使用智能合约进行结算,这种过程的核心思想就被称为状态通道。

Plasma在链下提供了UTXO(Unspent Transaction Output)等结构模型。每个人的转账记录都类似于比特币UTXO交易。在Plasma链上确认交易后,Plasma将向以太坊上的智能合约提交所有Merkle状态,由智能合约记录所有链下状态。最后,Plasma依靠测试机制来确保所有链下交易都正确执行,例如,避免转账被双花攻击。

因此,Plasma也需要自然进化,进而演化为下一个相对热门的Optimistic Rollup技术。Optimistic Rollup从实际上解决了Plasma所带来的问题。也就是说,Plasma链上的数据最终只是Merkle树(由不同数据块的散列组成的数学数据结构),所以测试起来会更加困难。

如图所示,Optimistic Rollup允许用户提交世界状态并提交链上原始交易数据,然后任何人都可以根据这些数据测试转账是否有效。这个想法被称为Optimistic Rollup。

目前, Arbitrum 的转会费大约是Optimism转会费的二分之一。Arbitrum还改进了测试机制,允许用户通过分片进行测试。例如,一个区块中有1000个交易,但只有一个是错误的。然后就可以用类似二分法的思路,让用户证明第一个512是否正确,如果正确就测试下一个,比如256,然后继续用二分法来测试,这就是Arbitrum。但Arbitrum并不能就此代表Layer 2的未来。

V神曾在年初表示,Optimistic Rollup解决方案短期内最有可能兼容EVM,但中长期他更看好 zkRollup。

Loopring协议于2019年底推出,是世界上第一个主网上的zkRollup。到目前为止,Loopring协议已经历经了3个版本:第一个版本只支持订单簿中的DEX交易,第二个版本支持转账支付,第三个版本中支持AMM Swaps。而在今年9月初,Loopring协议已经正式发布了现在支持 Layer-2 NFT最新版本。此版本支持NFT在Layer-2上进行铸造、转账和交易,可以降低整体Gas成本。

Matter Labs实际上经历了两个版本,1.0 和2.0。2.0称为zkPorter,1.0称为zkSync。它们之间的主要区别在于,为了进一步减少2.0上的Gas消耗,Merkle树和元数据交易数据不在链上,而是使用类似于Community POA的链下Proof来保存数据。

但是大家请记住,一旦元数据不在链上,用户资产的安全就无法真正得到Layer 1的保障。不过这样的系统本质上允许用户做出自己的选择。如果您想安全,请使用1.0,如果您想更便宜(但不太安全),请使用2.0版本zkPorter。同时,Matter Labs目前正在开发一个与EVM兼容的 zkRollup系统。它定义了一种名为Zinc的编程语言。简而言之,Layer 2项目是最终目标是最终成为一个zkEvm。

从上述的Layer 2协议来看,并没有完美的Layer 2解决方案,都存在局限性,或者它们没有数据可用性。Steve则认为,最终完全可用的Layer 2网络应该是zkEVM。

zkEVM是什么?顾名思义,只要开发者用EVM写一个智能合约,就可以在zkRollup类型环境中直接执行这个智能合约的字节代码。它不像现在那样在EVM的虚拟机中执行,而是在一个叫做zkEVM的虚拟机中执行。zkEVM可以保证在字节码执行后,zkEVM可以向Layer 1网络证明 zkEVM链下执行的智能合约确实被执行了。

Steve认为“ zkEVM ”解决方案可能是最终的Layer 2网络。

开发者只需要编写一套EVM代码就可以在Layer 1上运行,然后也可以在Layer 2上无缝运行。而这个方案是一个zkRollup,可以保证最终结算的即时性。当然,这个解决方案并没有那么容易上线。Steve表示,估计再过一年左右应该就能看到一个原型,甚至第一个商业版本。

zkRollup的数据可用性保护用户的资金不被没收、审查、攻击,代价是降低吞吐量

然而链上数据可用性会限制网络吞吐量。目前,zkRollup在以太坊上每秒至多可处理交易量2000笔,而StarkEx Validium声称其每秒可处理交易量9000多笔。两者的差异决定了其应用领域的不同。例如zkRollup尤其适用于增强去中心化加密支付的可扩展性 (VISA的全球平均每秒交易处理量为 2000笔) 以及严格要求去信任的不可篡改型智能合约。而另一方面,Validium可能更适用于传统的高频交易,或对去信任需求较低的游戏。

本文阐释了zkRollups和Validium (StarkEx) 在运作上有何相似之处,以及两者的主要差异 (即链上和连下数据可用性),这对我们理解这两种技术以及它们的适用场景起到关键作用。两者的主要差异:zkRollup 是完全去信任的去中心化扩容协议;而 Validium的性能更符合托管式的PoA系统 (从其吞吐量和风险预测来看),但是其拥有较高的安全性。

然而,在加密社区中,越来越多人意识到区块链技术已经过了 “不要作恶” (don’t be evil) 的阶段,现在是时候过渡到“无法作恶”(can’t be evil) 的阶段了。我们可以通过自主托管技术、提高抗审查性和隐私性、消除单点故障来实现这一目标。我们正在奋力构建的系统,其基本价值观就是由这些理念构成。

长期或是ZKRollup

兼容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账户,单笔交易费仅一美分;

zkRollup和zkPorter的用户选择:

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

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

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

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

兼容EVM(Ethereum 长期或是ZKRollup Virtual Machine,以太坊虚拟机)

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

潜在风险 & 防御策略

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

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

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

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

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

zkRollup VS 其他Layer2方案

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

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