女巫攻擊跟一般的詐騙(例如釣魚網站)有什麼不同?
最根本的差異在於攻擊的對象與手法。釣魚詐騙針對的是「人」——攻擊者試圖騙取受害者的私鑰、助記詞或個人資訊,直接偷走受害者本來就擁有的資產。女巫攻擊針對的則是「機制」——攻擊者不是要偷別人的東西,而是利用系統規則的漏洞,讓自己看起來像很多個獨立的參與者,藉此在原本設計成「雨露均霑」或「一人一份」的分配機制裡,拿到遠超過自己應得的份額。
換句話說,釣魚詐騙的受害者是被鎖定的個人,女巫攻擊的受害者是整個分配機制的公平性,以及原本應該拿到合理份額、卻因為份額被稀釋而拿得更少的其他真實使用者。這也是為什麼女巫攻擊在法律與道德上經常處於灰色地帶——它不涉及竊取他人財產,而是鑽營規則本身設計不夠嚴謹的空隙。
文中提到有駭客鎖定已知會收到空投的錢包,這種攻擊具體是怎麼運作的?
這種攻擊利用的是「代幣授權」(token approval)機制——在多數區塊鏈上,如果你要讓某個智能合約代表你操作某枚代幣(例如在去中心化交易所上交易),你必須先簽署一筆授權交易,允許該合約動用你錢包裡的這枚代幣。攻擊者鎖定已經確定會收到某次空投的錢包清單(這份清單在空投正式發放前,往往因為快照時間點已定而可以被外部分析出來),透過竊取到的私鑰或誘騙受害者簽署的惡意授權,預先取得動用這些錢包未來將收到的代幣的權限。
一旦空投代幣真的發放到這些錢包,攻擊者就能立刻透過先前取得的授權,把代幣直接轉移到自己控制的地址,完全不需要受害者本人採取任何行動、甚至受害者可能根本不知道自己的錢包已經被動了手腳,直到空投代幣憑空消失的那一刻才會發現。這說明了一件事:授權管理不是只在你主動使用某個協議的當下才重要,一個已經被授權出去、但你早已遺忘的舊授權,隨時可能在未來某個你意想不到的時間點被拿來利用。
Arbitrum 設定的「超過 20 個地址集群」規則,為什麼沒能擋住這麼多女巫地址?
這條規則的邏輯是:如果一大群地址彼此之間有頻繁的資金往來,很可能是同一個人在操控,值得標記排除。但這個規則有一個明顯的天花板——它只抓「集群規模超過 20 個」的情況,攻擊者只要把操作拆成 19 個或更少地址一組的小集群,規則就完全抓不到,即使背後同樣是同一個人在操作五、六個這樣的小集群、總共上百個地址。
更根本的問題在於,這條規則只看「資金往來」這一個訊號,而 X-explore 的分析指出,真正老練的攻擊者根本不會讓地址之間直接互轉資金,而是刻意把批量操作分散到不同鏈上執行(例如在以太坊主網操作一部分、在 Optimism 操作另一部分),讓每條鏈上看起來都只是零散的獨立活動,規則設計者如果只在單一鏈的範圍內找模式,就會完全漏掉這種跨鏈分散的操作痕跡。這說明單一維度的規則,無論規則本身立意多好,本質上都只能防住不夠用心的攻擊者,真正投入研究規則細節的攻擊者永遠能找到規則沒有涵蓋到的空隙。
LayerZero 能過濾掉將近 40% 的錢包,是不是代表這個問題已經有辦法徹底解決了?
過濾比例高不代表問題被徹底解決,只代表在那一次特定的分發活動裡,投入的偵測資源與方法比較全面。40% 這個數字本身也值得留意:它意味著接近四成被評估的錢包最初看起來像是有資格參與分發的地址,最後卻被判定為女巫或不合格,這個比例本身就反映出女巫農場化操作的規模有多龐大,而不是說明防禦方已經取得壓倒性優勢。
更關鍵的是,偵測方法與繞過手法之間的關係,本質上是攻防雙方互相學習、互相升級的動態賽局,而不是一次性解決的靜態問題。LayerZero 這次用到的圖譜分析、資金來源追蹤、時序分析等方法確實比 Arbitrum 當時的簡單規則更全面,但這些方法本身也已經被公開討論、被攻擊者研究——下一次的攻擊者很可能已經在研究如何讓自己的操作模式看起來更不像「集群」、時序分布更接近真人的隨機性。這意味著沒有任何一套防禦方法可以視為終局方案,協議方需要預期防禦規則本身也需要隨著攻擊手法演化持續更新,而不是設計一套規則後就假設問題永久解決。
2023 年 3 月,Arbitrum 發放當時加密貨幣史上規模最大的一次回溯性空投,總價值超過 10 億美元。空投設計的初衷是獎勵真正的早期使用者,但事後鏈上分析發現,超過 14.8 萬個被判定為女巫(Sybil)攻擊的地址、加上另外 27.9 萬個被歸類為同一人操控的地址,成功繞過了 Arbitrum 的防範機制,總共領走約 2.53 億枚 arb 代幣——占整個空投發放量的 21.8%。換句話說,每五枚發出去的代幣,就有超過一枚落入了原本設計要排除的對象手裡。這不是 Arbitrum 特有的失誤,而是去中心化世界一個結構性的老問題,只是這次規模特別大。
「女巫攻擊」這個名稱來自 1973 年一本描述多重人格障礙患者的小說《Sybil》。在區塊鏈的語境裡,它指的是同一個人或團隊,創建大量看似獨立、實則由自己控制的錢包地址,藉此在需要「每個真人各算一票」或「每個真人各領一份」的機制裡,冒充成多個獨立參與者,取得遠超過自己應得份額的資源。這個問題之所以特別難處理,根源在於區塊鏈本身的設計哲學:任何人都可以免費、無需許可地創建無數個錢包地址,而系統原生沒有辦法區分「這是一百個不同的人」還是「這是一個人操作的一百個地址」。這也是為什麼多數協議不願意直接要求身分驗證(KYC)——那會犧牲掉去中心化與匿名性這兩個许多使用者珍視的特性,於是防禦女巫攻擊變成了一場只能用行為模式去猜測、而非直接驗證身分的持久戰。
Arbitrum 當時設定的防女巫規則包括排除「屬於超過 20 個地址集群、彼此有資金往來」的地址,以及排除由同一資金來源提供啟動資金的地址。這些規則立意良好,但資安研究團隊 X-explore 的事後分析指出,規則本身留下了至少四種可被繞過的漏洞,包括那些刻意在不同鏈(例如以太坊主網與 Optimism)之間分散操作、避開單一鏈上偵測門檻的批量操作行為。更誇張的是,在空投正式發放前,甚至有駭客鎖定約 2,400 個已知會收到空投的錢包,透過竊取到的私鑰或助記詞,誘騙這些錢包簽署代幣授權(approval),準備在代幣一上線就直接把空投掃空——這已經超出了單純的女巫攻擊範疇,變成了針對已知空投對象的定向詐騙。
Arbitrum 不是唯一案例,也不是防禦做得最差的一個。跨鏈橋協議 Hop Protocol 在 2022 年 5 月的空投中,從最初 43,058 個符合資格的地址裡,篩掉了 10,253 個被判定為女巫的地址——比例接近四分之一。LayerZero 在 2024 年 6 月的代幣分發中,動用更精細的分析方法,從約 208 萬個受評估錢包裡過濾掉 803,093 個女巫錢包,最終只留下約 128 萬個合格錢包,過濾比例接近 40%,是目前公開案例裡防禦規模數一數二嚴格的一次。這些數字的差異說明了一件事:女巫偵測的精準度取決於協議願意投入多少資源做圖譜分析、資金來源追蹤、與行為模式辨識,而不是靠單一簡單規則就能一勞永逸解決。
如果你是空投獵人,操作多個錢包本身不必然會被視為女巫行為——多篇針對 Arbitrum 規則的分析指出,少量(例如兩三個)出於安全考量分散持倉的錢包通常不會被特別針對,協議真正鎖定的是大規模、系統性刷量的操作。但風險集中在「連結性」:如果你的多個錢包之間有資金互轉、共用同一個資金來源、或呈現高度相似的操作時序與行為模式,就容易被歸類進同一個群集裡一併排除,即使其中某些錢包的操作其實是你出於合理理由分開管理的。如果你是協議方,Arbitrum 與後續案例給出的教訓很清楚:女巫防禦規則必須在活動開始前就設計完成,且不能只依賴單一維度的行為門檻(例如「錢包餘額超過某個金額」),因為單一規則永遠會被針對性繞過,真正有效的做法是把資金來源追蹤、時間序列分析、跨鏈行為關聯這幾種方法疊加使用,這也是 LayerZero 案例展現出更高過濾比例的原因。