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

文/SA,CatcherVC

本文重点:·Optimism和Arbitrum等OPRollup的根本问题在于Sequencer节点的中心化,这需要可靠的解决方案。

·Metis尝试率先实现Sequencer的去中心化,项目方开放了对等节点网络,将运行Sequencer节点的权力让渡给社区成员或其他机构。

·Metis变更了存储层结构,改变了在以太坊上发布数据的形态。通过集成Memolabs,可大幅压缩存储费用,成为主流Layer2中Gas费最低的一个。

·通过引入新机制,Metis集成Memolabs后的新版本仍具备可靠的安全性与数据可用性。团队判断了潜在情况,并制定了有效措施。

·Metis支持节点运行者以DAC的形式注册,以获得持续性的代币收益;同时,提供简易的一站式DAO搭载服务,降低DAO运营难度,并开放社区生态系统治理(CEG),将维护Layer2网络的权限进一步让渡给社区成员。

传统OPRollup的问题

随着近一年来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的Verifier验证节点会自动读取Sequencer发布的内容,并进行审计,判断Sequencer是否有造假嫌疑。

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

根据Optimism官方浏览器,Sequencer在以太坊上发布状态信息的时间频率,可以慢到30多分钟一次,这意味着Sequencer出块后,Verifier要等半小时才能做审计。相比之下,以太坊的新区块只需13秒便可被全网节点审计完。显然,Optimism的Sequencer和Verifier节点间信息不对称很严重,共识机制的可靠性远低于以太坊。

对此,同处OPRollup派系的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官方曾表示将逐步改善,并在未来推行去中心化。但目前,两者并未给出可靠的解决方案,距离去中心化的具体实现尚且遥远。

出于对去中心化原教旨的遵从,同为OPRollup方案的Metis近期正式开始对系统架构进行改革,尝试率先实现Layer2在架构和经济上的去中心化。

·通过开放对等节点网络,Metis将运行Sequencer出块节点的权力让渡给社区成员或其他机构,并促进Sequencer和其他对等节点快速同步信息,防止其作恶;

·Metis支持节点运行者以DAC的形式注册,以获得持续性的代币收益。

·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的轮换

在传统的OPRollup方案,如Optimism和Arbitrum中,出块节点是唯一确定的:只有一个Sequencer在执行交易和打包区块。这样做直接消除了出块节点的随机性,每轮出块周期开始时,系统再也不用浪费时间去选拔出块者——相比之下,以太坊每个新区块产生前,都要通过POW或POS过程随机选择出块节点,严重拖延了时间。

但是,出块节点的随机性可大幅降低单点作恶的概率。由于记账节点会频繁的轮换,恶意节点掌控合法账本的可能性被降到极低。即使恶意节点获得了某个新区块的记账权,若其发布的区块不合规,依然会被其他诚实节点否决。最后,诚实节点间会再度选举新的出块者,重新发布一个合规的区块,把恶意节点直接架空。

在这种情况下,理论上只要网络内2/3的节点为诚实者,便可有效约束恶意节点,这就是著名的PBFT机制;目前,比特币和以太坊的节点容错率甚至可达到1/2。但是,这类容错算法的有效性建立在节点足够多的基础上。节点数量庞大,作恶节点难以拉拢到大量节点、不易形成串谋时,PBFT才会生效。在参与出块的节点数量较少时,PBFT将不再适用,此时单点作恶的可能性极高。

现有的OPRollup,包括Optimism和Arbitrum,几乎都默认出块节点Sequencer不会作恶。若Sequencer出现作恶行为,则允许Verifie节点对其进行“弹劾”,这一过程被称作“挑战”。但问题在于,Verifier节点与Sequencer之间并不是立刻进行数据同步的,这中间会有一段延时。

本文之前曾提到,Optimism节点的数据同步延时可以超过30分钟,Sequencer产生新区块后过半小时才轮到验证节点审计,这会产生潜在的安全隐患。而Arbitrum虽然将延时降至几分钟,但其未向官方以外的机构开放运行Sequencer的权限,这不利于经济上的去中心化,且立足点在于项目方的“信用”,严重违背区块链的“程序正义”原则。

此外,由于Optimism和Arbitrum均未发行代币,无法高强度的激励验证节点运行者,这不利于节点数量的扩充,使得Layer2更像联盟链而非公链。

为了避免上述问题,Metis在Optimism的原有架构上进行了大量改进,其中最重要的举措便是开放对等节点。

·传统公链如比特币和以太坊等,都是由对等节点组成的P2P网络,这些节点间会频繁同步信息,确保状态一致;同时,每个对等节点可自愿成为矿工,参与出块。新区块产生后,会被传播给其他对等节点做审计。

·Metis构建了名为SequencerPool的对等节点网络,允许社区成员运行对等节点,这些节点通过轮换的方式充当Sequencer,实现“风水轮流转”,解决OPRollup中Sequencer节点的中心化问题;

·当前的Sequencer出块后,会将新区块同步给其他对等节点做审计,以防止单点作恶。每过一段时间,Sequencer就会变更一次,这样便可实现记账权的分散化。

·普通公链的每个出块周期都有随机选择出块者的过程,会浪费较多时间。目前SequencerPool内对等节点没有大型公链那么多,出块者的轮换周期也相对较长。在每个周期内,Sequencer仍是单一的。未来Metis将逐步缩短轮换周期,并引入新的时间戳生成机制。

·Metis支持社区成员运行对等节点,并且对其提供代币激励。对等节点运行者往往以DAC的名义进行注册,硬件设备最低配备8核CPU、32GB内存,且需要质押一定量的Metis代币。

从本质来看,原本为Metis网络内下辖子网的SequencerPool成为了一个“委员会”,这个委员会由对等节点组成,职能是充当或监督Sequencer,并且在形式上可以看到POS公链的影子。

按照Metis正在实施的方案,SequencerPool已从十几个对等节点的规模开始投入运行,在这样的网络规模下,对等节点间通讯的时间复杂度很小,可以立即对新区块达成共识。同时,不同的对等节点均可充当网络负载,满足外界的访问请求,用户无需单方面接受单个节点提供的数据。

现在的Metis实际上获得了来自对等节点网络和Verifier节点的两层安全保障。其中,对等节点可以实时验证Sequencer在Layer2本地的数据,而Verifier主要负责验证Sequencer提交到Layer1上的数据。

在未来,Metis计划将SequencerPool内的对等节点数量大规模扩充,使其具备更高的安全性,并将Verifier验证者节点纳入SequencerPool名单内,使所有的对等节点既可担任Sequencer,又可担任Verifier。同时,Metis计划引入新的算法及时间戳生成机制,在仍保有高效率的同时,实现“每隔几个区块就换一次Sequencer”,以确保去中心化。

新的存储结构——“若无必要,勿增实体”

在大多数公链或Layer2中,记录用户信息的数据库都采用了树状的结构,称为状态树,树根的哈希值被称作状态根StateRoot。一笔交易指令被执行后,某些账户的状态必然产生变化,此时状态树根的哈希值也会随之改变。可以说,每笔交易的执行都会产生一个新的状态根StateRoot,从时间角度看,两者是一一对应的关系。

若是按照时间顺序,将每笔及对应的一一罗列出来,就可以得到一个精确的账本。在Optimism等传统OPRollup方案里,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及OProllup的安全性及数据可用性问题有两方面,第一个是:

·Sequencer在Layer2执行交易时,会立即将其在本地敲定,暂时具备“最终性”。具体场景为:用户在Metis网络发起交易请求后,几秒钟就会收到结果。这里的问题在于,由Sequencer单方面给予的暂时“最终性”是否可靠?

由于Metis的Sequencer出块后,会立刻将信息同步给SequencerPool的对等节点,节点们可立即对区块内容进行审计,若发现Sequencer提交了违规区块,便可将其移出SequencerPool。所以,此处的安全性与普通公链相当。同时,外界可在多个对等节点间选择信息源,无需单方面信任某个节点,数据可用性也不存在问题。

第二个问题是:·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等OPRollup的根本问题在于Sequencer节点中心化,这需要可靠的解决方案;Metis尝试率先实现Sequencer的去中心化。

·Metis开放了对等节点网络,将运行Sequencer出块节点的权力让渡给社区成员或其他机构,实现轮换制,并促进Sequencer和其他对等节点快速同步信息,防止其作恶;

·Metis变更了存储层结构,改变了在以太坊上备份数据的形式。通过集成Memolabs,Metis大幅压缩存储费用,已经成为主流Layer2中Gas费最低的一个。

·通过缜密的机制设计,Metis集成Memolabs后的新版本仍具备较强的安全性与数据可用性。Metis团队已经对可能出现的情况进行了判断,并制定了相应措施;

?为了将Sequencer的权力进一步削减,Metis计划在未来添加提议者Proposers的角色,在Sequencer发布交易数据后,Proposers负责向以太坊提交每笔交易对应的状态根,这样可形成更强的分权制衡。

·Metis支持节点运行者以DAC的形式注册,并对其提供持续性的代币收益。在这方面,已发币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。

参考文献TheTechJourney:LowerGasCosts&StorageLayeronMetis深度解读Optimism:基本架构、Gas机制与挑战

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

大币网

[0:0ms0-5:895ms