文 / 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
深度解读Optimism:基本架构、Gas机制与挑战