ERC-8186:身份帳戶
ERC-8186 定義了與離線識別碼關聯的確定性智能帳戶,允許在實體註冊以太坊之前先行發送資金。新設計將原本簡單的提款功能替換為靈活的執行介面,讓擁有者在註冊後能執行任何鏈上操作。
ERC-8185: 鏈下實體註冊表 (Off-Chain Entity Registry) 的配套提案。
ERC-8185 將鏈下識別碼映射到以太坊地址,但這僅在實體完成註冊後才生效。最引人注目的使用場景——例如 AI 代理為專案中的每個依賴項提供資金,或資助協議分配資金給尚未領取的程式碼庫——都需要在實體與以太坊互動之前發送價值。
ERC-8186 為每個識別碼定義了確定性的智能帳戶。該地址是識別碼與工廠合約(CREATE2)的純函數,可以在本地計算而無需進行鏈上調用。資金在該地址累積。一旦實體完成註冊,他們便能控制該帳戶。
設計
-
確定性定址:predictAddress(id) 返回帳戶地址。在實作版本升級時保持穩定。
-
所有者門控執行:註冊的所有者調用 execute(target, data, value) 以透過帳戶進行任何調用——提取代幣、與 DeFi 互動、領取空投、從 Splits Warehouse 提取資金或任何其他操作。
-
無硬編碼提取:早期的草案包含一個無權限的 withdraw(token) 函數。我們將其替換為 execute,因為固定的提取介面在每次出現新的整合模式時都需要進行協議級別的升級。execute 將這種靈活性委託給所有者——帳戶變成了一個輕量級的智能帳戶,由控制鏈下身份的人所擁有。
-
原生 ETH:實作應透過 receive() 支援 ETH。
與早期草案相比的變化
原始的 ERC-8186(「可領取託管」,Claimable Escrow)定義了一個任何人都可以調用的 withdraw(token) 函數,資金始終流向註冊者。這雖然簡單但具有局限性——它只能處理 ERC-20 代幣提取,且任何新功能都需要進行信標(beacon)升級。
新設計將整個託管概念替換為單一的 execute 函數:
interface IIdentityAccount {
function execute(address target, bytes calldata data, uint256 value)
external returns (bytes memory);
}
這在功能上更為強大:所有者可以編碼 ERC-20 轉帳、Splits Warehouse 提取、歸屬合約領取或任何其他調用。權衡之處在於提取不再是無權限的——只有註冊的所有者可以執行操作——但在實踐中,所有者通常就是發起提取的人。
參考
-
最小參考合約:包含在 ERC 的 assets/erc-8186/ 目錄中
-
完整實作(未經審計):ethereum-canonical-registry
歡迎提供回饋——特別是關於 execute 介面,以及重入保護(reentrancy guards)應該是「必須(REQUIRED)」還是「建議(RECOMMENDED)」。
參考
-
最小參考合約:包含在 ERC 的 assets/erc-8186/ 目錄中
-
完整實作(未經審計):
歡迎提供回饋——特別是關於託管介面和原生 ETH 模式。
1 則貼文 - 1 位參與者
[閱讀完整主題](https://ethereum-magicians.org/t/erc-8186-identity-account/27905)