什麼是女巫攻擊?
Sybil Attack,中文翻譯成“女巫攻擊”。
Sybil 一詞最早出自1973 年的小說《Sybil》,這本小說講的是女主Sybil Dorsett 進行心理治療的故事。她被診斷為分離性身份認同障礙,兼具16 種人格。
而Sybil Attack 這個詞是由John R. Douceur 在2002 年提出的,用於形容P2P 網絡中的一種特定攻擊形式。在P2P 網絡中,節點可以隨時加入和退出,所以為了維護網絡的穩定,同一份數據需要備份到多個分佈式節點上,這就是數據冗餘機制。如果網絡中存在一個惡意節點,那麼這個惡意節點就可以偽裝成多重身份,如同小說中的女主可以分裂出16 個人格。原來需要備份到多個節點的數據被欺騙地備份到了同一個惡意節點,這樣一來作惡的節點,就有可能掌握網絡的控制權。
簡單講,一人化身為多人,這就是女巫攻擊的本質。
在空投領域,所謂女巫攻擊,就是指一個“肉身”控制了多個鏈上地址,偽裝成不同用戶進行交互的行為。
對於項目方來說,女巫的行為其實破壞了項目去中心化的過程,所以在空投發放的過程中項目方可能會主動篩查女巫,或者由社區舉報,從而取消其空投資格。
項目方怎麼查女巫?
首先我們要明確一點,項目方查女巫是很耗費時間和精力的,這並不是一件容易的事情。而過往查到的女巫行為很大一部分其實是來自於社區的舉報。
比如跨鏈橋Hop Protocol 就發動社區「舉報to earn」,舉報者將會獲得女巫地址被罰沒空投代幣的25% ,最初Hop 符合空投條件的有43, 058 個地址,後來因社區舉報有10, 253 個地址被認定為女巫,取消了空投資格。同樣在Optimism 的第一輪空投中,社區也主動舉報了1.7 萬個女巫地址,導致最後1400 萬個$OP 代幣被重新分配。
Optimism 並沒有公開社區舉報的詳細信息,以及他們的判斷標準。所以下面我們就從Hop Protocol 具體的提案中,看看究竟哪些行為被查到或者說被舉報了。
Hop 舉報提案:https://github.com/hop-protocol/hop-airdrop/issues
案例一:
https://github.com/hop-protocol/hop-airdrop/issues/3
該用戶在使用完Hop 之後,在Arbitrum 網絡上歸集資金,將471 個地址的所有資金都轉移到了同一地址。
案例二:
https://github.com/hop-protocol/hop-airdrop/issues/163
最中心的地址將MATIC 分發給藍色的地址,接著藍色地址再將資金轉移到綠色地址,最後綠色地址進行Hop 交互從而拿到了空投。 (相當於資金做了二級關聯,但是依然被判定為女巫)
案例三:
https://github.com/hop-protocol/hop-airdrop/issues/367
地址之間的轉賬顯然更加複雜,但是依然屬於資金關聯從而被判定為女巫。這個案例還有一點值得一提,舉報者是在社區成員討論交互策略的時候,發現了幾個地址,然後著手深挖了這一系列的資金關係。這個事情告訴我們盡量不要公開自己的地址,埋伏空投別張揚。
案例四:
https://github.com/hop-protocol/hop-airdrop/issues/592
這158 個地址在Optimism 和Arbitrum 上有完全類似的活動,並且他們在Fantom、Gnosis 和Polygon 鏈上的所有的交易都在一天內完成,並且這之後就沒有任何交易記錄了。
案例五:
https://github.com/hop-protocol/hop-airdrop/issues/9
這25 個地址之間存在關聯性,並且這25 個地址都在同一段時間內在Arbitrum 上鑄造了同一個NFT,同樣的所有地址又在同一段時間內鑄造了Uniswap V3 LP NFT。並且在Snapshot 上面的Arbitrum Odyssey 的所有投票中,這些地址投票選項一模一樣。並且每次都是由下圖最中間深色的地址最先操作。
翻看Hop 社區舉報的案例,被判定為女巫的主要就是以下兩種行為?
-
多個錢包之間存在資金關聯
-
短時間內大量錢包進行類似的操作
埋伏空投如何避免“被女巫”?
1、不要在鏈上進行資金分發/歸集,用交易所代替
避免錢包之間的關聯,這一點最最最最最重要。而相比於使用混幣等方法掩蓋錢包之間的轉賬關係,交易所才是最好的解決方案。
從交易所提幣,資金都是從交易所幾個固定的熱錢包轉出的。而交易所的熱錢包每天都有大量的轉賬行為,所以沒有人會從這裡去查女巫,難度係數太大了。
但是向交易所充幣就得注意了,比如我打算把Optimism 網絡的ETH 充值回交易所,但是我幣安的充值地址就是固定的一個,而我鏈上有30 個錢包的資金需要歸集。這裡我肯定不能把30 個錢包的幣都打到這一個充值地址,因為這樣就成了“多對一”的關係,會被懷疑是女巫攻擊。
那麼該如何解決呢?如果我有30 個幣安賬戶,有30 個充值地址,那當然可以。不過使用OKX 進行資金的匯集顯然會更加方便。
因為OKX 有一個功能非常好用,每一個主賬戶可以生成20 個充值地址,如果你覺得不夠用,那就開通子賬戶,每個賬號最多開通20 個子賬戶。也就是說你開通一個OKX 的賬號,最多可以擁有21* 20 = 420 個不同的充值地址。 (關於OKX 具體的操作,放在文末了)
2、避免短時間集中的批量行為,做到操作的隨機化
所謂的隨機化,包括兩方面
-
交互方面:交互時間隨機化;交互金額隨機化;交互路線隨機化
-
錢包方面:錢包創建時間隨機化;資金轉賬隨機化;ENS 取名隨機化
比如像Optimism Quests (俗稱OP 奧德賽),你打算擼50 個賬號,你在操作的時候除了要避免資金關聯,在實際交互的時候也可以稍微注意一下:盡量不要在短時間內集中轉賬/做任務,偶爾打亂任務的順序……
總之,如果你是純手工操作的話,基本是可以規避這些問題的。批量化的行為大部分是靠程序去操控的。
3、低調,不要公開自己的地址
擼空投這件事兒當然需要“夥伴”,因為這是一件枯燥的事情,夥伴之間互相監督互相打氣很有必要。但是這也是私底下的事兒,千萬不要在公開場合高調討論自己的交互,更不要去曝光自己的地址。
就如同前面Hop 的案例三,不小心公開了自己的地址,就有人去挖他的鏈上操作,只要被人抓到把柄,人家反手就是一個舉報。
4、其它
其它我們可以做的就是盡可能豐富自己的鏈上行為,比如註冊ENS 域名,平時多參與snapshot 投票,參與gitcoin 捐贈…… 總之就是讓你的賬號像一個真人。
不過最後還是想說,大家在多賬號進行交互的時候,也不需要過於小心翼翼。
比如關於IP 的問題,過往發空投的項目其實很少有查IP 的,除非是一些免費擼的,或者像 gamefi、元宇宙類的可能會查。另外,少數幾個賬號存在資金關聯,比如四五個賬號之間有互轉,其實也沒大問題的。