Solidity

難道人們不能被騙去批准 ERC 代幣合約,然後他們的代幣就被盜了嗎?

  • May 4, 2020

乙太坊和 ERC 代幣的大多數使用者可能不知道approvetransferFrom功能的存在。

使用者不能在不知不覺中呼叫approveERC 代幣合約,然後transferFrom從託管合約呼叫,而無需實際“發送”代幣給任何人

使用者可能認為轉移代幣的唯一方法是通過輸入金額並呼叫 send 直接發送它們,但通過呼叫這些函式(approve 和 transferFrom),如果使用者無法理解他們呼叫的函式,使用者可能會在不知不覺中取走資金以及他們的目的。

approve有關使用and的可能攻擊範例transferFrom

  • 攻擊者聲稱他正在以 1:1 的比例分配另一個 ERC20 代幣的空投,他們需要你向真正的 ERC20 發送交易,然後再向他們的空投合約發送另一筆交易。受害者會認為這是一次免費的空投,而且是安全的,因為他們實際上並沒有直接向任何人發送代幣,但實際上受害者會在真實的ERC20tranferFrom攻擊者的智能合約中呼叫批准。
  • 如果一個以乙太坊工具為特色的流行網站被黑客入侵,黑客不可能讓使用者呼叫這兩個函式並有效地竊取資金,而使用者卻從未在他們的螢幕上看到呈現的金額。

“是的”。

基本上,在我看來,這是一個關於“使用者是否會被愚弄執行導致資產被剝奪的事情”的問題。答案幾乎總是肯定的,無論是關於加密貨幣還是正常銀行業務。

您是正確的,客戶端在使用實際功能時可能會更加透明和清晰transfer,使用者可能會更好地理解該功能將資產轉移到其他地方。但在那之後,它基本上只能歸結為教育使用者。

大多數加密貨幣持有者可能不知道代幣實際上是如何工作的,這通常是一件好事——大多數使用者也不了解銀行系統是如何工作的,但他們每天都在使用該系統。這只是使系統易於使用者使用的問題——這是獲得足夠廣泛使用者群的唯一方法。

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