在2024年4月12日舉行的以太坊第183次ACDE會議中,EIP-3074正式被納入下一次以太坊硬分叉Pectra升級(簡稱布拉格升級)。
因此,EIP-3074得到以太坊社區(qū)關(guān)注。以太坊社區(qū)很多人認(rèn)為,這個EIP將永遠(yuǎn)改變用戶在EVM鏈上交互的方式,使錢包用戶體驗更簡單、更便宜、更強大。
那么,什么是EIP-3074??
一句話描述:EIP-3074本質(zhì)上是將EOA的控制權(quán)委托給智能合約,包括進(jìn)行單次交易批準(zhǔn)、批量交易、錢包資產(chǎn)恢復(fù)、贊助交易等的能力。
EIP-3074由以太坊研究員?Sam Wilson、Go Ethereum 開發(fā)者等人提出,通過添加兩個新的EVM操作碼AUTH 和 AUTHCALL,來將現(xiàn)有的EOA變成智能合約。這兩個操作碼協(xié)同工作,允許智能合約代表EOA行事。
AUTH 操作碼 (0xf6):此操作碼允許用戶通過檢查 ECDSA 簽名來授權(quán)特定的 EOA。簽名必須使用 EOA 的私鑰進(jìn)行,并且需要覆蓋特定的消息(提交)。?
AUTHCALL 操作碼 (0xf7):此操作碼允許授權(quán)的智能合約從 EOA 的帳戶開始交易。它的工作原理類似于已有的 CALL 操作碼,但使用授權(quán)的 EOA 作為發(fā)送者而不是合約本身。
AUTH 獲取用戶的簽名和預(yù)期操作,并驗證其簽名是否正確。它設(shè)置一個變量來說明 txn 的原始地址,允許一個智能合約代表一個 EOA 執(zhí)行操作,從而實現(xiàn)了授權(quán)控制的委托。 AUTHCALL 然后使用發(fā)起者地址作為調(diào)用者而不是實際的 msg.sender 來調(diào)用目標(biāo)合約。
如下:?
用戶簽署一條消息(鏈下,不是交易)--->用戶或發(fā)起人將消息作為交易發(fā)送到調(diào)用者合約--->調(diào)用者使用 AUTH 和 AUTHCALL 來驗證和調(diào)用每個目標(biāo)合約用戶作為發(fā)件人的地址
這個新的交易流程中獲得了一些用例,例如:
用例1:贊助交易。假設(shè)Bob的錢包里沒有任何 ETH。應(yīng)用程序可以為 Bob 的交易提供 Gas,而不需要購買/橋接 ETH。這對于獲得大規(guī)模散戶采用可能是巨大的。
用例2:在一次交易中執(zhí)行多個操作的能力。目前為了在 Uniswap 上交換代幣,用戶必須首先批準(zhǔn) Uniswap 使用自己的代幣,然后再運行實際的Swap。使用EIP-3074,這兩個操作可以批處理到單個交易中。
用例3:資產(chǎn)恢復(fù)。可以設(shè)置一個特殊的調(diào)用者合約,以便用戶在丟失私鑰時可以使用社交恢復(fù)來恢復(fù)資產(chǎn)。如果滿足社交恢復(fù)條件,則可以向調(diào)用者提交簽名以移動資產(chǎn)。
EIP-3074之前:智能合約要求用戶在與智能合約交互時簽署交易。因此,用戶需要為每天執(zhí)行的鏈上任務(wù)參與一些消息簽名。
EIP-3074之后:用戶可以簽署一次密鑰,并授予智能合約從用戶的錢包簽署交易的權(quán)限。用戶可以使用自己的密鑰簽署此許可,然后就可以開始了。它將成為 web3 游戲的游戲規(guī)則改變者,用戶可以在其中簽署一次會話,然后玩整個游戲,而無需擔(dān)心與智能合約的交互。
不同于ERC-4337在合約層面的升級,EIP-3074的優(yōu)勢在于從EVM指令層面進(jìn)行升級,不需要特別額外設(shè)置即可讓用戶享受到智能合約的功能。比如上節(jié)提到的三個用例,都會大大提升以太坊用戶體驗。
最大一個就是調(diào)用者。調(diào)用者合約需要經(jīng)過全面審核、不可升級且無需信任,否則用戶的資金很容易被盜。
此外,某些現(xiàn)有的重入檢查可能不適用于 EIP-3074。
由于EIP-3074添加了兩個新的操作碼,因此需要硬分叉來添加此更改。這是EIP-3074被推遲以及 ERC4337 被首先采用的部分原因。
而賬戶抽象的ERC-4337不需要硬分叉,純粹是合約和鏈下系統(tǒng)改變。
登載此文出于傳遞更多信息之目的,并不意味著贊同其觀點或證實其描述。文章內(nèi)容僅供參考,不構(gòu)成投資建議。投資者據(jù)此操作,風(fēng)險自擔(dān)。