复盘 | 奥德赛被撸停的真正原因?链上分析事件全过程

前言

本篇文章梳理了奥德赛事件的前因后果,篇幅有点长,觉得有必要说明下这篇文章的结构和主要内容,以便大家更容易消化这篇文章,希望大家在阅读的过程中能有所收获。

第一部分:什么是奥德赛?

第二部分:躺枪主角 GMX 的合约分析

Gas费花去哪里?被谁收走?GAS 费用的构成?「预言机」是如何工作的?Keeper 是什么?

第三部分:Arbitrum 作为一个二层项目,其 Gas 费高于一层的原因是什么?

第四部分:奥德赛事件带来的一些思考和启发

行情越熊,大家对于出圈的活动就越狂热。

最近热点,当之无愧——奥德赛(Arbitrum Odyssey)

仿佛在一片黑暗沉寂中,出现的一小点光亮,足以使众人簇拥而上。

奥德赛是由以太坊二层解决方案 Arbitrum 联手 Galaxy 举办的为期 8 周的生态体验奖励活动,俗称拉新与促活

活动唯一的目的就是激励用户(实际上主要是羊毛党)体验参与 Arbitrum 生态中的各类项目应用,从跨链桥、DeFi 到 NFT 、游戏,不一而足。

活动从 4 月 13 日快照投票选应用,到 6 月下旬日开始活动,到 8 月下旬结束活动,为期 4 个月,一个活动占了一年的三分之一,不可谓不盛大。

活动开始之初,一时间大 V 纷纷喊单,操作教程满天飞。

圈内如果不知道奥德赛,你都不好意思和别人打招呼。

前有 Optimism 普惠空投,一般做过简单交互的都有至少 271 个 OP,两个月猪脚饭到手。

“早知道多做交互了,害!”、“早知道就多撸几个地址了,唉!”贪婪的人总是会这样喃喃自语。

Arbitrum 还未发币。

Arbitrum 生态很多应用也未发币。

空投机会来了!

空投暴富梦蠢蠢欲动。

羊毛党纷纷涌入,做交互嘛,我懂。

成本无非出点 Gas 费嘛。

切,二层网络,Gas 能贵到哪里去?

搏一搏,单车变摩托!

如果足够刻苦钻研,凑齐13个 NFT 去赢得终极 NFT 就更棒了。

至于设计 NFT 的 Ratwell 和 Sugoi 是谁,并不重要。

空投快来砸晕我,我已经想好消费什么了。

活动第一周,奥德赛的任务是让用户通过不同的跨链桥将 ETH 跨链到 Arbitrum 上。

操作很简单,活动进行得很顺利。

Arbitrum 很开心, Arbitrum 上的应用们很开心,做交互的羊毛党也很开心。

气氛一片祥和,甚至有如火如荼的势头。

根据浏览器上的数据显示,自 6 月 21 日奥德赛活动开始到第一周任务结束时,Arbitrum 的新增地址达 20.7 w 个。

并在 6 月 27 日单日新增达到了 5.5 万个,成为单日新增地址最多的一天。

数据来源:https://arbiscan.io/chart/address

可见奥德赛活动之成功。

Arbitrum 的市场策划部领导估计已经开始写邮件申请升职加薪了。

但是...意外出现了。

就在大家疯狂 Fomo 参与第二周任务的时候,一个超出羊毛党常识的事件发生了——Gas 费出奇的贵!

尤其是在体验 GMX 这个项目的时候,原本低于 1u 的 Gas 费,却高达 10u。

有的倒霉蛋一波操作下来,玩合约的本金都玩秃了(实际上合约平仓后需换成 ETH ,但扣完 Gas 费后所剩无几)。

最初大家并未觉得是 Arbitrum 的问题,因为在大家印象里,L2 的费用要比 L1 低,于是大家便将矛头指向 GMX 项目方。

并认为是 GMX 项目方动了贪欲,私自改 GAS 费,才导致大家会有这么高的 GAS 费。

于是大家遍开始找证据,当时大家去查看链上交互记录,发现 GMX 合约的执行费用(minExecutionFee)一直在修改,在 6 月 28 日,其最低执行费用,还是 0.0006ETH。

https://arbiscan.io/tx/0x5719d84c4d403a2c1c29abadae0fe853cb459d223102dc23a7a9bba87ad511f7#txninfo

但在 6 月 29 日的时候,费用则增加到了 0.005 eth,且隔一段时间就变化,大家便认为这是 GMX 项目方篡改 Gas 费的证据

https://arbiscan.io/tx/0xb3ae4022e1ba10714cf695f8389a1932e0841e7e393099e732bece1d2f27ecfb#txninfo

且这笔费用不断在调整。

但事实并非如此,有必要说明的是,无论 minExecutionFee 代表是什么,它的只是合约里的一个参数,无法项目方对它做任何更改,都没办法对 Arbitrum整个网络的 GAS 费法进行更改的,为方便大家阅读理解,这里简单介绍下 GMX 以及合约的机制。

GMX 是一个去中心化永续合约交易所。

GMX 允许用户在一个去中心化的平台上进行高达 30 倍杠杆的 ETH、BTC、LINK 和 UNI 永续合约交易,而不是通过 Binance 或 FTX 等中心化交易所使用杠杆来进行做空或做多。

在执行上,它相比中心化交易所操作要更复杂些,并且需要使用预言机进行喂价。

所以,它需要借助外部力量来执行开仓平仓操作,GMX 正是借助 Keeper(类似于众包)完成这项工作。

用户在 GMX 进行平仓操作的时候,会分为两部分:一个是用户发送交易,另一个是执行操作,而执行操作则是由 GMX Keeper 完成的。

用户不但需要交发送交易的 Gas 费外,为了能保证交易能正常执行,还需要为 Keeper 执行操作交 Gas 费。

Gas 费是动态的,有时高,有时低,GMX 为了能够保证交易能正常执行下去,且让用户有一个很好的体验,一般管理员都会根据网络拥堵情况提前对 Keeper Fee 设置一个固定值。

譬如在以前 Arbitrum 网络正常的时候,Keeper Fee 0.002 ETH 就可以覆盖用户链上行为。

但如果 Arbitrum 网络出现拥堵的情况,Keeper Fee 需要 0.006ETH 甚至 0.008ETH 才能保证覆盖用户链上行为,保证交易正常执行下去。

我们也可以从合约代码里看到,在开仓平仓的时候每次交易都需要支付一笔 execution fees(执行),且不能低于 minExecutionFee(最小执行费用)。

https://arbiscan.io/address/0x3D6bA331e3D9702C5e8A8d254e5d8a285F223aba#code
——createDecreasePosition函数

且最小执行费用(minExecutionFee) 也只有管理员有权限进行更改。

最近,Arbitrum 受到奥德赛活动的影响,用户交易数激增,造成网络拥堵Gas 费用飙升,加上 GMX 的合约要比一般的交易复杂的多,其 Gas 费也就飙升了,项目方甚至需要替用户补贴 Gas 费给 Keeper,以维持交易进行进行。

最后,我们也通过链上数据发现,这笔费用并非由 GMX 收取,而是最终由 GMX 代为支付给 Arbiturm。

比如下图这笔,0.006 ETH 是 GMX Keeper 从用户那里收的费用,Transaction Fee 是 GMX 支付给 Arbitrum 的费用,这个差价则是由 GMX 进行补贴。

https://arbiscan.io/tx/0xdefe8de2a50443b0ca4839bbf97733e2d8d6579af2644b0441e854db82cbc64a

消除了 GMX 的误会,问题就来了***:L2 不就是为了解决 L1 高费用的吗?Gas 费按道理来讲不会这么贵啊?***

但从数据上来看,Arbitrum 的 Gas 费确实超过了 ETH 主网,甚至是 ETH 主网的 2 倍之多,大家便开始对L2嘲讽道:比如「以前经常听老师们吹L2,我一直不知道L2是啥意思,今天去L2上交互了下,原来L2的意思就是 gas 是 L1 的 2 倍。」

又比如:「以太坊成了 Arbitrum 的 L2 了。」

数据显示Arbitrum One 的GAS费超过了ETH.来自:https://l2fees.info/

为什么会出现这样的问题?

我们先来了解一下 Layer 2 以及 Arbitrum 的基本知识。

Layer2 的扩容技术主要分为状态通道、侧链(Sidechain)、Plasma、Optimistic Rollup、ZK Rollup、Vadium 等。

在这其中,Rollup 是最受关注也是当下最可能实现的扩容方案。

Rollup 最主要核心理念是将原本散布在区块中的大量交易数据,聚合压缩成一笔交易,发布到主链上;而合约的实际计算和存储在链下完成。这样就让主链的运算和存储压力降低,从而实现网络的高吞吐量。

Arbitrum 也是 Rollup 中的一种,它是 Offchain Labs 团队基于 Optimistic Rollup 技术创建的,由于 Arbitrum 只将原始交易数据提交到以太坊,执行的计算过程和合约存储则发生在链下,所以相比以太坊主网,Arbitrum 的花费的 GAS 费非常少。

我们通过链上数据看到,Arbitrum 目前的交易费用由 L1 固定成本(Fixed Cost)、L1 调用数据支付的费用(L1 Calldate Paid)、L2 计算费用(L2 Computational Paid)以及 L2 存储费用这四部分组成,这四部分相加得到的就是每次在 Arbitrum 上的交易 Gas 费用。

其中 ArbGas 是 Arbitrum 设计用来管理执行成本的。

根据 Arbitrum 的设计,每条指令都会消耗一定数量的 AVGMas(1ArbGas=100 AVMGas),越复杂的指令消耗越多,在ArbGas不变的情况下,交易费用则越高。

但我们通过下面两笔交易对比发现,6 月 29 日 向 L1 购买区块空间的平台只需要 0.0001 ETH,比 2 月 4 日那天的更低,但 L2 计算费用明显要比平常高很多。

另外也可以从下面两张图看出,6 月 29 日计算所消耗的的 ArbGas 资源(5812)要远低于2 月 4 日消耗的 ArbGas(21367),但花费的 Gas 费(0.000357ETH )却是2 月 4 日 Gas 费(0.000023ETH)的 15 倍。

https://arbiscan.io/tx/0x5719d84c4d403a2c1c29abadae0fe853cb459d223102dc23a7a9bba87ad511f7#txninfo

https://arbiscan.io/tx/0xba502a7587cf202f2e9078ed6e7612cfa05e6e5092b62c2be4af285e294918fe#txninfo

为何 L2 计算费用相差会这么大?

我们需要来了解一下 ArbGas 的定价机制。

首先,L2 Computational Paid = L2 Compulational Used *ArbGas 的价格。

通过上面两张图对比,L2 Computational Paid 主要还是由于 ArbGas 的价格飙升。

根据 Arbitrum 的设计,ArbGas 定价取决于最低价格和拥堵定价机制,最低 ArbGas 价格设置为估计的 L1 Gas 价格除以 100,ArbGas 的价格永远不会低于此价格。

在不拥堵的时候,其 ArbGas 价格就是其最低价格,当网络拥堵时,其价格就会开始从最低值飙升,类似于以太坊。

来源:https://developer.offchainlabs.com/docs/inside_arbitrum#fees

以我们现实生活中的景区举例,一般景区都有最大承载量,比如黄山最大能承载的客流量为 10w,而旅游也分淡季跟旺季,淡季人少,旺季人多,你会发现黄山景区门票的价格也不一样,旺季要比淡季贵很多,因为在旺季,很多景区为了防止因为人流量过大会提高其门票的价格,这样就会有一部分人因为价格上涨而选择去其他地方出游。

而 Arbitrum 也一样,因为每一个 rollup 区块都有容量上限,比如 1 秒时间内,每一个 rollup 区块最多只能容纳 5000 笔交易,而后面的区块就等着打包,如果交易激增,并且出现了拥堵,那么根据 Arbitrum 的设计也会其 ArbGas 的价格也会对应增加,这样就可以挤走一部分人,以减少其超载的风险。

https://ethereum.org/zh/developers/docs/gas/

当交易数量激增时,并达到容量上限时,L2 ArbGas 的价格就会自动上涨,直到流量激增放缓。

下图则是昨天高峰时期 ArbGas 的费用,最高达到了 288 Gwei,费用远高于ETH 主网的 GAS 费。

6月29日 Arbitrum Gas费 来源:https://cointool.app/

29日晚10时,Arbitrum 紧急发推叫停了奥德赛活动,我们也可以通过数据看到,之后 ArbGas 费用降到了 1 Gwei 以下。

6月29日 Arbitrum Gas费 来源:https://cointool.app/

不知道看完上面的解释,你是否理解了为什么会在 L2 的 Arbitrum 上出现 GAS 费比 ETH 主网贵的情况。

归咎原因,还是因为在奥德赛活动进展的热火朝天的时候, Arbitrum 目前的状态没办法承载这么多的用户,吞吐量不够大,就跟景区一样。

针对这些问题,Arbitrum 在未来计划推出 Nitro 和 AnyTrust,试图进行降低费用,提高其吞吐量,至于具体方案,由于篇幅有限,不在这里过多阐述。

虽然大家已经知道了这其中的缘由,但还是有必要对这件事进行总结,从而从中吸取直接借鉴的经验。

不得不承认,在未出现这件事之前,奥德赛这次的活动还是吸引了足够多的关注,Arbitrum 结合 NFT 以活动周的形式,激发了用户参与的热情,也有助于用户了解 Arbitrum 的生态,在提高用户量的同时,也给其生态的项目带来了流量,未来会有越来越多的项目可能会借助这种活动运营方式,进行宣发和引流。

但在这个过程中,我们也看到了 Arbitrum 准备工作做的还是不够,未能很好的应对这种情况,以至于最后不得不暂停这次活动,让人诟病,被人嘲讽。

另外,虽然 GMX 事件最终得到了澄清,但在沟通的过程中,也暴露出一些问题。

面对不知缘由的用户,GMX 的 Mod 未第一时间去弄清事情真相,放任用户相互谩骂,项目方也并未第一时间出来澄清安抚用户的情绪,而是采取沉默的方式,以至于事态进一步扩大。

GMX中文区的聊天截图

而从产品设计上来看,GMX 还是不够人性化,比如无法查看用户的交易记录以及花费明细,用户不知道费用明细,便会以为是项目方私吞了这笔费用。

这些细节都是未来需要优化的地方。

这次的奥德赛事件,也是一次比较经典的 Web 3 公关事件,项目方花了不到一天的时间来澄清误会,这让我想起了最近一个挺有意思的 Web 3 三问:

1、有什么场景是在 Web 2 不能完成,必须在 Web 3 能完成的?

2、如果有,那这个场景下的 Web 3 产品有多少人需要?

3、这个场景下,Web 3 的产品解决问题的效率会更好吗?

‍虽然在产品层面上,并未感受到 Web 3 的优势,有的时候 Web 3 产品的体验还不如 Web 2 产品,但当 Web 3 发生这类事情的时候,我明显能感知到,在 Web3 的世界里,每个人都可以第一时间通过公开透明且不可篡改的链上数据,并快速弄清事情缘由,还原事实真相。

而反观 Web 2 ,即使企业耗费大量的公关来引导舆论,然而吃瓜群众最终也看不到事情的真相。

这或许就是 Web3 的魅力吧。

复盘 | 奥德赛被撸停的真正原因?链上分析事件全过程

扫一扫手机访问

复盘 | 奥德赛被撸停的真正原因?链上分析事件全过程

发表评论