僅供教育參考,不構成投資建議;投資可能造成損失。
直接答案
轉帳扣費代幣會在轉帳邏輯內部扣除一部分價值,因此收款方實際收到的數量可能少於傳給 transfer 或 transferFrom 的數量。扣除部分可能被銷毀、重新分配、轉入其他錢包或注入流動性;具體規則也可能取決於發送方、接收方或交易情境。
真正的風險不只是對外公布的費率。買入、賣出和錢包轉帳的費率可能不同;某些地址可能享有豁免或被禁止轉帳;特權帳戶還可能修改規則。因此,取得報價或成功買入都不能證明日後能以合理成本賣出。
運作機制
一般自動做市商路由器可能按名義輸入量計算每一跳的輸出。Uniswap V2 Router02 則提供專門支援轉帳扣費代幣的兌換函式:它根據交易對餘額的實際變化推算輸入量,並以收款方餘額增量核對 amountOutMin。這說明相容性取決於具體路由器、路徑和代幣行為,而不只是代幣符號。
代幣扣費會與池手續費和價格衝擊複合疊加。多跳路徑可能多次觸發轉帳邏輯,豁免規則或買賣識別也會讓有效費率隨方向變化。應根據目前鏈上狀態分別估算進場和退出成本。
範例
假設交易者花費 1,000 USDC。池手續費與價格衝擊使價值減少 2%,之後再扣 5% 的買入費:1,000 × 0.98 × 0.95 = 931。若市場價格不變,賣出時先扣 10%,再承受 2% 的交易摩擦,最終約收回 US$821:931 × 0.90 × 0.98 ≈ 821。即使市場價格沒有下跌,往返損失也約為 18%。
這只是範例,不是報價。實際扣除順序可能不同,費率、流動性、路由和合約狀態也可能在兩筆交易之間發生變化。依賴估算前,應讀取目前合約與池狀態,並以同一錢包模擬完整路徑。
風險與檢查
- 核對合約地址和已部署程式碼,識別扣費邏輯、豁免名單、限制名單、最高費率約束、所有者角色、升級控制和暫停權限。
- 將報價輸出與模擬中的收款方餘額變化相比,確認路徑中的每個路由器和每一跳都明確支援轉帳扣費行為。
- 使用同一錢包模擬賣出,再以自己可以承受全部損失的小額進行往返測試。測試成功不代表日後規則或流動性不會變化。
- 將
amountOutMin設為自己真正能接受的損失下限。設為 0 或反覆放寬滑點會取消價格保護,卻無法繞過回滾、限制名單或懲罰性代幣費率。 - 按可信的最差淨退出價值決定部位。賣出模擬失敗、程式碼未驗證、權限不透明,或管理員能在缺少有效延遲的情況下提高費率或禁止轉帳時,不應繼續。
常見誤解
- 誤解 1:轉帳數量或事件足以證明實際入帳量。應檢查收款方餘額變化;轉帳扣費整合採用餘額差值正是出於這個原因。
- 誤解 2:提高 Gas 或滑點就能讓任何賣出成功。Gas 影響交易被納入區塊的機會,滑點只放寬最低成交價,兩者都不能繞過合約邏輯。
- 誤解 3:放棄所有權就表示代幣不可更改。代理管理員、其他特權角色或外部設定合約仍可能控制行為,因此必須檢查所有實際有效的權限路徑。
相關主題
來源
- Uniswap V2 Router02 - Uniswap(查閱日期:2026-08-20)
- FeeOnTransferDetector.sol - Uniswap(查閱日期:2026-08-20)
- SC01:2026 Access Control Vulnerabilities - OWASP(查閱日期:2026-08-20)