一文看懂決定Web3未來的账戶抽象

2023-09-11 14:34 區塊引擎


作者:區塊引擎

以太坊账戶抽象是整個以太坊生態的討論熱點,創始人Vitalik甚至專門發表多篇文字闡述账戶抽象之於以太坊的重要性,是以太坊面向下一個十億用戶的關鍵之作。那么,什么是“账戶抽象”(Account Abstraction)?

"账戶抽象"是一項旨在改善用戶與以太坊交互的提案,也是加密貨幣社區越來越多討論的主題。不過,你可能會想"账戶抽象到底是什么,我爲什么要關心它? 本文旨在通過介紹账戶抽象的過去、現在和未來,幫助你理解账戶抽象。我們解答關於該主題的所有問題,特別是關於账戶抽象的 "誰"、"什么"、"爲什么"、"如何 "等的問題。 

關鍵要點摘要: 

  • 可編程的自托管账戶("智能账戶")可以減少新用戶加入 web3 生態系統時的摩擦。然而,以太坊的設計限制了智能账戶的廣泛採用和使用。

  • 账戶抽象引入了重大變革,爲廣泛採用無信任、抗審查的智能账戶鋪平了道路。目前正在考慮採用不同的方法來實現账戶抽象,每種方法都有其獨特的優勢和權衡。

什么是账戶抽象? 

與 Web3 中的其他新概念一樣,账戶抽象也很難定義。不過,我們可以通過首先解讀與討論以太坊账戶抽象相關的各種術語來更好地理解它: 

1.抽象:計算機科學中的一個(相當復雜的)術語,大致意思是隱藏系統或應用程序的信息,以便在使用時對後台運行的進程了解較少。也被定義爲 "通過提供便於操作的接口來隱藏系統復雜性的過程"。 

2.账戶:用戶在區塊鏈上的代表,可以發送或接收交易,並與其他鏈上账戶交互。以太坊有兩種账戶:外部擁有账戶(EOA)和合約账戶(又稱 "智能合約")。 

2a.外部擁有账戶(EOA):使用錢包軟件(如 MetaMask)生成的以太坊账戶,由一對公鑰和私鑰加密管理。EOA 是 "活躍 "的(它可以啓動交易並爲 EVM 的執行支付網絡費用)。不過,它僅限於執行基本操作,如發送以太幣或與合約互動。 

2b.合約账戶:以太坊账戶以智能合約的形式部署,由寫入代碼的邏輯(而非私鑰)控制。合約账戶是 "被動 "的:它只能根據 EOA 的交易發送交易,不能支付費用。不過,它是可編程的,可以根據存儲在地址中的代碼執行任意邏輯。

 3.錢包:管理以太坊账戶資金的界面--錢包如何運行取決於它與哪種類型的账戶相連。基於 EOA 的錢包(如 MetaMask)需要私鑰來授權交易。同時,智能合約錢包與合約账戶相連,可以使用任意邏輯授權交易(例如使用多重籤名方案)。有了這些定義,我們現在就可以定義账戶抽象了。 

账戶抽象定義

账戶抽象是一項建議,旨在提高以太坊账戶管理和行爲的靈活性。我們通過引入账戶合約來實現這一目標:定義和管理用戶以太坊账戶(現在稱爲智能账戶)的特殊用途智能合約。 

有了账戶抽象,您就可以通過使用智能合約錢包,而不是僅僅依賴私鑰來確保安全,從而享受可編程的資金訪問。之所以能做到這一點,是因爲您的智能账戶可以自定義交易和轉移資產的規則。 

那么,"抽象 "是如何融入這一切的呢? 

從網絡層面來看,"账戶抽象 "意味着以太坊協議看不到账戶類型的細節。每個账戶(包括自監管账戶)都只是一個智能合約,用戶可以自由決定如何管理和操作單個账戶。 

從用戶層面來看,"账戶抽象 "意味着與以太坊账戶交互的某些技術細節被隱藏在更高層次的接口之後。這改進了錢包設計,大大降低了使用 web3 應用程序的復雜性。 

有必要澄清一些概念,因爲圍繞账戶抽象的混淆來自於不知道(a)抽象的是什么和(b)抽象發生在哪裏。账戶並不一定是從用戶中抽象出來的(即使是從協議中抽象出來的)。你仍然需要一個錢包地址來接收資金,還需要一個籤名密鑰來確保只有你才能使用這些資金。 

從用戶的角度來看,账戶抽象更像是使用一個智能账戶,它抽象了與區塊鏈交互的一些細節。以下是首次使用 dapp 的用戶與 dapp 交互的情況:

有了账戶抽象,錢包开發人員就可以創建在後台處理這些流程的系統,並簡化 web3 的使用體驗)。一些用例(我們稍後會詳細介紹)包括:無需存儲助記詞/私鑰,無需爲交易支付網絡手續費,甚至無需自己建立鏈上账戶。 

账戶抽象的好處

如前所述,账戶抽象消除了使用 web3 錢包和與 dapps 交互時的大部分摩擦。這使 web3 更接近 web2 的使用體驗,即所有用戶,無論是新手還是老手,都能從相同程度的靈活性、安全性和易用性中獲益。

特別是,账戶抽象化對未來的自我保管具有巨大影響。有了账戶合約提供的功能,使用 web3 錢包就像使用銀行账戶或應用程序一樣,無需信任銀行。 

在隨後的章節中,我們將介紹账戶抽象的不同層面,並討論它們如何改善以太坊的使用體驗。具體來說,我們將討論籤名抽象(signature abstraction)、費用抽象(fee abstraction)和 nonce 抽象(nonce abstraction)。

籤名抽象 

如今,EOA 的交易必須有账戶私鑰使用橢圓曲线數字籤名算法 (ECDSA) 生成的籤名才有效。這爲大多數 EOA 提供了一個簡單的安全模型:只要私鑰仍在用戶手中,資金就是安全的。但它也有一些局限性: 

1.衆所周知,EOA 是很難保證安全的,尤其是惡意行爲者一直在开發新的方法來破壞私鑰。我們目睹了諸多網絡釣魚、社交工程、欺騙、惡意軟件注入和類似攻擊對 web3 用戶安全帶來的挑战。 

2.自我保管可能感覺像一項極限運動。與普通銀行账戶不同,如果助記詞/私鑰丟失,您無法 "恢復 "EOA 錢包。這就給新用戶帶來了挑战,他們必須努力應對完全丟失以太坊账戶中的資產而無法追索的影響。

籤名抽象解決了這些問題,不再將 ECDSA 籤名作爲非托管账戶的默認授權機制。相反,用戶可以定義授權錢包啓動交易的自定義規則。或者換一種說法,你可以決定交易有效的含義。 

實施籤名抽象爲更高級的授權方案提供了可能性。這樣,使用 web3 錢包的感覺就會與 web2 銀行應用程序相似,甚至更好。下面是一些使用案例: 

1.交易限額:如果金額超過預設限額,與您的智能账戶相連的錢包可以拒絕交易(或要求額外授權)。聽起來耳熟嗎?應該是的--銀行已經這樣做了,以保護您的账戶和信用卡免受欺詐、未經授權的使用以及其他與安全相關的原因的影響。 

2.多方審批:您可以將账戶的部分控制權委托給受信任的人,也就是 "監護人"。監護人可以是朋友、家人、服務提供商,甚至是您自己的獨立設備(如硬件錢包)。這樣,您就可以通過要求監護人批准從您的智能账戶提取資金的交易,爲您的錢包啓用 Web2 風格的多因素身份驗證(MFA)。

3.密鑰輪換和撤銷:有了智能账戶,如果前一個密鑰丟失或被盜,你可以生成一個新的籤名密鑰。爲了提高安全性,你可以讓監護人在恢復過程中凍結你的账戶,並要求批准密鑰輪換/撤銷流程(即社交恢復)。這類似於在信用卡丟失或被盜的情況下凍結信用卡,而不會失去對銀行账戶的訪問權限。 

4.可信會話:您是否不喜歡在瀏覽器中與 dapp 交互時必須批准每項操作?好極了!您可以使用智能账戶創建特殊的 "會話密鑰",讓應用程序在特定時間內自動籤署交易。這意味着您可以與 dapp 進行交互--比如玩區塊鏈遊戲--而不會被錢包彈出式窗口纏住。

從高層次上講,會話密鑰基於智能合約,它控制着你的账戶和 dapp 之間的互動。您始終擁有會話密鑰的控制權,並可以管理 dapp 的籤約權限,例如它可以從您的余額中扣除多少金額或調用哪些功能。

5.自動付款:與會話密鑰的想法類似,您可以批准服務提供商從您的智能账戶中 "提取 "資金(受預定義規則的限制)。這樣就可以使用 web3 錢包設置定期付款和訂閱。你能想象用以太坊账戶支付 Netflix 訂閱費或水電費嗎? 

費用抽象

目前,每筆以太坊交易都必須有一個 "交易費",表示發送 EOA 愿意爲交易的執行支付多少費用。交易費以以太坊爲單位,以太坊是以太坊的原生代幣。這就造成了一些問題,尤其是對於新用戶來說,他們現在需要在發送交易前獲取以太幣。 

账戶抽象並不能消除支付交易費的需要,但它抽象出了用戶選擇支付交易費的方式和時間的細節(費用抽象)。例如,账戶抽象可以實現 "贊助交易",即由另一個账戶支付用戶交易的gas費用。贊助交易的一些好處 

1.不需持有ETH支付網絡交易費:您是否曾希望用錢包中的 ERC-20 代幣支付交易費用?有了贊助交易,您就可以讓一個 ETH 中繼器爲您的交易支付費用,然後再用 DAI 或 USDC 等其他代幣支付。

2.免手續費交易:Dapp 开發者可以贊助交易,最大限度地減少以太坊新用戶的入門摩擦。您基本上可以使用 web3 應用程序,而無需了解 "gas",並享受 web2 應用程序提供的一鍵式體驗。

3.社交登錄:dapp 可能會代表你部署一個合約錢包,解決了在發送鏈上交易前設置錢包的痛點。最棒的是什么?錢包可以使用身份驗證基礎架構(如 Web3Auth 和 WebAuthn),使用戶能夠使用現有憑據(如電子郵件地址或 Facebook/Twitter 账戶)創建 Web3 账戶。 

Nonce 抽象

以太坊上的智能账戶還有一個特殊功能:批量交易。通過批處理交易,您可以將多個操作合並爲一個鏈上交易,降低與 dapps 交互的成本和復雜性。以下是交易批處理的重要原因: 

您的 EOA 存儲了一個稱爲 "nonce "的值,顯示您發送了多少筆交易(可以把它想象成交易計數器)。新的交易必須嚴格地將 nonce 值增加 1 才有效--這條規則可以防止其他人 "重放 "相同的交易,從而盜取您的資金(這種情況可能會發生)。 

但這也有個問題。Nonces 迫使你以先進先出(FIFO)的方式處理交易。假設有兩個交易(A 和 B),nonce 分別爲 0 和 1。在這種情況下,您需要發送事務 A,並在發送事務 B 之前等待(其執行的)確認。 

如果在 A 交易未完成時發送 B 交易,前者就會被拒絕,因爲其 nonce 超過了規定範圍(EOA 當前的 nonce + 1)。事實上,這也是使用錢包時出現 "卡死交易 "的一個重要原因。 

Nonce 抽象允許你創建自定義的重放保護機制(而不是以太坊協議對交易執行嚴格的排序)。例如,你可以有一個允許並行處理多個交易的 nonce 方案。這將解決交易堵塞/停滯的問題,並顯著改善與 dapp 的交互。

盡管如此,nonce 抽象在實踐中很難實現,而且有可能破壞對安全性和用戶體驗至關重要的某些不變性,如事務哈希唯一性)。這就是交易批處理的用武之地: 

由於智能账戶可以同時處理多筆交易,因此對復雜的 nonce 抽象方案的需求在很大程度上消失了。回到前面的例子,我們可以想象交易 A 和交易 B 只是一個假設操作的一部分,比如在 Uniswap 上交換資產: 

交易 A:批准 Uniswap 合約以訪問您的代幣;

交易 B:完成代幣交換通過交易批處理,您可以將批准和交換工作流程合並爲一個交易。其結果是:在使用 dapp 時,氣體費用更低,等待時間更短。

關於账戶抽象的未來展望

以太坊創始人Vitalik Buterin首次提出這一概念已有多年,但對於實現账戶抽象的最佳方式仍存在一些分歧。例如,實施 EIP-3074 和 EIP-5003 可以讓現有的 EOA升級到智能账戶。但這些建議需要以太坊進行硬分叉,而社區正專注於更緊迫的升級,因此目前看來是不可行的。

相比之下,EIP-4337 得到了廣泛的支持,因爲它在不需要對以太坊協議進行大規模修改的情況下實現了账戶抽象。但對於目前使用基於 EOA 的錢包的用戶來說,這意味着必須將資產從 EOA轉移到新部署的合約账戶--考慮到目前以太坊上高昂的網絡交易費用,這個過程可能既復雜又昂貴。

我們相信,账戶抽象是爲 Web3 新用戶提供與Web2無差別體驗的關鍵。我們也知道,EOA 無法保證加密貨幣的大規模採用。因此,如何在不影響用戶熟悉的錢包操作的前提下提供账戶抽象的好處是將來創新的一大方向。 

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

標題:一文看懂決定Web3未來的账戶抽象

地址:https://www.sgitmedia.com/article/10055.html

相關閱讀: