永久黄网站色视频免费直播,yy6080三理论日本中文,亚洲无码免费在线观看视频,欧美日韩精品一区二区在线播放

Board logo

標題: 什么是賬戶抽象(ERC-4337),以太坊的ERC4337 [打印本頁]

作者: chainke    時間: 2023-6-9 18:22     標題: 什么是賬戶抽象(ERC-4337),以太坊的ERC4337

正如ERC-4337所定義的那樣,賬戶抽象 "允許用戶使用包含任意驗證邏輯的智能合約錢包,而不是使用EOA作為其主要賬戶"。

ERC-4337 帶來許多用戶體驗的優(yōu)化,最引人注目的是使人們能夠使用智能合約作為他們的主要賬戶。

ERC-4337在區(qū)塊鏈之上運行,不需要對區(qū)塊鏈本身做任何改變。這使得它今天可以在以太坊或任何EVM鏈上使用,無需對底層區(qū)塊鏈基礎設施進行任何重大改變。

2023年3月1日,來自以太坊基金會的Yoav Weiss宣布,在EntryPoint合約首次部署時,ERC-4337已經在以太坊主網上運行。

賬戶抽象的關鍵概念是什么?

賬戶抽象的關鍵概念是UserOperation, Bundler, Sender, EntryPoint, Paymaster, 和 Aggregator。這些概念結合在一起,使web3開發(fā)者能夠建立智能合約錢包和使DApp與智能合約錢包(SCW)兼容。

圖中顯示了用戶如何定義UserOperation,這些操作被捆綁起來,發(fā)送到EntryPoint合約,然后代表用戶智能合約錢包執(zhí)行。

1. UserOperation

UserOperation是一個 "偽交易對象",代表用戶的交易意圖。任何UserOperation都可以包含多個指令和附加數(shù)據(jù),以執(zhí)行由智能合約賬戶發(fā)起的智能合約調用。UserOperation 代表了 一個 4337 合約錢包交易的開始。

UserOperation 和 傳統(tǒng)交易對象(TX)之間有什么區(qū)別?

傳統(tǒng)交易對象通常類似于這樣的結構:

{  from: "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8",  to: "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a",  data: "0x.....",  gasLimit: "21000",  maxFeePerGas: "300",  maxPriorityFeePerGas: "10",  nonce: "0",  value: "10000000000"}

EOA 會對該交易對象簽名,并發(fā)送到節(jié)點處理(mempool)。

UserOperation 結構如下:

    struct UserOperation {        address sender;        uint256 nonce;        bytes initCode;        bytes callData;        uint256 callGasLimit;        uint256 verificationGasLimit;        uint256 preVerificationGas;        uint256 maxFeePerGas;        uint256 maxPriorityFeePerGas;        bytes paymasterAndData;        bytes signature;    }

UserOperation 和傳統(tǒng)交易對象之間的三個主要區(qū)別是:

2.捆綁器(Bundler)

捆綁器會監(jiān)控一個專門為UserOperation建立的 mempool。捆綁器將多個UserOperation捆綁成一個交易,并將該交易提交給入口點(EntryPoint)合約。捆綁器通過抽取部分 Gas 費用來獲得補償。

捆綁器是實現(xiàn)ERC-4337的基礎設施的關鍵部分,由于所有以太坊交易都需要由一個外部擁有的賬戶(EOA)發(fā)起。捆綁器通過EOA 把多個UserOperation 作為交易提交上鏈,在一個賬戶抽象化的生態(tài)系統(tǒng)中,捆綁器是唯一需要EOA的參與者。ERC-4337的主要目標之一是錢包抽象(Web3不再關注使用EOA 還是 合約錢包),讓web3 用戶可以不再需要自己的EOA錢包。

3. 入口點(EntryPoint)

EntryPoint是一個單例智能合約,用來接收來自捆綁器的交易,然后驗證和執(zhí)行UserOperation。

EntryPoint的驗證過程是如何進行的?

智能合約賬戶可以定義自己的驗證,因此也可以定義自己的認證。在驗證過程中,EntryPoint合約會檢查錢包是否有足夠的資金來支付它可能使用的最大Gas量,這是基于UserOperation中的Gas字段。如果錢包沒有足夠的資金,EntryPoint合約會拒絕交易。

EntryPoint的執(zhí)行過程是如何進行的?

在執(zhí)行過程中,EntryPoint合約通過使用UserOperation中指定的 calldata 來執(zhí)行UserOperation,并從智能合約賬戶中取錢給捆綁器報銷合適的ETH來支付Gas。

4. Paymaster

Paymaster 是一個ERC-4337定義的智能合約,處理Gas 支付政策。支付政策為 Gas 的支付方式(例如,用什么貨幣)和由誰支付創(chuàng)造了靈活性,這消除了用戶持有區(qū)塊鏈原生代幣才能與區(qū)塊鏈交互的限制。

例如,以太坊的原生區(qū)塊鏈代幣是ETH,Polygon的原生區(qū)塊鏈代幣是MATIC。因此,用戶可以用任何ERC20代幣如美元幣(USDC)或Tether(USDT)來支付以太坊交易的Gas費用,而不是用原生代幣(如ETH)來支付。

圖:EntryPoint合約如何與Paymaster合約交互以執(zhí)行靈活的Gas支付政策。

Paymaster 允許應用程序開發(fā)人員:

Paymaster 從用戶那里抽象出Gas支付,同時以一種穩(wěn)健的方式讓應用程序決定這種抽象應該是什么(例如,贊助交易,用穩(wěn)定幣支付Gas,等等)。

5.聚合器(Aggregator)

聚合器是一個智能合約,它實現(xiàn)了一個支持聚合的簽名方案(即一個可以驗證聚合簽名的合約)。

如果多個消息用不同的密鑰簽名,那么可以生成一個單一的組合簽名,驗證組合簽名,并確認(推導)所有的組成簽名也是有效的。

通過將多個簽名合并成一個簽名,聚合器有助于節(jié)省calldata成本,多個捆綁的 UserOperation 在一個步驟中得到驗證。

圖:ERC-4337如何為UserOperation 使用 mempool和一個捆綁器,將一捆 UserOperations 組合成一個交易,并包含在以太坊的區(qū)塊中。

ERC-4337 先烈:EIP-2938 和 EIP-3074

ERC-4337 建立在之前的以太坊改進提案(EIP)2938 和 3074 之上。EIP-2938 提出了使智能合約可用來 "支付費用和發(fā)起交易執(zhí)行" 一等賬戶的想法,而EIP-3074提出了將 "外部擁有賬戶(EOA)的控制權委托給智能合約 "的想法。

EIP-4337 使用了EIP-2938和EIP-3074引入的想法,并將其與使用獨立 mempool 的想法和不需要改變共識層的實施路線相結合。

感謝 Chaintool 對本翻譯的支持, Chaintool 是一個為區(qū)塊鏈開發(fā)者準備的開源工具箱






歡迎光臨 WDlinux官方論壇 (http://www.fsowen.com/bbs/) Powered by Discuz! 7.2