区块链:千层蛋糕:Layer-2 指南 三种 Rollup 大比拼_TOKEN

哈喽。

我是Zac,Aztec团队的CEO。我们发明了通用型ZK-SNARK技术Plonk和zk.money,这是世界上第一个主打隐私的rollup实例,也是新近部署到以太坊区块链上的新型Layer-2实例之一。

Layer-2的世界正变得让人目眩神迷,因为许多团队都在稳步将理想化为现实并启动自己的产品。

不过,如果你并不是扎根于这个生态的人员,想必你也需要一些导航才能穿过这片丛林。

令人失望的是,许多在向大家解释Layer-2技术的人都有利益相关,并且对某些技术怀有偏见。

那我跟他们有什么不同吗?没有!我也一样有偏见,但我会事先告诉你,而不会假装公正,你觉得如何?

我会尽我所能给你一个相对平衡的视角。基于区块链的密码学/扩展方案的世界很小,每个开拓其边界的团队都值得我们尊敬。所以我们来好好研究一下吧!

什么是“Layer-2方案”,有何意义?

以太坊1.0的事务吞吐量是很有限的,这也导致了发送事务的代价异常高昂。

以太坊事务的主要代价来源于:

状态存储项变更的成本

事务数据的成本

计算成本

Layer-2方案则把上述的一项或多项外包给一个依赖于以太坊的次级网络。

一般来说大家把Layer-2方案分为两类,各有各的安全要求和取舍:optimisticrollup?和?zkrollup。Aztec正在定义第三种类别:privaterollup。

OptimisticRollup

Optimisticrollup就像是以太坊区块链的缩影。它有自己的一个网络,也承载智能合约和事务。

Optimisticrollup方案会定期广播其事务区块到Layer-1的某个智能合约中。这些“区块”包含且仅仅包含该Optimisticrollup系统中发生的事务的数据。这个位于Layer-1的智能合约也不执行任何计算或更新存储项。这就大幅降低了发布一个区块的开销。

之所以称作“optimistic”,是因为这样的系统假设了发布出来的L2区块中的每一笔事务都是有效的——智能合约不会直接检查它们的有效性。

相反,如果某个用户认为某笔事务是不正确的,他们可以发布一条“欺诈证明”。Layer-1上的智能合约可以使用该rollup已经发布的数据来验证被指控的事务的有效性。

欺诈证明本身的开销是很大的,但只需要在疑似发生恶意行为的时候才需要执行。

如果恶意行为被坐实,那么发布了这个optimisticrollup区块的主体就会损失他们事先锁定的密码学货币。

Optimisticrollup依赖于这种经济学的共识来保证事务都是正确的。

从Optimisticrollup中取款的时间一般比较长。这是因为事务被公开以后,用户要等待看是否有人指控发生了恶意行为。

-等待欺诈证明会大幅拖慢取款的速度-

在Optimisticrollup上执行事务的主要成本来自于要把这些事务的数据发到底层链上的成本。这一?数据可得性?问题是所有rollup都共有的,既包括optimistic,也包括其他类型的。为了防止资金被冻结,用户必须能够访问到一个rollup自始至终的所有事务数据。要么这些数据要发到layer1上,要么用户就需要额外的信任。

在本文撰写之时,如果你所在的rollup不会公开你的事务数据到链上,那你就得寄希望于中心化的服务商不要冻结你的资金了。

优点:

功能丰富。可以复制Eth1.0的架构并支持智能合约

相比zk-rollup更容易开发和部署

缺点:

资金退出的时延较长。从事务被公开到事务获得终局性需要等待约1周的时间。

资金退出时间长的不便可以用承销商来缓解

ZKRollup

计算和状态存储都由二级网络来承担。

L2将事务数据连带相关的?有效性证明?一起广播到L1主网上。所谓“有效性证明”,就是这些事务有效性的数学证明。一批的L2事务都被?汇总?成一笔发往L1某个智能合约的事务。

“ZK”这个前缀指的是“零知识证明”,不过,zkrollup往往不能保护隐私——所有的事务都会默认公开,就像Optimisticrollup一样。使用“zk”这个前缀是因为这些系统所依赖的?有效性证明?往往是用零知识证明系统来生成的。

这种方案的好处在于,存储项更新和计算的开销都从以太坊主链上移除了,而且,也不需要乐观地假设广播出来的事务是正确的,只要证明是有效的,你就?知道?这些事务是有效的。

这也意味着,取款时间可以比Optimisticrollup类的系统快得多,所需的信任假设也更少。

但房间里的大象是,零知识证明给一笔事务附加了惊人的计算开销。

为一段计算生成一个零知识证明的计算开销大约是直接运行这段计算的100万倍!这是一个粗略的估计,实际情形可能因原计算本身的特点而有很大差别,但对于Solidity智能合约类型的计算程序来说,是大体准确的。

ZKrollup系统的应对方法是将建构证明的任务委托给拥有大量计算资源的第三方,称为“rollup供应商”。用户要依赖这些第三方服务来为他们创建交易。Rollup供应商可以审查或者抢跑这些事务,就像以太坊的矿工可以做的那样。所需的计算力越多,有能力充当供应商的主体就越少,所以我们必须从协议架构上充分考虑审查问题。

巨大的计算开销也给智能合约的移植带来了一些问题。完全兼容EVM是我们的目标,那就必须处理这100万倍的减速效果。EVM对SNARK极度不友好,因为其字长是256位的,而且原生支持SHA3和其它对SNARK不友好的哈希算法。即使能够把生成证明的计算开销外包给拥有大量计算资源的主题,可能也是不够的。一种可能的办法是把zkSNARK的证明器算法直接写到FPGA硬件或者ASIC中。那么提供商就需要这种硬件来建构证明。

零知识证明的建构比起运行一个普通程序要慢得多。我们的Plonk和Pollkup研究已经把SNARK的速度提高了一个量级,但zkrollup相比optimisticrollup仍然面临性能瓶颈。

一般来说,SNARK和STARK的编程语言都不得不适应底层证明系统的低效率。这些语言在实现变长的循环和动态内存访问时都会遇到困难。我们最新的Plookup研究缓解了某些问题,也还谈不上解决了所有问题。

这就意味着zkrollup需要开发者把他们的合约移植成定制化的编程语言。

对于不以完全兼容EVM为目标的zkrollup来说,好处是转账变得更便宜。如果无需遵循EVM的语义,就可以降低基本转账的广播数据量。Hermesnetwork就是这样做的。

优点:

交易的代价可能比optimisticrollup更便宜

不需要欺诈证明,取款更快

缺点:

比之optimisticrollup,增加功能更慢

依赖于使用定制化硬件的第三方

可能需要功能更优先的定制化编程语言。

Privaterollup

Aztec已经在2021年3月推出了隐私rollup。你可以把你的ETH封装到一个privacyshield中,并使用我们的在线隐私钱包zk.money来发送隐私交易。

隐私rollup使用与zkrollup非常相似的技术,但特点完全不同。隐私rollup的架构是为了给L2的每一个用户提供强大的隐私保证。用户都是匿名持有资金。在运行交易的时候,发送者和接收者都是匿名的,而且转账金额也是加密的。

我们使用的是最先进的零知识证明系统Plonk。我们在2019年发明了Plonk,它很快就在使用零知识证明并在区块链上做开发的团队间成了行业标准。

在设计上就保证隐私性需要与zkrollup截然不同的rollup架构。我们采用了隐私优先的路径,因为我们知道,有了一个公开的L2,再想植入可编程的隐私性,就往往需要牺牲用户体验或激进地重构整个协议。

当前基于以太坊的隐私解决方案是混币器。混币器能够匿名化用户的资金数额,但除此之外用户有限。我们的完全版本的隐私型layer-2能做得更多:

完全可编程的隐私型智能合约。隐私货币因此有更高级的交易逻辑

NFT的隐蔽所有权

NFT的属性可以完全隐蔽,仅对所有者可见

反和KYC检查可以直接编程到隐私token/dApp中

隐私性DeFi!这是个很大主题,需要专门写一篇文章来说

只有一开始就把隐私放在首位,才有可能获得这些好处。协议的事务和状态模式也必须设计成与隐私特性相兼容。

优点:

交易是隐蔽的。用户的金融活动不会暴露给第三方

Rollup供应商也不能审查或者抢跑交易。对他们来说,每一笔交易就像一个随机数字的列表

不需要欺诈证明,取款很快

用户可以单方面取款,无需第三方协助执行计算

缺点:

比公开透明的L2更贵,直至数据可得性方案/Eth2.0推出

用户必须在本地构建隐蔽交易的零知识证据。无法委托给第三方。所用的零知识证明系统必须?快如闪电

相比zkrollup和optimisticrollup,增加功能更慢,因为客户端的证据构建性能限制。可编程性可以实现,但完全的EVM兼容仍需努力

状态模式有所不同。价值必须表示为像比特币UTXO那样的“支票”,而无法使用以太坊的账户模式。当然在应用层可以抽象掉。

在喧嚣中分辨真知

L2的世界充满竞争,赶在同行前推出产品并获得用户要承受巨大的压力。

压力之下,人们可能会偷工减料或增加额外的信任假设,毕竟用户很难感知到这些。

现在,最大的挑战是数据可得性。

如果L2不把事务数据发布到区块链上,L2的控制者就可以冻结用户的资金。

每个开发L2方案的团队都希望开拓这类技术的边界。虽然值得钦佩,但他们也可能用技术黑话来掩盖协议的缺陷。

如果你在考虑使用某个L2产品,其开发者们应该能充分地回答这些问题:

这种L2如何实现数据可得性?如果其交易成本比普通的ETH转账低20倍以上,他们很可能没有把交易的数据公开到区块链上

用户可不可以仅凭自己在以太坊区块链上获得的信息,就发起单方面的取款呢?

这个产品有无公开的技术描述,可供第三方来验证呢?

此外,对zkrollup方案和隐私rollup方案,你还应该问下来问题:

链上的数据?是否可证明?是有效的?所有数据都会作为公开输入,放到rollup的电路中吗?

该L2是否依赖于中心化的计算集群来生产rollup?如果是的话,开发团队有无防范审查和抢跑的方案?如果是完全去中心化的,可能会有多少供应商?

证明构建的算法是否公开、可审计?

未来的形状

接下来的12个月可能是L2世界里最激动人心的时刻。无数的协议将正式启动,奏响整个行业连年的深入研究和工程的强音。

作为Aztec,我们的目标是开发出可编程的隐私智能合约方案。我们的旗舰Plonk编程语言Noir,可以将高级程序编译成高度优化的ZKSNARK电路,这些电路快到能够在浏览器里构造证明。这一技术回事我们的Aztec3.0rollup架构的里程碑,用户将能使用Noir来自定义电路。

结合可编程的隐私性和可扩展性,我们正为web3技术范式的普及补上最后一块评图。至少,web3将能跟传统的web2技术在同一个平台上竞争。我们希望隐私密码学货币的NFT能够以保护隐私的形式与DeFi协议和更传统的金融服务交互,从而培育起丰富的生态。

我们已经用zk.money证明了,这并不是什么幻想。我们已经开发出了远大前景所需的关键技术,现在我们要脚踏实地实现我们的愿景。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块博客

[0:0ms0-7:805ms