本文不會從頭介紹EIP-4337,僅介紹4337的主要合約是如何實現的。適合對4337有一定了解的開發者,由其是錢包開發者,以及愛好者或研究員閱讀。
主要內容位于流程圖中Figma。
需要配合4337源碼閱讀GitHub—eth-infinitism/account-abstractionatmain。
4337Spec中有更多詳細細節EIP-4337:AccountAbstractionusingaltmempool。
請注意:
本流程圖只畫出了普通類型的交易,未涉及Aggregator。掌握普通流程后才方便掌握聚合型的交易。流程圖中箭頭不代表程序的調用棧或輸入輸出,僅代表相關角色、函數、事件的發生的先后順序。為方便讀者對宏觀架構的快速理解,流程圖中省略了一部分函數調用和邏輯。被省略的部分有可能對你研究的問題或疑惑有很大意義,具體看你想了解什么內容,所以還是需要你必要時仔細閱讀源碼。核心概念
DAO注冊服務提供商MIDAO完成100萬美元融資:7月21日消息,DAO注冊服務提供商MIDAO完成100萬美元融資,The LegalTech Fund、FJ Labs以及天使投資人Coinbase前首席技術官Balaji Srinivasan等參投。該輪融資將增強MIDAO的核心產品,為Web3項目和DAO提供法律認可,并幫助確保貢獻者的責任保護,擴大其由Web3律師和專業服務提供商組成的全球合作伙伴網絡,并擴大MIDAO在全球的服務范圍。
MIDAO是一個由超過300名經過審查的Web3律師組成的合作伙伴網絡,其使命是使各行業的Web3組織能夠訪問法律和監管框架,為尋求法律認可的現有DAO提供服務。[2023/7/21 15:50:51]
研究4337需要掌握以下核心概念:
UserOperation的內容EntryPoint實現Wallet實現Paymaster實現驗證階段、執行階段的執行流程與錯誤處理Gas的支付流程與計算UserOperation
數據:價值約440萬美元的ID代幣將在本周解鎖:6月19日消息,Token Unlocks數據顯示,本周有4個加密項目將進行代幣解鎖,總計釋放價值約482萬美元。
1inch (1INCH)將于6月20日16時解鎖15,000枚代幣,價值約4139美元,占總供應量的0.001%。
Euler(EUL)將于6月22日02:39:19解鎖147,848枚代幣,價值約23萬美元,占總供應量的0.544%。
SPACE ID (ID)將于6月22日8時解鎖15,152,777枚代幣,價值約440萬美元,占總供應量的0.758%。
Acala (ACA)將于6月25日8時解鎖4,657,534枚代幣,價值約18萬美元,占總供應量的0.466%。[2023/6/19 21:46:21]
一種內容類似transaction的偽交易對象,通過新的RPC方法eth_sendUserOperation提交給節點。
美國玩具商Build-A-Bear與NFT平臺Sweet合作推出系列NFT:金色財經報道,毛絨玩具制造商Build-A-Bear已宣布進入web3,其推出了三個帶有匹配實體物品的數字收藏品項目。該系列包括一只鑲有施華洛世奇水晶的獨一無二的熊。公司與NFT平臺Sweet合作,將利用Polygon分三個階段推出。客戶將能夠用法定貨幣或加密貨幣支付。施華洛世奇熊將在10月4日至10月6日期間通過拍賣出售,起拍價為2,500美元。最終售價的10%將捐贈給其慈善機構Build-A-Bear基金會。(the block)[2022/9/28 5:59:03]
UO中的字段含義大部分是顯然的,僅挑選幾個容易誤解的進行分析:
sender,此處指的是要交互的wallet,而非msg.sender或tx.origin等其他任何概念verificationGasLimit,驗證交易時的gasLimitcallGasLimit,執行交易時的gasLimitpreVerificationGas,補償bundler調用handleOps()時會一部分未計算在內的gas成本。Prefund
Bitpanda聘請畢馬威負責資產驗證:11月15日消息,奧地利加密貨幣交易平臺 Bitpanda GmbH 聯席首席執行官 Demuth 表示,由于 FTX 破產事件影響了整個加密行業,他們決定聘請四大會計事務所畢馬威進行資產驗證,包括核實客戶資產是否由存儲在 Bitpanda 冷錢包中的相應加密貨幣資金覆蓋,涉及比特幣等其他 5 個 Token。[2022/11/15 13:08:56]
這個并非UO中的一個字段,而是由上面三個gas參數計算而出。代表了該UO在驗證階段預先支付給EntryPoint的總成本。Prefund雖然是在驗證階段支付的,但包含了preVerificationGas,驗證和執行三部分的成本。之后不會再向EntryPoint進行支付gas。
prefund/gasPrice=callGasLimit+verificationGasLimit*mul+preVerificationGas
Orbiter Finance新增支持StarkNet:6月30日消息,Layer2跨Rollup橋Orbiter Finance宣布新增支持StarkNet,允許用戶將ETH從以太坊、Optimism、Polygon跨至StarkNet,以及從StarkNet跨至其他網絡。[2022/6/30 1:42:25]
mul=mUserOp.paymaster!=address(0)?3:1;
具體計算參見EntryPoint中的_getRequiredPrefund。
EntryPoint
EntryPoint是所有功能的核心入口。每個項目自行部署自己的EntryPoint。Bundler,Wallet和Paymaster都需要圍繞EntryPoint工作。
Bundler在EntryPoint內實現兩個功能
鏈下驗證UO,剔除不符合要求和有問題的UO。鏈下驗證一是防止DoS,二是避免bundler在鏈上損失gas。打包合規的UO,提交上鏈。Wallet與EntryPoint
向EntryPoint支付gas費只響應來自EntryPoint的消息執行來自EntryPoint的具體交易內容注意,EntryPoint不是Wallet的factory。官方給出的圖片容易給人造成這種誤解,但官方實現并非如此。Paymaster與EntryPoint
向EntryPoint支付gas費只響應來自EntryPoint的消息向EntryPoint確認自己的為某UO服務的意愿在EntryPoint內質押才能成為paymaster我們可以看到Wallet與Paymaster都有可能向EntryPoint支付gas。gas余額會存儲在deposits這個mapping中。
注意,雖然deposits字面意思為充值,但并非必須一個需要預先手動完成的動作,也可以在每一筆UO發生時,計算缺少多少gas并自動充值。
最終,若所有操作的actualGasCost小于prefund,?EntryPoint
會將多余額度退款至你的deposit。
actualGasCost/gasPrice=validationActualCost+callActualCost+preVerificationGas
注意,?validationActualCost?&?callActualCost?僅僅是為了說明而作的標記,并非真實存在的變量。它們是由gasPrice()累加的。
Wallet
代表用戶最終使用的錢包。需要開發者至少實現以下兩個自定義方法:
簽名驗證:你可以使用任何密碼學手段來實現簽名驗證,比如,為了配合使用蘋果的SecurityEnclave而實現NISTP-256的ECDSA。如果沒有特殊需求可直接使用以太坊的ECDSA。處理交易:EntryPoint通過address(sender).call(callData)來調用wallet中的具體的交易功能。那么call需要有至少一個可執行的函數,如transferEther(),callAnotherContrat()等。開發者還需要自行實現walletfactory,需要創建錢包時,工廠會被SenderCreator合約調用。新建錢包應使用CREATE2方法以保障生成地址的確定性。
Paymaster
Paymaster可以為用戶支付gas,因此可以實現:
免費交易:用戶激勵,讓用戶免費使用錢包gasless交易:不直接用ether支付gas,而使用其他token或nft等等等其他類似的贊助交易功能Paymaster需要開發者實現:
validatePaymasterUserOp():由于paymaster的開放性,驗證邏輯需要開發者完全自己定義。驗證后有可能需要實現類似wallet中payPrefund()的功能。_postOp:必須重寫此方法,否則會被revert。此方法可以定義在paymaster贊助完交易后需要做什么,如在驗證時為用戶支付了ether,則此處要求用戶支付等價的ERC-20。
Tags:GASNTROININTEthereum Gas LimitContractiumCryptoVerificationCoincointiger交易平臺app
摘要:11月28日,咸陽高新區管委會發布《咸陽高新區建設“元宇宙產業先行區”行動方案》,提出按照“一個目標、三個發展路徑、五個應用場景”的“一三五”發展思路,優先布局元宇宙發展新賽道.
1900/1/1 0:00:00Lens協議是PolygonProof-of-Stake區塊鏈上的Web3社交圖。它旨在使創作者能夠擁有自己與社區之間的聯系,形成一個完全可組合的、用戶擁有的社交圖譜.
1900/1/1 0:00:00根據Genesis說法,其目標是通過“與債權人建設性對話,并以協商一致的方式解決當前情況”。這是一個高風險的策略,可能導致雙輸的局面.
1900/1/1 0:00:00滅絕 在2022年,有些機構在加密市場的歷史數據中,留下了難以磨滅的印記:Luna、3ACCapital、FTX的崩盤與倒閉推動著加密市場市值一路從1.8萬億美元左右下滑至8,500億美元以下.
1900/1/1 0:00:00?"風能熄滅蠟燭,也能激發火焰。同樣,對于隨機性、不確定性、混亂:你想利用它們,而不是躲避它們。你想成為火,希望有風.
1900/1/1 0:00:00在Terra和3AC之后,加密行業的狀態是否會回歸恢復模式?一個有趣的假設:如果沒有Terra、三箭資本和這么多加密銀行的垮臺,加密貨幣的狀態會怎么樣?顯然會好很多。但不幸的是,損害已經造成.
1900/1/1 0:00:00