雖然今天我們的加密錢包可以用於訪問和管理我們的加密貨幣,NFT,並進行質押,但我認為從賬戶的角度來看,還有很多事情是可以做的。 StarkNet和zkSync遵循Vitalik的願景推出了一項長期功能:帳戶抽象。
抽像是什麼?
抽象過程是隱藏信息的實踐。這增加了計算機系統在更高層次上的使用能力,並會對底層的過程知之甚少。
在程序員PoV中,我們假設其隱藏了對象的所有數據,但只保留了其相關數據,這樣會減少複雜性並提高效率。
賬戶抽象的定義
在以太坊網絡上,目前有兩種類型的賬戶。
-
EOA:外部賬戶是存在於EVM(以太坊虛擬機)之外的用於加密貨幣發送和接收的錢包:冷錢包,如Ledger、MetaMask、Phantom 等。
-
合約帳戶是存在於EVM中的“智能合約”。例如,Uniswap上的池基本上是智能合約。
以太坊帳戶抽象的目標是將兩種帳戶類型減少到一種,即合約帳戶。單一帳戶類型將具有處理代幣和合約的功能。開發人員和用戶將不再需要區分帳戶類型,因為交易將完全移入EVM,並脫離區塊鏈協議。
外部賬戶精度
EOA有三個屬性:
-
代表該賬戶可用ETH的餘額。
-
確保每筆交易都是唯一的隨機數。
-
唯一標識網絡上帳戶的地址。
值得一提的是,在以太坊上,每筆交易都必須從EOA發起。這意味著當由以太坊虛擬機(EVM)執行一筆交易時,被觸及的第一個帳戶必須是EOA,並且相應的賬戶必須向礦工支付費用以執行整個交易。
以太坊上的每個賬戶都與一個名為Keypair的加密對象相關聯:
-
私鑰:用於簽署數字消息。
-
公鑰:允許任何人驗證給定的簽名是否確實是其對應的私鑰簽名。
在StarkNet和zkSync上的帳戶抽象
截止到今天,StarkNet和zkSync 2.0在帳戶抽象方面是最先進的,它們都設法用特定方式實現帳戶抽象。
賬戶抽像有兩個主要目標:
-
簽名抽象:允許不同的帳戶合約使用不同的簽名驗證方案。
-
支付抽象:允許不同的交易支付模式。例如,由另一方/合約支付或使用ETH以外的其他代幣進行支付。
StarkNet Account模型仍然用合約來表示,也就是所謂的“賬戶合約”。簡單來說:任何部署在StarkNet上的Cairo智能合約都可以是一個Account,唯一的要求是它們必須符合一個特定的接口,該接口具有驗證和執行交易的方法。
在zkSync端,一個帳戶還需要實現兩個函數:validateTransaction 和isValidSignature。
通過這種抽象,我們可以直接看到:
-
使用多個密鑰對來驗證交易(簡單地將多重簽名集成在一起)。
-
更改我們的帳戶Keypair。
-
使用與ECDSA不同的簽名方案。
它能帶來什麼?
這可能是這個故事中最重要的部分:讓我們更深入地討論帳戶抽象的用例。我們可以將這些用例分成兩個不同的領域:
-
用戶簡化
-
技術用例
用戶簡化:會話密鑰
假設我們正在玩一款鏈上游戲:目前我們需要自己簽署每一筆交易。就是說每做一個動作(比如在收集獎勵,移動角色,發送信息時),就需要簽署一項交易。
會話密鑰是授權玩家在特定時間內玩遊戲的理念。我們生成了一個會話密鑰,保存在瀏覽器的本地存儲中,並且僅授權在10分鐘內允許其簽署交易。 10分鐘後,密鑰將被撤銷,我們將需要創建一個新的密鑰並再次授權。
在這種擴展下,我們還可以想像創建批處理交易:與在超市中選擇產品並在最後只支付一次費用的抽象相同。
用戶簡化:交易自動化和拆分權限
使用抽象賬戶,就可以實現更改給定錢包的主要簽名密鑰的功能,甚至可以管理多個簽名密鑰。我們可以將自己的管理密鑰放在冷錢包中,而其他密鑰就保存在不太安全的設備上,並且這些將只被授權執行某些操作。
一個很酷的例子:
我不怎麼使用的最安全的密鑰是唯一能夠轉移或發送超過1k美元到另一個賬戶的密鑰,然而,我也可以在我的計算機上使用那些不安全的密鑰來執行操作,例如在某些特定的dapp上領取獎勵,或在鏈上游戲中執行任何交易。
現在讓我們假設這些密鑰保存在執行自動交易/運行我們自己的bot的服務器中:我們可以確保這些密鑰只能用於執行自己設置的操作並提高安全性。
最後一個實用程序可能是一個協議,該協議代表我們將DCA 確定為循環交易。
技術用例:為他人支付費用
這是我們可以使用帳戶抽像做的最有趣的事情之一。想像一下,一個賬戶可以支付另一個賬戶的費用,該有多麼的令人興奮。
總結
我們已經看到帳戶抽像如何可以成為區塊鏈未來的遊戲規則改變者。我個人深信,賬戶抽象將迎來一個新的用例時代,尤其是在視頻遊戲產業鏈上。
Source:https://medium.com/@0xexomonk/blockchains-demystifying-account-abstraction-on-zk-rollups-ethereum-smart-contracts-c7ae864bc542