Ether

使用看似符合 ERC20 標準的代幣有哪些風險?

  • February 12, 2022

假設有人向我的 ETH 地址發送了一些 ERC20(據說)代幣。然後我使用transfer()函式將這些令牌發送到其他地址。問題是 - 通過使用“轉移”功能,我是否有可能在發送代幣的同一地址上失去我的乙太幣或其他代幣?或者我是否有可能在同一個密鑰庫中失去我的乙太幣或代幣?我問的原因是這樣的:

  • 每次我處理一個據稱是新的 ERC20 代幣時,我是否必須成為可靠的專家並進行智能合約程式碼審查?
  • 如果我不是 Solidity 專家並且不想查看我將要使用的 ERC20 合約的 Solidity 程式碼,會有什麼風險?

風險非常小。

EIP-20 風格的transfer()功能不能

  • 移動你的乙太幣,因為你需要手動為錢包中的乙太坊交易添加餘額(發送交易時的金額欄位)
  • 移動其他代幣,就像transfer()呼叫transfer()第三方代幣合約一樣。惡意合約呼叫將來自惡意智能合約地址,而不是來自您的錢包地址,因此它無法訪問您的錢包代幣。您首先需要先執行顯式 EIP-20approve()呼叫。
  • 實踐中最大的風險是提供approve(amount)不受信任或後來被攻擊者接管的智能合約。他們可以將代幣從您的錢包中取出,獲得您批准的任何金額(通常是無限的)。

引用自:https://ethereum.stackexchange.com/questions/44073