Erc-20

重新設計的 ERC-20 標準?

  • September 18, 2021

如果 ERC-20 代幣標準是在今天創建的,事後諸葛亮,標準中最有可能發生的變化是什麼?這樣的新標準是否已經存在?

該標準的最大缺點是什麼?

靈感來自https://ethereum.stackexchange.com/a/110159/31933

有幾個標準希望取代 ERC-20,儘管這些標準已經有幾年曆史了,而且還沒有太大的吸引力。一些例子是ERC-223ERC-777,它們都是在 2017 年創建的。這兩個標準都希望以不同的方式解決 ERC-20 的問題。

ERC-20 的最大問題之一是合約不知道傳入的代幣交易。這意味著為了將代幣發送到合約,您需要讓approve合約花費您的代幣,然後呼叫合約,然後合約會transferFrom從您的地址呼叫合約。這意味著進行兩個單獨的事務,從使用者體驗的角度來看,這當然更昂貴且更糟糕。這也意味著,如果您(不小心)將代幣發送到合約,則合約無法拒絕代幣並且它們會卡住。

ERC-20 中的配額系統正被積極濫用,讓人們簽署交易以批准惡意地址消費代幣。由於它是“公正的”津貼,使用者可能沒有意識到這允許某人花費他們的代幣。

ERC-223 和 ERC-777 通過在發送代幣時呼叫接收合約上的函式來解決這個問題。這意味著合約知道傳入的代幣交易,如果合約不支持代幣,可以拒絕它(預設),類似於 Solidity 合約預設拒絕傳入的乙太幣交易。

由於配額的競爭條件,ERC-20 還存在潛在的雙重支出漏洞,但這在大多數現實世界的情況下並不是真正的問題:

  1. 地址 A 授權地址 B 消費 100 代幣。
  2. 地址 B 將 50 個令牌從地址 A 發送到另一個地址。
  3. 地址 A 決定將地址 B 的最大限制降低到 25。
  4. 地址 B 注意到這一點,並嘗試發送交易以花費 50 個代幣 (1)。如果這筆交易在地址 A 的交易之前完成,地址 B 可以再花費 25 個代幣(2),總共 125。

現在大多數代幣仍然使用 ERC-20 代幣標準。幾個月前,在大約 175,000 份代幣合約中,只有 2,000 份使用 ERC-223 標準,只有 150 份使用 ERC-777 標準,因此加起來只有 1.2% 左右。

我對一些不同的代幣標準及其優缺點進行了更詳細的解釋,您可以在此處找到。

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