原文标题:《Gitcoin 女巫检测方案 Top1 解读及思考》
原文作者:berwinYes
GITCOIN 在两个月前举办了 OpenData 社区黑客马拉松!其中公布了三个重点领域,分别是:
女巫检测、捐款激励措施优化分析、Dune 高效分析,其结果也于近日公布。
相信大家最关心的应该是女巫问题,因为今年在 OP 和 APT 的刺激下,出现了人人羡慕撸毛党,人人皆是撸毛党的盛况。
今天对女巫检测的第一名开源方案结合自身理解,进行技术向的解读,并在文末给出自己对于女巫检测的一些个人思考。相信看完这篇文章,无论是项目方还是交互者都能有所收获。
注:本文不代表官方观点,仅为个人兴趣解读。
剧透,本文较长,涉及很多技术分析,没耐心的可以直接跳转文末浏览本文总结与个人思考。
由于出题者是 gitcoin,其主要交互场景为捐赠。但内在逻辑在其他的场景下同样适用 (transfer、mint 等动作),以下将与项目方进行交互的操作统称为项目交互。
女巫攻击本质上是用户将资金分散到多个地址,操纵这些地址与项目方合约进行交互的过程。
那么在这个过程中则可以将整个过程拆分两个部分,分别是 批量资金转移和合约批量交互。
选择数据
批量转账最简单的就是通过智能合约的方式进行,因为节约 gas 费用。所以作者利用工具提取与项目方合约有过关联且链上具有批量转账操作的 tx_hash。
设计指标
风险计算
作者采集了 18926 个贡献者地址与批量转账有关。将风险性压缩到 0-13 分,经过分析归纳得到
辅助判断手段
1、如果一个地址使用以下 dapp,即使分数不高,也应该注意,是 sybil 的一个重要信号。
2、交互地址在其他平台存在可疑批量操作 如 opensea element Looksrare 等
为了简单,交互数额相同
为了经济,交互数额尽量小
为了方便,使用脚本/工具,使用相同的参数设置进行 交互,如链 ID、链层、令牌、数量
为了统一,以一种顺序的方式交互,非常紧密
交互地址分组及指标计算
7 个指标值转化女巫风险得分如下图:
女巫结果展示
用户行为序列即用户交互时按执行时间顺序的事件集合。该检测主要针对于群控玩家。
相似性定义
两个钱包 Addr 的行为序列分别为 s1= {a1,a2,a3,...,an},s2={b1,b2,b3,...,bm}
相似度 Sim(s1,s2)=1 的条件为:
s1 的长度=s2 的长度,即 n=m
对于每一对动作 ai,bi,它们是相同的,只有可以忽略的时间差异。
作者认为将来可以尝试使用更复杂的指标。
相似性筛选
作者代码中将行为序列长度 3,相似度为 1,且地址集合数量 5 个的 Addr 认定为女巫。
相似性聚类
作者还尝试了通过 AI 的聚类方法进行相似度计算。
删除交易所地址和合约地址,只留下 EOA 类型 Addr 和项目方地址作为构图节点,ETH、DAI、USDC、USDT 流向作为边,构建有向图。
寻找寻找链式结构和钻石结构。
链式结构:即从第一个 EOA 地址出发,每次资金转移到另一个 EOA 地址,操纵该 EOA 地址进行一次项目方合约地址交互,剩余资金转移到下一个 EOA 地址,循环该过程,直到资金转移到最后一个 EOA 地址。
钻石结构:这个更为常见,一个 EOA 将资金分散给其他 EOA 地址,进行项目交互。
女巫的行为,总结下来两个特征:批量性、同一性。
无论是利用同步器多开,还是批量化脚本操作,都无法逃脱这两种性质。
所以在反女巫分析时,多数项目方和分析师也是顺着这两种方法进行查找,但是在个别参数阈值的选择和使用 AI 或者链路分析的范围上互有差别。
另外,项目方还掌握着链上不会记录的信息,即 IP 和指纹这两个大特征。与此同时,现在项目方尽量从源头上去规避这些问题,例如更为严格的测试代币发放,利用 twitter 和 dc 进行机器人过滤和严格的 KYC 认证。毕竟项目方都想把空投发给真实用户。
但是虽然升级了反制措施,但是女巫仍旧层出不穷,毕竟空投的真金白银可太香了,反女巫检测并不是一成不变,而是动态升级的,毕竟女巫们在金钱面前,技术迭代绝对是更快的那个。
写了那么多女巫检测的方法,也想站在一个希望拿到空投的参与者角度来谈谈如何避免自己成为项目方眼中的女巫:
交互资金不交叉,即不要出现上文中资金的链式或者钻石型,可视化一下资金链路,一清二楚,EigenTx 或者其他插件直接一键生成,检测成本几乎为 0;
IP 与指纹的重要性,对于部分项目方而言,是最稳妥和省时的过滤手段之一;
不要使用几个相同的钱包多次批量交互不同的项目,链上信息永久保存,你的钱包之前做过什么,任何人都看得到
不要为了空投而空投,你的钱包多去参与其他活动,例如银河任务,alphabot 的 NFT 抽奖,要让项目方相信你的项目经历够丰富,认为你就是他们空投的必要目标,不给你空投,都是他们的损失那种;
保持平常心,空投是项目方的馈赠而不是项目方的义务,希望大家别 做任务时笑开颜,最后 RNM 退钱。
希望每个项目参与者能有有所收获,每个项目方都能熬过牛熊。毕竟 2022,太多不可能颠覆了我们的认知。量力而为,切勿上头。
这里是 coolberwin 的 Mirror,创作不易,希望看完顺手关注我的 Twitter,感激不尽。
原文链接
欢迎加入律动 BlockBeats 官方社群:
Telegram 订阅群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方账号:https://twitter.com/BlockBeatsAsia