atom_crypto

Posted on Jun 23, 2022Read on Mirror.xyz

Rollups 最新技术进展- 论dYdX摒弃StarkWare加入Cosmos之迷

总览

零知识验证零知识证明(“ZKP”)是一种加密方法,简单来说就是一个人向另一个人证明他们知道的信息,但不必向他们透漏该信息。目前市面上有各种不同类型的ZKP, 它们独特的设计以及搭建在其上的项目。这些非交互式 ZKP 最初创建于 1988 年,并从那时起取得了进步。下面介绍了持续迭代的ZKP技术。这些技术当然解决了隐私性的问题,那么又是如何解决区块链的扩展性问题呢?

Rollups 是目前解决区块链领域扩展性问题的重要方法,我们将其分为Optimistic Rollups (ORU)和ZK Rollups (ZKR),本质上都是通过线下交易,并且将相关证明和数据以合并批次的形式上传至L1。当然它们的核心差异还是在验证方式。ORU利用了欺诈证明,而ZKR采用的是有效性证明。ORU将数据传输至L1,并且假设其是正确的,如果提供的数据是正确的,那么就无需做任何额外的工作。这也是ORU的一个优势。但是如果是无效交易,那么系统需要确认,纠正正确的状态,并且惩罚提交该交易的主体。ORU利用争议解决过程验证欺诈证明。而ZKR需要通过提交有效性证明,验证状态变化的合理性。虽然这样所有的L2都会提交正确的状态,但是所有的状态变化都需要提交证明(而不像ORU情况下只有当发现无效交易的时候才提交欺诈证明),因此较高的验证成本以及硬件要求限制了其扩展性。

上传数据对于ORU和ZKR都是非常重要的。在ORU中,我们需要验证状态并且提交或者验证欺诈证明,如果没有数据,那么我们无法重建状态并进行验证。而对于ZKRs来说,尽管状态根信息可以被验证,但是在中继节点不在线的时候,我们也需要通过这些公开的,无权限的数据去重建状态,而不是再需要依赖中心化的机构去运行网络,同时数据不可见的风险也会导致用户的资金被永久锁定在Layer2中。所以为了维护网络的状态,ORUs和ZKRs都必须上传数据至链上。这里ZKRs可以将这些认证数据(比如签名)以单个证明的形式合并起来,而ORUs需要上传全部认证数据,因此成本线性增长。

同时,我们之前文章提过,ZKRs通过压缩数据的方式,大大减少了L1上的燃料费用。比如Optimism 将所有交易数据上传,而dYdX只是上传交易余额信息。所以相比于Optimisum, dYdX的手续费只有其⅕.而其吞吐量可以扩大10倍。当然本质上还是tradeoff, 通过隐藏一些重要的数据,而给用户提供更低的手续费,所以ZKRs可以决定什么应用需要压缩数据,什么应用需要未压缩数据,而这些灵活性在ORUs并不可行。

当然如果要比较这种Rollups,那么有很多点可以展开,比如ZKRs的确认时间更快因为有效性证明,比如取款时间更短因为ORUs引入了争议解决过程,比如ORUs的EVM兼容性和扩展性。当然Hop , Connext正在给ORUs提供ORUs“流动性退出”解决方案,可以让用户快速提款至L1,我们将在下篇文章中重点介绍。而本文将重点了解它们的验证方式以及最新转向通用智能合约链过程的技术发展路径。

通过上文,我们了解到ORUs在数据成本上的占比更高,因为它们没有ZKRs中有效性证明产生的固定成本。所以最近以太坊最新路径中的EIP-4844中介绍的新的数据碎片交易类型,对于ORUs的影响要更大。数据碎片交易类型将替代链上昂贵和长久储存的元数据,而数据碎片通常在30天之后就会被清理掉,因此可以降低Rollups10-100x的成本。同时其EVM兼容给了其很大的扩展优势(EIP-4844给予了其扩展性上主要的突破)。目前ORUs占据主要Layer2市场,其中TVL占据了72%的TVL, 其中Arbitrum的市场占有率更是大于50%,而ZKRs和Validum为28%。当然对于ZKRs来说,有效性证明产生的固定成本也可以通过更专业的硬件解决,同时越来越多的用户和应用,也可以平均分摊的这部分成本,从而降低每笔交易的费用。同时,其隐私性,互操作性(Layer3),从应用转向通用链的技术突破,也给他们带来了长期的价值。

ZKRs 的可扩展性

ZKRs既然没有解决目前的数据可见问题,那么是如何实现扩展的呢,接下来我们要介绍Validium,以及其延伸方案Volition。通常,我们需要将数据和证明上传至L1, 并且存储在以太坊上,所以任何人都可以验证和重建,因此造就了一个无需许可的开放性网络。通过Validium,所有的数据被发送至链下(这里主要有三种玩家,一种是StarEx牵头的委员会,zkPorter机制下的POS守卫者网络,以及以Celestia和Polygon Avail为代表的数据可见层),而证明则被发送到链上主网进行存储。链下机构则向链上主网发送证明,确认它们拥有当前状态下的所有数据。通过这种方式,ZKRs的数据成本被移除(移除前是线性增长),可以带来交易吞吐量的指数级的增长,随着更多的交易,固定的验证成本也可以在更多用户之间摊销。

Validium虽然带来了扩展性优势,但是会牺牲一定的安全性。虽然攻击者不能直接盗窃用户资产,但是可以通过停止区块生产,而冻结其账户,其可以通过让数据不可见的形式,通过勒索攻击,让用户支付贿赂。zkPorter试图提高攻击成本,攻击者需要获取2/3的质押,才能让数据不可见,并且停止区块生产。而StartEx上部署的数据可见委员会则依赖于一个诚实的机构发表数据。同时,尽管像Celelstia这样的数据层将执行层和数据可见层分离,大大降低了Rollups成本,提升了扩展性,其本质上还是“链下的”StarEx数据可见委员会,只不过更为去中心化了。当然尽管Validium没有Rollups的安全性,但是相比于Sidechain来说,安全性还是更高,因为它们采用了以太坊的安全证明,同时它们都带来了指数型的扩展性增长。

延申的Volition是什么呢?可以理解为用户可以选择什么交易采用链下数据,什么交易采用链上数据。zkSync2.0会利用这项技术,zkRollup会有一个链上账户,而zkPorter会有一个链下账户。Starware称为链上账户和链下账户,所以你可以通过链下账户做大量的交易(线下数据,较低成本),而通过链上账户进行结算。Validium 和Volitions是ZKRs相比于ORUs在扩展性上的巨大技术突破。

ZKRs的龙头dYdX

我们看到dYdX 目前是ZRKs中使用最多的L2应用,仅次于其的是Loopring  (交易支付)Immutable X (游戏),Aztec (隐私交易)等。其中排名靠前的项目大部分都采用了StarkEx技术(StarkWare的SaaS解决方案)。过去一年中,dYdX的日均交易量超过10亿美金,总累计交易额达到了6000亿美金,而同等时期Uniswap的交易量为7400亿美金。同时,dYdX的年收入也实现了4.5亿美金。但是很多批评者还是认为这主要是因为其交易即挖矿的激励机制,它们将25%的代币用于这部分激励,每28个时段分发380万个代币,所以在创世空投5500个代币后,九月份又先后增发了4500个代币,所以我们看到了自9月份以来,其代币DYDX价格经历了94%的下跌。当然尽管这样,我们仍然认为其是Layer2领域的正面案例(订单簿交易所),这个在以太坊上是不可行的。当然我们也看到其他有意思的项目,比如Aztec就是zk-ZKR, 通过零知识搭建的完全隐私的网络,对于Layer2证明,转账、支付都进行加密,同时即将上线的隐私桥,可以让用户在一笔交易实现资产从Layer2转入以太坊,再从以太坊转入Layer2,过程实现全部加密,并且交易费用大大减少了。目前他们正在研究隐私智能合约的开发。

我们看到了ZKRs上的各种应用链,我们认为ZKRs对于应用链来说可能是最好的选择,但是我们并没有看到通用的智能合约ZKRs。我们看到了大量的EVM链的成功,比如BSC, Avalanche, Aurora尽管它们和以太坊相比,基于相对较弱的安全假设,但是便宜的EVM体验给他们带来了大量的用户。所以我们开始看到像Polygon, Scroll, Azetc这些团队也都开始着手于搭建可组合的通用性平台,其中最值得关注的还是来自StarkWare的StarNet以及zkEVM/zkSync2.0。尽管它们目标相同的市场,不过采用了完全不一样的路径和策略。

StarkNet

StarkWare采用了zk-STARKs的技术,最早由其创始人Eli Ben-Sasson于2017年提出。在文中开头,我们提供了从2013年起的ZKP的技术迭代,其中有效性证明主要采用了两种技术,一种是zk-SNARKs,另一种就是StarkWare采用的zk-STARKs. zk-STARKs 相较于zk-SNARKs 而言,不依赖中心化的设置,中心化的设置指秘密的系统参数,或者“钥匙” 在初始设置阶段通过第三方中心化机构生成。但是如果这些生成机构用这些钥匙去验证错误的事实,或者创建空气,那么就会有很大风险,通常可以通过利用多签系统对钥匙进行销毁,或者采用像zk-SNARKs完全不依赖中心化设置的解决方案。同时,它们基于哈希算法而非椭圆曲线,避免了像KZG 承诺一样不抗后量子的问题,当然相比于zk-SNARKs,它们的证明时间最快(Prover)但是验证时间(Verifier)仅次于zk-SNARKs。整体(证明时间+验证时间)来讲,zk-STARKs的时间更快,对于zk-STARKs而言,时间和计算难度呈现准线性关系,而zk-SNARKs呈现线性关系,所以sTARK对于一些需要更多扩展性/计算的协议来说,速度会快,同时证明和验证成本可以分摊给更有用户,因此会更有优势。

上文提到,StarkEX作为StarkWare的主要产品,已经吸引了很多项目/应用链在其上搭建,而基于零知识证明搭建的通用应用链(zkEVM) 是非常困难的, EVM对于零知识来说并不是最优解,开发环境非常有限,灵活度也受到限制,当然优点是开发者社区,工具和以太坊的网络效应。主要受限于椭圆曲线,不同字长,特殊操作码等问题,以及更多不适用于有效性证明的问题,另一个问题就是Rollups总是需要等待在以太坊上进行更改/升级(很慢)从而维持兼容。所以StarkWare尽管开发了Solidity编译器Warp, 他们的重心仍然放在为STARKs专门设计的语言Cairo。他们从0到1创建围绕Cairo语言的开发社区,如果Cairo获得社区的青睐,会获得很大价值,同时无需再依赖其他生态。但是缺点也很明显,无法像其他zk-EVMs, 利用以太坊/EVM强大的技术社区,开发者工具以及网络效应,所以前期难以快速拓展,占有市场份额。所以对于StarWare来说,前期可以借助以太坊,但这并不是一个长期的解决方案。

Starknet究竟是什么呢?我们看到StarkEx和StarkNet尽管是单独的产品,但是他们开始相互混合。任何搭建在StarkEx上的产品可以转换到通用公共的StarkNetLayer2网络。我们看到dYdX (Rollup, 链上数据) v3 之前计划在StarkNet上部署,同时也看到mmutable X 近期和StarkNet的合作,目前Immutable X和其他应用一样,是结算在以太坊L1上的Validium(链下数据),现在他们可以将证明提交至StarkNet。这种架构叫做“分形缩放” (“Fractal Scaling”), 用户只需要将证明从L3发送至L2 (StarkNet),而无需直接和Layer1进行交互 (这种称为递归证明“Recursive proofs),  证明从L3发送L2验证合约,该证明和L2上其他交易发送至L1验证合约。L3证明被发送了两次。通过这种方式,大大降低了用户的费用,交易并不用直接提交至L1,而是提交至L2。同时,也给桥的应用带来了好处。以往需要通过流动性池子或者POA多签进行桥交易,而零知识证明下我们可以证明桥交易,而无需依赖池子或者第三方机构。通过,L3上的桥交易可以进行打包,并且以单个证明的形式进行发送。所以桥交易无需直接递交给L1,而是通过递归的方式间接进行交互。所以以太坊仍然是结算层,即StarkNet的数据可见层,而StarkNet是L2 rollups, 将证明和数据发送至以太坊,当然这部分成本仍然不避免。最后就来到了由StarkEx validiums, rollups, app-chains, 和隐私协议组成的L3, 通过分型缩放和递归证明等方式,给用户带来了相对较低的交易成本。同时可以根据应用定制化需求,也为其与其他L2/L3的互操作性提供了基础。所以对于ImmutableX 来说,他们会在通用协议StarkNet L2上线自己的主链,承载所有的游戏活动,通过L3搭建各种应用,甚至模块,比如交易,质押,铸造等。所以对于用户而言,不需要再与L1进行交互,L3可以理解为L2,而L2可以理解为真正的L1。 

当然在这部分设计中,与Cosmos Hub的Cosmos 主权链/应用链的设计略有异曲同工之妙。尽管Cosmos在自主性和互操作性的特性,我们还没有在Rollups中的设计中体会到。同时,尽管StakWare在技术上实现了巨大的突破和进展,但是我们并没有看到核心的治理优势和加密经济的设计。我们看到dYdX也将在StarkNET部署v3的计划搁置,决定在v4版本中在Cosmos上搭建应用主权链。这再次验证了,”从以太坊上开始,在Cosmos上扩展”的言论。而不考虑技术,主权,时机等原因,大概最好的解释就是让dYdX在新链上运行验证节点,捕获价值吧,毕竟StarkWare在代币模型这块八字还没一撇呢。

当然尽管目前围绕StarkNet生态还相对较小,但是我们看到在增长。目前大部分都是基于Cairo的新项目,而以太坊上的AAVE 和Maker则表明要迁移至StarNet。当然核心还是通过Cairo语言撬动更大的开发者社区,同时让更多用户学习使用StarNet。Cairo语言目前已经有超过30,000个下载,并且每周的下载量还在上升,同时StarNet刚上线的StarGate首次允许用户从以太坊上桥接资产至StarkNet上。我们仍然认为StarkWare的技术创新值得我们去持续关注。

zkSync2.0

zkySync 是通用ZKRs领域的另一个霸主,zkSync1.0目前锁仓量在7500万美金,其通过以太坊结算,并不支持智能合约,主要功能仅有转账和兑换。其核心的产品包括手机钱包Argent,ZigZag交易平台,以及Yearn 等平台的接入。但是大部分的批判者认为平台上大部分都是希望通过使用平台获取空投机会的羊毛党。我们看到了1.0的很好的迭代,但是其有限的产品功能,限制了其进一步增长,所以2.0的zkSync采取了不一样的策略。

zkSync2.0意在搭建通用性智能合约Rollups ,但是采取了和StarNet不同的策略,首先其选择了zk-SNARKs技术而非zk-STARKs技术,其次,其专注在搭建EVM兼容的zkEVM, 希望通过以太坊强大的的社区和工具快速占据市场。尽管他们也有为零知识证明设计的开发语言Zinc, 但他们的全部精力都投入在Solidity上,这也和StarkWare团队完全不一样。这里要强调的是zkEVM是一种EVM兼容,而非EVM等同的虚拟机。EVM兼容尽管可以实现与Solidity的兼容,但无法实现和bytecode的兼容,所以仍然需要改动一些底层代码,可以支持99%,而非全部的网络。所以相比于EVM等同来说,安全性会略低些。但是zk-EVM仍然是零知识证明友好的虚拟机。而对于EVM等同这种开发难度非常高的问题,Scroll, 和Polygon等团队试图正在解决。所以zkSync2.0有极大可能成为第一个占据市场的EVM兼容的ZKR,通过充分利用以太坊强大的社区和开发者工具,同时以太坊项目,比如1inch, Alchemix, Yearn, Curve 等支持,zkEVM即将成为上线主网的首个通用zkEVM。

既然ZKRs无法解决数据可见性问题,那么如何通过其他方案解决扩展性问题,同时维护其网络安全呢?通过Volition。

上文我们介绍过在Volition中,在zkRollup端,我们可以部署协议和合约,而在zkPorter端并不可行。在zkPorter端,我们可以开户,同时获取zkRollup上的信息,通过链下数据,享有更低的费用。当然,如果想拥有更多安全保证,你也可以选择在zkRolup端开户。可用性证明将包括rollup(链上数据)和Validium 端(链下数据),并且发送至以太坊。链下数据将通过zkSync的持有人(我们称为守卫者),你可以理解为为zkSync设计的数据可见层(而非像Celestia这种Rollup agnostic的通用数据可见层)。而上文也提到,如果攻击者要攻击网络,必须获取2/3的质押份额,才可以进行数据不可见攻击并且冻结用户数据。

所以我们看到zkSync.20更加依赖于EVM发展生态,而StarkWare则选择了更艰难的路,从0到1搭建生态,然而长期的收益也是巨大的。同时我们看到zkEVM赛道其他竞争者的出现,开发的巨大难度,以及市场战略的重要性,让这个领域的竞争更为激烈, 并且难以赶上。

新的挑战者

Scroll 是zkEVM 等同领域的新星,他们一直在专注开发,今年4月份才正式和大家见面。zkEVM等同意味着则和以太坊一模一样,也无需编译器,开发难度极高。同时团队也希望通过加速硬件的更新迭代,降低ZKRs的固定证明(Prover)成本。目前他们已经开发了自己的GPU,并且和其他公司在研究FPGAs和ASICs。

Polygon可以简单的理解为大杂烩。印度人就是擅长微创新。以前我读书时候整天和印度人在一起,了解他们的套路。不跑偏了,Polygon Zero, 和StarNet类似,并不是EVM的Rollups。而Hermez.20则是它类似于zkSync2.0的zkEVM解决方案。Hermez1.0也是和zkSync1.0类似的设计。Hermez结合了STARKs和SNARKs技术,利用STARKs证明,而利用SNARK 证明链上验证STARK(更便宜)。同时他们的数据可见层和Celestia的比较类似。

总结

综上,我们对现有的Rollups技术进行了梳理,尽管市面上对rollups技术,以及并没有很好的应用场景,提升效率等批判声仍然存在,我们仍然认为ZKRs有相对较好的发展前景,虽然发展缓慢,但是即将上线的可组合的通用性链迈出了勇敢的第一步。而只要设计和创新不止步,发展不停滞,我们坚信大规模的应用只是时间问题。同时ORUs在扩展性上的成就也不容忽视,其长期的价值会给我们所有人惊喜。

CosmosStarkWare