2024 年 5 月,加密貨幣史上最昂貴的一次複製貼上失誤,把約 6,800 萬美元的 Wrapped Bitcoin 送給了一個陌生人。沒有助記詞被盜,也沒有智慧合約被攻破。受害者只是從自己的交易紀錄裡複製了一個地址——一個攻擊者早已埋好的地址,被刻意打造得與受害者原本信任的地址看起來一模一樣。這就是地址投毒騙局,也是當今成本最低、最容易規模化的攻擊之一。
這種騙局之所以奏效,靠的是幾乎每個加密貨幣用戶共有的習慣:只看地址開頭和結尾幾個字元來核對。錢包與區塊鏈瀏覽器在顯示時會截斷長地址,這個習慣因此顯得再自然不過——而攻擊者幾乎不花什麼成本,就能量產出頭尾與之吻合的相似地址。解方不是「看得更仔細」,而是徹底改變地址進入錢包的方式:經過驗證的聯絡人、白名單、QR code,以及逐字核對完整地址,而不是瞄一眼交易紀錄了事。
地址投毒騙局究竟是什麼
地址投毒是一種騙局:攻擊者產生一個與你實際使用的地址頭尾字元相同的外觀相似地址,將它埋進你的交易紀錄,然後等你複製到錯誤的那一筆。整個過程沒有任何一步需要你的授權。攻擊者監看公開的鏈上資料,鎖定那些定期移動可觀資金的錢包——金庫撥款、交易所入金、週期性結算——再挑出這些錢包最常轉帳的交易對手地址。
製造相似地址是最容易的一環。靚號地址產生器會不斷嘗試隨機私鑰,直到某一把產生的地址在指定位置出現指定字元為止。要匹配整個地址在計算上不可能,但只匹配頭尾各四到六個字元的成本低廉,低到攻擊者可以用一般硬體批次進行,同時針對成千上萬個目標下手。產出的是一個攻擊者完全掌控的真實地址——而它在所有截斷顯示中,恰好與你交易對手的地址無從分辨。
假紀錄如何混進你的交易紀錄
相似地址若沒有出現在你可能複製的地方,就毫無用處。主流的投放手法有三種:
- 粉塵轉帳。攻擊者從相似地址向你的地址轉入一筆極小的金額——幾美分甚至更少。你的錢包從此多了一筆入帳紀錄,來源地址看起來與你的常用交易對手一模一樣。
- 零金額代幣轉帳。在 EVM 系列鏈與 TRON 上,代幣合約會處理任何人發起的零代幣轉帳。零金額轉帳不需要「表面轉出方」錢包的任何批准,因為轉移零枚代幣永遠不會超出任何授權額度。攻擊者觸發這樣一筆交易,讓你自己的交易紀錄裡出現一筆從你的地址轉出 0 USDT 到相似地址的紀錄——一筆你從未發起、沒讓你損失分毫、卻和你上一筆真實付款看起來一模一樣的交易。
- 假代幣空投。掛著熟悉代號的無價值代幣從相似地址發來,同時汙染你的交易紀錄與通知。
三種手法留下的是同一個陷阱:一筆可見字元與你信任的目的地完全吻合的紀錄。接著騙局進入潛伏——有時長達數月——直到你趕時間的那一天。
價值 6,800 萬美元的一次貼上
讓地址投毒騙局聲名大噪的 2024 年 5 月案例,正是照著這套劇本上演。一個巨鯨錢包向一個新地址做了一筆小額轉帳。幾分鐘之內,攻擊者就產生出頭尾字元與該目的地相同的相似地址,並把一筆假紀錄塞進該錢包的交易紀錄。下一筆交易時,受害者複製了被投毒的那一筆,將約 6,800 萬美元的 WBTC 轉了過去。整場攻擊花在騙徒身上的成本,幾乎只有交易手續費。
接下來的發展才是罕見之處:經過數日的鏈上留言與談判,攻擊者幾乎歸還了全部資金。受害者算是走運——贓款規模之大、輿論關注,以及隨之而來的追蹤壓力,讓變現變得危險。不要把你的威脅模型建立在這種結局上。投毒行動正持續不斷地以小得多的金額瞄準普通錢包,而小額受害者是拿不回錢的。
為什麼肉眼靠不住——而習慣讓事情更糟
EVM 地址長 42 個字元;TRON 地址長 34 個。介面把它們截成頭尾各寥寥幾個字元,而多年使用這些介面的經驗,訓練你把頭尾當成地址本身。攻擊者清楚主流錢包與瀏覽器各自的截斷規則,並精準匹配的正是那些字元。當兩端可見字元都吻合時,中段——唯一存在差異的部分——恰恰是任何顯示都不呈現、任何習慣都不檢查的部分。
同一類失誤在機構層級造成過大得多的損失。2025 年 2 月的 Bybit 事件顯示,即使是大型交易所的多簽簽名人,批准的也是被入侵介面所顯示的內容,而不是實際被簽署的內容——我們在對 Bybit 被駭事件的分析中檢視過那次失守。地址投毒騙局,正是同一個道理的散戶版:
地址投毒從不觸碰你的私鑰。它篡改的是私鑰運作的環境——然後讓你親手簽出一筆完全有效、卻流向錯誤地點的交易。
這也是為什麼區塊鏈本身救不了你。你簽署的交易正是你所要求的那一筆;被汙染的是上游的那份意圖。一經確認,便無法逆轉。
真正有效的防禦
由於這種騙局利用的是工作流程而非密碼學,有效的防禦也必須是工作流程的改變——以下由最結構化到最依賴人工依序排列:
- 永遠不要從交易紀錄複製地址。把交易紀錄當成顯示介面,而不是地址來源。唯一安全的來源只有三種:你在經過驗證的當下儲存的聯絡人、直接向收款方掃描的 QR code,或透過即時且獨立管道送達的地址。
- 在風險值得的場合使用白名單。地址白名單將對外轉帳限制在一份預先核准的目的地清單內,即使有人貼上了投毒地址,它也無法使用。Ownbit 的安全模型在企業多簽中支援地址白名單,並搭配每日限額與簽名人門檻,讓任何一個人的一次貼上,都無法把金庫資金轉往未經審核的地址。
- 完整核對一次地址,之後只信任已儲存的聯絡人。校驗碼攔得住打錯字,攔不住相似地址——投毒地址本身是一個完全有效的地址。逐字元比對收款方傳給你的地址,或在通話中把字串的中段唸出來核對。做一次就好,存成聯絡人,此後絕不再從其他任何地方重新複製。
- 先轉一筆測試金額——並透過其他管道確認到帳。一筆小額轉帳只多付一次手續費,卻能消除大額轉帳的尾部風險。但務必請收款方透過獨立管道確認入帳;若你自己靠瞄一眼交易紀錄來確認,就等於重新踏進同一個陷阱。
- 讓第二個螢幕或第二個人參與把關。Ownbit 的冷錢包工作流程以 QR code 把未簽名交易傳到離線手機上,在連網環境碰不到的硬體上檢視完整的目的地地址。在多簽中,由另一台裝置上的共同簽名人重新核對目的地,能讓一個人的貼上失誤變成一份被否決的提案,而不是一筆損失——前提是簽名人真的去核對,而這正是 Bybit 案例證明會逐漸鬆懈的那種紀律。
硬體錢包在這裡值得誠實一提:它的機上螢幕與氣隙手機的作用相同,而它對投毒的防護程度,恰好等於持有者在裝置上讀完整地址的程度。沒有任何工具能替你驗證你的意圖。
任何大額轉帳前的 30 秒儀式
- 透過即時管道向收款方取得目的地地址——訊息、通話或 QR code——絕不從交易紀錄取得。
- 立刻將它存成具名聯絡人;這筆已儲存的紀錄從此就是你唯一的來源。
- 核對時要讀地址的中段,而不只是頭尾。攻擊者匹配的是頭尾;中段會讓他們露餡。
- 先轉一筆小額測試,並請收款方在同一個即時管道中確認到帳。
- 把餘款轉給已儲存的聯絡人——若是金庫等級的資金,則應強制搭配白名單與多簽門檻,讓任何單獨一次貼上都不足以致命。
這套儀式的成本是半分鐘和一筆額外的網路手續費。2024 年 5 月的那位受害者,想必願意付上一千倍的代價。
常見問題
什麼是地址投毒騙局?
地址投毒騙局是一種攻擊:騙徒製造一個與你常用收款地址頭尾字元相同的相似地址,再透過粉塵轉帳或零金額轉帳把它插入你的交易紀錄,然後等你複製到假的那一筆而不是真的那一筆。這種攻擊完全不需要接觸你的私鑰,執行成本也幾乎只有網路手續費。
零金額轉帳本身能偷走我的加密資產嗎?
不能。零金額轉帳既不移動任何資產,也不授予任何權限;它存在的唯一目的,是在你的交易紀錄裡埋下一筆逼真的紀錄。只有當你之後複製了那個被埋入的地址並向它轉帳,資金才會有風險。粉塵與零金額垃圾交易可以放心忽略——只是絕對不要把它們當成地址來源。
如何判斷我的錢包紀錄是否已被投毒?
留意兩種跡象:來自與你常用交易對手相似地址的粉塵入帳,或你從未發起的零金額代幣轉出。實務上,不如直接假設任何活躍錢包都已被投毒,並據此行事:改變你複製地址的來源,比逐筆稽核交易紀錄更安全。
冷錢包或硬體錢包能防止地址投毒嗎?
單靠它們並不能。冷儲存保護的是私鑰,而地址投毒從不攻擊私鑰——它攻擊的是你在簽名之前選定的地址。真正有幫助的是第二個螢幕:一台在簽名前顯示完整目的地地址的氣隙裝置,能給你最後一道獨立的檢查點,但前提是你在上面把整個地址讀完。
如果你更願意把這些護欄內建在錢包裡,而不是全靠記性,Ownbit 的安全模型在企業多簽上將自託管與地址白名單、支出限額結合,而基於 QR code 的冷錢包工作流程則在任何簽名產生之前,先在離線螢幕上完成完整地址的檢視。每位新用戶都享有 7 天試用,而無論如何,你的私鑰始終屬於你。