以太坊賬戶抽象化是怎么一回事
什么是賬戶抽象化?
目前,以太坊上有兩種賬戶:外部賬戶(externally-owned account)和合約賬戶(contract account)。前者是由私鑰控制的,而后者是由存儲在智能合約賬戶(有時也被稱為智能錢包)內(nèi)的以太坊虛擬機代碼控制的。賬戶抽象化試圖將兩類賬戶并為一類,即,讓外部賬戶像合約賬戶一樣運作。
為什么賬戶抽象化對于以太坊來說那么重要?
賬戶抽象化可以讓更多通用型錢包執(zhí)行復(fù)雜的邏輯。它將簽名驗證、gas 支付和重放保護等功能從核心協(xié)議轉(zhuǎn)移到以太坊虛擬機上。
我們來舉個例子,看看抽象化到底有什么用。
假設(shè)你要所有代幣都放到一個新錢包內(nèi),然后你一不小心把所有以太幣都發(fā)送到這個新錢包里了。這下,沒有以太幣,你就無法發(fā)送任何交易,也就無法將剩下的代幣轉(zhuǎn)移到新錢包里了。
正常情況下,你只需要花一點時間和 Gas,將一些以太幣發(fā)送回之前那個地址即可。但是有些情況下,要挽回這個錯誤就不是那么容易了。在你把以太幣從另一個錢包發(fā)送過來之前,錢包內(nèi)的代幣無法轉(zhuǎn)出。我們都有可能遇到這種情況,就不用說這有多不方便了。
賬戶抽象化能讓你使用剩余代幣支付 gas 費用,就像一些智能合約錢包那樣。
抽象化會帶來新的可能性
許多構(gòu)建在以太坊上的網(wǎng)絡(luò)和應(yīng)用都需要依靠中繼者在區(qū)塊鏈上發(fā)布用戶交易,并向中繼者支付費用。然而,如果有更復(fù)雜的錢包和合約,我們沒準就不需要用到中繼者了。以 Tornado Cash 為例(這是一個通過充當用戶資金流轉(zhuǎn)的中轉(zhuǎn)站、混淆資金流向來保護用戶隱私的應(yīng)用),如果需要混幣的用戶能夠使用抽象化的賬戶,那 TA 可以使用比如 PAYGAS 操作碼來支付取款的費用,這就不需要中繼者來幫忙取款了(譯者注:使用中繼者來幫忙取款本意是為了減少取款地址跟其它用戶之間的關(guān)聯(lián),也是為了保護隱私)。如果以太坊網(wǎng)絡(luò)可以充當你的中繼者,你就不需要依靠另外的中繼者了,也就無需在 gas 費的基礎(chǔ)上按照一定的百分比再支付一筆費用。
這只是抽象化給以太坊網(wǎng)絡(luò)帶來的影響之一。我們不想討論太多技術(shù)細節(jié),不過抽象化的好處不只是在支付 gas 費用方面。將簽名驗證轉(zhuǎn)移到以太坊虛擬機上之后,簽署交易之時就能采用新的密碼學(xué)工具,多簽名錢包和社交找回錢包等智能錢包功能將會跟基礎(chǔ)賬戶功能處于同一層級。
抽象化還有助于下列技術(shù)方案的實施:
· 狀態(tài)通道
· OptimisTIc rollup
· AZTEC protocol 等二層隱私性方案
· 等等
總之,以太坊社區(qū)的開發(fā)者可以利用更加智能的以太坊賬戶創(chuàng)造出更加復(fù)雜的流程,提供更流暢的用戶體驗。
抽象化還需多久能實現(xiàn)?
事實上,關(guān)于如何實現(xiàn)賬戶抽象化仍存在爭議。但是,可以肯定的是,賬戶抽象化很可能會在以太坊 2.0 的 phase 0 階段之后實現(xiàn)。請記住一點,任何人都可以支持以太坊社區(qū)的開發(fā)工作。因此,如果你希望盡快看到賬戶抽象化的話,可以參與該團隊,或是為其做宣傳。
如果你想要了解更多關(guān)于賬戶抽象化的信息的話,可以查看 EthHub 上的條目。該條目深入分析了一些可能的實現(xiàn),并列舉了許多有用的資源。
感謝閱讀本文!如果你有任何疑問,或是想聊聊關(guān)于以太坊的話題,歡迎加入我們的 Discord 或是關(guān)注我們的 Twitter。