关于Arbitrum 空投反女巫规则,虽不算漏洞,但远未及格——对X-explore分析报告的再分析

Arbitrum于上周四宣布空投计划,各种社交媒体又一次迎来高潮,此次空投涉及到的地址之广,价值之高,可以说是近年之最,有人一波自由,有人懊悔不已,又一次激发了撸毛党的热情。

然而昨天下午,X-explore和吴说区块链共同发表了一篇针对Arbitrum空投分析的文章,指出空投规则存在巨大漏洞,引得web3媒体纷纷转发扩散。

作为一个Arbitrum空投数量为0的旁观者,我好奇到底Arbitrum的反女巫规则到底有多大的漏洞,但当我打开报告阅读后,发现文章所表达的并没有新闻标题那么夸大,不至于是漏洞,本人更倾向于项目方并没有对女巫规则深入研究,从开始算法选型到策略构建再到结果分析,未展现出其作为L2龙头的实力。

X-explore对Arbitrum 空投高级分析链接 👇🏻👇🏻👇🏻

文章总结下来五点:

  • 空投账号中不仅有EOA账户,还包括合约账户

  • 对小规模团伙(地址数量< 20)无任何识别操作

  • 在检测女巫地址时排除了跨链桥、中心化交易所和智能合约

  • 仅使用 2023 年 2 月 6 日之前的快照数据检测女巫地址, 而不关注公布空投后的地址间关联关系

  • 只有来自 Arbitrum 和以太坊的数据被用于检测女巫地址,却忽略了来自其他以太坊 L2 的数据,例如 Optimism 和 Polygon

个人认为 除了第1点的问题项目方犯了非常低级的错误外,对项目方而言,其他结论不能说是漏洞,更像是一种方案的待优化点或是考虑上的不周

注:本文所分析来源均为网络公开资料

序:官方采用的聚类算法介绍

在分析结论之前,需要向大家科普一下Louvain 社区检测算法,是聚类算法中的经典算法之一, 一般是针对于检测/提取大型网络的社区结构。它是一种基于模块度优化的启发式方法,2008年被提出的[1],被各大web2公司广泛用于风控领域。

其主要原理是针对网络中的每个点计算一个叫模块度的指标值,再计算与他相邻所有点模块度差值记做模块度增益,不断合并模块度增益较大的相邻点成为同一社群,直到满足算法设定的阈值,生成聚类结果

Louvain算法示意图
Louvain算法示意图

更具体原理分析可以阅读 参考文献[2][3][4]给出地址。这里不再赘述。

  • 算法中的点对应对应链上的EOA地址,边则代表着交互关系。同一社群即为项目方眼中的Sybil。

  • 模块度增益越大,说明2点之间关系越紧密,同一社区可能性越高;模块度增益越小,同一社群的可能性越低。

  • 由于是启发式算法,即无标注好数据可以检查算法准确性与否,需要项目方人员根据经验设定大量阈值,这些阈值的会极大影响算法最终结果,即女巫名单。

1、对小规模团伙(地址数量< 20)无任何识别

Arbitrum官方空投规则 里举出的规则中,已经说明使用 Louvain 社区检测算法 设定社群中超过20个地址的判定为女巫。也就是说,20个地址以下则会被视作正常用户。

20 作为一个项目方设定的正常用户和女巫的分界阈值,正如原理中所介绍,阈值设定是由项目方工程师决定,在设置中的具体考量与说明,官方并没有公布。

也正如X-explore分析所说,由于Arbitum将20个地址以下社群视作正常用户不做任何处理,20个地址以下可能存在女巫的问题,直接被无视,统统放行。

但是这并不属于漏洞,而是项目方如何界定女巫与正常用户,并且在已界定框架之下,更深层次的优化框架内的模糊情况与判定机制问题。

2、在检测女巫地址时排除了跨链桥、中心化交易所和智能合约

项目方将跨链桥 中心化交易所 与智能合约排除在检测之外,本质是选择Louvain算法后做出妥协的结果,因为跨链桥 中心化交易所 与部分智能合约 会直接导致聚类算法被影响和干扰,如果添加后,最终的结果可能会导致大量错误识别规则。

为什么这么说呢?

我们可以把CEX类比为生活中的支付宝,在现实生活中,同一时刻向支付宝转入转出相同金额的人不计其数,可能在我用账号a转入支付宝5块钱的同时,有1w个账户从支付宝消费/转出5块钱。想通过金额或者时间上同一性信息去判断,账号a和那1w个账号背后是否是同一个人,这是不现实的,还需要更多行为信息去辅助。毕竟CEX使用者中正常用户相比于女巫而言,量级差别过大。

很不幸,基础的Louvain算法只用到了金额和转账方向信息,这就导致该算法天生对于超级节点的误判性过大。

而且Louvain是非时序性的,连时间上的同一性都无法考虑(不能要求15年前的方法适应当下的复杂情况)。交易所,跨链桥,和部分正常合约(NFT、DEX等等)都涉及到极大数量的账户交互,故不适用于Louvain算法。

如果对上面的话理解还有疑惑,下面依据算法计算公式给出例子证明:

注:对于无向图和有向图而言,计算的公式可能会有一些歧义。
注:对于无向图和有向图而言,计算的公式可能会有一些歧义。

△Q是上文所说的模块度增益,两点间增益越大且为正值,同属一个社区可能性越高;反之可能性越小;模块度为负值,不属于同社区。模块度越大分群质量越高。

下图为一个简单的利用Louvain进行社区合并的例子,其中只截取部分子图,且网络中初始链路总权重为120。

可以看出当图中出现中心化交易所时,与之相连的节点过多,假设B和C均为正常地址且只与中心化交易所相连。

  • 如果删除中心化交易所节点,则BC点永远不会被话归为同组,视为正常EOA

  • 当保留中心化交易所时,ABC会在迭代2次后归为同组,得到BC同组,视为可疑女巫地址

与此同时,算法O(n²)的复杂度也会导致过高的计算成本。删除 CEX 、Bridge与合约地址,个人臆测也会降低计算复杂度,提升计算效率。此次参与arb的地址共100w+,最终获得空投地址超过62w。

3、仅使用 2023 年 2 月 6 日之前的快照数据检测女巫地址, 而不关注公布空投后的地址间关联关系

公布快照后的继续监控后续地址,不得不提始作俑者 HOP空投女巫举报 (网友戏称 举报to earn)[5],通过给予奖励给举报者的方式来减少女巫影响,随后不久OP官方也采用了这种方式。

“让英雄查英雄,好汉去查好汉”——《大明王朝1566 嘉靖》

虽然此种方法对于项目方是一个稳赚不赔的买卖,毕竟个人的力量是有限的,集体的力量是无穷的。与此同时圈内互相间的信任感逐渐消失,空投用户从分享喜悦变得沉默噤声,引起了圈内多数人对于此种方式的不满。

与此同时,圈内一部分脑瓜活泛的科学家们,发现了商机——“恶意投毒”,批量对空投用户进行小规模转账操作,使得彼此无关联关系的地址间产生关联。并以此记录举报得奖励。

当然这次Arb空投也不例外:

例如 这个钱包,被网友分析为投毒者,投毒对象见的用户行为看起来没有相似性,不大可能是女巫地址。

项目方如果继续进行女巫检查,那么如何在空投公布后,有效区分投毒者和正常用户?或许这才摆在他们面前最头疼的问题。

4、X-explore分析报告与Arbitrum女巫检测的思考

X-explore 针对这62w地址使用了自己内部的模型二次分析,成功识别了超过 279,328 个同人地址和 148,595 个收到空投的 Sybil 地址。

X-explore的整体分析报告逻辑清晰且简单易懂,举例完全符合Sybil定义,且挖掘出大量被项目方忽略的地址。

但与其说是项目方存在漏洞,不如说项目方对于女巫的防范研究不如X-explore透彻,采用的算法也有些过时(可能有内部优化,这里只针对于基础版本),很多边界条件,特殊地址没有进一步处理。

X-explore作为优秀的Blockchain Bulider,利用更加优质的自研模型,将空投地址结果再次优化,引入更多指标,从更深层次挖掘女巫地址,并给出验证结果。更像是在项目方结果上的一次打补丁,有助于项目方将空投发给更正确的用户。

作为L2赛道的头部明星,估值前5的公链,项目方对于女巫的检测方法。可能还没有一些小项目方思考的全面(可能Arbitrum项目方把精力更多放在公链建设上)。个人认为此次的反女巫策略远未及格。

虽然使用的Louvain社区发现算法能识别出部分女巫,但是正如上文所论述,以X-explore的分析报告所描述的数量,女巫攻击地址约获得 2.53 亿枚 ARB,占空投代币总数的 21.8%。不论是对项目方还是正常用户而言,影响还是很大的。甚至出现空投给合约地址这种哭笑不得的操作。

最后,还是想有感而发一下:

  • 链上数据分析发展迅猛,撸毛也越来越难,CEX和跨链桥或许现阶段来说是最好的分发方法,但是说不准以后也会被抓

  • 项目方查女巫方法不相同也不互通,可能这次被标记但下次被空投,但还需注意地址的隔离

  • 空投的分配可能大户(工作室)和散户之间的差距越拉越大,毕竟无论是资金还是技术储备简直是降维打击

  • 博空投还是得真金白银下本钱,大家还是应该更关注主网类项目,测试网除了节点类外别再花太多精力

  • 还得多参与,参与可能没有,不参与肯定没有呀

参考资料:

[1] Fast unfolding of communities in large networks

[2] Louvain算法介绍

[3] 万物皆网络,万字长文详解社区发现算法Louvain

[4] 关联网络在度小满风控中的应用

[5]如何防止撸空投被举报:从Hop官方报告梳理判定逻辑

[6]超62万地址获得空投,详解Arbitrum空投数据和防女巫策略

[7] hop空投女巫讨论贴共600个issue

本人twitter: https://twitter.com/coolberwin_eth

Subscribe to berwinYes
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.