Connext 空投鬧劇:漏洞烏龍和查不完的女巫
作者:秦曉峰,Odaily 星球日報
在等待了兩週時間, Layer 2 互操作性協議 Connext 終於開放空投申領,但卻鬧出一場烏龍事件。
申領開放剛過半小時,加密 KOL 「豬豬 Bang」發文稱,Connext 空投合約疑似存在漏洞,「科學家」可以利用漏洞無限盜取其他用戶的 NEXT 空投,並附上了 0x44Af 開頭地址(點擊跳轉)頻繁申領記錄。
該消息在社區中廣泛傳播,隨後有用戶分析鏈上信息發現,0x44Af 開頭地址的地址今日才正式創建,並在空投開放後領取次數超過 230 次,所得代幣全部賣出換成 ETH、USDT 與 USDC,獲利約 3.9 萬美元。
此時,Connext 空投合約也出現故障,部分用戶反映無法成功領取空投,社群中開始流傳著官方因為漏洞關閉了空投申領的傳言。
然而,事情的真相是,Connext 空投合約並沒有漏洞。
加密 KOL「豬豬 Bang」表示,Connext 空投合約是安全的,自己最開始的分析誤導了讀者。他表示,雖然 Connext 空投合約規定了空投發送者和領取者可以是不同的地址,但卻需要原始地址進行簽名授權才能調用。
「首先領取方法為 claimBySignature,最後一個參數就是傳遞簽名信息,而這個『簽名』是用戶自己去利用智能合約或其他方式去調用返回的。所以我們可以理解為:signature 就是一個憑證,recipient 用戶拿著這個憑證就可以去獲取 _beneficiary 地址的 token 了。」他補充說,0x44Af 開頭地址應該是工作室進行代幣歸集,而不是合約本身存在漏洞。
智能合約部分信息
慢霧安全團隊告訴 Odaily 星球日報,Connext 空投合約並沒有存在明顯漏洞,導致他人冒領空投。
用戶可以通過 NEXT Distributor 合約的 claimBySignature 函數領取 NEXT 代幣,其中存在 recipient 與 beneficiary 角色:recipient 角色用於接收 claim 的 NEXT 代幣,beneficiary 角色是有資格領取 NEXT 代幣的地址,其在 Connext 協議公布空投資格時就已經確定。在用戶進行 NEXT 代幣 claim 時,合約會進行兩次檢查:一是檢查 beneficiary 角色的簽名,二是檢查 beneficiary 角色是否有資格領取空投。
在進行第一次檢查時其會檢查用戶傳入的 recipient 是否是由 beneficiary 角色進行簽名,因此隨意傳入 recipient 地址在未經過 beneficiary 簽名的情況下是無法通過檢查的。如果指定一個 beneficiary 地址進行構造簽名即使可以通過簽名檢查,但卻無法通過第二個對空投領取資格的檢查。空投領取資格檢查是通過默克爾證明進行檢查的,其證明應由 Connext 協議官方生成。因此沒有資格領取空投的用戶是無法繞過檢查領取他人的空投的。
總結一下上面的分析,用戶 A 地址如果有資格申領,可以授權給 B 進行申領,而這次 0x44Af 開頭地址的地址之所以可以申領如此多的代幣,是因為該實體控制的多個合格地址對其進行授權,並非黑客利用漏洞攻擊。
不過,有意思的是,在空投開放前,Connext 就針對女巫地址進行「圍剿」,邀請社區幫助團隊篩選女巫地址,並願意將追回 NEXT 的 25% 作為獎勵送給舉報者。根據官方數據,最終 5,725 個女巫地址被識別並從資格列表中刪除,收回 5,932,065 枚代幣。
不過,從今晚的表現來看,反女巫行動似乎還留下了體量巨大的漏網之魚,甚至還給整個空投平添了許多障礙。
Connext 核心貢獻者 Arjun Bhuptani 發文表示,0x44Af 開頭地址是一個女巫 bot,該 bot 向 Tokensoft 後台發送大量垃圾請求導致其 API 崩潰,這也可能是空投申領界面無法使用的原因。(Odaily 注:阻止其他人申領,可能是想獲得更好的出售價格。)
好消息是,官方已經注意到這一問題,空投將重新開放。Connext 發文表示:「我們已意識到影響空投網站的問題,導致用戶無法領取。我們檢測到機器人活動導致我們的合作夥伴和服務提供商伺服器 Tokensoft 超載。他們正在積極努力解決這個問題,以實現正常的索賠。一切都應該很快就會恢復正常。」