剛剛結束的Devcon上,賬戶抽象算是是最熱的幾個話題之一,最近可以經常看到AA/EOA/SCW/4337等縮寫和代號在各種talk、panel和信息流里出現。再加上敘事開始往「Onboardingnextbillionusers」的方向發展,一些新的形容詞也開始出現在產品之前,比如seedless/gasless/socialrecovery/non-custodial。相信看完這兩句的你已經開始腦殼疼了,那么接下來就讓我盡自己所能來幫大家梳理一下這些名詞概念到底代表什么。
閱前提示:本文不是嚴肅的技術文檔,可能會用不精確但容易理解的語言進行闡述或比喻,歡迎大家以此為起點深入探索這些技術的細節。
EOA?-ExternallyOwnedAccounts
EOA中文叫做?外部賬戶,我們最熟悉的MetaMask生成的地址就是EOA。它的特點是原理簡單,比如生成規則是:
私鑰→公鑰→Keccak256哈希→最后20Bytes→十六進制字符串
可以看出這個規則非常直接,全是由數學變換計算出來的,生成的地址內部沒有任何結構和邏輯。節點驗證一筆交易是否被地址owner授權的時候也是固定的規則:
交易簽名→ec_recover→公鑰→地址→對比要操作的地址
對比結果一致那么驗簽通過,進行后續流程;不通過則直接打回,不會進一步廣播交易。
EOA的另一個設定是作為交易的發起方并支付gas,相對應的CA只能被其他CA或者EOA調用。也就是說,EOA是交易的觸發器,一筆交易無論后面有多少合約調用,一開始都必須由一個EOA發起并且支付足夠的gas才可以進行。
需要指出的是,EOA是以太坊以及其他EVM兼容鏈才有的概念,嚴格來說包括BTC在內的主流非EVM鏈都沒有這個設定。
CA?-ContractAccounts
CA中文叫做?合約賬戶,我們常見的ERC-20代幣合約、DeFi業務合約等都有一個跟EOA長得很像的地址,這就是CA。
美股開盤,納指跌0.01%:金色財經報道,美股基本平開,道指漲0.07%,納指跌0.01%,標普500指數跌0.03%。[2023/6/29 22:09:01]
在設定上,CA是以太坊世界的原住民,EOA和ETH是為CA的業務邏輯準備的觸發器和燃料;實際使用下來,以太坊上除ETH之外的所有資產都是由CA承載,DeFi等業務邏輯就更是全都由CA來實現。然而CA無法主動進行操作和支付gas的設定也限制了它的能力,早在?2016年就有提案希望能讓CA自己支付gas。
簡單來說,CA是具備內部邏輯的以太坊賬戶,里面既可以是業務邏輯,也可以是賬戶邏輯,而后者就是我們即將提到的「SCW-智能合約錢包」概念。
CA的地址規則是通過計算生成的,有CREATE和CREATE2兩種方式,這里不再展開。大家只需要記住CA和公鑰沒有必然對應關系即可,比如gnosissafe創建的CA里可以設定任意多把公鑰來解鎖它的地址對應的資產;當然CA也可以不設定任何密鑰,而是由其他CA的邏輯決定是否可以解鎖,比如DeFi的借貸合約,只要還了錢就能取回質押的資產。
SCW/A?-SmartContractWallet/Account
智能合約錢包?應該是字面意思最好理解的了,也就是用CA作為地址的錢包方案,而我們常用的EOA錢包方案是用前述的公鑰變換結果作為地址。由于具備內部邏輯,智能合約錢包可以實現很多EOA無法實現的功能,比如gas代付,批量交易,權限管理,離線授權,社交恢復等等。
這里舉幾個例子來展示一下智能合約錢包的擴展潛力:
Gnosissafe利用智能合約錢包架構實現多簽邏輯;
用戶可以在一筆上鏈交易中同時給多個地址發送不同的token,也可以在用uniswap時讓approve和swap在一筆交易里完成,從而做到需要多少授權多少,避免因為過度授權造成安全隱患。
用戶可以給不同資產設定不同的操作權限,比如給PFP設定比普通ERC-20token更高的操作門檻,這樣即便日常使用的環境發生密鑰泄露,黑客也無法將高價值資產轉走,在安全和便利中間取得平衡。
DeGods#9559以88.33WETH價格成交,創該NFT系列迄今第二高交易記錄:5月26日消息,DeGods#9559在OpenSea上以88.33WETH的價格成交,約合15.9萬美元,創下該NFT系列迄今為止第二高交易記錄,買家是一位匿名藍籌NFT持有者(使用0xFAF513開頭地址)。截至目前,DeGods#3250以99ETH成交價保持該NFT系列的最高交易記錄,這筆交易是上周完成的。[2023/5/26 10:40:58]
用戶可以簽署一個離線授權「誰能給我100ETH,就可以轉走我的某個BAYC」,這樣不需要授權給第三方合約,用戶就可以跟其他人P2P地完成原子交易。
AA?-AccountAbstraction
賬戶抽象?其實不是一個新概念了,最早可以追溯到2015年的一些討論,當時Vitalik認為至少要讓以太坊用來驗證交易的密碼學算法做到可替換,比如換成性能更優的ed25519,可以說7年來Vitalik和EF都沒有停止對賬戶抽象方案的討論和探索,這里有個整理好的?linktree?可以幫大家回顧一下歷史。
那么賬戶抽象怎么理解呢?這里我引用一下?ERC-4337?里對其目標的描述:
Achievethekeygoalofaccountabstraction:allowuserstousesmartcontractwalletscontainingarbitraryverificationlogicinsteadofEOAsastheirprimaryaccount.CompletelyremoveanyneedatallforuserstoalsohaveEOAs(asstatusquoSCwalletsand?EIP-3074?bothrequire)
可以看出以太坊對于賬戶抽象的期望是改變目前大多數人都在使用EOA的現狀,希望用戶轉向SCW,并且把生態對EOA的依賴完全去除。除了里面提到的EIP-3074之外,還有一個更為激進和遠期的?EIP-5003,這里同樣引述幾段原文:
數據:過去一周Circle USDC流通量減少8億美元:據官方數據,4月6日至4月13日期間,Circle共發行4億美元USDC,贖回12億美元USDC,流通量減少約8億美元。截至4月13日,USDC總流通量為319億美元,儲備量為321億美元,其中現金46億美元,短期美國國債274億美元。[2023/4/16 14:06:42]
EOAs…arelimitedbytheprotocolinavarietyofcriticalways.Theseaccountsdonotsupportrotatingkeysforsecurity,batchingtosavegas,orsponsoredtransactionstoreducetheneedtoholdetheryourself.Therearecountlessotherbenefitsthatcomefromhavingacontractaccountoraccountabstraction,likechoosingone’sownauthenticationalgorithm,settingspendinglimits,enablingsocialrecovery,allowingkeyrotation,arbitrarilyandtransitivelydelegatingcapabilities,andjustaboutanythingelsewecanimagine.
…ThisEIPprovidesapathnottoenshrineEOAs,buttoprovideamigrationpathoffofthem,onceandforall.
不難看出,EIP-5003的目標是一次性將EOA轉換為CA,讓所有用戶用上SCW,徹底解決向前兼容的問題。
到這里大家對AA的來龍去脈和未來目標應該有所了解了。但需要指出的是,AA這個概念不是以太坊和EVM專屬的,很多鏈原生已經具備了不同程度的AA特性。比如EOS/Polkadot/Near/Solona/Flow/Aptos…甚至BTC,這些鏈在設計時就已經將賬戶做成了有內部結構甚至具備權限管理能力的狀態,還有StarkNet/CKB等具備更完善的賬戶抽象能力。說到這里大家不難發現,以太坊的AA是在解決EOA意外地流行帶來的歷史遺留問題,從而在賬戶層面上變得更加先進和靈活。
Starknet早期采用者撥款委員會啟動第一輪代幣贈款:3月23日消息,Starknet早期采用者撥款委員會(Early Adopter Grants,EAG)今日啟動了第一輪EAG代幣贈款。該委員會被授權運作至2023年6月30日,委員會預算為100萬枚STRK代幣,將通過多輪分配給項目方。目前,首輪資助活動已開放項目申請,申請截止時間為4月5日,委員會做出決策的時間為2023年4月13日。Starknet稱該輪資助主要針對于4月5日前在Starknet主網上或其中一個測試網上部署的應用程序,基金會將通過其他渠道資助為生態系統做出貢獻的鏈下基礎設施(如構建開發人員工具或Cairo庫)。
此前報道,Starknet基金會任命五個委員會,包括負責規劃STRK供應的撥備委員會。早期采用者撥款委員會致力于通過向在Starknet上構建鏈上應用的創新團隊提供資助來促進Starknet生態系統的發展。[2023/3/23 13:22:15]
4337?-?ERC4337
從上面對AA的討論里不難看出,ERC-4337只是這個方向眾多提案中的一個,但是為什么大家一提到AA或者SCW就會說到它呢?我們來看這個文檔的副標題:
Anaccountabstractionproposalwhichcompletely?avoidsconsensus-layerprotocolchanges,insteadrelyingonhigher-layerinfrastructure.
也就是說,ERC-4337是AA的路線第一次從「暴力革命」轉向「和平演變」,不再追求利用共識層的改變實現AA,而是轉而使用SCW這種用戶層的方案。并且為了實現更好的互操作性,ERC-4337定義了一些SCW應該實現的接口,以及元交易打包、gas代付等基礎設施的框架。它的出現讓目前差異極大的各種SCW方案能夠擁有統一的用戶交互界面以及共用一些生態層面搭建的開放基礎設施,有助于各種場景快速實現自己需要的SCW方案。另一方面,ERC-4337的推動有助于促進生態其他參與方提升對SCW的兼容性,比如驗簽需要的?EIP-1271?和有些DeFi協議里定義的禁止CA交互的一些規則。
美股三大指數小幅收漲,標普500指數漲0.24%:金色財經報道,行情顯示,美股三大指數小幅收漲,道指漲0.06%,標普500指數漲0.24%,納指漲0.21%。[2022/8/19 12:34:55]
Seedless
這里的seed指的是seedphrase,就是我們創建錢包的時候經常被要求備份的助記詞。那么seedless的意思就是「無助記詞的」,或者也可以說成「無私鑰的」。注意這個「無」并不是實際意義上的沒有密鑰,而是指不需要用戶備份助記詞/私鑰或者感知到它們的存在。
一個常見的問題是,如果用戶不備份助記詞,用戶是不是就沒有賬戶的控制權了?一旦用戶切換新設備環境,賬戶不就無法訪問了嗎?沒錯,只是把用戶備份助記詞的功能砍掉的話只能算是產品設計失誤,而seedless追求的是用戶「不需要」知道助記詞的存在,同時依然擁有賬戶的完全控制權。也就是說,用戶擁有在新設備自主恢復賬戶控制的能力,只是不再依賴助記詞這種UX很差、過于geek的方式,比如下面要講到的社交恢復就是非常好的一種。
Gasless
這里的gas指的是gasfee,所以gasless的意思是「免gasfee的」。同樣的,gasless也不是真的不需要支付gasfee,而是指用戶不需要被迫去了解gas概念,更不用提前購買各種原生代幣來支付gas。
那么gas誰來付?分兩種情況:
一種是用戶賬戶里已經有cryptoasset的時候,比如playtoearn得到token,或者領到的空投,亦或是別人的轉賬,只要這些token有一定的價值和流動性,就會有relayer愿意接受它們并幫用戶支付gas,以此賺取收益。
另一種是用戶賬戶里沒有有價token,比如剛剛創建的賬戶。如果此時需要鏈上交互,應用方可以選擇資助用戶一些「定向」用途的gas來幫他們bootstrap,從而降低用戶流失,這時即便算上gas補貼的消耗,整體的用戶獲取成本反而可能會更低;或者可以通過讓用戶觀看廣告等方式來換取一些gas。這兩種策略在gas成本較低的L2上都非常有效。
SocialRecovery
社交恢復?是指利用社交關系幫助用戶在丟失密鑰的情況下重新獲得賬戶訪問權的機制。如果你用微信登錄過新設備,應該有過「讓你的兩個朋友發送xxx給你的賬號以登錄」的體驗——這就是社交恢復想達到的效果,只不過驗證方從微信變成了智能合約。
一種常見的誤區是把利用社交賬號來創建/登錄錢包的方案稱為社交恢復,這是錯把「社交關系」與「社交平臺賬號」劃了等號。老牌智能合約錢包Argent就內置了社交恢復能力,它要求你的guardian提供一個以太坊地址,從而在你需要登陸新設備時提供簽名來進行授權,然而這一方案的潛在設定就是:你的guardian一定比你在管理以太坊賬戶上更專業,否則當你需要他們簽名的時候,如果他們自己的賬戶已經無法訪問,你的賬戶也會連帶遭殃。所以一種更加可行的辦法是利用email的密碼學證明或者電子護照等生活中常見的密碼學工具來增強社交恢復方案的實用性。
Non-custodial
非托管?可以說是crypto行業最正確、也是被濫用最多的概念之一了,因為很多時候各家都會有自己的定義。這里我也分享一下我們對非托管的定義,主要有兩方面:
錢包開發商無法擅自操作用戶的賬戶
錢包開發商無法阻止用戶操作自己的賬戶
如果你也認同這兩點,那么判斷一個錢包是托管、半托管還是非托管就可以直接拿這兩個規則去檢驗了:
不滿足1→托管;滿足1不滿足2→半托管;1、2都滿足→非托管。
那么知道了是哪種托管程度有什么用嗎,用戶可能并不care背后的原理,只要好用就行了唄!沒錯,其實我也部分認同這種觀點,至少在現在的階段,行業還沒有發展到發生用戶認知范式轉移的程度。其實我認為三種類型的方案分別適用于不同的場景:
托管方案?-適用于交易所、大機構金服、強合規等場景,比如coinbase/fireblocks提供的一些服務。特點是用戶量少,不需要應對高頻交互,而且客單價高,能支撐服務商花費大成本來維護一系列高防系統。
半托管方案?-適用于相對高端的個人用戶群體。他們明白服務方可以審查自己的交易,并且有能力提前準備備份方案,在服務方主動或被動拒絕服務時可以不影響自己的資產安全。這樣日常使用時可以享受安全和便利,極端情況下可以保全資產。注意這種方案對服務商的運維能力要求也非常高,畢竟個人用戶量大,日常跟各種應用的交互需求也更高,再就是對數據可用性要求高,畢竟一旦丟失服務端保存的數據有可能導致所有沒備份的用戶永遠無法訪問賬戶。
非托管方案?-適用于面向massadoption的場景。初聽上去可能是反直覺的,但是從成本上講,非托管方案是唯一能夠在低客單價的場景里保證足夠的安全性和可用性的方案。如果一個面向大規模用戶場景的應用方打算選擇上面兩種方案,就一定要考慮對方能否為自己的用戶群提供足夠安全可用的服務,否則一旦內部人員作惡、黑客入侵或不可抗力導致服務停擺,自己的所有用戶都會受到牽連,自己的業務也可能因此一蹶不振。歷史上的無數次案例都在講述一個故事,安全無小事,為用戶負責就是為自己負責。
MPC?-Multi-PartyComputation
多方安全計算?跟零知識證明可以并稱當下Web3兩大「魔法」,一旦跟它們沾邊,似乎原來做不到的事情somehow就能做了。實際上有些情況是這樣的,尤其是ZKP,可以利用概率換可行性;MPC則是通過分散控制權來達成風控或者災備能力。
MPC其實是一種范式,包含很多技術方案,在目前Web3的語境下大都指的是tss。
TSS?-ThresholdSignatureScheme
門限簽名?是一種分布式多方簽名協議,包含分布式密鑰生成、簽名,以及在不改變公鑰的情況下更換私鑰碎片的re-sharing等算法。
一個m-n的tss指的是一個公鑰對應了n個私鑰碎片,其中m個碎片的聯合簽名可以被公鑰驗簽成功。不難發現這個邏輯類似于多簽,他們的區別主要在公鑰的數量上。
舉例來說,2-2的多簽是一個門上掛了2把鎖,必須用兩個鑰匙把它們都打開才能開門;2-2的tss是一個門上掛了1把鎖,但是鑰匙有兩片,合起來用才能打開門。這里為了好理解,描述并不嚴謹,兩把鑰匙合成一把其實更符合ShamirSecretSharing算法的情況;tss算法下的密鑰碎片是不會相遇的,而是它們分別簽名之后,通過特定算法可以用對應的公鑰驗簽通過。
那么tss是不是一定是托管或者非托管的?其實沒有必然聯系,主要看最終的方案如何設計和取舍。非托管方案要求用戶擁有獨立操作賬戶的能力,所以用戶必須掌握不少于門限數量的密鑰碎片,例如2-3的話用戶需要掌握2片,而2-2的方案無法達成非托管,最多可以做到半托管;但是如果用戶管理最多的私鑰碎片,那么勢必會提高對用戶能力的要求,很難做到massadoption。
Tags:GASINGTRAIONuGAS-JUN21 Token Expiring 30 Jun 2021BINGO價格TranscodiumMinionverse
進入2022年,全國多地政府紛紛發布元宇宙產業發展規劃、建設元宇宙產業園等政策,元宇宙產業發展開始進入競爭階段.
1900/1/1 0:00:0010月18日,Aptos宣布「上線主網、發行Token」當日,Sui區塊鏈網絡仿佛按下了加速鍵,將官方賬號更名為SuiNetwork并以此作為新品牌亮相。此后,一系列動作出現.
1900/1/1 0:00:00去中心化金融(DeFi)是一種基于區塊鏈的金融形式,在沒有任何中心化的中介的情況下提供金融服務.
1900/1/1 0:00:00作者:ChenglinPua隨著區塊鏈技術在新經濟中的應用不斷深入,全球許多城市積極出臺政策來發展區塊鏈以及相關產業。2022年10月,香港表示將會推動香港發展成國際虛擬資產中心.
1900/1/1 0:00:00本文來自fxstreet&newsbtc,原文作者:EktaMourya&ReynaldoMarquezOdaily星球日報譯者|Moni 圖片來源:由無界版圖AI工具生成不出意.
1900/1/1 0:00:00以太坊的發展路線越來越傾向于ModularBlockchain,其本質就是Layer1的datasharding和Layer2的Rollups擴容相結合,成為一種模塊化架構.
1900/1/1 0:00:00