ERC 是什麼? 一切要先從 EIPs 說起

lee
BeReal
Published in
4 min readSep 14, 2021

EIPs ( Ethereum Improvement Proposals)

EIPs 是用來描述以太坊平台上的應用開發準則的資訊文件,文件內容會包含核心技術原型資訊的規格、Client APIs 還有合約標準。你可以想像以太坊就像一個城市,然後你進來城市活動要先閱讀城市內的規則再行動,而開發人員有點像這座城市內各項活動的軟硬體開發者,所以他在動工之前也要先閱讀城市內的相關規則,就是以太坊社群的規則。

如果有開發人員想發起新的標準,可以先參考最開始的 EIP-1 文件內的申請流程規範。建議在提出要求之前,先將新的想法在以太坊相關社群內充分討論完整再提出,例如 Ethereum Magicians 論壇或是 Github 上以太坊的 repository,所有的申請狀態都可以在 repository 看得到。

EIPs 的種類

Standard Track EIP

這類型的 EIP 描述了對整個以太坊影響最大的變更,例如更改以太坊的網路協議、更改區塊或是交易驗證的規則,發起應用程式的標準,或任何會影響使用以太坊應用程式交互操作性的改動。因此,Standard EIPs 也涵蓋不同種類:( source : https://eips.ethereum.org/ )

Core 核心型

以城市來比喻的話,就有點像地基和一個城市運作順暢需要的核心 infrastructure。如果還不是很懂,就把它想成一個國家的憲法,不可撼動,最高準則,但另有修憲的規章和流程。

1.需要群眾共識才能成立的協議:例如 EIP5EIP101
2.不一定需要決定性的共識,但可能牽涉到「核心開發」討論的相關變更:例如, EIP86 的礦工/節點變更策略 2、3、4、EIP90

Networking 網絡型

以城市來比喻的話,他就是這個城市裡的通訊溝通與交通網絡,訂定資訊流通的方式。

包括圍繞 devp2p ( EIP8 ) 與 Light Ethereum Subprotocol 的變更,以及對 whisperswarm 的網絡協議規範的變更提議。

Interface 介面型

以城市來比喻的話,他就是城市裡面物件之間的接口設計。

介面型( Interface)的標籤應該要與它的 repo 一致,並且在該 EIP 提交到 EIPs 庫前的所有相關討論,都應該要發生在 repo 內。

  1. Client 端的API / RPC規範和標準的改進
  2. 部分語言層級的標準 : 例如方法名稱 EIP59EIP6,或是合約 ABIs 等。

ERC(Ethereum Request for Comments)應用程式層級標準協定型

我們常看到的 ERC 1155、ERC721、ERC20 就是在這個類型裡。以城市來比喻的話,他可以是城市內物件本身的應用程序,或是物件內ㄧ部分的應用程序。就像手機本身是一個物件,但手機內的零件也是一個物件的概念。

ERC 所要討論的範圍是「應用程式層級的標準和協定」。這個協定發佈出來後有些開發者就會遵循這個標準來開發程式。例如現在有許多公有鏈上的合約都遵循 ERC20 標準。

開發人員可以通過提交 EIP 來向以太坊社群提出新的 ERC 標準提案,提交的內容包括協議規範和合同標準。 一旦 EIP 得到以太坊委員會的批准並最終確定後,它將成為新的 ERC,新的 ERC 提供了一套讓以太坊開發人員遵行的標準,開發人員可以使用這些標準來構建智能合約。常見的應用例如:

  1. 代幣標準 ERC20
  2. 名稱註冊標準 ERC26ERC137
  3. URI 方案標準 ERC67
  4. library/package 格式標準 EIP82EIP190
  5. 錢包格式標準 EIP75EIP85

Informational EIP

這類型的 EIP 主要描述 Ethereum 在設計上的問題,或謂 Ethereum 社群提供原則上的指導方針或資訊,但並非提出一個新的功能。資訊型的 EIP 不一定代表 Ethereum 社群上的的共識或建議,所以用戶和執行者可以自由選擇是否履行這一類 EIP 的建議。(那還寫幹嗎?XD)

Meta EIP

這類 EIP 也可以理解為流程設計型的 EIPs, 和 Standards Track EIPs 很像,但只適用於 Ethereum 原型以外的範疇。 開發者可能會提議一項並不需要更動 Ethereum codebase 的變更,而這通常會需要達成一定程度的社群共識。和 Informational EIPs 不一樣的是,這類型的 EIPs 使用者必須遵守。常見應用像是程序、指南、改變決策流程,以及開發過程中在以太坊內使用到的工具或環境條件的改變。

相關資料:https://eips.ethereum.org/allhttps://github.com/ethereum/EIPs/blob/master/EIPS/eip-1.md

--

--

lee
BeReal
Editor for

On a mission to democratize the mentorship experiences