EIP-3074被納入以太坊布拉格升級三分鐘讀懂EIP3074

撰文:0xjs@金色財經

在2024年4月12日舉行的以太坊第183次ACDE會議中,EIP-3074正式被納入下一次以太坊硬分叉Pectra升級(簡稱布拉格升級)。

因此,EIP-3074得到以太坊社群關注。以太坊社群很多人認為,這個EIP將永遠改變用戶在EVM鏈上互動的方式,讓錢包用戶體驗更簡單、更便宜、更強大。

那麼,什麼是EIP-3074 呢?

EIP-3074是什麼?

一句話描述:EIP-3074本質上是將EOA的控制權委託給智能合約,包括進行單次交易批准、批量交易、錢包資產恢復、贊助交易等的能力。

EIP-3074由以太坊研究員 Sam Wilson、Go Ethereum 開發者等人提出,透過增加兩個新的EVM操作碼AUTH 和AUTHCALL,來將現有的EOA變成智慧合約。這兩個操作碼協同工作,允許智能合約代表EOA行事。

AUTH 操作碼(0xf6):此操作碼允許使用者透過檢查ECDSA 簽章來授權特定的EOA。簽名必須使用EOA 的私鑰進行,並且需要覆蓋特定的訊息(提交)。

AUTHCALL 操作碼(0xf7):此操作碼允許授權的智慧合約從EOA 的帳戶開始交易。它的工作原理類似於現有的CALL 操作碼,但使用授權的EOA 作為發送者而不是合約本身。

AUTH 會取得使用者的簽章和預期操作,並驗證其簽章是否正確。它設定一個變數來說明txn 的原始位址,允許一個智慧合約代表一個EOA 執行操作,從而實現了授權控制的委託。 AUTHCALL 然後使用發起者位址作為呼叫者而不是實際的msg.sender 來呼叫目標合約。

EIP-3074工作流程與新用例

如下:

使用者簽署一條訊息(鏈下,不是交易)—>使用者或發起人將訊息作為交易發送到呼叫者合約—>呼叫者使用AUTH 和AUTHCALL 來驗證和呼叫每個目標合約使用者作為寄件人的地址

這個新的交易流程中獲得了一些用例,例如:

用例1:贊助交易。假設Bob的錢包裡沒有任何ETH。應用程式可以為Bob 的交易提供Gas,而不需要購買/橋接ETH。這對於獲得大規模散戶採用可能是巨大的。

08gDb4S1zjst2RN5ZpDtZbOvi4754TGoZLvN8yL5.jpeg用例2:在一次交易中執行多個操作的能力。目前為了在Uniswap 上交換代幣,用戶必須先批准Uniswap 使用自己的代幣,然後再運行實際的Swap。使用EIP-3074,這兩個操作可以批次到單一交易中。

用例3:資產恢復。可以設定一個特殊的呼叫者合約,以便用戶在丟失私鑰時可以使用社交恢復來恢復資產。如果滿足社交恢復條件,則可以向呼叫者提交簽名以移動資產。

EIP-3074對以太坊意味著什麼?

EIP-3074之前:智能合約要求用戶在與智能合約互動時簽署交易。因此,用戶需要為每天執行的鏈上任務參與一些訊息簽署。

EIP-3074之後:使用者可以簽署一次金鑰,並授予智慧合約從使用者的錢包簽署交易的權限。使用者可以使用自己的金鑰簽署此許可,然後就可以開始了。它將成為web3 遊戲的遊戲規則改變者,用戶可以在其中籤署一次會話,然後玩整個遊戲,而無需擔心與智能合約的互動。

有別於ERC-4337在合約層面的升級,EIP-3074的優點在於從EVM指令層面進行升級,不需要特別額外設定即可讓使用者享受到智慧合約的功能。例如上節提到的三個用例,都會大幅提升以太坊使用者體驗。

說了那麼多優點,EIP-3074缺點呢

最大一個就是呼叫者。呼叫者合約需要經過全面審核、不可升級且無需信任,否則用戶的資金很容易被盜。

此外,某些現有的重入檢查可能不適用於EIP-3074。

由於EIP-3074添加了兩個新的操作碼,因此需要硬分叉來新增此變更。這是EIP-3074被延遲以及ERC4337 被首先採用的部分原因。

而帳戶抽象的ERC-4337不需要硬分叉,純粹是合約和鏈下系統改變。

Total
0
Shares
Related Posts