撰文:Chloe
Arbitrum是把原本在以太坊上进行的计算工程转移到Layer2进行,然后不需要进行任何验证就假设这些计算结果是正确的,并将数据发布回以太坊。但是为了避免有人作恶,设置了7天的挑战期来缓冲。
Arbitrum在去年8月31日推出了升级版的Nitro,它的费用更低、以太坊兼容性更好以及zk证明更简洁,总之是一次全面的升级。不过由于它没有重新发新链,而是从ArbitrumOne无缝升级,所以还是叫ArbitrumOne。
支撑Nitro的关键创新可以概括为四点:证明程序、以Geth为核心、实现执行与证明分开、交互式欺诈证明的OptimisticRollup。
不需要共识机制的证明程序
Nitro使用两阶段执行交易。
第一阶段:在Layer2自行处理
用户创建了一笔交易,经过钱包签名确认后,会发送给Nitro的Sequencer。
Sequencer收到信息,通过「状态转移函数」过滤掉无效交易,并把剩下的交易公平地进行排队。
然后不需要任何额外的链上确认,就直接无条件地让节点在本地执行,并向客户提供交易收据,这个过程通常只需要一两秒钟。
但此时的交易还没有向L1以太坊提交,有更改的余地,所以称作「软确认」,不过对用户来说,到这一步就已经完事儿,其实后面还有很多步骤来确保安全性。
第二阶段
Sequencer向以太坊发布排队序列,并最终确认,也就是「硬终结」。
一种发送方式是在给每笔交易排序时,都向所有订阅者发布即时通知。另一种方式是汇总起来在L1以太坊上按批次发布。
需要强调的是,Sequencer在第一阶段的「状态转移函数」操作是公开的,任何人都可以根据自己已知的交易顺序去计算状态转移函数,所有诚实方得到的是相同的结果。
因此,Nitro的节点不需要共识机制,只需要获取交易序列,并自行在本地运行就可以了,所以会显著降低成本。
用Go语言重写的节点软件Geth
Geth即go-ethereum,顾名思义,是用Go语言编写的以太坊节点软件,让矿工去执行交易,这是Nitro最核心的部分。
Arbitrum的旧方案方案是通过定制的Arbitrum虚拟机来模拟EVM,它的一些内部逻辑在EVM不一致,所以仅限于低级指令。
而Geth则基本完全支持以太坊的数据结构、格式和虚拟机,所以可以实现以太坊高度兼容。
值得一提的是,Geth是抛弃了旧方案积累的堆栈,直接另起炉灶用Go语言编写的,大部分开发工作都是借鉴了现有的开箱即用的代码,而且整体上也更精简。
执行与证明分别两套代码
Layer2的任务有两个——执行和证明,这是两个侧重点,无法兼顾,因此Nitro用不同的代码来实现。
不过都是同一套源代码,刚才提到的让矿工去执行交易的节点软件Geth用的是源代码,执行速度更快。
但是关于欺诈证明的代码,则编译为二进制的wasm格式,特点是可移植、体积小、加载快并且兼容Web。而且Nitro又对wasm格式进行了微调,让它更适合与链交互,称之为WAVM代码。
在WASM代码上进行Arbitrum的交互式欺诈证明,就取代了Arbitrum虚拟机的架构,直接以标准的语言和工具来构建和编译。
互相检举的交互式欺诈证明
Nitro采用的证明系统是他们首创的「交互式欺诈证明」。
简单来说,所有的交易完成后还要预留7天时间接受验证者的检查,如果确实有问题那就重新执行。
验证者相当于以检举为生的赏金猎人,但是为了避免有人通过诬告来扰乱秩序,还允许赏金猎人之间相互检举揭发,这样双方不断举证,直到一方不再跟进为止。
最后把检举的这笔交易提交到以太坊上执行并验证到底谁是错误的,并把诬告者的保证金分给挑战诬告者的赏金猎人。
这就是交互式欺诈证明,相当于用市场化的手段引入了外部监管者,是一种治理机制上的创新,可以极大地提高验证效率和准确性。
总结
作为Arbitrum的迭代版本,Nitro目前已协助启动数百个项目,积累数十万的独立用户,数百万笔的交易和数十亿美元的桥接资产,目前占市场优势地位。
除了使用Nitro这套技术升级了ArbitrumOne,Arbitrum团队还希望用它创建特定应用的Rollups,他们未来还想吸纳Solana和Cosmos生态的资源。
Arbitrum在生态孵化运营上的能力有目共睹,与此同时也攻克了大量技术上的瓶颈,充分展示了团队的创造力。相信从Layer2一路走来的他们,会走向更大的生态。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。