剛剛結束的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。
福布斯:部分非營利組織未收到FTX基金會的捐贈承諾:11月15日消息,據與福布斯交談的幾位人士稱,承諾從FTX基金會提供資金的個人和組織現在正在努力應對后果。部分非盈利組織表示,根本沒有從FTX未來基金那里收到任何資金,而部分組織只收到了承諾的一部分。
據福布斯報道,FTX危機已蔓延到一些與FTX基金會結盟或從FTX基金會獲得資金的非營利組織、學術機構、研究所和智囊團,該基金會聲稱已經捐贈了1.9億美元。
此前報道,SBF曾公開表示,只會留下每年10萬美元生活,計劃將剩余資產全部捐出。今年4月,FTX曾承諾今年通過FTX基金會氣候和社區基金向慈善事業捐贈最多10億美元。[2022/11/15 13:06:22]
在設定上,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代付,批量交易,權限管理,離線授權,社交恢復等等。
國新辦發布《攜手構建網絡空間命運共同體》白皮書:對區塊鏈等新技術加強管理:11月7日消息,國新辦今日發布《攜手構建網絡空間命運共同體》白皮書。白皮書介紹了新時代中國互聯網發展和治理理念與實踐,分享中國推動構建網絡空間命運共同體的積極成果,展望網絡空間國際合作前景。其中提到加強新技術新應用治理。不斷完善適應人工智能、大數據、云計算等新技術新應用的制度規則,對區塊鏈、算法推薦服務等加強管理,依法規制算法濫用、非法處理個人信息等行為,推動各類新技術新應用更好地服務社會、造福人民。[2022/11/7 12:27:40]
這里舉幾個例子來展示一下智能合約錢包的擴展潛力:
Gnosissafe利用智能合約錢包架構實現多簽邏輯;
用戶可以在一筆上鏈交易中同時給多個地址發送不同的token,也可以在用uniswap時讓approve和swap在一筆交易里完成,從而做到需要多少授權多少,避免因為過度授權造成安全隱患。
用戶可以給不同資產設定不同的操作權限,比如給PFP設定比普通ERC-20token更高的操作門檻,這樣即便日常使用的環境發生密鑰泄露,黑客也無法將高價值資產轉走,在安全和便利中間取得平衡。
用戶可以簽署一個離線授權「誰能給我100ETH,就可以轉走我的某個BAYC」,這樣不需要授權給第三方合約,用戶就可以跟其他人P2P地完成原子交易。
AA?-AccountAbstraction
賬戶抽象?其實不是一個新概念了,最早可以追溯到2015年的一些討論,當時Vitalik認為至少要讓以太坊用來驗證交易的密碼學算法做到可替換,比如換成性能更優的ed25519,可以說7年來Vitalik和EF都沒有停止對賬戶抽象方案的討論和探索,這里有個整理好的?linktree?可以幫大家回顧一下歷史。
那么賬戶抽象怎么理解呢?這里我引用一下?ERC-4337?里對其目標的描述:
前ConsenSys亞太區高管擔任dYdX CEO:10月10日消息,dYdX基金會宣布,已任命前ConsenSys亞太區高管Charles d'Haussy為dYdX首席執行官。Charles d'Haussy將負責dYdX協議、社區和dYdX DAO的發展以及戰略合作伙伴關系的建立。[2022/10/10 10:29:49]
Achievethekeygoalofaccountabstraction:allowuserstousesmartcontractwalletscontainingarbitraryverificationlogicinsteadofEOAsastheirprimaryaccount.CompletelyremoveanyneedatallforuserstoalsohaveEOAs(asstatusquoSCwalletsand?EIP-3074?bothrequire)
可以看出以太坊對于賬戶抽象的期望是改變目前大多數人都在使用EOA的現狀,希望用戶轉向SCW,并且把生態對EOA的依賴完全去除。除了里面提到的EIP-3074之外,還有一個更為激進和遠期的?EIP-5003,這里同樣引述幾段原文:
EOAs…arelimitedbytheprotocolinavarietyofcriticalways.Theseaccountsdonotsupportrotatingkeysforsecurity,batchingtosavegas,orsponsoredtransactionstoreducetheneedtoholdetheryourself.Therearecountlessotherbenefitsthatcomefromhavingacontractaccountoraccountabstraction,likechoosingone’sownauthenticationalgorithm,settingspendinglimits,enablingsocialrecovery,allowingkeyrotation,arbitrarilyandtransitivelydelegatingcapabilities,andjustaboutanythingelsewecanimagine.
烏茲別克斯坦要求本國獲得許可的加密貨幣公司支付月費,主要用于國家預算:9月30日消息,周三發布的一份官方文件顯示,烏茲別克斯坦現在要求該國獲得許可的加密貨幣公司每月支付費用,這些費用主要用于國家預算。
烏茲別克斯坦共和國國家透視項目局、財政部和國家稅務委員會制定的新規則已經生效。該文件稱,一家公司每月必須支付多少取決于它提供的服務類型以及在每月支付時為加密公司設定的基數。該文件還列出了加密貨幣商店、托管服務、礦池以及個體礦工所需的按比例較小的付款。[2022/10/1 22:42:56]
…ThisEIPprovidesapathnottoenshrineEOAs,buttoprovideamigrationpathoffofthem,onceandforall.
不難看出,EIP-5003的目標是一次性將EOA轉換為CA,讓所有用戶用上SCW,徹底解決向前兼容的問題。
到這里大家對AA的來龍去脈和未來目標應該有所了解了。但需要指出的是,AA這個概念不是以太坊和EVM專屬的,很多鏈原生已經具備了不同程度的AA特性。比如EOS/Polkadot/Near/Solona/Flow/Aptos…甚至BTC,這些鏈在設計時就已經將賬戶做成了有內部結構甚至具備權限管理能力的狀態,還有StarkNet/CKB等具備更完善的賬戶抽象能力。說到這里大家不難發現,以太坊的AA是在解決EOA意外地流行帶來的歷史遺留問題,從而在賬戶層面上變得更加先進和靈活。
4337?-?ERC4337
從上面對AA的討論里不難看出,ERC-4337只是這個方向眾多提案中的一個,但是為什么大家一提到AA或者SCW就會說到它呢?我們來看這個文檔的副標題:
Anaccountabstractionproposalwhichcompletely?avoidsconsensus-layerprotocolchanges,insteadrelyingonhigher-layerinfrastructure.
Skyland Ventures推出專注于Web3的4000萬美元種子風險投資基金:5月15日消息,日本風投公司 Skyland Ventures(SV)近日宣布推出專注于 Web3 的 4000 萬美元新種子風險投資基金SV4 Fund。在延續以往對互聯網公司廣泛投資的基礎上,SV4 Fund 還將通過股權和 Token 形式積極開展對 Web3(加密貨幣、NFT、區塊鏈)領域全球初創公司的投資。[2022/5/15 3:17:16]
也就是說,ERC-4337是AA的路線第一次從「暴力革命」轉向「和平演變」,不再追求利用共識層的改變實現AA,而是轉而使用SCW這種用戶層的方案。并且為了實現更好的互操作性,ERC-4337定義了一些SCW應該實現的接口,以及元交易打包、gas代付等基礎設施的框架。它的出現讓目前差異極大的各種SCW方案能夠擁有統一的用戶交互界面以及共用一些生態層面搭建的開放基礎設施,有助于各種場景快速實現自己需要的SCW方案。另一方面,ERC-4337的推動有助于促進生態其他參與方提升對SCW的兼容性,比如驗簽需要的?EIP-1271?和有些DeFi協議里定義的禁止CA交互的一些規則。
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幣預估價值Decentralized Hash MiningTRAT幣blockchainresearchandapplication
原文作者:@jolestar最近關于用戶和Move智能合約交互,不需要授權(Approve)是更安全還是更不安全的爭論很多.
1900/1/1 0:00:00作者:Ray,Sally,IOSGVentures智能合約安全分析工具商業化的機會來了么?在9月底Paradigm官宣完成了區塊鏈安全項目Blowfish的領投又一次引起了大家對智能合約安全分析.
1900/1/1 0:00:00來源:文匯報 20年前,當程序員用Html敲下代碼編寫博客時,不會想到有一天,在網絡平臺上發布文章、視頻如同吃飯一樣簡單.
1900/1/1 0:00:00作者:BenjaminThalman,Figment協議研究員;譯者:金色財經xiaozou使以太坊更具可擴展性有助于促進其更廣泛的采用,并確保以太坊網絡的長期成功.
1900/1/1 0:00:00原文:《宏觀與通脹敘事下,我們正處在市場的哪一階段?》作者:JerryShang流動性匱乏的市場,正在等待美聯儲的信號.
1900/1/1 0:00:007:00-12:00關鍵詞:香港、黑龍江、Polkadot、TwitterBlue1.香港特區政府發表虛擬資產政策宣言.
1900/1/1 0:00:00