Metis 将率先实现 Sequencer 的去中心化,并通过存储层结构的改变成为 Gas 最低的 Layer2。
作者:Web3er Liu,CatcherVC
原用标题:剖析新版 Metis:Gas 最低 Layer2 的去中心化进行时 |CatcherVC Research
本文重点:
- Optimism 和 Arbitrum 等 OP Rollup 的根本问题在于 Sequencer 节点的中心化,这需要可靠的解决方案。
- Metis 尝试率先实现 Sequencer 的去中心化,项目方开放了对等节点(Peer Node)网络,将运行 Sequencer 节点的权力让渡给社区成员或其他机构。
- Metis 变更了存储层结构,改变了在以太坊上发布数据的形态。通过集成 Memolabs,可大幅压缩存储费用,成为主流 Layer2 中 Gas 费最低的一个。
- 通过引入新机制,Metis 集成 Memolabs 后的新版本仍具备可靠的安全性与数据可用性。团队判断了潜在情况,并制定了有效措施。
- Metis 支持节点运行者以 DAC(机构级 DAO)的形式注册,以获得持续性的代币收益;同时,提供简易的一站式 DAO 搭载服务,降低 DAO 运营难度,并开放社区生态系统治理 (CEG),将维护 Layer2 网络的权限进一步让渡给社区成员。
传统 OP Rollup 的问题
随着近一年来 Web3、元宇宙、NFT 等概念走进大众视野,Crypto 行业正式进入了高速增长期。在各路资本和海量用户的追捧下,以太坊凭借先发优势成为了整个 Web3 叙事的核心,其系统架构在经历漫长演化后,已充分实现去中心化和安全性,成为名副其实的 “恒星公链”。与此同时,效率的低下严重限制了这条公链的发展。相比于每秒处理几千笔交易的 VISA,TPS 不到 20 的以太坊宛若旧时代的古董,与 Vitalik 口中 “世界级去中心化应用平台” 的宏大愿景相去甚远。
为了满足 Web3 市场的庞大需求,侧链、新公链、Rollup 等不同方案先后走上历史舞台,BSC、Polygon、Solana、Arbitrum、Optimism 等明星项目在瓜分流量的同时,其固存的缺陷却愈发明晰。由于 TPS 受到出块速度的约束,各大 Layer2 或新公链几乎都压缩了节点数量,或将 “共识” 与出块过程解绑,这直接降低了出块时间,却严重削弱了去中心化和系统安全性。
以 Optimism 为例,它采用一个称作 Sequencer(排序器)的单一矿工节点在 Layer2 秒级出块,新区块不需要立刻交给其他节点做验证,可立即在本地敲定,节省了大量时间;同时,由于只有一个出块节点,“记账权” 的分配是确定的,可直接取缔 POW 过程(随机分配记账权的步骤)。
通过缩减出块流程,Layer2 本地区块从产生到敲定可降至 1 秒甚至更低,用户发起交易请求后,最快只要两三秒就可收到结果,与微信支付旗鼓相当。
但此时,Layer2 的新区块没有被验证节点审计,存在不合规的可能性。对此,Sequencer 要定期在 Layer1 发布本地的区块副本,包括交易数据和状态根(关联着 Layer2 上的账户信息)。Layer2 的 Verifier 验证节点会自动读取 Sequencer 发布的内容,并进行审计,判断 Sequencer 是否有造假嫌疑。
从本质来看,Optimism 将以太坊作为一个披露数据、处理纠纷的 “法院”,而关键点在于,Sequencer 要多久在 Layer1 上发布一次数据。如果 Sequencer 很久才提交一次本地数据,无疑会拖延 Verifier 的审计进度,节点间达成共识就要过很久,这会严重削弱 Layer2 的可靠性。
根据 Optimism 官方浏览器,Sequencer 在以太坊上发布状态信息的时间频率,可以慢到 37 分钟一次,这意味着 Sequencer 出块后,Verifier 要等 37 分钟才能做审计。相比之下,以太坊的新区块只需 13 秒便可被全网节点审计完。显然,Optimism 的 Sequencer 和 Verifier 节点间信息不对称很严重,共识机制的可靠性远低于以太坊。
【读者可参考 CatcherVC 此前文章:《深度解读 Optimism:基本架构、Gas 机制与挑战》】
对此,同处 OP Rollup 派系的 Arbitrum 将提交状态信息的间隔缩短为 2~5 分钟一次,这使得 Verifier 节点可以尽快进行状态审计,大幅降低了信息差。
但 Arbitrum 有和 Optimism 相同的缺陷:负责出块的 Sequencer 节点由官方运行,没有将 “记账权” 让渡给外界,其理由在于,Sequencer 的实权太大,关系到所有用户的资产安全,在机制设计尚未健全的情况下,无法保障 “程序正义”。为保险起见,Arbitrum 和 Optimism 的出块节点均由官方作信用背书,以弥补目前系统机制的不完善。
这样做的后果很明显:Arbitrum 和 Optimism 实质成为了中心化运营商。虽然双方都允许用户自由运行 Verifier 验证节点,并可对 Sequencer 提出质疑,但官方仍对 Sequencer 的任免有绝对话语权。这样一来,即便 Verifier 指出当前的 Sequencer 有作恶行为,迫使其下台,新的 Sequencer 却仍将由官方指定。
本质来看,Layer2 的出块权力集中在 Arbitrum 和 Optimism 官方手上,其立足根基在于 “信用” 而非 “程序正义”。同时,由官方来运行 Sequencer 节点会带来另一个大问题:出块节点数量少且物理位置集中,容易遭遇 DDOS 攻击,或产生其他类型的单点故障。
以 Arbitrum 为例,其 Sequencer 节点曾两次宕机,引起了广泛关注。2021 年 9 月 14 日,Arbitrum 和 Solana 均因遭遇 DDOS 攻击而宕机,出块节点在极短时间内收到的交易请求过多,最终导致崩溃;2022 年 1 月 10 日,Arbitrum 的 Sequencer 节点再次宕机,官方称该节点出现硬件故障,而备用的节点设备没有及时完成交接,最终 “单点故障” 引发了整个 Arbitrum 网络的停摆。
可以想见,Arbitrum 和 Optimism 这类中心化系统的缺陷就在于资源过度集中,仅由少量或单个节点负责出块,会使其承担较大的访问流量,易诱发单点故障;同时,官方垄断出块权力也使得 “欺诈证明” 和 “挑战机制” 形同鸡肋,无法从根源上遏制节点作恶问题。
对于自身固存的缺陷,Arbitrum 和 Optimism 官方曾表示将逐步改善,并在未来推行去中心化。但目前,两者并未给出可靠的解决方案,距离去中心化的具体实现尚且遥远。
出于对去中心化原教旨的遵从,同为 OP Rollup 方案的 Metis 近期正式开始对系统架构进行改革,尝试率先实现 Layer2 在架构和经济上的去中心化。
·通过开放对等节点(Peer Node)网络,Metis 将运行 Sequencer 出块节点的权力让渡给社区成员或其他机构,并促进 Sequencer 和其他对等节点快速同步信息,防止其作恶;
·Metis 支持节点运行者以 DAC(机构级 DAO)的形式注册,以获得持续性的代币收益。
·Metis 正式开放了社区生态系统治理 (CEG),将维护 Layer2 网络生态的权限进一步让渡给社区成员。
通过以上方式,Metis 计划率先实现 Layer2 的去中心化。
除此此外,Metis 变更了在以太坊上备份数据的形式。在对等节点网络可以立即验证 Sequencer 本地区块,在 Layer2 网络内防止其作恶的前提下,Metis 将交易指令备份至链下去中心化平台 Memolabs,改为在 Layer1 上提供交易数据在 Memolabs 的存储位置,同时,每笔交易对应的状态根 StateRoot 仍发布在 Layer1。
针对可能出现的 “挑战” 和 “欺诈证明” 场景,Metis 添加了其他功能,使得以上场景发生时,挑战者可以在 Layer1 上还原每笔交易指令的原始数据,无阻碍的完成 “欺诈证明”,使现有版本和旧版本的机制等效。
通过引入对等节点、集成 Memolabs 存储层,Metis 将原本由以太坊负责的存储任务,转变为由对等节点、以太坊、Memolabs 三方同时负责,并引入新的机制确保可靠性。由于有另外两者分担存储任务,Metis 可酌情减少发布在以太坊的数据容量,进而降低 Gas 消耗,大幅降低 Layer2 手续费。
在下文中,作者将对 Metis 落实对等节点网络、集成 Memolabs 存储等重要举措作出解读。
对等节点:实现出块者——Sequencer 的轮换
在传统的 OP Rollup 方案,如 Optimism 和 Arbitrum 中,出块节点是唯一确定的:只有一个 Sequencer 在执行交易和打包区块。这样做直接消除了出块节点的随机性,每轮出块周期开始时,系统再也不用浪费时间去选拔出块者——相比之下,以太坊每个新区块产生前,都要通过 POW 或 POS 过程(合并后)随机选择出块节点,严重拖延了时间。
但是,出块节点的随机性可大幅降低单点作恶的概率。由于记账节点会频繁的轮换,恶意节点掌控合法账本的可能性被降到极低。即使恶意节点获得了某个新区块的记账权,若其发布的区块不合规,依然会被其他诚实节点否决。最后,诚实节点间会再度选举新的出块者,重新发布一个合规的区块,把恶意节点直接架空。
在这种情况下,理论上只要网络内 2/3 的节点为诚实者,便可有效约束恶意节点,这就是著名的 PBFT 机制(实用拜占庭容错);目前,比特币和以太坊的节点容错率甚至可达到 1/2。但是,这类容错算法的有效性建立在节点足够多的基础上。节点数量庞大,作恶节点难以拉拢到大量节点、不易形成串谋时,PBFT 才会生效。在参与出块的节点数量较少时,PBFT 将不再适用,此时单点作恶的可能性极高。
现有的 OP Rollup,包括 Optimism 和 Arbitrum,几乎都默认出块节点 Sequencer 不会作恶。若 Sequencer 出现作恶行为,则允许 Verifie 节点对其进行 “弹劾”,这一过程被称作 “挑战”。但问题在于,Verifier 节点与 Sequencer 之间并不是立刻进行数据同步的,这中间会有一段延时。
本文之前曾提到,Optimism 节点的数据同步延时可以超过 30 分钟,Sequencer 产生新区块后过半小时才轮到验证节点审计,这会产生潜在的安全隐患。而 Arbitrum 虽然将延时降至几分钟,但其未向官方以外的机构开放运行 Sequencer 的权限,这不利于经济上的去中心化,且立足点在于项目方的 “信用”,严重违背区块链的 “程序正义” 原则。
此外,由于 Optimism 和 Arbitrum 均未发行代币,无法高强度的激励验证节点运行者,这不利于节点数量的扩充,使得 Layer2 更像联盟链而非公链。
为了避免上述问题,Metis 在 Optimism 的原有架构上进行了大量改进,其中最重要的举措便是开放对等节点(Peer Node)。
- 传统公链如比特币和以太坊等,都是由对等节点组成的 P2P 网络,这些节点间会频繁同步信息,确保状态一致;同时,每个对等节点可自愿成为矿工,参与出块。新区块产生后,会被传播给其他对等节点做审计。
- Metis 构建了名为 Sequencer Pool 的对等节点网络,允许社区成员运行对等节点,这些节点通过轮换的方式充当 Sequencer,实现 “风水轮流转”,解决 OP Rollup 中 Sequencer 节点的中心化问题;
- 当前的 Sequencer 出块后,会将新区块同步给其他对等节点做审计,以防止单点作恶。每过一段时间,Sequencer 就会变更一次,这样便可实现记账权的分散化。
- 普通公链的每个出块周期都有随机选择出块者的过程,会浪费较多时间。目前 Sequencer Pool 内对等节点没有大型公链那么多,出块者的轮换周期也相对较长。在每个周期内,Sequencer 仍是单一的。未来 Metis 将逐步缩短轮换周期,并引入新的时间戳生成机制。
- Metis 支持社区成员运行对等节点,并且对其提供代币激励。对等节点运行者往往以 DAC(机构级 DAO)的名义进行注册,硬件设备最低配备 8 核 CPU、32GB 内存,且需要质押一定量的 Metis 代币。
从本质来看,原本为 Metis 网络内下辖子网的 Sequencer Pool 成为了一个 “委员会”,这个委员会由对等节点组成,职能是充当或监督 Sequencer,并且在形式上可以看到 POS 公链的影子。
按照 Metis 正在实施的方案,Sequencer Pool 已从十几个对等节点的规模开始投入运行,在这样的网络规模下,对等节点间通讯的时间复杂度很小,可以立即对新区块达成共识。同时,不同的对等节点均可充当网络负载,满足外界的访问请求,用户无需单方面接受单个节点提供的数据。
现在的 Metis 实际上获得了来自对等节点网络和 Verifier 节点的两层安全保障。其中,对等节点可以实时验证 Sequencer 在 Layer2 本地的数据,而 Verifier 主要负责验证 Sequencer 提交到 Layer1 上的数据。
在未来,Metis 计划将 Sequencer Pool 内的对等节点数量大规模扩充,使其具备更高的安全性,并将 Verifier 验证者节点纳入 Sequencer Pool 名单内,使所有的对等节点既可担任 Sequencer,又可担任 Verifier。同时,Metis 计划引入新的算法及时间戳生成机制,在仍保有高效率的同时,实现 “每隔几个区块就换一次 Sequencer”,以确保去中心化。
新的存储结构——“若无必要,勿增实体”
在大多数公链或 Layer2 中,记录用户信息的数据库都采用了树状的结构,称为状态树,树根的哈希值被称作状态根 StateRoot。一笔交易指令被执行后,某些账户的状态必然产生变化,此时状态树根的哈希值也会随之改变。可以说,每笔交易的执行都会产生一个新的状态根 StateRoot,从时间角度看,两者是一 一对应的关系。
若是按照时间顺序,将每笔【交易的指令内容】及对应的【状态根】一一罗列出来,就可以得到一个精确的账本。在 Optimism 等传统 OP Rollup 方案里,Sequencer 在以太坊上存储的就是这些内容。
Verifier 验证者会读取这些内容,检查其准确性。一般而言,Verifier 节点会按照时间顺序,把交易指令依次执行一遍,通过自己的计算得到一批状态根 StateRoot,之后 Verifier 只需要将自己算出的 Stateroot 和 Sequencer 提交的 StateRoot 做对比即可,这就好比老师在事先不知道标准答案的情况下,临时靠心算来批改学生的数学作业。
若 Verifier 发现 Sequencer 提交的某笔交易指令或对应的状态根有问题,便会发起 “挑战”,提供 “欺诈证明”。
在 Optimism 及旧版本的 Metis 中,Sequencer 会把交易指令及对应的状态根都发布到以太坊上,实质将以太坊作为一个存储层,同时也借助以太坊网络来处理 “挑战” 过程。这样做虽然可以保证数据可用性,但消耗的 Gas 非常高。
以上图 Optimism 在以太坊发布的一批交易为例,该批次共包含 204 笔交易指令,消耗的 Gas 费超过 211 美元,相当于单笔交易指令的存储费超过 1 美元;再考虑到存储这批交易对应状态根所需的 Gas,Optimism 上单笔交易的存储费用可以达到 1.5 美元,对于大多数用户而言,这种量级的费用还是太高。
针对这个问题,Metis 在近期做出了重要调整。Metis 取缔了在以太坊上直接存储交易指令的步骤,将交易批次转存至 Memolabs,该平台类似于 Filecoin,但存储成本更低,数据检索速度更快。通过集成 Memolabs 存储层,Sequencer 先将一大批交易指令存储在 Memolabs,然后在以太坊上发布这个交易批次对应的存储索引,Verifier 节点可通过该索引值从 Memolabs 读取原始的交易数据。
同时,由于状态根 StateRoot 比交易数据更重要,它们仍被存储至以太坊。
一言以贯之,这符合奥卡姆剃刀原理:“若无必要,勿增实体”。Metis 的哲学就是:没有必要存入以太坊的内容,可通过其他方式进行等价代换。这样可以节约存储成本,减小用户承担的成本压力。
通过这种存储结构,Metis 可大幅压缩存储费用,将 Layer2 单笔交易的手续费降低至几美分。目前,Metis 已经成为主流 Layer2 中 Gas 费最低的一个。
但是,Metis 的以上做法衍生出了其他问题:变更存储结构是否会改变安全性,或改变数据可用性?对此,我们将对多种可能出现的结果进行解析。
Metis 及 OP rollup 的安全性及数据可用性问题有两方面,第一个是:
·Sequencer 在 Layer2 执行交易时,会立即将其在本地敲定,暂时具备 “最终性”。具体场景为:用户在 Metis 网络发起交易请求后,几秒钟就会收到结果。这里的问题在于,由 Sequencer 单方面给予的暂时 “最终性” 是否可靠?
由于 Metis 的 Sequencer 出块后,会立刻将信息同步给 Sequencer Pool 的对等节点,节点们可立即对区块内容进行审计,若发现 Sequencer 提交了违规区块,便可将其移出 Sequencer Pool。所以,此处的安全性与普通公链相当。同时,外界可在多个对等节点间选择信息源,无需单方面信任某个节点,数据可用性也不存在问题。
第二个问题是:
·Metis 将交易数据转存至 Memolabs 后,验证过程和挑战机制是否会受到影响?新加入 Metis 网络的节点在同步历史数据时,又会否遇到不便?
这里涉及到多种可能情况,可以分类讨论。由于 Metis 仍将状态根发布至以太坊,所以 StateRoot 的可用性不会受到影响。而交易数据的可用性针对 Verifier 节点 或 新加入 Metis 网络的节点 两类群体。
对于后者,新节点只需要通过其他 Verifier 或对等节点同步历史数据即可,也可读取 Memolabs 上的交易数据及以太坊上的状态根记录。目前 Metis 共有 80 多个私人运行的 Verifier 节点,已经具备较强的数据可用性。考虑到 Verifier 的数量仍在扩充之中,对于新节点而言,同步历史数据时不会面临多大问题。
而对于已有的 Verifier 节点,面临的问题在于:能否顺利获取交易数据,并检查对应的状态根。若发现 Sequencer 提交的内容有误,又可否在以太坊上顺利进行 “挑战”。
对于这个问题,可以对下列场景分别进行分析:
1. 若 Sequencer 在以太坊上提供了 Memolabs 索引,使 Verifier 顺利读取到交易数据,经过检查,这些交易指令无误(数字签名等都正确),则剩下的检查点在于 Layer1 上存储的状态根。
·若经审计,每笔交易都可以和对应的状态根匹配,则此时 Verifier 顺利完成数据同步,也无需发起 “挑战”。此时不存在问题。
·若 Verifier 发现,某笔交易指令和状态根不能匹配,此时状态根必然错误。Verifier 可要求 Sequencer 将 错误状态根 对应的 交易数据披露到 Layer1 上。
如果 Sequencer 同意,则 “挑战” 过程顺利进行,Sequencer 会受到惩罚;
如果 Sequencer 不同意,Verifier 可把自己在 Memolabs 读到的交易数据写入以太坊,完成 “挑战”,Sequencer 同样受到惩罚;
显然,在以上场景中,数据可用性和 “挑战” 机制不受影响,
2. 若 Sequencer 在 Memolabs 存储了伪造的交易指令(数字签名无效),Verifier 要发起 “挑战”;此外,Verifier 必须要获取正确的 Layer2 原生交易指令,才能检验状态根的正确性。
·此时,Verifier 可要求 Sequencer 在以太坊上发布相关的交易批次,这会让 Sequencer 花费大量的 Gas 费,相当于变相惩罚;
·若 Sequencer 拒绝,则 Verifier 可以把自己从 Memolabs 读到的错误数据披露到 Layer1,展开 “挑战”,Sequencer 会受到更严厉的惩罚。
正常情况下,Sequencer 被 Verifier 挑战成功后,其遭受的损失会远高于在 Layer1 上发布交易批次时消耗的 Gas 费。所以,若 Verifier 要求 Sequencer 在 Layer1 发布交易数据时,其必定会把正确的交易数据披露出去。
此时,Sequencer 必须发布 Verifier 需要的单个交易批次,包含成百上千笔交易数据,在 Layer1 发布时消耗的 Gas 会非常高,甚至可达到几百美元,相当于变相惩罚。
由以上讨论可以得知,数据可用性和 “挑战” 过程不受影响。
3. 若 Sequencer 在 Layer1 发布了虚假的 Memolabs 存储索引,Verifier 无法顺利读取到交易批次包含的数据,这时它可以向前文所描述的那样,要求 Sequencer 在 Layer1 披露交易批次。若其拒绝,则 Verifier 可以从对等节点处获取相应数据,继续后续的检验工作,或发起挑战。
对于屡次发布伪造交易数据、发布错误的 Memolabs 存储索引,或拒绝配合 Verifier 要求的 Sequencer,Metis 的社区成员可通过 DAO 治理投票的形式,将作恶的 Sequencer 运行者标记出来,罢免它的权限,这类似于政治上的 “弹劾”。
通过以上精心设计的机制,Metis 可以保障 Verifier 节点的权益。但为了防止 Verifier 滥用权力,恶意要求 Sequencer 在 Layer1 写入交易数据,通过 Gas 消耗来攻击诚实的 Sequencer 运行者,Metis 作出以下要求:
·Verifier 若要求 Sequencer 在 Layer1 写入交易数据,需提前质押一定量的资金获得白名单资格,并且每次向 Sequencer 发起类似的命令,都要消耗一笔手续费;这笔手续费的数值经过仔细衡量,可以防止 Verifier 频繁向 Sequencer 发起无理要求。
·任何节点都可以发起 “挑战” 和 “欺诈证明”,理论上这些节点间可以互相配合,使数据可用性与安全性得到保障。
归纳总结
依照前文提出的核心论点,结合近期 Metis 官方动态,在此归纳得出:
- Optimism 和 Arbitrum 等 OP Rollup 的根本问题在于 Sequencer 节点中心化,这需要可靠的解决方案;Metis 尝试率先实现 Sequencer 的去中心化。
- Metis 开放了对等节点(Peer Node)网络,将运行 Sequencer 出块节点的权力让渡给社区成员或其他机构,实现轮换制,并促进 Sequencer 和其他对等节点快速同步信息,防止其作恶;
- Metis 变更了存储层结构,改变了在以太坊上备份数据的形式。通过集成 Memolabs,Metis 大幅压缩存储费用,已经成为主流 Layer2 中 Gas 费最低的一个。
- 通过缜密的机制设计,Metis 集成 Memolabs 后的新版本仍具备较强的安全性与数据可用性。Metis 团队已经对可能出现的情况进行了判断,并制定了相应措施;
- 为了将 Sequencer 的权力进一步削减,Metis 计划在未来添加提议者 Proposers 的角色,在 Sequencer 发布交易数据后,Proposers 负责向以太坊提交每笔交易对应的状态根,这样可形成更强的分权制衡。
- Metis 支持节点运行者以 DAC(机构级 DAO)的形式注册,并对其提供持续性的代币收益。在这方面,已发币 Metis 比未发币的 Optimism 及 Arbitrum 更具优势;
- Metis 提供简易的一站式 DAO 搭载服务,降低 DAO 及 DAC 组织的运营难度,并开放社区生态系统治理 (CEG),将维护 Layer2 网络生态的权限进一步让渡给社区成员。目前,Metis 生态已有 500 个 DAC 组织,成员近 5000 个。
- Metis 集成 Memolabs 去中心化存储层后,生态内 DAO 组织可以将不必公开的数据转存至 Memolabs,而对应的存储索引只可被白名单用户获得,这样可确保 DAO 维护自身隐私。
- Metis 未来将支持多个子网的分片式结构,允许不同的 DAO 组织运行状态彼此独立的 MVM 虚拟机,以实现类似 ETH2.0 的多链分片机制。
- 近期,Metis 开启了 NFT 跨链桥功能,结合超低的 Gas 费,Metis 致力于建设 NFT 用户的最佳平台;
- 未来,在系统容错性足够强大的条件下,Metis 将酌情缩短挑战期,成为跨链最方便的 Layer2。
参考文献:
The Tech Journey: Lower Gas Costs & Storage Layer on Metis
免责声明:作为区块链信息平台,本站所发布文章仅代表作者及嘉宾个人观点,与 Web3Caff 立场无关。本文内容仅用于信息分享,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。