本文不會從頭介紹EIP-4337,僅介紹4337的主要合約是如何實現的。適合對4337有一定了解的開發者,由其是錢包開發者,以及愛好者或研究員閱讀。
主要內容位于流程圖中Figma。
需要配合4337源碼閱讀GitHub—eth-infinitism/account-abstractionatmain。
4337Spec中有更多詳細細節EIP-4337:AccountAbstractionusingaltmempool。
請注意:
本流程圖只畫出了普通類型的交易,未涉及Aggregator。掌握普通流程后才方便掌握聚合型的交易。流程圖中箭頭不代表程序的調用棧或輸入輸出,僅代表相關角色、函數、事件的發生的先后順序。為方便讀者對宏觀架構的快速理解,流程圖中省略了一部分函數調用和邏輯。被省略的部分有可能對你研究的問題或疑惑有很大意義,具體看你想了解什么內容,所以還是需要你必要時仔細閱讀源碼。核心概念
Paxos:美國OCC未要求Paxos撤回銀行執照申請,且申請未被拒:2月9日消息,穩定幣發行商Paxos在推特上表示,Paxos并沒有被要求從美國貨幣監理署(OCC)撤回其國家信托銀行執照的申請,也沒有被拒絕該執照。Paxos繼續與OCC進行建設性的合作。
此前消息,消息人士表示,美聯儲和OCC正進行大規模加密貨幣去銀行化操作,Paxos和其他區塊鏈公司被OCC告知要撤回銀行執照申請。[2023/2/9 11:57:01]
研究4337需要掌握以下核心概念:
UserOperation的內容EntryPoint實現Wallet實現Paymaster實現驗證階段、執行階段的執行流程與錯誤處理Gas的支付流程與計算UserOperation
一種內容類似transaction的偽交易對象,通過新的RPC方法eth_sendUserOperation提交給節點。
英國政府公布了監管加密貨幣交易和借貸的計劃:金色財經報道,英國政府通過財政部周三發布的咨詢文件引入了新的加密貨幣監管框架,其中包含更嚴格的投資和交易規則。政府的首要議程是引入一種制度來更廣泛地監管加密貨幣。該文件試圖設計一個涵蓋加密服務提供商、借貸平臺、審慎要求、消費者保護、加密發行和披露、防止市場濫用等方面的制度。[2023/2/1 11:41:33]
UO中的字段含義大部分是顯然的,僅挑選幾個容易誤解的進行分析:
sender,此處指的是要交互的wallet,而非msg.sender或tx.origin等其他任何概念verificationGasLimit,驗證交易時的gasLimitcallGasLimit,執行交易時的gasLimitpreVerificationGas,補償bundler調用handleOps()時會一部分未計算在內的gas成本。Prefund
幣安將于今日晚些時候銷毀5000萬枚未使用的BSC鏈上的DAI:1月4日消息,幣安在官方推特上表示,今天晚些時候幣安將銷毀5000萬枚未使用的DAI(BSC),這是在BNB鏈上維持必要的包裝資產供應的標準程序。[2023/1/4 9:51:45]
這個并非UO中的一個字段,而是由上面三個gas參數計算而出。代表了該UO在驗證階段預先支付給EntryPoint的總成本。Prefund雖然是在驗證階段支付的,但包含了preVerificationGas,驗證和執行三部分的成本。之后不會再向EntryPoint進行支付gas。
prefund/gasPrice=callGasLimit+verificationGasLimit*mul+preVerificationGas
mul=mUserOp.paymaster!=address(0)?3:1;
馬斯克欲削減推特10億美元成本,或導致推特面臨癱瘓風險:金色財經報道,據知情人士稱,馬斯克已指示推特團隊通過削減云服務和額外的服務器空間,每年節省超過10億美元的基礎設施成本。消息稱,馬斯克的目標是每天在基礎設施上節省300萬美元。如此大幅度的削減措施可能會使推特網站和應用程序在訪問量大的情況下面臨癱瘓風險,比如即將到來的美國中期選舉。[2022/11/4 12:15:41]
具體計算參見EntryPoint中的_getRequiredPrefund。
EntryPoint
EntryPoint是所有功能的核心入口。每個項目自行部署自己的EntryPoint。Bundler,Wallet和Paymaster都需要圍繞EntryPoint工作。
Bundler在EntryPoint內實現兩個功能
波卡DeFi中心Acala先行網Karura與Calamari實現XCM跨鏈通訊:金色財經報道,Web3隱私保護協議 Manta Network 先行網 Calamari Network 宣布與波卡 DeFi 中心 Acala 先行網 Karura 成功完成跨鏈資產轉賬, HRMP 通道的開通以及跨共識通訊的部署將使兩條平行鏈間實現互操作性以及資產隱私化,XCM 整合將允許兩條平行鏈資產的跨鏈轉移,此舉對 Calamari 和 Karura 后續的進一步整合以及波卡生態的發展都有重要意義。[2022/6/3 4:00:26]
鏈下驗證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。
2022年是殘酷的一年,Terra、3AC和FTX等前巨頭的倒閉對該行業造成了嚴重破壞。情緒低落,價格下跌非常非常糟糕.
1900/1/1 0:00:00FTX創始人兼前首席執行官山姆·班克曼-弗里德(SamBankman-Fried)在他的公司倒閉時“在壓力面前僵住了”,他在一封發給他曾經掌舵的公司員工的新信中寫道.
1900/1/1 0:00:00前言 在對數字治理進行民族志研究一年后,我們將注意力轉向了一種古早的社交方式:鄰里協會。數字化的發展慢慢改變了公民參與城市生活的方式,使得地方治理成為了另一種形式的、公民與城市進行交互的APP.
1900/1/1 0:00:00注:本文來自@BlazingKevin17推特,MarsBit整理如下:1/9同樣實現擴容,Rollup和Modular的區別?首先.
1900/1/1 0:00:00這位前FTX首席執行官聲稱,如果沒有額外的7500萬美元,Binance"威脅要在最后一刻退出",并指責CZ對他在交易中的作用撒謊.
1900/1/1 0:00:00又到了西方的感恩節,是與朋友、家人、美食和足球共度的時間。也許很多人還記得在去年的聚會上向任何愿意聽的人解釋加密貨幣時的興奮.
1900/1/1 0:00:00