賬戶抽象 Account Abstraction 是?以太坊上的一種待實現的技術方案,按現階段設計,在實現賬戶抽象之后,一個智能合約賬戶也可以主動發起交易,而無需依賴「元交易」的機制。
背景
以太坊的賬戶有兩種類型,一種是外部賬戶,另一種是合約賬戶。外部地址是由用戶的公鑰經過哈希運算后取的后 20 個字節,形為 0x76D836358E7A2 BB0F26c32Ce61Dc8DD540b02F7D 。目前的以太坊的事務類型只有一種,必須由外部地址發起,合約地址無法主動發起事務。因此,任何合約自身狀態的改變,必須依賴于一個外部地址發起的事務,無論是一個多重簽名賬戶,還是混幣器,或是任何智能合約的配置變更,都需要由至少一個外部賬戶觸發。這樣的設計讓以下兩件事情無法完成。
無需以太的主動事務
由于事務必須由外部賬戶發送并支付費用,而該費用是用以太(ETH)為單位結算的,因此該外部地址必須持有以太。當然,這種說法并不嚴謹,當 gasprice 為 0 時,事務無需支付手續費。可這種情況非常極端(見 ) ,對于普通用戶來說,這樣的事務可能永遠無法入塊。
非 secp256k1 的原生驗證方式
由于事務必須由外部賬戶發起,因此每筆事務的合法性檢查就是在驗證事務是否提供了該賬戶對應的合法的 secp256k1 簽名。而如果要在驗證中引入復雜邏輯(例如多重簽名或社交恢復)或是采用不同的驗證算法(例如 Eddsa、BLS、secp256r1 簽名算法,使用這些簽名算法是因為它們有特別的特性,或是對零知識證明友好,或是方便簽名聚合減少帶寬開銷,或是與現有的硬件驗證器兼容),則必須在智能合約層面實現。這也同時意味著,這種驗證仍要由至少一個外部賬戶發起,并通過以太坊的 secp256k1 簽名驗證。
上述兩條約束讓普通用戶很難使用以太坊。首先,無論使用以太坊上的什么應用,用戶都必須持有以太(并承擔以太價格波動的風險)。其次,用戶需要處理復雜的費用邏輯,gas price、gas limit、事務阻塞,這些概念對用戶來說過于復雜。許多區塊鏈錢包或應用試圖通過產品優化提高用戶體驗,但效果甚微。
如何解決上述兩個問題呢?
核心思路在于將「驗證所有權」的操作由共識層下放到合約層,即不去檢查事務的發送者是否與資產所有人一致,而是檢查其是否提供了合法的憑據。具體的做法為:用戶對事務內容進行簽名,并將簽名交由一個第三方操作上鏈,這個第三方我們在接下來的文章中用「運營商(operator)」來指代。這種事務被稱為「元交易」。根據設計理念的不同,元交易方案大致分為兩類:
昆明兩會:將深入推動云南省區塊鏈中心建設:2月2日上午,昆明市第十四屆人民代表大會第六次會議在昆開幕,昆明市委副書記、代市長劉佳晨作政府工作報告。
他表示,昆明將深入推進云南省數字經濟開發區、云南省區塊鏈中心建設,力爭引進數字經濟創新企業100家,打造3—5個區塊鏈示范項目,新認定1—2家數字經濟園區。
加大5G基礎設施建設,新增5G基站1萬個,實現主城區5G信號全覆蓋,加快與VR/AR、醫療、旅游、智慧辦會、刷臉就行等場景結合,拓展5G典型應用。[2021/2/2 18:41:39]
以賬戶為中心——智能錢包
以賬戶為中心的方案的目標是為用戶創建一個基于智能合約管理的賬戶,用戶可以使用該賬戶與區塊鏈上的任意合約交互。智能錢包的理念由來已久,但在近一年來有了長足的進展。根據「智能錢包趨勢」的統計(注:作者為本人,特此聲明),目前「智能錢包」的運營商超過 10 家,總用戶數超過 14 萬。其中大部分智能錢包采用了為用戶代付鏈上手續費的運營策略,再通過其它方式向用戶收取費用。
以賬戶為中心的方案本質上是一套區塊鏈賬戶系統,通用性強,且可以提供包括賬戶恢復、大額審批、轉賬白名單等附加特性。智能錢包的運營者協助用戶創建、管理區塊鏈上的可編程身份,并提供事務上鏈服務。一般來說,智能錢包會為用戶支付鏈上的 gas 費,同時通過中心化計費系統向用戶收取費用。這套模式和傳統世界里的賬戶服務很像,例如運營商支付基站、光纖等費用,而用戶只要充值話費就可以使用通信服務,而無需關心底層復雜的邏輯。
智能錢包也有其掣肘。一是安全問題,二是費用問題。
安全:如果賬戶合約存在漏洞,那么所有用戶的資產都會遭受風險。專業的代碼編寫、安全審計和形式化驗證,都只能減少風險發生的可能,而不能保證它不會發生——Argent?已經發生過。
費用:智能錢包的賬戶創建需要費用,而轉賬和任何調用任何合約都會比外部地址花費更多費用。這導致智能錢包的用戶需要支付更高的事務費用,這影響了他們的使用體驗
以資產為中心——無氣通證
無氣通證也存在其問題。從目前的使用情況來看,極少有人使用這種特性 (需要數據支持)。在「智能錢包,不止元交易」一文中,我分析了可能的原因,其中之一在于沒有辦法建立有效的計費系統。
以資產為中心的方案提高了資產的可用性。不同于智能錢包需要創建智能合約賬戶,無氣通證可以支持外部賬戶在不使用以太的情況下進行轉賬,反而是智能合約賬戶需要兼容更多規范(例如 EIP-2126,讓合約可以識別不同類型的簽名格式),否則無法讓無氣通證的合約驗證所有權。
國務院辦公廳盧向東:區塊鏈等新技術與政府業務深入融合:10月12日,第三屆數字中國建設峰會數字政府分論壇在福州召開。國務院辦公廳電子政務辦公室主任盧向東表示,黨中央、國務院作出推進數字政府建設的重要決策部署,意義重大,影響深遠。目前推進數字政府建設已經具備良好的支撐條件。當前,5G網絡覆蓋范圍不斷拓展,云計算統籌優化基礎設施資源,物聯網、大數據、人工智能、區塊鏈等新技術與政府業務深入融合,新一代信息技術為數字政府建設提供了強有力的技術保障。(經濟參考報)[2020/10/15]
以資產為中心的方案的目標是創建允許由第三方支付費用的資產,實現「無需 gas 的通證」。例如,DAI、USDC 都可以允許任意外部地址使用元交易的方式發送資產。這些通證協議都使用 EIP-712 協議驗證擁有者的合法性。
賬戶抽象的發展史
根據 Matt Garnett 整理的賬戶抽象發展歷史 ,從以太坊 2015 年上線起,賬戶抽象的討論沒有停止。本文將按照時間順序,對賬戶抽象相關的 EIP 進行簡要介紹。需要說明的是,該歷史漏掉了 EIP-208,我做了相應補充。
EIP-101:貨幣與密碼學抽象
November 15 th, 2015
在這個 EIP 中,Vitalik 討論了對 Serenity 中的賬戶體系的設計。這個方案的主要思想是,每個賬戶都擁有自己的「代碼」,也即邏輯部分。由于該方案改動過大,與當前事務的兼容性不好,會造成許多安全隱患,該方案被擱置到分片之后。
EIP-86:事務來源和簽名抽象
February 10 th, 2017
經過漫長的討論,Vitalik 提出了 EIP-86。EIP-86 是為賬戶抽象做技術準備,它定義了一種新的賬戶類型,允許用戶創建基于智能合約的賬戶,該賬戶是一個代理合約(forwarding contract),存儲 Ether,在入口點檢查事務的簽名,并將驗證合法的事務轉發到指定的地址,并支付相應的費用。這種機制對多簽錢包、環簽名混幣、自定義的密碼算法(例如 ed25519)等場景的實現有更多幫助。
對 EIP-86 的討論展開了很久,值得說明的是,Vitalik 豐富了協議細節,提出了 EIP-208。EIP-86/208 計劃于 Metropolis 階段升級,但在第 19 次核心開發者會議 上,開發者提出了很多問題,并決定在 Metropolis 中暫緩引入,主要理由如下。
賬戶抽象帶來新類型的事務,與傳統事務必須有一個 EOA 作為發送者相比,這些事務沒有發送者。這種事務破壞了事務哈希的唯一性,盡管這不會對 EVM 的執行造成影響,但是所有基于「唯一性」假設的外部操作都會收到影響。例如,所有通過事務哈希來定位事務的 RPC 接口。
全國政協委員劉尚希:激勵推動銀行在區塊鏈等領域深入合作:全國政協委員、中國財政科學研究院院長劉尚希建議,在政策上支持開放銀行構建,激勵銀行業善用我國金融科技領先和更本土化的優勢,快速發展技術能力:發展線上服務能力和數字風控技術,實現線上線下業務融合;大力推動銀行業部署下一代分布式金融信息系統,建設性能穩定、智能化運營的開放式系統架構,為開放銀行建好硬件底座;激勵推動銀行在人工智能、區塊鏈等核心關鍵技術領域進行深入合作。(中國經營報)[2020/5/23]
此外,賬戶抽象的「無氣支付」是一個優化,但是必要性不足。因為其功能可以通過「代理合約」實現,唯一的問題是其開銷會比原生實現要大一些。
礦工的挖礦策略會受到極大影響,在被廣泛接納前,這些新類型的事務可能無法被很快廣播。
這種新類型的事務仍然保留了 nonce、gasprice、value 字段,且被設為 0。這非常不優雅,希望未來用新的事務類型解決,而不是引入技術債。
EIP-859:主網上的賬戶抽象
January 30 th, 2018
與前兩個 EIP 不同,EIP-859 并沒有形成確定性的草案,而是始終在討論過程中,沒有定稿。該提案希望賬戶合約有一個相對規范的實現,即(1)檢查簽名(2)支付手續費(3)調用目的賬戶。
如果 EIP-859 實現,可以抽象(1)簽名算法(2)更復雜的邏輯,并且不會破壞「事務哈希唯一」的特性,但仍然不能允許使用 ERC-20 支付費用。
這個提案在第 34 次和第 40 次核心開發者會議的筆記中被提及。根據會議筆記,第 33 次核心開發者會議上決定擱置該提案,而是聚焦于 Casper。而 Vitalik 在第 34 次會議 上承認該提案仍不成熟,但「不管怎樣在分片時會實現」。Hudson 指出,君士坦丁堡升級包含的內容太多了,因此不再考慮該提案。第 40 次核心開發者會議上,大家決定永久擱置該提案,無人反對。
EIP-2938:賬戶抽象
September 4 th, 2020
時間又過了兩年,ETH 2.0 的 Phase 0 已經啟動,而賬戶抽象也被重新提上議程。出乎意料的是,該提案建議在 ETH 1.x 上首先實現。
簡單來說,賬戶抽象的目標是讓智能合約成為頂級的賬戶類型,而非受限制的必須由外部賬戶調用的賬戶,這樣智能合約賬戶就可以主動發起事務并支付手續費。這個目標與 EIP-86 已經有了很大區別,當時的提案希望徹底消滅外部賬戶,或者說將所有的外部賬戶都變成合約賬戶,而此提案仍然保留了外部賬戶的存在。
聲音 | 中國平安:深入開展人工智能、區塊鏈、云三大核心技術的研發與應用:中國平安(601318)昨日發布了即將在年度股東大會及H股類別股東大會上的決議資料,其中包括《公司2019-2021年發展規劃》,規劃在發展措施中指出,公司持續夯實基礎,深入開展人工智能、區塊鏈、云三大核心技術的研發與應用,深度賦能核心業務的客戶經營、渠道管理、客戶服務、風險管控等方面,推動業務價值提升和創新公司孵化。[2019/3/29]
以太坊當前的事務合法性只通過三個參數判斷:ECDSA 簽名、自增 nonce 和賬戶余額,因此節點非常容易判斷一筆事務的合法性。然而,這勢必造成了很多限制。EIP-2938 實現后,以下場景可以主動實現:
智能錢包使用 ECDSA 之外的算法驗證簽名;
智能錢包的其它特性,包括多重簽名和社交恢復;
保護隱私的系統,例如?Tornado.cash;
提高 DeFi 協議 gas 效率;
用戶使用其它 token,而不是 ETH 支付手續費。
目前,以上用戶場景也可以通過間接的方式實現。該提案認為這種方式在技術和經濟上都不高效。
EIP-2938 分為單租戶和多租戶兩個階段,顧名思義,其區別在于賬戶的擁有者是單個用戶還是多個(不特定的)用戶。在單租戶階段能滿足 (1)、(2) 和 (5) 場景的需求,而只有在多租戶階段 (3) 和 (4) 才能實現。多租戶階段的技術方案仍未成型。有關 EIP-2938 的更多內容,可以參考 Status 發表,以太坊愛好者翻譯的文章 。
代價是什么?——硬幣的兩面
毫無疑問,假設賬戶抽象成功部署,可以帶來新的功能特性,但也一定有取舍,不可能得到美好的東西,但不付出什么代價。過去五年的討論給了我們足夠的經驗,其負面影響甚至由于其復雜性而難以分析。盡管如此,本文將試圖系統討論其潛在收獲和代價,以便讀者公允地判斷。「賬戶抽象的收獲」參考了核心開發者 Peep an EIP 文檔 。
主動發送事務的智能合約賬戶。
智能合約賬戶可以無需 EOA 觸發而主動發送事務,減少了對運營商的依賴,且 gas 消耗更少。
提高混幣器的隱私性。
現階段,用戶從類似 Tornado.cash 的混幣器中提款仍需要依賴一個 EOA 賬戶發送事務,這個 EOA 賬戶是暴露隱私的脆弱環節。實現多租戶的賬戶抽象后,任何人提取代幣時,均無需額外支付費用,而直接從提款金額中扣除。
西安高新區:聚焦區塊鏈等技術,深入實施“金融創新攻堅大行動”:據西安日報報道,西安高新區今年將全面實施八大行動。西安市將深入實施“金融創新攻堅大行動”,聚焦區塊鏈、人工智能和大數據等金融科技熱點,形成“一帶兩港一基地”金融產業發展新格局。[2018/5/2]
使用其它代幣支付手續費。
現階段,用戶必須使用 ETH 支付網絡的手續費,在賬戶抽象實現之后,用戶可以使用其它 token 支付手續費。但這不意味著在協議層礦工會接受非 ETH 作為手續費,而是通過和 DEX 交互換取 ETH 支付手續費。
減少鏈上無效套利交易,提高可擴展性。
現階段,在鏈上發現套利機會時,可能存在多個套利者同時發起套利交易,而首筆成功的套利事務會讓其余事務的套利行為失效,但這些事務仍然會被打包在以太坊中(如果 gasprice 足夠,且沒有使用相同 nonce 替換該事務),這導致以太坊上存在大量的「垃圾」事務。而實現賬戶抽象之后,由于可以在賬戶權限驗證階段進行價格判斷,那么套利者無需為失敗的套利行為付費,鏈上也不會包含失敗的套利事務,可以有效提高鏈的可擴展性。
賬戶抽象的代價
加大內存池驗證事務有效性的開銷
在現階段,節點收到一筆事務時,很容易判斷其有效性,并將其載入內存池。節點只需要判斷三件事:簽名的有效性、nonce 的合理性(賬戶當前 nonce 加 1 或合理的數值)、賬戶的余額,如果其中任意一條不滿足,節點可以選擇丟棄該事務。非法事務并不會支付手續費,節點是免費「驗證」,由于驗證 ECDSA 的簽名非常簡單,開銷極低,目前網絡的安全性不會受到挑戰。
當引入賬戶抽象后,判斷一筆事務的有效性的難度大了很多,節點需要為無效事務的驗證花費更多計算資源,而不能從中收取任何費用。有關 DOS 攻擊,參見
加大內存池確保事務有效性的開銷
現階段,一旦節點驗證某筆事務的有效性,除非該賬戶使用相同 nonce 發送新的事務并被打包,否則這筆載入內存池的事務將永遠有效,直到被打包進某個區塊(也可能因為 gasprice 太低而一直沒有打包)。而賬戶抽象之后,判斷事務的有效性的難度提高了,內存池中的多筆事務在被打包前可以同時有效,但由于其有效性可能依賴全局狀態,存在其中某一筆事務執行后剩余事務全部失效的可能性。因此,需要建立新的內存池規則,以避免這種情況的出現。
引入新的事務類型、計費方式、挖礦和廣播策略
首先,引入了新的事務類型。在 EIP-86/208 的討論過程中,一度有一種傾向是「消滅」EOA 賬戶,或者說把 EOA 賬戶包裹在一個智能合約賬戶內,這樣鏈上的基本賬戶類型和事務類型都只有一種。而在本提案中,EOA 賬戶得以保留,即存在兩種類型的賬戶——EOA 和 AA,也有兩種事務類型。同時,AA 事務調用其它合約時必須加上前綴,以防止 EOA 賬戶發起對 AA 賬戶狀態的修改,影響事務有效性的判斷,這可能會帶來兼容性的問題。
其次,計費方式發生了變化。現階段,礦工無需關心事務的內容,只需要確認事務的發起方的 ETH 余額大于 gaslimit*gasprice,就可以保證收到手續費。而在賬戶抽象之后,如何保證礦工可以收到手續費呢?本提案將一筆事務分拆成兩個部分——驗證階段和執行階段,用一個新的操作符 PAYGAS 間隔。在驗證階段,完成對賬戶權限的驗證,在此階段不允許調用外部數據或操作賬戶余額。與現階段的方法一致,驗證通過則支付手續費并開始執行事務,即使事務在執行階段回滾,也仍然會被包含在區塊中且支付費用,但驗證不通過則丟棄該非法事務。
再者,挖礦和廣播策略變得更加復雜。為了保護內存池和礦工的安全,推薦的挖礦策略更加保守。每個賬戶的待處理事務只保留一個,不再保留更高 nonce 的事務;對驗證階段設置 gas 的容量上限;在 AA 賬戶發起的事務被打包進入區塊之后,需要丟棄掉內存池所有對此賬戶進行操作的事務。
為了避免前 2 條代價造成的潛在影響,以太坊協議層需要做相應的技術改動。
重新評估「收獲」?
要評估賬戶抽象的必要性,首先不妨來回顧其「收獲」。「收獲」無非分為兩種類型——原來不能做的,現在可以做了;比原來做得更好了。
智能錢包可以做到這件事情,此收獲屬于一種改進。由于事務的有效性依賴于合格的簽名(或其它憑證),而非發送事務的 EOA 賬戶,因此任何 EOA 賬戶都可以提交事務,不存在信任或可靠性風險。由于無需轉發事務,更少的 gas 消耗是一個合理的「收獲」,但能達到整體的最優嗎?換句話說,在引入了如此復雜的技術改動之后,針對相同的事務內容,計算機在相同時間內可以處理更多的 AA 事務還是 EOA 事務?
結論:一種需要技術驗證的改進。
提高混幣器的隱私性。
目前 Tornado.cash 使用運營商的模式,替代用戶提交取款的收據。與智能錢包的運營商不同,隱私運營商可能不夠穩定和 ,任何人可以替代提交事務,但隱私場景下的運營商可靠性會低于通用場景,可能造成服務不可用。不過,這需要在多租戶階段才能實現,而目前多租戶模式的方案的可行性、安全性仍然需要驗證。
結論:一種提高服務可用性的改進。但不知道能否上線,何時可以上線。
使用其它代幣支付手續費。
現在智能錢包在做類似的事情,例如 Argent、MYKEY 都允許用戶使用 DAI 支付手續費,但這一操作并非原子的。使用穩定幣等資產通過 DEX 兌換 ETH 支付手續費,乍看解決了原來不能解決的問題,但我想表達的是,真實需求并非是技術完備性,而是使用穩定的貨幣來對抗不穩定的手續費(ETH 價格波動、gasprice 價格波動、gas 消耗不確定)。使用鏈上事務直接置換手續費,有一種每次使用手機聯網前,先買充值卡充話費的感覺,似乎回到了投幣電話的時代。何況這筆事務還有巨大的失敗風險,因為鏈上狀態的改變可能影響價格。當然,這并不是說投幣電話沒有用處。
結論:一種可以實現原子化使用非 ETH 資產支付手續費的改進。但不解決價格波動問題,真實需求存疑,且計費方式效率低下。
減少鏈上無效套利交易,提高可擴展性。
在研究過程中,關于「減少鏈上無效事務可以提高鏈擴展性」的論述甚至讓我懷疑整個賬戶抽象的動機。在現有的模型下,套利者追求套利機會,但由于策略公開,可能導致不同的套利者競爭,抬高網絡費率并引入大量失敗的套利事務。然而,套利者更明白這個道理,因此也會評估套利失敗的后果,否則就要付出手續費的代價,恰恰是這個成本讓系統處在動態博弈中。如果競爭套利的行為不需要付出成本,那么盡管不會出現無效的鏈上事務,但整個系統卻會容納更多的套利行為,讓節點承受更多的無法收費的計算任務,何談增加系統的可擴展性?
結論:不是改進,更像是為了鏈上「干凈」的一種固執。
綜上所述,這些聲稱的改進大多只是對現有實現的「優化」,且缺少足夠的驗證,部分「優化」甚至經不起推敲。
總結
本文總結了以太坊「賬戶抽象」的背景,「賬戶抽象」主要為了解決兩個問題,一是無需 Ether 發送事務,二是實現自定義的驗證邏輯和算法。為了解決這些問題,以太坊歷史上提出了多個提案,本文分析了這些提案的企圖和最終未采納的原因。本文的重點是針對 EIP-2938 這個最新的關于賬戶抽象的分析,討論了其「收獲」和「代價」。「賬戶抽象」可以將一些現階段需要引入「信任」才能實現的功能變得更加可靠,例如為混幣器提供更好的隱私,或是使用例如穩定幣在內的資產支付手續費,但也不可避免地帶來技術架構的大改動,其安全性也需要更完備的驗證。引用阿劍的一段話「而如果某些技術,既沒有增加人們可選的東西,又犧牲了人們實際上選擇了的東西,那就沒有理由對這些技術懷有信心。」
原文標題:《賬戶抽象的動機、歷史和分析》撰文:姚翔,MYKEY?研究部門負責人
參考鏈接:
?https://etherscan.io/tx/0x4f719da4e138bd8ab929f4110e84d773b57376b37d1c635d26cd263d65da99cb
?https://hackmd.io/@matt/r1neQ_B38
?https://github.com/ethereum/EIPs/issues/28
?https://github.com/ethereum/EIPs/pull/208#issuecomment-313872489
?https://github.com/ethereum/pm/blob/master/All%20Core%20Devs%20Meetings/Meeting%2034.md
?https://ethfans.org/posts/account-abstraction-eip-2938-why-and-what
?https://tinyurl.com/peep-an-eip-2938
?https://ethresear.ch/t/dos-vectors-in-account-abstraction-aa-or-validation-generalization-a-case-study-in-geth/7937
Tags:ETHGAS區塊鏈以太坊手機直接玩togetherbnbMEGASHIB區塊鏈是窮人的最后一次機會以太坊交易平臺合法嗎
非稀釋性的彈性供應模型“走紅”幣圈。這種經濟模型被稱為Rebase,其核心結構可以籠統地表述為,在一定周期內,當市場價格偏離基準價格或偏離基準價格一定范圍時,智能合約會直接或間接增加/減少代幣供.
1900/1/1 0:00:00每年都有行情好的東西,比如前年的白酒、去年的白酒、今年的白酒、明年的白酒——白酒,永遠的神;比特幣,經常超神。 圖片來源:新浪微博 過去10年,比特幣的價格漲幅達到了1200萬倍.
1900/1/1 0:00:00區塊鏈技術的發展為現代社會帶來了更多的想象空間。哈德遜研究所高級研究員、前葡萄牙外交部歐洲事務部部長Bruno Ma??es在本文中認為,加密技術的最終希望不在于數字貨幣,而在于替換傳統的國家結.
1900/1/1 0:00:00加里.根斯勒被拜登政府提名為新一任的SEC主席。加里.根斯勒在奧巴馬政府期間擔任CFTC主席。在此期間,他強硬地推動了一系列的改革,對美國的數百萬億美元的金融衍生品市場制定了更加完整的監管規則.
1900/1/1 0:00:001.王永利:數字人民幣不應定位于M02020年10月中旬,深圳以財政出資1000萬元,以注冊成功的個人抽簽中標方式投放5萬個紅包(每個200元),通過指定銀行轉換成數字人民幣.
1900/1/1 0:00:00本文梳理了2020年加密領域最重要的事件,這些事件將對區塊鏈和數字貨幣的采用產生持久的影響。我們在過去的一年里經歷了很多起伏,主要是由于全球新冠病的爆發,導致國家癱瘓以及數百萬人死亡.
1900/1/1 0:00:00