作者:鹿目圓,IOBCCapital?
以太坊系統中實際存在兩種類型的賬戶:
一種是由私鑰控制的外部賬戶,比如我們所使用的錢包中的賬戶,這類賬戶都有自己的余額。擁有者可以通過創建和簽名一筆交易從自己的外部賬戶發送消息;
另一種是由部署到區塊鏈上的代碼控制的合約賬戶,由存儲在智能合約賬戶內的以太坊虛擬機代碼控制。當合約賬戶收到信息時,其內部代碼就會被激活,并允許它對內部存儲進行讀取和寫入以及創建新合約等操作。按照目前的以太坊協議,只有外部帳戶才可以發起交易,并且僅允許賬戶的所有人修改其帳戶狀態。
什么是賬戶抽象化?
賬戶抽象是對以上兩種賬戶的一種改進,嘗試模糊二者之間的界限,變成一種包含復雜邏輯的通用性賬戶,使賬戶可以同時擁有合約賬戶和外部賬戶的功能。
這種做法相當于讓用戶按照合約賬戶的格式來定義外部賬戶,用戶可以在智能合約錢包中包含任何邏輯驗證。由密鑰控制的賬戶也可以獲得代碼的支持。
Watcher.Guru:Vitalik Buterin撰寫以太坊白皮書時只有19歲:金色財經報道,Watcher.Guru發推特表示,Vitalik Buterin撰寫Ethereum白皮書時只有19歲。[2023/2/20 12:16:52]
賬戶抽象化的各種方案
一直以來,實現賬戶抽象化都是以太坊開發者社區的愿景。社區也提出了各種各樣的方案,如:EIP-86,EIP-2938等。
EIP-86是為賬戶抽象做技術準備,它定義了一種新的賬戶類型,允許用戶創建基于智能合約的賬戶。
以太坊協議本身要求將所有內容打包到源自ECDSA安全的外部賬戶(EOA)的交易中,每個用戶操作都需要由來自EOA的事務包裝,這會產生21000gas的費用。用戶需要在單獨的EOA中擁有ETH來支付gas。
EIP-86提出的賬戶抽象帶來新類型的事務,與傳統事務必須有一個EOA作為發送者相比,這些事務沒有發送者。這種事務破壞了事務哈希的唯一性。EIP-86原計劃于Metropolis階段升級,但由于前面所說的問題,開發者決定在Metropolis中暫緩引入。
近3小時UNI代幣轉賬手續費占以太坊全網手續費18.57%:9月17日,據Etherscan.io數據顯示,近3小時UNI代幣轉賬手續費占以太坊全網手續費的18.57%,成為消耗GAS費最高的合約。[2020/9/17]
EIP-2938提供了一種賬戶抽象化解決方案,通過更改一部分以太坊協議,允許合約賬戶與外部賬戶一樣可以發起交易。但是由于這個方案需要在共識層進行以太坊協議的更改,所以并沒有得到廣泛的接受。
后來提出的新的協議ERC-4337則提供了一種無需更改共識協議的方案試圖達到與EIP2938同樣的效果,這種安全性更高的實現方式目前在社區中得到了更多的關注。
ERC-4337如何實現?
ERC-4337沒有試圖修改協議共識,而是在系統中復制了mempool的功能。
用戶發送一個用戶操作對象,這個對象中包括了用戶的意圖、簽名和其他數據。用戶操作有一個單獨的mempool存儲池,連接到這個存儲池的節點會進行ERC-4337特定的驗證,以過濾操作來確保他們只收到支付費用的操作。
動態 | 當前以太坊未確認交易數為36663筆:據Etherscan.io數據顯示,以太坊未確認交易數36663筆。以太坊全網算力為186.042TH/s,當前挖礦難度2399.15TH,交易處理能力6.7TPS。[2019/10/6]
由礦工或使用Flashbots服務的打包者批量收集這些用戶操作,打包成單筆捆綁交易,并納入以太坊區塊中。打包者為以太坊中的捆綁交易支付gasfee,并收取每個單獨的UserOperation所支付的費用進行補償。打包者將使用費用優先級邏輯選擇包含哪些UserOperation對象。
其中的用戶操作UserOperation看起來像一個事務,但它是一個ABI編碼的結構,包括了以下字段:1、發件人:進行操作的錢包;2、nonce和signature:傳遞給錢包驗證函數的參數,以便錢包可以驗證操作;3、initCode:如果錢包尚不存在,則用于創建錢包的初始化代碼;4、callData:用于實際執行步驟調用錢包的數據。而每一個錢包都是一個智能合約,必須包括兩個功能函數:
動態 | 以太坊官網中文版正式上線 為開發者和用戶提供服務:據官方消息,以太坊官網中文版今日正式上線,網站目前支持中英日韓四種語言。網站分為初學者、使用、學習、開發者四個板塊,供對以太坊了解程度不同的訪問者使用。[2019/9/27]
1、validateUserOp,它接受一個UserOperation作為輸入。這個函數應該驗證UserOperation里的簽名和nonce,如果驗證成功則支付費用并增加nonce,如果驗證失敗則拋出異常;
2、op執行函數,將calldata解析成錢包執行操作的一個或多個指令。
ERC-4337帶來的變化
如果該提議被普遍采用,簽名驗證轉移到了以太坊虛擬機上,validateUserOp函數添加了任意簽名和隨機數驗證邏輯,使驗證邏輯變得更加靈活。
如此一來,簽署交易之時就能采用新的密碼學工具,錢包也可以提供一些新的功能,比如:
行情 | 以太坊未確認交易筆數為42450筆:公開數據顯示,目前以太坊未確認交易筆數為42450筆,未確認筆數較之昨日41627筆變化不大,網絡較為擁堵。[2018/7/6]
多重簽名;
社交恢復;
更高效、更簡單的簽名算法;
后量子安全簽名算法;
可升級錢包。
這種方案還打開了各種其他交易許可管理,比如允許交易通過智能合約來支付gas費。在目前,外部錢包要在以太坊上交互的gasfee只能通過錢包中的ETH來支付,如果你的錢包中只有ERC-20代幣,沒有ETH,你將沒有辦法將這些代幣轉出。當ERC-4337采用后,用戶可以使用賬戶中的ERC-20代幣來支付費用,由礦工節點用合約作為中介來代為支付ETH上鏈并獲取用戶的ERC-20代幣。
抽象化實現后,由外部賬戶的所有者簽名交易并進行廣播將不再是發起交易的唯一方法。這將為以太坊充當元交易的中繼者帶來可能。目前許多以太坊上的應用都需要依靠中繼者在區塊鏈上發布用戶交易,并向中繼者支付費用。如果錢包中可以內置更復雜的合約,有些中繼者就不再有存在的必要,也就不需要向他們支付額外的費用。
雖然有很多優點,但是新方案也同樣面臨一些問題。
最突出的一點就是更高的Gas成本,基本的ERC-4337操作約需要42000gas,而常規交易需要21000gas,原因如下:
1、需要支付大量的單個存儲讀/寫成本,在EOA的情況下,這些成本會捆綁到一筆21000gas的付款中:編輯包含pubkey+nonce(~5000)的存儲slot;用戶操作調用數據成本;ECRECOVER(~3000);首次訪問錢包本身(~2600)首次訪問收款人賬戶(~2600)將ETH轉入收款人賬戶(~9000)編輯存儲以支付費用訪問包含代理(~2100)的存儲slot,然后訪問代理本身(~2600);
2、除了上述存儲讀/寫成本之外,合約還需要執行“業務邏輯”
3、需要消耗gas來支付日志費用;
4、一次性合約創建成本簡而言之,賬戶抽象地址的每一步都需要計算,需要消耗更多的資源,也增加了額外的費用。
好在這并不是無解的。
由于Rollup擅長進行數據壓縮,與數據復雜的賬戶抽象方案具有天然的契合點。
在Vitalik最新的提案中,提出了通過layer2來處理賬戶抽象化產生的數據。其改進點在于,將只能分步驟實現的功能打包成批交易,同時用SNARK技術來保證交易有效性。
通過將ERC-4337與Rollup技術結合,可以在賬戶抽象化中實現數據壓縮和降低gas成本的效果,更好地發揮賬戶抽象的優勢。
結語
在以太坊重點發展Layer2的格局已定的現在,Vitalik對以太坊升級的后續計劃開始轉向賬戶抽象。最新的提案中展示了rollup+賬戶抽象的技術路徑。各個Rollup提供商也推出了兼容賬戶抽象的新版本。
今年6月,zkSync發布V2更新信息:增添“賬戶抽象”功能,增加與以太坊EVM的兼容性。10月,ERC-4337發布了新版本,添加了包括BLS簽名算法的簽名聚合功能。簽名聚合能夠讓構建者和批次提交者也能聚合簽名,大大減少鏈上數據,可為rollups降低數據成本。
我們有理由相信,賬戶抽象帶來的變化同樣蘊藏著生態爆發的可能性。隨著Rollup的發展,可以與Rollup進行結合的賬戶抽象化一定也能發展出更優更精細的方案。
工業和信息化部、教育部、文化和旅游部、國家廣播電視總局、國家體育總局印發《虛擬現實與行業應用融合發展行動計劃》,發展目標包括,到2026年,產業生態持續完善.
1900/1/1 0:00:00作者:0x11,ForesightNews萊布尼茨說,世界上沒有兩片完全相同的樹葉。這句話換成今天時髦的技術載體來表達就是:我們每個人,都是一個NFT.
1900/1/1 0:00:00CrossSpace創始人0xLeon在接受BlockBeats專訪時分享了其近期參與香港科技周的感想以及對香港加密新政策的觀點.
1900/1/1 0:00:00據Decrypt援引區塊鏈分析公司Argus消息,AlamedaResearch曾通過內幕消息在FTX平臺積累了價值6000萬美元的代幣,涉及項目包括IndiGG,LooksRare.
1900/1/1 0:00:00新一代Web3錢包BitizenWallet與NFTScan正式成為合作伙伴。BitizenWallet將集成NFTScan的OpenAPI,利用專業的NFTAPI數據為Web3用戶營造更易用、.
1900/1/1 0:00:00作者:Dr.Hsu GameFi一直是Web3生態備受關注的賽道。生態的成熟度和游戲的可玩性,對GameFi的成敗起到關鍵性的作用.
1900/1/1 0:00:00