BSP:复盘Arbitrum排序器Bug事件:为何这次没有用户资金损失?

作者:金色财经Jason.                                            

金色财经 区块链6月10日讯 本周Arbitrum的排序器代码中的一个Bug,导致该网络批量提交交易的功能短暂中断,交易无法在主链上得到确认。随后漏洞已被修复,交易批量提交功能已恢复。6月10日,Arbitrum基金会发布了Arbitrum排序器Bug事后分析报告,接下来就让我们复盘看看,为什么这次Bug事件没有造成用户资金损失吧。

万卉复盘Yam事件:反馈周期将是未来线上治理的关键参数:8月13日消息,Primitive Ventures创始合伙人万卉在微博复盘Yam事件,她提到反馈周期将是未来线上治理的关键参数,此外,项目方不应通过软性贿赂影响博弈结构。万卉还表示,在沟通过程中没有把复杂的信息做到社区可以消化的转述(这个确实很难,但是未来的社区治理要吸取经验教训),并且合约写死的时间线过于紧凑,导致出事没有足够的协调时间,这个当年在312的时候MAKER拍卖也发生过,当时也是时间太紧张导致流拍。这个反馈周期是未来线上治理一个很关键的参数,不能太短,也不能太长。

在号召投票的时候,不应该通过“软性贿赂”来影响博弈结果。譬如为了获取足够的票仓,来进行投票奖励。这个会影响理性的判断,特别是对于信息有限的社区成员,可能会带来负外部性。[2020/8/13]

Arbitrum排序器Bug事件时间轴

主力数据复盘:Bitfinex买入推高价格,其他平台跟随确认突破:AICoin PRO版主力数据及秒级周期K线显示:在今天7点的这轮上涨中,07:00:11,Bitfinex BTC/USDT主动买入183.62BTC,买入价格9749.3,被卖价格9777美元,滑点高达42.7美元,把价格推至9791美元。 随后的07:00:12,BitMEX开始出现大额主动买入,41秒内主动买入7笔,共计1442万美元。 差不多相同时间,火币BTC季度合约上亦出现大量主动买入单子。72秒内,有16笔,共计2560万美元成交。 此位置为三角形上沿及日线级别下降趋势线附近,可见大量的买入确认了突破。三分钟后市场开启大幅度拉升。[2020/6/2]

1. 2023年6月7日06:04:53,由于Arbitrum排序器L1节点暂时性问题,批量发布者未能更新其L1状态视图。 由于根本原因问题,Arbitrum排序器继续尝试查询其先前 L1 视图块编号的、状态。 这意味着即使在临时 L1 节点问题自行解决后,批处理发布者仍会继续尝试查询旧 L1 块编号的状态,而 L1 节点不再具有其状态,因为它不是存档节点。

主力成交数据复盘:1097万张主力卖出确认5分钟周期三角形破位:AICoin PRO版K线主力成交数据显示:BitMEX XBT永续合约在5月21日00:00-16:00做5分钟周期中做三角形震荡。

16:10分,价格接近平台下沿支撑线线并很快跌破。跌破后的20分钟内,共计有6笔,共计1097万张主力卖出;有3笔,共计440万张主力买入,成交差-657.75万张。较多的主力卖出跟进可以判断该周期的三角形突破为真跌破。

随后的16:40,比特币再次下跌,最低一度跌至9250美元。[2020/5/21]

2. 2023年6月7日09:38:28,Arbitrum的batch poster停止发布交易,因为它达到了配置的最大排队交易限制(256个),排队交易限制和mempool限制数是一样的。如果未达到此限制,批量过帐将照常继续。

主力成交数据复盘:638万张主力买单确认15分钟周期三角突破:AICoin PRO版K线主力成交数据显示:BitMEX XBT永续合约在5月10日09:00~11日19:00的15分钟周期中做三角形震荡。

18:40,价格接近平台上沿压力线,并于18:41向上突破。期间,共计有5笔,共计638万张主力买入;有2笔,共计200万张主力卖出,成交差438万张。较多的主力买入跟进可以判断该周期的三角形突破为真突破。[2020/5/11]

3. 2023年6月7日上午11点09分,由于未发布批次,触发了检查新批次的Sequencer Inbox智能合约警报,并向Slack频道发送了警告。

4. 上午11点10分,由于缺乏最近批量发布,触发了基于日志警报,并且向Slack频道发送了一个临界级别警报。

5. 上午11点13分,社区团队的一名成员向SRE团队成员发起了PagerDuty,后者迅速确认了事件并开始响应。

复盘:两条趋势线突破均有主力买入成交确认:AICoin PRO版K线主力成交数据显示:23日20:35~23日21:35,比特币价格运行至4月19~23日四小时周期的下降趋势线(7305-7189)以及4月7日~23日四小时周期的下降趋势线(7475-7189)附近,并分别于20:35和21:35完成突破。

20:35第一条趋势线突破,突破前后,有4笔,共计950万美元主力买入成交;21:35第二条趋势线突破,突破前后,有7笔,共计1003万美元的主力买入成交。主力大单的迅速跟进确认了两条下降趋势线的突破。

随后,不断有大买单跟进说明了趋势还在持续,直到22:25分出现一笔500万美元的大卖单,趋势告一段落。[2020/4/24]

6. 上午11:19:02,SRE团队重启batch poster,但由于此前提及的最大排队交易限制,阻止了batch poster发布交易。SRE团队注意到这个问题并开始切换到第三方L1 RPC提供商以试图缓解这个问题。

7. 上午11:24:16,batch poster启动5分钟后,更新了L1状态视图并发布了第一批交易。

8. 上午11:25:09,batch poster配置更改为使用第三方L1 RPC提供程序并重新启动,因为 SRE团队已经开始进行此更改并且没有注意到批处理。重启后,继续发生批处理交易。

9. 上午11:30:21,batch poster启动5分钟后,L1状态视图被更新,结果触发L1状态不同步,这也是问题的根本原因。 L1状态更新为最终区块编号17428199,但却使用了最新的随机数178078,对应于当时的最新区块,而不是存储在其状态中的最终区块,结果导致Redis中所有排队的交易被擦除,因为Redis认为这些交易已经被确认。

10. 上午11:30:26,batch poster发布了新批次。Redis依赖于L1状态视图来确定要发布的内容,但此时Redis队列是空的,如前所述,L1 状态是不正确的,而且在状态178078中使用随机数发布了一个批次,但为了确定要发布的批次,使用了不相关的块号17428199,导致一个序列号为229209的旧批次被发布,该批次其实已经在之前11:24:16时发布过了,然后batch poster重新启动。 因为229209旧批次已经发布过,所以批量提交的L1交易被回滚。

11. 上午11:36:35,batch poster地址由于没有退还Gas费用而用完了Ether,因此停止发布,这是一种有意为之的机制,以防止batch poster消耗所有存储在恢复批次中的gas费用。

12. 上午11点46分,Nitro团队一名成员接到电话,要求解决批次恢复的软件问题。

13. 上午11:58左右,Arbitrum开始收到报告,称某些用户发现排序器存在问题(将新排序的交易广播到RPC 节点),这是因为越来越多的有序交易由于batch poster问题而没有发布到链上,此问题主要影响互联网连接不良或内存分配不足的Feed客户端,因为它们更有可能掉线并遇到重新连接问题。Arbitrum建议运行多个RPC节点的用户运行本地提要中继器,以减少所需的外部带宽。

l   中午12:03,Arbitrum取消了Cloudflare的Feed速率限制,以缓解客户端在因互联网连接而断开连接后尝试重新连接时达到速率限制的问题。

l   中午12:05,Arbitrum取消了所有Cloudflare速率限制,以允许那些节点在与提要保持连接时出现问题的人提高公共RPC利用率。

14. 下午12:12:09,故障batch poster被关闭,Redis队列存储清除以消除不良状态。

15、下午12:12:40,batch poster在老版本v2.0.14上启动,没有root问题。

16. 下午12:21:56,新开的batch poster第一批成功,之后一直保持不间断运行。

Arbitrum排序器Bug事件经验教训

本次故障是batch poster中的一个错误导致,排序器本身没有受到影响或中断,并在整个过程中继续处理交易,有报道称排序器资金用完是不正确的。Arbitrum资金机制由两个钱包组成,分别是:“排序器”钱包和“gas-refunder”钱包,只有当排序器可以成功发布批次时才会被退款,Arbitrum网络没有就此故障向排序器退款,相关问题也不是因为排序器资金耗尽所致,因此用户资金没有面临任何风险。

Arbitrum将清理在临时解决方案中已添加的配置选项,后续拟重新评估排序器客户端和服务器超时问题,以提升交易积压情况下的网络可靠性,目前已创建了一个新的“v2.1.0-beta.2”测试版。此外,Arbitrum还将创建一个公开的网络状态页面,以减少服务出现问题时造成的混乱。

本文参考自Arbitrum基金会官网

金色早8点

Odaily星球日报

Block unicorn

DAOrayaki

曼昆区块链法律

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

地球链

[0:31ms0-0:861ms