作者:protolambda,OP Labs 研究员;编译:Frank,Foresight News
为了创建最强壮和安全的互操作性 Layer2 网络,Optimism Collective 正在经过许多不同的途径追求去中心化。
而 OP Stack 行将推出的防毛病体系将是技能去中心化的一大一步,OP Stack 的开源和模块化设计正在为 L2 生态体系的社会去中心化发明了史无前例的舞台。
在本文中,咱们将讨论社会去中心化原则,以及 L2 架构怎么使 Layer 2 可以扩展这一原则以包括证明多样性和客户端多样性,并介绍 Optimism Collective 怎么运用该架构构建其防毛病体系。
受以太坊启发的「社会去中心化」
以太坊协议受益于社会去中心化,尤其是经过在解决方案中供给可挑选性,使广泛的贡献者可以参加构建一个强壮的去中心化网络。
关于节点软件而言,这意味着客户端多样性:具有更多的客户端,那单点毛病对验证者网络的影响就越小。
Layer1 的中心开发者将这种贡献形式描述为「集市」(bazaar),它喧闹且看似混乱,但却十分高效且充满活力。经过选用彻底敞开式的协议开发办法,可以使最广泛的贡献者参加并改善协议。
而 Optimism Collective 具有独特的优势,可以施行和迭代以太坊完成社会去中心化的办法:OP Stack 经过供给敞开标准和 MIT 许可证下的开源软件来完成社会去中心化,而且 Optimism Collective 可经过创建超级链对其进行迭代。
对 L2 架构的更具体了解
以太坊在 L1 具有敞开的标准,以及将一致层和履行层分隔的模块化客户端架构。
OP-Stack 在 L2 上完成了相同的架构:
一致层由 op-node 和 Magi 供给支撑,这两个客户端遵从 L1 并导出履行输入;
履行层由 op-geth、op-erigon 和 op-reth 供给支撑;
但是,L2 架构在此仓库中添加了一个新层:验证层(proving layer)。
这是将 L2 输出安全地桥接回 L1 的层级,正如具有多个客户端是保证在 L1 和 L2 上达成一致和履行的最佳实践相同,关于 L2 的验证层来说,选用多种证明办法可以保证最佳安全性。
相似于具有不同客户端的验证者们达成一致,链上证明的法定数量可以表明 L2 状况声明已经以不同办法得到验证,从而大大降低了过错导致彻底失利的可能性。
现在共有三种常见的证明类型:证明(attestations)、过错证明(也称为诈骗证明)和零常识有效性证明。后两者共享一个常见形式,它们以同步形式表达 L2 状况转化,并在给定 L1 数据和 L2 前状况作为输入时,证明其履行。
隔离证明体系组件以完成证明多样性
证明体系可以进一步分解为独立的组件:
-
一个「程序」,界说了同步的 L2 状况转化;
-
一个「虚拟机」(VM),运转并验证该程序;
-
一个「预映像预言机」(pre-image oracle),将 L1 数据和 L2 预状况作为输入;
今日的许多零常识证明仍然在紧密地耦合这些组件,创建了一个在单一 L1 交易数据上运转的 ZK-EVM。但是,OP 仓库将它们解耦以隔离复杂性,并完成客户端的多样性,从而使整体愈加强壮。
交互式毛病证明将二分游戏(bisection-game)添加到虚拟机跟踪中,以验证链上的证明,而根据虚拟机的零常识证明则对履行进行算术化和折叠,并供给有效性证明。(请参阅 Risc0 和 O(1)-Labs 正在设计以呼应 Optimism ZK RFPs 的根据虚拟机的零常识证明)。
该程序将实际的状况转化界说为「客户端」,将输入获取(L1 数据和 L2 预状况)界说为「服务器」。该程序在没有虚拟机的情况下,与服务器 / 客户端独立运转,这与惯例区块链节点十分相似,而且共享了大量代码。
例如,Go op-program 客户端是经过从 op-geth 导入 op-node 的派生和 EVM 来构建的,而服务器则从 L1 和 L2 以太坊 RPC 获取其数据。
FPVM 的功能概述
毛病证明虚拟机(FPVM)是 OP Stack 中毛病证明仓库的模块之一。
除了供给正确的接口(尤其是与预映像预言机相关的接口),该虚拟机没有完成任何特定于以太坊或 L2 的内容,在 FPVM 内运转的毛病证明程序(FPP)客户端是表达 L2 状况转化的部分。
经过这种别离,虚拟机保持极简:以太坊协议的更改(如 EVM 操作码的添加)不会影响虚拟机。
相反,当协议发生改变时,FPP 可以简单地更新以导入节点软件中的新状况转化组件,相似于在同一游戏主机上玩新版本的游戏,L1 证明体系可以更新以证明不同的程序。
虚拟机负责履行低级指令,需要模仿 FPP。虚拟机要求较低:程序是同步进行的,而且一切输入都经过相同的预映像预言机加载,但一切这些仍然必须在 L1 EVM 链上得到证明。
为了做到这一点,每次只能证明一个指令。二分游戏(bisection-game)将把证明完整履行跟踪的任务缩小到只有一个指令。
关于每个 FPVM 来说,指令证明可能看起来不同,但通常看起来与 Cannon 相似,它证明指令如下:
-
为了履行该指令,虚拟机模仿相似于线程上下文(thread-context)的指令周期的东西:从内存中读取指令、进行解说,而且寄存器文件和内存可能会发生一些改变;
-
为了支撑预映像预言机以及内存分配等根本程序运转时的需求,履行还支撑 Linux 体系调用的子集。读 / 写体系调用答应与预映像预言机进行交互:程序将哈希作为请求写入,以获取预映像,然后按一小块一小块地每次进行读取;
Cannon,第一个 FPVM,就是以这种办法完成了 MIPS 虚拟机。有关虚拟机的更多信息,请参阅相关文档和 cannon-specs。FPVM 与 FP 程序之间的接口是标准化的,并在标准中有所记载。
从 FPVM 到 ZKVM
毛病证明不是仅有类型的状况转化证明,ZK 有效性证明是一个有吸引力的挑选,由于它具有快速跨链桥接的潜力(由于 ZK 有效性证明没有链上挑战游戏,所以没有争议窗口)。为了支撑先进的以太坊仓库并保管不同的客户端完成,咱们仍然需要将虚拟机和程序解耦。
这是 ZK RFP 项目采取的办法,以证明一个最小的 RISC-V(由 Risc0)或 MIPS(由 O(1) Labs)虚拟机可以保管与毛病证明中运用的相同程序。
支撑 ZK-VM 确实需要进行一些小的调整,使得预映像预言机可以以非交互办法加载数据,但经过将虚拟机通用化,ZK 证明在面对 OP Stack 改变时更具未来性。
外部贡献者的机会
OP Stack 欢迎额定的虚拟机和程序选项,以及额定的独立证明体系,从证明到零常识证明。就像客户端多样性相同,证明多样性是一个集体尽力的结果。
现在正在进行中的对 OP Stack 证明层的补充包括:
-
由 protolambda 开发的根据 Go 语言编写的 RISC-V FPVM「Asterisc」;
-
由 Base 和 OP Labs 贡献者一起构建的根据 Magi 和 op-reth 的 rust FP 程序;
-
由 Risc0 构建的根据 zeth(ZK-reth 分支)的 rust ZK 程序;
跟着 Cannon、op-program、bisection-game 以及开源社区的无限发明力的发展,经过测试施行和参加漏洞赏金计划,将有许多额定的机会为仓库做出贡献。
此时快讯
【两只巨鲸过去7小时累计买入1494枚MKR】金色财经报道,据Lookonchain监测,2只巨鲸正在买入MKR。其中:巨鲸0x5CDd在过去7小时内花费899枚ETH(144万美元)买入958枚MKR,价格为1502美元。巨鲸0x6CEa在过去3小时内花费80万枚USDT以1492美元的价格买入536枚MKR。