剖析新版Metis:Gas最低Layer2的去中心化进行时 |CatcherVC Research

Metis将率先实现Sequencer的去中心化,并通过存储层结构的改变成为Gas最低的Layer2。

文 / Web3er Liu,CatcherVC

本文重点:
· 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过程(随机分配记账权的步骤)。

(Optimism的核心架构)
(Optimism的核心架构)

通过缩减出块流程,Layer2本地区块从产生到敲定可降至1秒甚至更低,用户发起交易请求后,最快只要两三秒就可收到结果,与微信支付旗鼓相当。

但此时,Layer2的新区块没有被验证节点审计,存在不合规的可能性。对此,Sequencer要定期在Layer1发布本地的区块副本,包括交易数据和状态根(关联着Layer2上的账户信息)。Layer2的Verifier验证节点会自动读取Sequencer发布的内容,并进行审计,判断Sequencer是否有造假嫌疑。

从本质来看,Optimism将以太坊作为一个披露数据、处理纠纷的“法院”,而关键点在于,Sequencer要多久在Layer1上发布一次数据。如果Sequencer很久才提交一次本地数据,无疑会拖延Verifier的审计进度,节点间达成共识就要过很久,这会严重削弱Layer2的可靠性。

根据Optimism官方浏览器,Sequencer在以太坊上发布状态信息的时间频率,可以慢到30多分钟一次,这意味着Sequencer出块后,Verifier要等30分钟才能做审计。相比之下,以太坊的新区块只需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上还原每笔交易指令的原始数据,无阻碍的完成“欺诈证明”,使现有版本和旧版本的机制等效。

(Metis新版本的核心架构)
(Metis新版本的核心架构)

通过引入对等节点、集成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白皮书里的架构设想)
(Metis白皮书里的架构设想)

现在的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读取原始的交易数据。

(旧版和新版Metis在Layer1发布的交易批次相关数据量,可以看出新版本少了很多)
(旧版和新版Metis在Layer1发布的交易批次相关数据量,可以看出新版本少了很多)

同时,由于状态根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

Subscribe to ChainCatcher 链捕手
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from ChainCatcher 链捕手

Skeleton

Skeleton

Skeleton