安全與風險
從交易紀錄複製地址為什麼會轉錯?地址投毒的假紀錄長怎樣、轉帳前怎麼核對
地址投毒會把一個頭尾跟你常用地址相同的仿冒地址,塞進你的交易紀錄,等你下次直接複製。本文用 2024 年 1,155 WBTC 誤轉的鏈上紀錄說明假紀錄長什麼樣,並整理轉帳前取得與核對地址的順序,以及已經轉錯時能做什麼。
打開錢包的交易紀錄,上一筆轉帳的收款地址就在那裡,點一下就能複製——這正是地址投毒要你做的事。攻擊者會先產生一個開頭和結尾都跟你常用收款地址一樣的地址,再設法讓它出現在你的交易紀錄裡。錢包多半只顯示「開頭…結尾」,你從紀錄裡複製時,複製到的可能是對方的地址。
這篇用一筆真實的鏈上事件說明投毒紀錄長什麼樣子,再給出轉帳前可以照做的檢查順序。
地址投毒是什麼:攻擊者不碰你的錢包,只改你的「紀錄」
地址投毒不需要你的私鑰,也不需要你簽任何東西。攻擊者做的是:
- 監看鏈上轉帳,記下你常轉去的地址。
- 大量產生新地址,挑出開頭與結尾跟那個地址相同的一個。以太坊地址是 40 個十六進位字元,只對齊頭尾幾個字元,用一般電腦就算得出來。
- 發一筆交易,讓這個仿冒地址出現在你的交易紀錄裡。常見做法是轉 0 元或極小額過來,或用自己部署的假代幣合約,「記」一筆從你地址轉出去的紀錄。
接下來就等你下次轉帳時,從紀錄裡複製「上次那個地址」。
真實案例:一筆假紀錄,74 分鐘後換來 1,155 WBTC 的誤轉
2024 年 5 月 3 日,以太坊上有一筆約 1,155 枚 WBTC 的轉帳被送進了投毒地址。以下時間與數字都可以在區塊瀏覽器上自己核對(時間為 UTC)。
09:17,投毒紀錄出現。 交易 0x9147d74e…e5b957c 的發送者是 0x517DC8…911Db2,不是受害者。但這筆交易呼叫了一個自稱「Ether / ETH」的代幣合約(0x7393…262E,不是以太坊原生幣,也不是任何正式代幣),在代幣轉移紀錄裡寫下一筆「從受害者地址 0x1E2279…538FD5 轉出 0.05 ETH 到 0xd9A1C3…853a91」。同一筆交易裡還混著多筆用假 USDT、假 USDC 合約記下的紀錄,對象是其他地址——攻擊者是一次對很多人撒網。

上圖要看的是 Senders 欄:真正付手續費、發出這筆交易的是攻擊者控制的地址。受害者自己沒有簽過它,卻會在很多錢包和瀏覽器的「代幣轉移」列表裡看到一筆「自己轉出」的紀錄。
10:31,真正的轉帳。 受害者地址發出交易 0x3374abc5…c8f5f570,呼叫 WBTC 合約(0x2260FAC5…bc2C599),把 1,155.28802767 WBTC 轉給 0xd9A1C3788D81257612E2581A6ea0aDa244853a91——也就是 74 分鐘前那筆假紀錄裡的地址。

14:51,資金被轉走。 投毒地址把全部 WBTC 轉到另一個地址(交易 0xfbc6c256…)。
安全公司 SlowMist 的分析指出,投毒地址與受害者原本要轉的地址,去掉「0x」後前 4 碼與後 6 碼相同(SlowMist 事件分析)。受害者原本要轉的地址無法單從鏈上確認,這一點以 SlowMist 的分析為準。
為什麼從交易紀錄複製地址特別危險
- 縮寫顯示只看得到頭尾。 多數錢包、交易所的提領紀錄都把地址顯示成類似
0xd9A1…853a91,而這正是攻擊者對齊的部分。 - 假紀錄也會長在「自己轉出」那一欄。 上面的案例裡,受害者從沒簽過那筆 09:17 的交易,紀錄卻顯示成從受害者地址轉出。只看「這是我轉過的地址」並不可靠。
- 金額為 0 或極小,不會引起注意。 0.05 個假 ETH、0 USDT 這類紀錄,看起來像測試或手續費殘留。
- 小額測試擋不住。 如果測試和主額都貼了同一個錯地址,測試會「成功」到攻擊者那裡。小額測試的作用與限制,可以對照第一次轉到新地址時小額測試要轉多少。
轉帳前怎麼做:收款地址的取得與核對順序
- 每次都從原始來源重新取得地址。 轉到交易所:進入該平台的「儲值 / 充幣」頁面,選好幣種和網路後複製當下顯示的地址;轉給別人:請對方從自己的錢包重新複製傳給你。不要從自己的提領紀錄、錢包的「最近」列表或區塊瀏覽器頁面複製。
- 常用地址存進地址簿(白名單)。 第一次確認無誤後,存入錢包或交易所的地址簿並加上備註,之後從地址簿選。存入那一刻的地址一樣要來自原始來源。
- 貼上後比對中段,不只看頭尾。 把貼上的地址和來源逐段對照,至少各挑開頭、中間、結尾一段。以太坊地址可以 4 個字元一組對照,中段不一致就停止。
- 確認網路與資產沒有被一起換掉。 地址對了但網路選錯,一樣可能收不到;判斷方式見同名代幣怎麼辨認:收幣前核對網路與合約地址。
- 送出後保存 TxID。 萬一出錯,TxID 是向平台或收款方說明的依據,三種編號各查什麼見 TxID、錢包地址和訂單編號差在哪。
怎麼看出自己的紀錄裡有投毒交易
打開區塊瀏覽器,貼上自己的地址,切到代幣轉移(Token Transfers)列表,符合下面任一項就要提高警覺:
- 出現你不記得的轉出或轉入,金額是 0 或極小。
- 對方地址的頭尾跟你常用的某個地址一樣,中段卻不同。
- 代幣名稱看起來是 USDT、USDC、ETH,但點進去的合約地址不是正式合約;瀏覽器可能另外標成「未驗證」或「可疑」。
- 交易詳情裡的發送者(From / Sender)不是你自己的地址。
讀交易詳情的欄位方法,可以參考區塊瀏覽器怎麼看:狀態、確認數、手續費和代幣轉移紀錄。
看到投毒紀錄不需要處理它:它沒有動你的資產,也不需要「退回」或和那個合約互動。真正要做的是確認自己以後不從紀錄裡複製地址;如果錢包有隱藏垃圾代幣或零金額轉帳的設定,可以打開,但不要把它當成唯一防線。
已經轉錯到投毒地址怎麼辦
鏈上轉帳一經確認無法撤回。能做的只有:
- 立刻保存證據: 你的轉出 TxID、投毒交易的 TxID、正確收款地址。
- 如果是從交易所提領: 聯絡該平台客服,提供 TxID。平台無法撤回已上鏈的交易,但可以協助確認紀錄。
- 如果資產是可凍結的代幣(例如 USDT、USDC 這類由發行方管理的穩定幣),發行方在特定條件下可以凍結地址,但通常需要執法機關提出要求,個人直接申請不保證受理。
- 向當地警方報案,並保留所有紀錄。對方若私訊表示可以「幫你追回」並先收費,這通常是另一層詐騙,見常見的假客服與釣魚手法。
常見問題
有人轉 0 元給我,我的資產會被偷嗎? 不會。0 元轉帳或假代幣紀錄本身不會動到你的資產,也沒有取得任何授權。風險在於你之後從紀錄裡複製了那個地址。
只看地址開頭和結尾各 4 碼夠嗎? 不夠。上面的案例裡,投毒地址與正確地址前 4 碼、後 6 碼都相同。至少還要比對中段。
把地址存進地址簿以後就安全了嗎? 地址簿解決的是「之後不必再從紀錄複製」。存入時那一次仍要從原始來源取得並完整比對;存錯一次,之後每一筆都會送錯。
