整理:《寒「木」春华:Layer 2 百花齐放》by Tia,Foresight News
9 月 22 日,万向区块链实验室主办的 2022 上海区块链国际周暨第八届区块链全球峰会,第三天的主题论坛——「寒『木』春华」在线上开幕。
TL;DR
《zkEVM:兼容性及等效性》——zkSync CEO Alex Gluchowski
在 ZK 环境中的问题是必须在执行的每一步都为所有指令实施所有约束,因此在每一步执行 ZK 证明生成的成本,将是每条指令各组成部分的成本之和。
《Rollup 时代 Arbitrum 技术是一种乐观 Rollup》——Offchain Labs 联合创始人兼 CEO Steven Goldfeder
从技术和非技术的角度来说,有很多方式都可以为 Arbitrum 以及以太坊繁荣的生态做出贡献。Offchain Labs 作为 Arbitrum 技术套件的一部分,也在构建另外一种解决方案,叫做 AnyTrust 技术。AnyTrust 将数据发送给所谓的数据可用性委员会,由可用性委员会将结果再汇报给以太坊。现在已经有两条链来负责实现这项技术:1. Arbitrum One,这是运行时间更长的一条链,已经运行了超过一年的时间,2021 年 8 月正式上线。是乐观的 Rollup,将所有数据都放在以太坊之上。2. Arbitrum Nova,今年 8 月份推出的 Arbitrum 链,不会将所有数据发布在以太坊上,而是使用数据可用性委员会。
《阐明 StarkNet》——StarkWare 联合创始人兼总裁 Eli Ben-Sasson
什么是 StarkNet?它非常像以太坊,但是它是为 L2。你可以把智能合约写到 StarkNet 上,可以向智能合约提供相关的交易,而且它支持通用的计算和可以组合。但是由于 Stark 证明的魔力性,可以提供更低 Gas 费用,你甚至可以把 StarkNet 看作是和以太坊非常类似的东西。
《Scroll 的设计与架构》——Scroll 联合创始人张烨
Scroll 正在建立一个 EVM 等效的 ZK Rollup,其设计决策遵循安全性、效率、EVM 等效性和去中心化,其架构由 Scroll 节点、链上的智能合约、去中心化的证明器网络三部分组成。Scroll 当前已经完成了预 Alhpa 的测试网,接下来第二阶段将邀请开发者基于其网络部署一些智能合约,并且开发一些额外的应用;第三阶段将启动二层证明的外包,邀请社区参与成为证明节点;第四个阶段到达 zkEVM 主网阶段,将在经过严格的代码审计以及性能提升后部署并且上线主网;第五个阶段将部署去中心化的排序器,从而使得 zkEVM 更加高效。
zkSync CEO Alex Gluchowski:《zkEVM:兼容性及等效性》
zkSync 是深度任务驱动的协议,也就是我们所做的每一件事情,在技术方面每一个设计决策都是以加速加密领域的大规模采用为使命。如各位所见,它也影响到了我们围绕 zkEVM 所做的选择。
实际上 zkEVM 本身是由使命驱动,因为 EVM 已经成为区块链世界的 JavaScript,这是新型的价值,互联网通用语言,拥有如此多的工具、服务、库和基础设施,很难避之不用。换言之,zkEVM 还会伴随着我们很长一段时间。
ZK 是非常有趣的一项技术,事实上这是我们摆脱区块链不可能的唯一方法,也是唯一可以实现区块链无限扩展性的方法,同时完全保证每笔交易的安全性,所以我们必须结合 zkEVM。
你可能听过一个非常老生常谈的问题,也就是我们是否可以仅仅与 EVM 兼容,或者可以实现完全 EVM 的等同性,以及后者是否是有必要的。
一些协议声称自己是和 EVM 等同的,我们认为这是一个程度的问题。之前,Vitalik 发表了一篇精彩的文章,以图表的形式直观地介绍了 zkEVM 的世界中几种不同程度的 EVM 兼容性,并且提出 EVM 兼容性越高,性能的牺牲越大。
所以在此,我将更深入地解释每种程度的 EVM 兼容具体意味着什么,在 ZK 的实现上性能的牺牲来自于哪里,并且哪种方案最可取我们会选择哪个方案,以及这样的选择将如何影响用户。
我们将从底层开始,类型 4 是在原代码级别达到 EVM 的兼容性,而且你可以将 EVM 上的任何原代码可以放到 zkEVM 的环境中运行。
在类型 3、2.5、2 级以上均包含自解码兼容性,并且类型越往上,功能方面的兼容更多。比如 API 或者与第一层完全相同的方式,这是完整的 Gas 指标。
最上面的类型包含了证明完整的根哈希,包括共识、存储、更新等等,让我们再进一步探索。
从性能最优的类型 4 开始,这个类型的 EVM 兼容是可以将现有的代码编译成专门的 EVM 操作码集,或者叫做 RISC。
实际上它不是真正的 RISC,它非常相似,因为每条指令都经过了优化,而且可以在 zkEVM 的环境中运行。
但是在 ZK 环境中的问题是必须在执行的每一步都为所有指令实施所有约束,因此在每一步执行 ZK 证明生成的成本,将是每条指令各组成部分的成本之和。
因此,为了最大限度地提高性能,我们需要将这些指令的数量尽可能减少,从而实现足够的灵活性,来表达任意代码,并将任意代码编译到该指令中。
而且指令需要非常少、非常原子性,也非常简单,这也意味着与任何其他的类型相比,性能的优势是数量级的,而且可以在这个领域进行创新,你可以做一些非常有趣的事情,以此提升用户或者开发者的体验。
比如可以将账户抽象化,通过 MetaMask 钱包,或者其他任何钱包进行执行,或者使用 Argent,或者基于智能合约的钱包,具有社交密钥恢复等等,使用不同的签名方案,使用本地多重签名等等,这是它的优势。
而在开发者的体验方面,你可以绑定任何现代语言的编写库,而且可以使用非常成熟的 LLVM 编译器框架编译成 zkEVM。
LLVM 的前端存在于 Python 等语言,而这种方法的主要缺点在于任何操作码级别与 EVM 兼容的工具都不能开箱即用。所以我们需要为这些工具进行专门的支持,主要是调试器和跟踪器,而且需要对它们进行调整,以支持 zkEVM 和 zkSync,或者任何使用这种方法的其他协议,但是这些工具的数量不多,所以还是可以采用类型 4。
这也是为什么从主网一开始选择从类型,因为从我们的使用而言,用户的体验和性能是至关重要的。如果用户的体验达不到预期的话,或者无法与当前的互联网体验相媲美,最后的结果是无法真正地吸引数百万新用户。
从性能而言,正如之前所提到,需要将代码压缩到最低限度,并保持极高的性能,以此解锁更多的场景。
比如社交网络、游戏,或任何需要频繁交易的场景,又比如小额转账,在这些场景之下,性能的数量级别差异至关重要,用户来支付 10 美分或者 0.01 美分也相当重要。
现在继续来探索 Vitalik 提到的其他 ZK-EVM 类别,可以称之为 Six 类型的架构,他们使用非常复杂的指令级,也就是 EVM,这意味着我们必须要去支持一些成本差异极大的指令。
我们有两种方法来解决问题,一种是实现支持所有指令的本地 ZK 循环。每一个虚拟机的循环都能证明智能合约的执行和跟踪,我们必须对每个操作码的实现添加约束。
所以在 EVM 中,由于它并不是为 ZK 环境所设计的,所以有很多指令非常不优雅、不方便,操作也非常复杂,速度要比专门为 ZK 设计的 RISC 指令集慢几个数量级,所以这个方案并不可行。
刚才提到这个方案并不可行,而另外一种选择是尝试模拟 EVM 的操作码,并且通过以太坊复杂的指令级实现,使用一些较小的微操作码。
另外一种选择是尝试模拟 EVM 的操作码,并且通过以太坊复杂的指令级来实现,使用一些较小的微操作码。而这样做的问题是对于每个单独的操作码,无论它是复杂,还是简单,其实是对于诸如算数这样的基本操作,也必须增加很多开支,因为需要从内存中逐个对字节读取操作码,需要对他们进行分析、解析,需要判断这是什么指令,需要跳转到执行正确的指令,然后还需要再次从内存中处理该指令的运算符、操作数等等,所以这样的开销要高出几个数量级,但是这是可行的,在某些场景下可能产生有趣的应用。
如果从性能差异的角度来看,类型 3、类型 2、类型 2.5 之间并不显著。如果你用自己的方式来解释或者本地运行复杂的指令,整个 Gas 成本不会增加太多,因为 ZK 环境中的基本算数非常便宜,而且支持 100% 的 API,也不会真正影响程序的性能,除非你使用了大量可以再为 ZK 世界优化的繁重操作。
但问题是我们需要就此止步吗?答案是不行。我们可以从类型 4 开始,通过选择好的基本范式框架之内添加功能,不断地提高与 EVM 的兼容性。
比如如果只实现一个可以解释 EVM 操作码的智能合约,我们可以使 zkSync 成为一个系统,既支持原生高性能编译的智能合约,又支持现有 EVM 操作码的系统。
虽然它可能慢很多,但是智能合约仍然可以运行,所以这个智能合约既可以用 Solidity 或更复杂的语言,如 RUST 进行编写,并且在本地 zkEVM 环境中编译和运行,这是 EVM 操作码作为解释 EVM 的微操作码,所以这是非常简单的项目,在几个月之内完全可以实现。
如果我们还想实现类型 2.5,需要做的就是在智能合约侧支持完整的以太坊 API。与此同时,这意味着我们要支持所有的哈希和所有的预编译。实际上 ZK 从第一天开始就支持以太坊的原生哈希,例如 KECCAKSHA256 等,一个月后我们的主网上线时也会支持,因此使用 KECCAKSHA256 的所有智能合约都将产生与第一层操作完全相同的结果。
支持所有的预编译,我们计划将年底完成,其中最复杂的部分是对椭圆曲线配对的支持,这方面的研究工作已经开始,其余的很简单,并且已经得到支持。添加解释器,并且对 API 的 100% 支持,将会使得 zkSync 实现类型 2.5 的 EVM 兼容。
有趣的一点是如果从底层开始,而且一直可以不断地进行提高。但如果从性能更高、更先进的系统开始,就只能模拟性能较低的系统。
就像我们可以在 Mac book 上模拟旧版的 Mac OS,甚至可以回去模拟一些老式主机或者 Unix 机器。但是这样一来,不能前项兼容,你不能在旧系统上模拟 Mac OS,所以这是单向的,必须从性能最高的选项开始。
因此,目前我们处于 EVM 兼容的类型 2.5,为了提高兼容性,我们需要支持与以太坊完全相同的 Gas 计算,并且支持存储和共识的兼容性。
而这对于 L2 而言是没有任何意义的,对于以太坊来说是有意义的,但是对于二层的 C 来说没有任何意义,要理解为什么我们要了解 L1 和 L2 的成本差异。
在二层中的资源定价不同,这就是为什么能实现扩展。Rollup 和以太坊对比,带宽成本大致相同,但是 L2 中的计算,特别是 zk-Rollup 环境中的计算非常便宜,必须用数万个节点上复制的以太坊上计算便宜得多。同样存储以太坊非常昂贵,因为全节点状态要进行同步。而在二层上并不需要它,因为零知识证明会验证存储的更新,用户只需要下载哈希和 State Delta,所以会便宜很多。
如果要支持和 L1 完全相同的 Gas 计算方法,实际上是自寻烦恼。因为这样以来,要么不会获得 L2 的性能优化,要么容易受到 DDoS 的攻击。
如果对方资源定价过低的话,这也是为什么我们认为确实没有必要在兼容性上更上一层楼,因为我们认为 zkSync 将坚持类型 2.5。
在我看来更高的兼容性也没有任何意义,因为如果降低以太坊全节点验证的成本,社区可以决定缩减区块大小,并大幅提高一层的存储费用,并且仅仅使用第一层来验证 ZK 和乐观 Rollup 的有效性证明以及欺诈证明,将所有应用都放在 L2 上,这也是我们预计未来所看到的方向。因此,类型 2 和类型 1 的 EVM 兼容实现完全的 EVM 等效性,具有微弱的边际优势。
Offchain Labs 联合创始人兼 CEO Steven Goldfeder:《Rollup 时代 Arbitrum 技术是一种乐观 Rollup》
什么是 Rollup,从技术上定义它,以及 Rollup 到底是如何引领以太坊扩容的。今天我想深入带大家探索一下,如何从技术的角度构建 Arbitrum,以及同时做社区如何合力构建 Arbitrum 的生态系统。希望听完我今天的演讲之后,大家能够更好地了解 Arbitrum 的工作原理,更好地理解 Arbitrum 庞大的生态体系。同时更好地了解如何参与其中。
从技术和非技术的角度来说,有很多方式都可以为 Arbitrum 以及以太坊繁荣的生态做出贡献。
Rollup 的历史可以追溯到很长一段时间之前,但是我想回到两年前,因为我认为两年前巩固了 Rollup 作为以太坊扩容关键的时间节点。
2022 年 10 月,Vitalik 曾经发表了一篇有关以太坊 Rollup 为核心的路线图博文。也就是说,Rollup 是以太坊计划以及以太坊技术发展的核心。对以太坊来说,Rollup 是可扩展的解决方案,从而为大众带来以太坊的安全性和去中心化。
但是问题是什么?什么是 Rollup?以及 Rollup 和其他的技术扩容解决方案到底有什么不同呢?
Rollup 的核心思想是将用户交易的所有交易数据发布到以太坊上,存储到以太坊上,但是交易的执行却并不发生在以太坊上。大家可以想象一下,当你向以太坊提交一笔交易的时候可以用两种方式去思考这种交易:
一方面,交易不过是数据块,是 0 和 1 组成的。
另一方面,交易代表着指令级,也就是说这些数据,这些 0 和 1 代表了指令,可以去存储、计算某个值。
Rollup 所做的是将所有数据都放在以太坊之上,从而让以太坊存储数据块,但是指令的执行放在链下,并且将执行的结果回报给以太坊。Rollup 的关键价值主张在于安全性是来自以太坊的,希望一方面以太坊能够保证存储在链上数据的可靠性和正确性,同时另一方面又保证执行发生在链下。
现在问题变成了如何让以太坊验证链下所执行的操作呢?关键就是向以太坊证明需要有这样一种机制,向以太坊证明不仅仅存储在以太坊链上的内容是正确的,同时也要证明链下执行的正确性。
在乐观 Rollup 中,使用的是交互式的欺诈证明,向以太坊证明我们所报给以太坊在链下进行的执行和交易结果是正确的。为了实现这一点,可以将大量执行工作放在以太坊链下执行,从而实现以太坊的可扩展性。因为我们对以太坊的使用十分精简,不用以太坊执行交易,只是用以太坊进行存储数据,也就是说执行不发生在以太坊的链上。这样,就能获得更多的以太坊空间。
Offchain Labs 作为 Arbitrum 技术套件的一部分,也在构建另外一种解决方案,叫做 AnyTrust 技术。AnyTrust 技术和 Rollup 技术实际上是非常类似的,但是二者之间存在很关键的差别。
AnyTrust 并不将所有的数据都放在以太坊之上,相反它将数据发送给所谓的数据可用性委员会,由可用性委员会将结果再汇报给以太坊,以太坊上面也有欺诈证明机制。但是,在 AnyTrust 技术上,有数据可用性委员会来负责数据的存储。在 Rollup 中,最大的成本就是数据存储,如果有数据存储委员会,就能显著降低成本。
在过程中,就没有办法再拥有以太坊的完全安全性,因为我们依赖于数据可用性委员会来存储数据。但是,AnyTrust 技术依然是高度安全的,而且它的安全性比侧链要高得多。
顾名思义,任意信任 AnyTrust 代表着你只需要依赖于委员会中的一两个成员,而一般来说,侧链需要你信任大多数侧链参与者,甚至是三分之二的验证者,你才能去信任侧链。Arbitrum Rollup 技术和 Arbitrum AnyTrust 技术,一个是依赖以太坊存储数据,而另外一个技术使用的是数据可用性委员会来做数据存储,但是两个技术在安全性方面都比其他扩容解决方案要高得多。
现在已经介绍了正在开发的技术,具体区块链实现是哪些呢?现在已经有两条链来负责实现这项技术。
Arbitrum One,这是运行时间更长的一条链,已经运行了超过一年的时间,2021 年 8 月正式上线。是乐观的 Rollup,将所有数据都放在以太坊之上。
Arbitrum Nova,今年 8 月份推出的,这是 Arbitrum 链,不会将所有数据发布在以太坊上,而是使用数据可用性委员会。稍候我会给大家揭晓数据可用性委员会的成员到底是谁。
Arbitrum One 和 Arbitrum Nova 有怎样的共同点?首先,都是通用型的区块链,可以在上面部署合约,用户在不经许可的情况下,随意和他们进行交互。和以太坊相比,可扩展性和费用都要大大优于以太坊。比如说 Arbitrum One,平均而言,费用比以太坊便宜 10-50 倍,而 Arbitrum One,由于数据并不存储在以太坊之上,所以在可扩展性方面,以及在费用方面比以太坊要低 30-150 倍。
但是,这两条链都可以实现极快的确认,如果你用 Arbitrum One 或者 Arbitrum Nova,你可能已经意识到一旦你按下「确认交易」按钮的话,马上就可以得到交易的执行结果。这也是所有 Arbitrum 产品的特点,可以实现快速确认,而快速确认可以带来更好的用户体验,这也是很多用户非常熟悉的体验。
这两条链是否相互竞争呢?答案是否定的。虽然他们都是通用型区块链,但是两条链关注的侧重点各有不同。Arbitrum one 是强大的 DeFi 生态,也有非常强大高价值的 NFT 项目,而 Arbitrum Nova 主要针对游戏和社交类项目。
在以太坊扩容方面,我们相信有三个原则至关重要,而这些原则也适用到当前正在搭建的 Arbitrum One、Arbitrum Nova,以及任何其他链。
交易成本。听起来很简单,但这是用户真正所需要的。比如说我们有可扩展性解决方案的时候,对用户来说,他们想要的是支付更低的费用,同时完成交易。从技术上来说,由于我们使用了 Arbitrum,因此对一层以太坊的使用性比较少,同时也能够获得以太坊所保证的安全性。
高安全性。一方面想要便宜的交易,但是另一方面不希望通过牺牲安全性来实现交易成本的下降,所以安全性也应该非常高。不会做出那些为了实现交易低成本而牺牲安全性的事情,不管是 Arbitrum One 还是 Arbitrum Nova,这两条链都优先考虑安全性。Arbitrum One 是完整的 Rollup 数据放在以太坊之上,而 Arbitrum Nova 依赖的是数据可用性委员会进行数据的存储,但是两条链都专注于提供具有高安全性、低成本的交易。
兼容性。如果以太坊开发人员已经掌握了如何在以太坊进行开发的知识,而且你已经为以太坊编写了一些代码,希望这些代码和知识可以直接应用到 Arbitrum 之上。你可能也听到 EVM 兼容性、EVM 等效性等术语。
Arbitrum One 和 Arbitrum Nova 都尽可能地做到和以太坊的兼容,这意味着你之前为以太坊所写的所有代码,以及你在以太坊上获得的知识都可以直接适用于 Arbitrum 之上,这也是为什么我们看到如此多应用已经成功基于 Arbitrum One 和 Arbitrum Nova 进行部署,因为他们之前在以太坊上已经成功地部署了,所以很容易迁移。
假以时日,随着时间的推移,在 Arbitrum 中将开发体验变得更加容易、更加好,核心原则是在以太坊中,在以太坊的环境里适用的所有代码、所有的东西都应该可以直接适用在 Arbitrum 之上。
以上是我们所秉承的三个核心原则:一方面交易成本必须要下降,但是并不牺牲安全性。与此同时,也可以实现和以太坊高兼容性。也就是说,不管从开发者工具,还是从用户工具的角度来说,都可以实现「开箱即用」。
接下来和各位分享 Arbitrum 的开发时间表,2020 年 10 月,也就是 Vitalik 发了以 Rollup 为中心路线图文章的同一时间,我们启动了 Arbitrum One 的测试网。对我们来说,对以太坊社区来说,都是非常重要的时刻,因为是第一个完全建立在测试网之上的通用型 Rollup。对我们来说,以及对于所有参与的 Arbitrum 测试人来说,都是绝佳机会。接下来几个月的测试网运行过程中,学到了很多,也做了很多提升。
下一年的 5 月,真正在主网上推出了 Arbitrum One,但主要是向开发者先开放,推出主网的时候,希望它是公平的发布,并不希望给某一些开发者优先访问的权限,或者给某些应用程序和基础设施优先访问的权限。希望让所有人都能公平参与。所以 2021 年 5 月 -8 月,三个月的测试网时间,只有开发者被允许进入到 Arbitrum 测试网当中,让数百个开发者团队进入,让他们在我们的测试网上进行应用程序的开发和测试。
因为我们希望当我们正式向公众开放主网的时候,所有人都能看到百花齐放的生态,这也是所谓的「公平发布」的策略。如果你看过一个节目的话,他们将 Rollup 类比为「游乐园」,Arbitrum One 就是开普乐新的游乐园,当游乐园向公众打开大门之前,让一些游乐服务的提供者先进入,打造这些游乐体验。
2021 年 8 月当我们正式推出 Arbitrum One 的时候,已经有很多应用和基础设施可以公用或立刻使用了,生态从第一天开始就非常繁荣。为了做到这一点,实施了所谓「公平发布」的策略,让所有开发者都站在同一个阵营之中,而当这个「游戏园」大门向用户、向公众开放的时候,所有人已经做好了准备,上面也看到了百花齐放的应用生态。
在接下来一段时间里,基于 Arbitrum 有大量的应用程序被搭建,但是对我们来说事情还没有结束,并不满足止步于此,希望让 Arbitrum 变得更好。这也是为什么我们推出 Arbitrum Nitro,4 月的时候为开发者推出了 Arbitrum Nitro 的开发网络,又称测试网。在 8 月的时候将 Arbitrum 迁移到了 Arbitrum Nitro,稍候会和各位更多介绍 Nitro 的优势。对我们来说,Nitro 是巨大的升级,意味着费用更低、带宽更高,同时对开发者和用户来说,体验更好。所以 8 月的时候整个团队非常繁忙,不仅将 Arbitrum 迁移到了 Arbitrum Nitro,同时也推出了 Arbitrum Nova 区块链,刚刚我已经和各位介绍了,Arbitrum Nova 是 AnyTrust 链,而且在 8 月的时候正式主网上线。
第一,Arbitrum One。
接下来和各位介绍 Arbitrum One 生态,以及基于 Arbitrum One 有哪些开发项目在开发,对用户、对开发者来说可以带来哪些好处,在 Arbitrum One 中可以做什么。
目前为止看到基于 Arbitrum One 已经有超过 5 万份合约部署,也就是说是以太坊领先的二层解决方案,在 Rollup 中拥有 50% 的市场份额。截止目前,已经有超过 100 万个独立的地址使用 Arbitrum。
但到底生态里有哪些项目?主要都是蓝筹的 DeFi 项目,主要都是来自以太坊的 DeFi 蓝筹项目,其中包括 Uniswap、Sushiswap、Curve、AAVE,除此之外,也有 Arbitrum 原生的新项目,也就是说不是从以太坊迁移的项目,比如说像 DOPEX、VESTA、GMX、TRACER、TRESASURE 等等,这些都是基于 Arbitrum 上所推出的 Arbitrum 原生 DeFi 和 NFT 项目。再加上大家已经熟悉的来自以太坊生态的 DeFi 蓝筹项目,现在 Arbitrum 生态系统已经出现了百花齐放的繁荣景象。
刚刚已经跟各位介绍了兼容性,兼容性不仅适用于应用程序,同时也适用于基础设施,也就是说 Arbitrum 所有的基础设施对开发者来说都是非常熟悉,同时也可以开箱即用的。不管从基础设施的角度,还是应用程序的角度来说,都实现了兼容性,从而使得所有基于 Arbitrum 开发的项目方都非常熟悉,找到他们熟悉的来自以太坊的基础设施。比如说有 ChainLink 在 Arbitrum 生态中为项目提供服务,或者是其他价格信息。
除此之外,还有像 Gnosis Safe,也有针对用户侧的工具,比如 Etherscan。想法是不管从开发者的角度,还是从最终用户的角度来说,希望他们进入 Arbitrum 觉得 Arbitrum 非常熟悉,只要你熟悉以太生态的东西,你就会进入到 Arbitrum 生态之后,熟悉 Arbitrum 上的工具和应用程序。而确实,我们也做到了。
刚刚给各位介绍了在 Arbitrum 上可以做什么,但你可能会扪心自问,到底如何进入 Arbitrum 生态?如何更好地参与 Arbitrum 上各种各样百花齐放的应用生态,如何出入境呢?
好消息是好多方式进入 Arbitrum 生态,如果你有一些中心化的交易所,到目前为止有将近十几个中心化交易所已经直接允许用户可以将你的资金取出到某个 Arbitrum 生态中的项目。其中包括 BINANCE、FTX、Crypto.com,以及很多其他中心化交易所,现在已经推出了这样的服务,直接允许你从 Arbitrum 生态中做出入境。
除此之外,你如果将资金存储在以太坊或其他区块链上,我们也有一些去中心化的跨链桥,允许你和以太坊之间实现桥接。比如说你可以用 Arbitrum 原生的跨链桥,也可以用第三方的跨链桥,比如说 Hop、Synapse 这些跨链桥,允许你在 Arbitrum 以及其他区块链之中实现轻易的迁移和进入。
除此之外,Arbitrum One 也有法币的出入境渠道,可以用信用卡在 Arbitrum 生态中进行资产的购买。对于用户来说,想要在 Arbitrum 上资金存入,并且获得更加好的用户体验,更加快的二层体,更加便宜的交易及感受,Arbitrum 生态中这些庞大的应用程序有各种各样的方法。
第二,Arbitrum Nitro。
在几周之前进入了 Nitro 升级,现在想就这一点进行更多的细节探讨。从技术的角度来说,什么是 Nitro 升级?基本的想法是几周 Nitro 正式上线之前,一直在用所谓的 Arbitrum 虚拟机,在用链上所运行的,这是交互式欺诈证明所使用的虚拟机,这是我们自己开发的虚拟机。
除此之外,也有自己开发的定制节点来支撑虚拟机。虽然两个运行得非常好,但可以用更加标准的组件替换我们自己开发的组件,通过这样的替换,可以利用多年来在以太坊生态中开发者的努力,从而使得开发体验更加接近以太坊的开发体验。除此之外,也引入了高级的调用数据压缩,换言之,将放在以太坊的数据先进行压缩,然后再放在以太坊进行存储。如果通过压缩的话,压缩数据会变得更加小,用户所需要使用的以太坊空间更少,意味着你可以在以太坊上放更多的数据。
在今年 8 月 31 日的时候,成功迁移到 Nitro,这也是我们向公众开放一周年的纪念日。 对我们来说,是非常重要的事件,而且是象征性的事件,但不满足止步于此,一年前建立了 Arbitrum One,又回到起点,希望让 Arbitrum 生态变得更加好,持续扪心自问,如何让生态变得更加繁荣?也保证了迁移是无缝的,也就是说用户不需要做任何事情,不需要做任何准备,就可以完成这次无缝迁移,因为生态是活性的。
我经常喜欢用的类比是 Arbitrum One 相当于是一架飞机,这架飞机已经在空中飞行。我们在空中就做了引擎交换。首先替换掉自己的 Arbitrum 虚拟机飞行引擎,然后飞机还在飞行的时候就换上以太坊虚拟机,这就是从技术上所实现的。
你现在想问的问题是完成 Nitro 升级之后,我们能够获得怎样的好处?基本的想法是吞吐量大幅增加,经过 Nitro 升级之后,吞吐量增加了 7 倍。因为我刚刚提到的这些高级数据压缩,能够将这些节约下来的存储容量给到用户,意味着对用户来说你发布数据或者所需要承担的交易费用会更少。
除此之外,对于开发者来说,我们也为开发者提供了很多提升开发体验的功能。因为我们用了以太坊的节点,所以很多 Gas 计费、追踪支持就和以太坊生态里是一模一样的。也就是说,Arbitrum Nitro 升级以后,和以太坊的兼容性进一步提升,尽可能做到和以太坊兼容性越来越好,对此感到十分兴奋。
第三,Arbitrum Nova。
Arbitrum Nova 是什么?是 AnyTrust 链。现在的问题是 Arbitrum Nova 这条 AnyTrust 链工作的原理是什么?
首先,不会将数据直接存储在以太坊上,会发送给数据可用性委员会,从技术的角度来说,从实践角度来说。会把相关的交易数据发送给排序器,然后排序器再将数据发布到以太坊上。但是在 AnyTrust 链上,比如说 Arbitrum Nova 不会将数据直接发给以太坊,相反排序器会将数据发给数据可用性委员会,由数据可用性委员会签数据可靠性证书,将证书发给以太坊,这就是 Arbitrum Nova 以及 AnyTrust 链具体的技术实现原理。
Arbitrum Nova 有回滚机制,可以回滚到在以太坊上发布数据,如果数据可用性委员会宕机了,如果委员会没有办法接受数据的话。数据就会被回滚发布到以太坊之上。也就是说,Nova AnyTrust 链有回滚机制。不管什么原因,委员会没有办法正常运作,完成自己的使命,这条链不会停止,它会将数据继续发送给以太坊,虽然说费用会上涨,但这条链依然还是像任何正常的 Rollup 链一样保持运行。
数据可用性委员会成员有哪些呢?我的答案是有一些非常强大的 Web2 和 Web3 品牌和 IP 组成,比如说包括 Reddit、Consensys、QuickNode、FTX、Google Cloud 等等,也就是说由 Web2 和 Web3 品牌所组成的综合性委员会,核心观念是只需要信任其中的一两个委员会成员,就可以很好地完成使命。由于有大的 Web2 和 Web3 品牌的参与,所以用户放心自己的数据被安全存储。
下一个问题是 Arbitrum Nova 的用户到底是谁?2020 年 7 月的时候,Reddit 举办了一场聚会,被称为伟大的 Reddit 竞赛。关键就是他们希望能发行区块链的 Toke 因,并且给到社区用户,让社区更好地参与到交互。他们希望能够将它放到主网之上,希望能将 Reddit 社区积分的体验放在主网之上,但不知道如何实现可扩展性,所以要求社区提出了扩容解决方案,大概有 20 多个团队提交了扩容解决方案,包括我们。
2021 年,Reddit 宣布 Arbitrum 赢得了这场比赛,就在几周之前,Reddit 在 Arbitrum Nova 主网上发布。有意思的是第一天 Reddit 带来了超过 20 万用户,这是非常令人兴奋的。人们经常说如何达到大规模采用,如何达到下一个十亿用户。这不是说你让十亿用户直接进入到加密社区。相反的是利用现有的生态,比如说 Reddit 有一些大的社区,每月达到了 4 亿活跃用户,所以让 Arbitrum 和 Reddit 有更密切的合作,就有机会能够让更多用户参与到 Arbitrum 的生态,比如说进入到 Arbitrum Nova,现在 Arbitrum Nova 中已经有两个社区在活跃运行。
Nova Gas 到底能够节约多少 Gas 费呢?因为 Nova 不会将数据发布到以太坊之上,相反将数据直接发到数据可用性委员会,通过这样的方式能够进一步降低 Gas 费,与 Arbitrum One 相比,Arbitrum One 比以太坊上要便宜 97%,而 Nova 比 Arbitrum One 更加便宜。
比如说现在进行一次转账的费用大概不到 1 美分,进行一次 ERC20 的 Swap 费用大概是 2-3 美分,所以 Arbitrum Nova 上的成本非常低。
由于不是所有的数据都发布在以太坊上,所以受以太坊价格波动的影响也更小,也就是说在 Nova 上,交易费用通常更加稳定。
接下来的问题是 Arbitrum Nova 到底是为谁来设计的?你可能会问 Arbitrum One 和 Arbitrum Nova 是否是彼此竞争的。答案并不是如此,因为 Arbitrum One 主要专注 DeFi 和 NFT 项目,但 Arbitrum Nova 针对的是游戏开发以及社交项目。也就是说那些具有高吞吐量的项目,很多用户需要经常接触和区块链进行交互,所以需要非常低的费用,才能更好地与这些链进行交互。
总结来说,Arbitrum Nova 主要是专注于游戏、社交以及其他需要高频交易的超低成本加以所设计的拓展方案。
StarkWare 联合创始人兼总裁 Eli Ben-Sasson:《阐明 StarkNet》
有关 STARK 技术和密码学的故事,可以追溯到三十年前。在 80 年代中期和 90 年代初,数学创新释放出了巨大的力量,并且将这种力量交还到人类的手中。
所以,我们经常会在电影当中看到这样一个画面,一个年幼弱小的孩子,碰到了一条非常强大的巨龙,并且通过某种神奇的方式控制着这条巨龙,而在区块链的世界当中,弱小的孩子实际上就是以太坊,它是作为一种计算设备,存在着某种限制。
而通过某种魔法能够控制大量算力,这里所提到的「魔法」就是数学,所以,STARK 就是基于 30 年的数学研究成果。其中,很多研究成果是经过发明优化之后应用到了 StarkWare,核心在于数学允许你使用密码学来声明它的可靠性。
可靠性到底意味着什么呢?实际上小说家路易斯有一个非常精妙的描述,算没有人在监督,也要保证做正确的事情。
同理,这项数学技术能够让人们相信,即使没有监管,也不需要监督计算的每一步,合约都会保证正确的执行。所以,借助这项非常神奇的数学技术,我们可以致力于让以太坊扩容,以满足全世界的需求。
这篇来自于 30 年前的论文当中有一段非常优美的描述,介绍了一项了不起的数学创新,其中提到「一台可靠的个人电脑,可以监督一台超级计算机的运行」,哪怕这些超级计算机使用的是极其强大,但是不可靠的软件和未经测试的硬件。以太坊就像是非常薄弱、功能有限的计算机。
用论文当中的话来讲,就是一台个人电脑,但是它可以用来声明可靠性,并且知道这群超级计算机执行了正确的操作,而且不对这群超级计算机的可靠性做任何假设。听起来像有魔力一般,但数学的魔法的确可以让它成为现实。
分享我个人的故事,大概二十年前我成为了一名对计算理论感兴趣的年轻数学研究员。而且当时研究的问题之一,就是让这些美丽而又强大的证明魔法不断变得非常高效。而且,我与我的合作者、同事一道做了大量辛勤的工作,几十年以来让这个效率不高的理论,变成了最终非常高效,而且可以在普通或者通用电脑上生成,并且进行验证。
到了这一阶段,成立了 StarkWare,而 StarkWare 的使命就是用数学来维护区块链的可靠性,并且能够实现区块链的可扩展性。在此期间,我也使用了零知识证明技术的不同版本,并且为区块链引入隐私保护。我也是 Z-cash 创始人之一,但是今天不谈隐私的话题,我会聚焦数学和 StarkNet 的可扩展性。
经常有人会问我,从数学家到一名实践者,从一名计算机科学家、教授到企业家是怎样的一种体验?对我而言,从非常理论化的研究到非常实用的场景应用,就好像是穿越一座「沙漠」一样,作为理论家和科学家,我要谈实际应用,而做实践的人有时候不明白理论如何为他们所用,很长一段时间,我和我的同事们不得不穿行在「沙漠」当中,直到我们成功地抵达另外一边,并且做出了今天实际非常有效和可行可用的应用,当然这是另外一个故事了。这项技术能够让用户操作一台较为弱小的计算机,去验证另外一台更强大计算机的可靠性,而这与区块链又有什么关系呢?
回到刚才这句话,一台性能有限的计算机,可以监督并声明大量计算集群的可靠性,并且无需重新执行计算,这就是这项技术为什么会和区块链有关系。
试想一下,以太坊做一台电脑,有许多节点,以去中心化的方式来运行,但如果是一台电脑,作为一台电脑计算机而言,它的性能十分有限。换句话说,对它计算能力的需求远远高于当前的实际性能,这也就是为什么 Gas 的费用很高,而且很拥挤。所以,用 STARK 技术,可以用这台计算机监控在链下完成的更大规模的计算,以及计算结果的可靠性,而且可以拥有和以太坊相同的安全级别和信任假设。
与此同时,通过数学的魔法来增强所有计算的可靠性和安全性。
在当今的金融交易中,我们面临着两种不同的交易方式,第一种是非常传统,我们使用银行的信用卡和支付处理流程,通过这种方式,如果以一种抽象的方式来表述,有人正在使用一台大型计算机,并且每个人都需要信任它。
如果你想知道整个系统是否是非常诚信的,只需要相信或相信政府、审计员或者其他人正在做正确的事情,但它并不是非常包容性的系统,实际上是非常独特的,你和我都不能成为一家银行,并且进行这些交易的处理,那是传统的方式,它在计算和处理事务的能力非常有效。
比如区块链 - 以太坊是极强的包容性,这点非常棒,每个人都可以,也非常欢迎使用自己的个人笔记本电脑接入到以太坊网络,并且成为其信任基础的一部分,我也希望大家正在这样做。
为了让大家每个人都用我们的笔记本电脑连接到以太坊网络,并且成为其信任基础的一部分,我们需要限制其计算量,这样笔记本电脑才能承载。
换句话说,以太坊这样的高度包容性系统非常好,但是作为计算设备而言非常缓慢。我们想要的是具有包容性的系统,能够允许每个人将自己的计算机添加到这个网络中,并且对网络活动予以监督。
与此同时,能让这个系统在链下获得与大型计算机同等的规模。而连接这些不同世界的桥梁,实际上就是 STARK 以及相关的数学应用。
可扩展性有哪些方案可以选择呢?首先你可以让每个人买一台更大的电脑,当然有些人会被拒之门外。顺便说一下,我们也存在一些侧链,一些非常流行的侧链就是用这种做法。过去我们也存在着侧链的做法,比如 EOS 和 BSC 等等,实际上这个方案的实施就是让节点运行更大的计算机,你也可以选择购买一台大型的设备参与其中。但即便如此,它的规模也是有限的。与此同时,包容性也就丧失了。
比如说,当前最受欢迎的区块链之一,对硬件的要求是至少需要 12 个内核和 128GB 的内存,但是我的计算机没有,所以采取另外一种做法,就是要求使用称为欺诈证明的东西。比如 Arbitrum 和 Rollup。有些硬件的要求会更大,这也就意味着我自己的笔记本电脑就没有办法加入。然而,有些人会声称存在着各种博弈论或者激励措施,将会使得这些更大的设备相互之间形成约束,到目前为止,这项技术还没有像预想的那样在任何地方开始启用。如果它确实得到应用,它的安全性应该要符合预期,但至少对于我而言,这点还不清楚,也没有得到证明。因此,这个方案会速度稍快,但是包容性稍差,有些人会拒之门外。
而我们要采用的方法是基于数学的证明,也就是有效性证明的方式,我们要实现的目标是能够让任何人运行非常庞大的计算机,并且处理相关的事情,然而做执行的一切事情都必须向 L1 进行证明,因为这是我们唯一信任的网络。
StarkNet 很好体现了这一原则,当我们在 StarkNet 上运作时,安全性就是以太坊的安全性,你不用对 StarkNet 生态做出任何信任的假设,因为安全性的保障来自于底层,也就是以太坊,这是 StarkNet 能提供的,而这是来自于数学的力量。
证明商店、参观的收据,事实上餐厅的收据是一种非常古老的证明形式。如果你认为餐厅收据是一串用于声明可靠性的字串符,它是用来向顾客证明应该支付的总金额,而总和来自于一系列的算法。当我们收到收据的时候,你可以通过简单的运行这些计算来检查和验证结果的可靠性,因此餐厅收据就是可靠性的证明。
但是从数学的角度来看,它们并不是非常成熟,并且它们不支持可扩展性,因为你需要重新进行运算。而 Stark 证明是类似的,你可以将它看作类似于餐厅收据的东西,但是这个收据的长度以及检查该证明所需要的计算量,要比它所宣称的计算量小得多。所以使用这项技术,你可以处理数十万笔交易,而且不需要对证明器以及整个处理器做出任何信任假设,它可能是黑暗之王或者达斯维德的邪恶之王。
无论你处理这些交易提供什么,但是你可以保证所有的节点都不能作弊,也不能借,因为系统的任何更新都要有完整性证明,一起提交到 L1,这就是我们所做的,对系统状态的任何更新都附有证明,没有人证明是虚假的,如果有证据那就表明是正确的执行,即使没有 L1 的监督,这就是 STARK 证明的力量。所以它不仅仅是一种理论,在以前是一种理论,但如今已经成为一种有效的系统。
想象一下,打造 NFT 的时候,如果你想用以太坊来铸造 NFT,可以在一个区块当中放入几百个 NFT。我们的技术只需要用一个 Stark 证明就可以打造出来,而且执行了 60 万的 NFT,所有这一切都可以轻松放入一个以太坊证明当中。有了这项技术之后,可以实现每个区块数百笔交易,扩容到每个区块数十万、数百万个交易。
StarkNet 能够让每个开发人员、用户拥有这种非常魔力的技术,它能够增强以太坊的能力,并且为它扩容达到指数级。什么是 StarkNet?它非常像以太坊,但是它是为 L2。你可以把智能合约写到 StarkNet 上,可以向智能合约提供相关的交易,而且它支持通用的计算和可以组合。但是由于 Stark 证明的魔力性,可以提供更低 Gas 费用,你甚至可以把 StarkNet 看作是和以太坊非常类似的东西。从用户的角度来看,当你提供交易的时候,所有交易都进入到矿池,矿工对交易进行打包处理,写入到区块当中。
而 StarkNet 做的事情非常类似,在链下进行运行,也就是以太坊是作为 L1 底层链,不知道 StarkNet 上发生了什么,也不需要做任何的信任假设。但是用户可以向排序器提供数十万笔的交易,而排序器将对这些交易进行排序,一个个处理。然后这些交易被发送到证明器,证明器将会为所有交易的正确更新和执行生成一个更加严格的证明。实际上,证明要比计算和交易小几个指数级。这个证明已经提交给了以太坊,而在以太坊中有一个验证智能合约的把关负责校验和可靠性。
大家回想一下刚才提到的这张画面,一位弱小的孩子拥有巨大的魔力,通过魔力可以控制巨大的魔法生物,比如一条巨龙。而在刚才的行业当中,它指的是数学和 Stark 的力量,所以验证器(所谓的小孩儿)是位于 L1 底层的验证者,它是以太坊,但是他仍然可以使用 StarkNet 上非常强大的计算能力,这是属于 L2 层。
StarkNet 自带了一种新的语言叫做 Cairo,简单和大家解释一下,为什么会有这种新的编程语言。你可能会有一个疑问,为什么以太坊会有这样一种新的编程语言,以太坊什么时候出现的?2015 年左右,当时已经有了非常好的编程语言,比如 Python 和 C 语言。但是 Vitalik 和 Gavin 以及其他专家提出了名为 EVM 的虚拟机,和与之配套的新的编程语言。
当然有几种不同的语言,而 Solidity 是其中最有名的,同样现在建议用户和开发人员使用一种新的编程语言,即 Cairo。出于类似的原因,Vitalik 和其他人发明了 Solidity,想要运行区块链会产生新的约束系统,而且你需要一种能够满足这些约束的编程语言。
如果你想要获得最大的可扩展性,实际上你需要使用能够释放这些潜力的编程语言。对于 StarkNet,其编程语言就是 Cairo,你可以用它来写各类应用。而且目前为止,开发人员已经为它编写了数百应用程序,包括用于投票、虚拟身份和游戏的应用程序,希望大家能够加入庞大且不断增长的 StarkNet 和用户网络,并且拥抱这一魔幻的技术。
Scroll 联合创始人张烨:《Scroll 的设计与架构》
在正式跟各位介绍技术细节之前,我想要简单给各位介绍一下 Scroll 项目到底是什么。简言之,Scroll 是一个以太坊的通用型二层扩容方案,和以太坊本身类似,开发者可以在 Scroll 上部署智能合约,同时,也可以和上面的各种应用进行交互。但是在上面的交易费用更加低,而且吞吐量也更高。
和其他二层的解决方案不一样,我们虽然是一个扩容方案,但是在 Scroll 上所有的完整性都会在以太坊进行验证,要么通过 ZK 证明,要么通过欺诈性证明来做,所以 Scroll 的安全保障由于得到了以太坊的支持,所以更加强。
更具体来说,我们现在正在建立一个与 EVM 等效的 ZK Rollup,这意味着什么呢?从技术上来说,Scroll 是基于 ZK Rollup,也就是依赖于有效性证明来证明 Scroll 上所发生的所有加以都是正确的。ZK Rollup 被认为是完全基于纯数据假设的最纯粹扩容解决方案。
在这里以太坊等效性意味着可以在内部支持具有自解码级别的 EVM,对于开发者来说,意味着可以支持 VEM 上支持的所有内容,不仅仅是 Solidity 这样具体的编程语言,同时也可以在字节码层面支持以太坊虚拟机,以及所有相关的开发工具。
所以对于开发者来说,你并不需要了解 ZK Rollup 就可以部署在 Scroll 之上,而且在 Scroll 上的开发体验和在以太坊一层上是完全一样的,你可以使用所有已经熟悉的开发工具,再一个类似的环境中进行部署。
再更加深入介绍具体技术细节之前,首先我想跟各位介绍一下为什么说我们做出了这样的设计决策,背后有哪些原则?
第一,安全性。最重要的任务是安全性,所以在扩容方面最重要的安全形式是保护用户的资金和数据的安全性。在最安全和去中心化的基础层上,也就是基于以太坊之上,用户不需要依赖于 Scroll 节点的诚实来保证自己的资金安全。向他们可以完全利用底层以太坊一层的安全性,来保证自己的资金安全。哪怕他们实际交易在 Scroll 上进行的,因为从安全性的角度来说,完全是依赖于底层的以太坊。
第二,效率。设计第二个重要原则是效率,为了让用户能够在二层上享受更好的用户体验,我们认为交易的费用应该要做到极低,至少比在以太坊上交易费用要低几个数量级。
另外我们认为用户应该在二层上享受及时的确认,如果你向二层的节点发送交易,可以很快地获得确认,而且也可以实现非常快的终局性,也就是说,你的证明能够很快地在一层上得到验证。
第三,EVM 等效性,EVM 有个非常活跃的生态,我们相信有效的以太坊扩容方案,意味着用户和开发者应当拥有无缝的迁移体验,不管他们现在用哪些 DAPP、哪些工具,在迁移过程中应该是完全无缝的。
EVM 等效性是实现这一目标的最佳手段,因为对用户来说,在 Scroll 上可以拥有完全相同的环境,这也是为什么要始终保持 EVM 的等效性,这是我们的目标,也是我们的初心。
第四,去中心化。去中心化是区块链的核心特征,但是经常为人们所忽略,或者是为了效率而被不适当的牺牲,尤其是对一些一层的区块链而言,他们经常为了效率而牺牲去中心化。但是我们认为区块链最有价值的方面之一就是去中心化,它也可以确保协议和社区能够防审查,或者防止一些协同攻击。我们也考虑了 Scroll 各个方面的去中心化,包括节点的去中心化、证明器的去中心化、开发者的去中心化、用户的去中心化,这也是为什么说跨越各层级的去中心化。
这些原则是我们背后的设计原则,最终使得我们找到了现在的技术设计解决方案。
安全性、效率和 EVM 等效性,最终使得我们提出了 zkEVM 的 ZK 解决方案。正如刚刚提到的,ZK 提供的是纯数学的数学保证,不是依赖于任何遭受攻击的经济博弈,另外也是非常有效的。此外每笔交易的成本在大量的交易之中分摊,所以成本也非常低。与欺诈证明相比,有效性证明有更短的确定 / 更短的确认,由于欺诈证明是基于乐观 Rollup,大概需要一周的时间才能完成在一层的验证,但是对于有效性证明来说,如果你能快速地生成证明,就是可以很快地在一层得到终局性的确认。
在我们设计了 ZK 决策之后,我们也意识到 zkEVM 是支持 EVM 等效性最终的胜杯。zkEVM 背后的想法、理念就是 zkEVM 可以用简洁的 ZK 证明来证明 EVM 自解码的正确执行。因为之前所有的 ZK Rollup 都是特定于应用程序,要么是为了某些 DAPP,或者某些专门的交易来设计的。如果你可以证明它为了 EVM 的执行也是正确的,那么你就可以证明 ZK-EVM 是非常通用型的虚拟机。
之前大家认为 zkEVM 不可以实现,因为它的开销很大,比正常的 APP、应用程序开销高出两个数量级。但是由于我们利用了整个社区的协同创新,设计也集成了最近的突破,包括最近的证明器系统、证明器聚合,甚至利用到了 ZK 的硬件加速。
开放式的开发方法,使得我们可以和非常广泛的社区成员合作,尤其是以太坊基金会的隐私和扩容团队,以及其他的在社区中参与者,我们在这方面进行了非常密切的协作,利用最新的研究使得 zkEVM 最终成为可能。
基于这些研究成果,现在也正在搭建基于 zkEVM 的 ZK Rollup,从而满足我刚才提到的诸多设计原则。接下来是去中心化,对去中心化的要求使得我们最终搭建了去中心化的证明器网络,在设计整个 Scroll 系统的时候,尤其是设计 zkEVM 的时候,我们意识到将 EVM 放到 ZK 证明中需要非常大的开销,主要是由于这些本地字段之间不兼容。为了减少、为了缩短证明时间,因为证明时间会影响到最终在 L1 上的终局性时间,我们决定建立一个无需许可的去中心化证明器网络,从而帮助我们在 L2 层上的区块生成证明。
通过这样的方式,我们实现了两个主要的技术优势:
证明器更像是并行运行的、可扩展的,这意味着可以通过添加更多的证明器节点大规模扩展证明器池。
社区将获得激励,运行这些证明器节点,从而为我们构建更好的、显著优化的硬件解决方案,因为社区是有激励的,所以不需要依赖于我们作为中心方搭建这些硬件解决方案。
如果你让社区参与到开发过程中,就可以给他们提供足够的激励,当激励足够的时候,甚至社区愿意搭建矿机。
接下来跟各位介绍一下总体的架构和设计,为了给大家更多有关于架构的背景信息,首先必须要回顾一下 ZK Rollup,以太坊的交易处理非常慢,大家应该耳熟能详,它生成块的速度是非常慢的,由于它更加去中心化,而且依赖于某些特定的共识机制,所以以太坊的交易处理非常慢。
但是对于用户来说,有了 Scroll 可以直接向 Scroll 发送交易,而不是将交易发送给以太坊。Scroll 可以很快地生成二层区块,然后我们会运行一些证明算法,生成有效性证明,证明发送给 Scroll 的这批交易是正确的,然后我们再提供一些必要的块数据作为可用性数据,将这些数据提交给以太坊的第一层。
而 zkProve 则作为提交过程中的公共输入值,证明在应用、执行这些交易之后,状态发生了变更。通过这样的方式,一层只需要验证提交给他的各种证明,而不需要重新执行所有的交易,也就是最终一层验证时间会大大减少。
因此对我们来说,我们必须要有一个证明器,同时也需要一些其他的节点,包括出块的节点。这张幻灯片展示的是 Scroll 的架构,具体由三部分组成:
Scroll 节点。
链上的智能合约,主要是用来进行存入资金以及一层交易的智能合约。
去中心化的证明器网络,证明器网络由很多证明器节点组成,在我们的系统里将这些证明器节点称为 Roller。
首先是排序器,在 Scroll 节点中,有一方叫做排序器,它是 Gas,也就是 Go Ethereum 的分叉,GO Ethereum 可以说是以太坊一层上最受欢迎的实现,可以用来接受二层的交易,并且生成二层的区块。通过这样的方式,我们可以简简单单地利用现有以太坊客户端的实现,从而确保二层和一层的行为是一致的。同时对于开发者来说,他们可以更熟悉,在部署合约的时候更加方便,而不仅仅只是做 RPC 的接口。
第二层是中继器,中继器主要是做信息中继,比如说将信息在跨链桥协议和 Rollup 协议间进行中继。还有一些其他的用户数据,包括用户的交易,一层和二层之间中继器也负责消息的传递,总结来说,中继器就是负责一层和二层之间消息的中继。
第三层是协调器,协调器主要是将跟踪的信息发送给 Roller,换言之,当排序器生成多个区块之后,协调器将所有的信息不仅仅是交易信息,从执行里获得的所有信息收集,稍微我会跟大家具体介绍这一步,因为我们有去中心化的证明器网络,所以协调器必须去判断谁负责为哪个区块进行证明,然后将相关的区块发送给去中心化的证明器网络。这些去中心化的证明器(Roller)会生成证明,然后再将证明发送回协调器,这是整个环路。
zkEVM 是整个设计的核心,所以我们现在深入地探索一下 Scroll 里发生的交易步骤是什么。
首先从协调器那里收到一些执行的追踪,比如你的执行步骤或者区块头、交易的数据、必要的数据、自解码数据、Merkle 证明作为执行的踪迹,然后再将它转化成环路,使用这个环路的输入构建器,从而生成证明。因为它是环路式的,所以必须将这样的东西转化成 ZK 可以使用的,接下来再作为见证者见证来各种。
zkEVM 由多个环路组成,每个环路每个循环都有不同的目的,比如说 EVM 主要是用来做交易的监督,RAM 主要是一些内存的操作,而存储主要是负责存储读写,还有其他的循环,比如签名等其他的循环。通过这样的方式,生成了多个证明。最后还有聚合循环,将这些证明聚合成一个证明,最后把它放到链上。
比如你有一个区块或者一个执行的踪迹,就有一个证明,这就是证明器中,或者在 Roller 中具体发生的技术过程。
接下来跟各位分享一下 Scroll 具体的工作流。首先看一下 zkRollup 的工作流,你需要有区块链数据有效性证明,但这种有效性证明是可以分离的,因为区块数据可以提前提交。我们在这步可以将它进一步分解成两步,一个是有效性的证明,之所以这样做分离,是因为有更强大的确认。因为二层区块不给你任何信息,你必须要依赖于排序器,所有的数据都来自于排序器,但是你一旦有区块数据,你可以对交易进行再次执行,从而获得更强的确认,由于生成证明的时间会更长,可以在后续的阶段之中再提交有效性证明,从而使得你很快地做预确认,确认的程度也会增强。
我们也有不同类型的区块状态,其中一个状态是由排序器已经提出或者已经发起的区块,已经被包含在二层链的区块,就是预 Committed,而另外一类区块叫做 Committed,代表区块的交易数据已经被发送给以太坊上的 Rollup 合约。最终就是已经终局化的区块状态,表明区块中的正确交易执行已经得到了证明,并且已经获得了有效性的证明,也就是已经在以太坊链上,已经在一层得到了证明,意味着到了这步,你的交易已经得到了终局性的确认。
这张幻灯片展示了在 Scroll 中交易的工作流,首先交易会被发送给排序器,区块会变成 Pre-Committed。接下来一步是排序器会将区块数据上传给一层,也就是上传到 Rollup 合约中,这个阶段你的区块成为 Committed。到下一个阶段区块会形成执行的踪迹,你需要这些执行的踪迹生成证明,协调器就会选择一个 Roller 来生成相应的证明。
比如说对于第一个区块,我选择了一个证明器。对于第二个区块协调器,同样会将这样的执行踪迹调度给另外一个证明器,由于这些证明器是并行执行的,所以证明的生成也是并行的。比如说有 3 个证明器可以同时生成三个不同区块的证明,证明又被发送回给协调器,协调器对于这些证明进行验证。接下来要么签名,要么将这些证明再发送给另外一个 Roller,由这个 Roller 再次执行、再次证明。最后协调器聚合了所有的证明,将聚合好的证明发送给一层做合约的验证。合约之前已经有一部分区块数据,再加上证明,两者相结合,最后实现二层上的交易验证和确认。
这张幻灯片展示的是区块状态,包括三种不同类型的区块,包括已经完成终局确认的 Pre-Committed,以及 Committed,不同的颜色代表的是不同的区块状态。我们已经有一个 Alpha 测试网,或者 Alpha 阶段前的测试网,如果大家想要参与测试,或者想要为我们做贡献的话,可以通过扫描屏幕上的幻灯片。
最后和各位分享一下路线图以及当前的开发进度,我们已经完成了预 Alhpa 的测试网,这是需要许可的,而且测试网只能做用户的交互,你可以在这个版本里做一些链上 APP 的尝试。
第二阶段,我们会邀请开发者基于我们部署一些智能合约,并且开发一些额外的应用。
第三阶段,希望启动二层证明的外包,也就是证明生成的过程,我们希望能够邀请所有的社区参与,这是无需许可的,任何人都可以参与到证明网络,成为证明节点。
第四个阶段,到达了 zkEVM 主网阶段,需要经过严格的代码审计以及性能提升之后,我们会部署并且上线主网。
第五个阶段,部署去中心化的排序器,从而使得 zkEVM,包括从设计和技术的角度来说更加高效。
我们有很强大的目标,目标是为以太坊带来下一个 10 亿的用户,因为我们认为所有的交互都会发生在二层之上,我们也非常相信开放、开源的社区,我们所做的一切都会开源,尤其是 EVM 和以太坊社区的贡献者一道完成的。我们也认为整个社区的协同可以帮助我们整个开发过程更加透明,也需要外部的代码审计,不断地追求各个层级的去中心化,包括证明器网络的去中心化,这是去中心化之路第一步。