跳至主要内容

頁面上次更新: 2024年2月20日

帳戶抽象

使用者使用

與以太坊互動。 這是開啟交易或執行智慧型合約的唯一方法, 限制了使用者與以太坊互動的方式。 舉例而言,它使得批次處理交易變得困難,並且要求使用者始終保持一定的以太幣餘額來支付燃料費用。

帳戶抽象能夠解決這些問題,藉助它,使用者可以透過編程,靈活地將更高的安全性和更好的使用體驗帶到其帳戶中。 這可以透過兩種方式實現:升級外部帳戶(opens in a new tab),這樣它們可以由智慧型合約控制;升級智慧型合約(opens in a new tab),這樣他們可以發起交易。 兩個方案皆須變更以太坊協定。 還有第三條路徑涉及新增第二個獨立的交易系統(opens in a new tab),以便與現有協定並行運行。 無論選取哪條路徑,結果都是經由智慧型合約錢包存取以太坊,不管是作為現有協定一部分的本地支援或是藉由附加交易網路。

智慧型合約錢包為使用者帶來諸多好處,包括:

  • 自行定義靈活的安全性規則
  • 遺失金鑰時恢復帳戶
  • 安全地與受信任的裝置或個人共用帳戶
  • 幫助別人支付燃料費用,或者讓別人幫忙支付自己的燃料費用
  • 同時批量處理交易(例如一次性核准並執行兌換)
  • 為去中心化應用程式和錢包開發者提供更多機會來創新使用者體驗

目前,這些優勢並未得到本地的支援,因為只有外部帳戶 (

) 才能開啟交易。 外部帳戶純粹只是公開-私密金鑰對。 它們的作用原理為:

  • 如果你有私密金鑰,就可以在以太坊虛擬機 (EVM) 內做任何事情
  • 如果沒有私密金鑰,就什麼事也做不了

遺失的金鑰無法找回,竊賊可以利用被盜的金鑰立即存取帳戶中的所有資金。

智慧型合約錢包可以解決這些問題,但如今它們很難編程,因為最終它們實作的任何邏輯都必須轉換為一組外部帳戶交易,然後才能由以太坊處理。 帳戶抽象使得智慧型合約能夠自行發起交易,因此使用者希望實作的任何邏輯皆可編碼到智慧型合約錢包本身並在以太坊上執行。

最後,帳戶抽象改進了對智慧型合約錢包的支援,使其更易於建置且使用更安全。 總的說來,透過帳戶抽象,使用者可以享受以太坊的所有好處,而無需瞭解或關心底層技術。

超越種子助記詞

現今的帳戶使用依據種子助記詞計算出的私密金鑰來保護。 任何有權存取種子助記詞的人皆可輕鬆發現保護帳戶的私密金鑰,並取得其保護之所有資產的存取權限。 遺失的私密金鑰和種子助記詞將永遠無法恢復,所控制的資產亦將永遠凍結。 即使對於專家使用者來說,保管這些種子助記詞也很困難,且種子助記詞網路釣魚是使用者被騙的最常見方式之一。

帳戶抽象將使用智慧型合約來持有資產和授權交易,從而解決這個問題。 然後可以用客製化邏輯裝飾這些智慧型合約,以使其盡可能安全並為使用者量身訂製。 最終,你依舊使用私密金鑰來管控對帳戶的存取,但安全網可以讓你的管理工作變得更輕鬆、更安全。

例如,可以將備份金鑰新增至錢包中,以便在主金鑰遺失或意外暴露時,能夠在獲得備份金鑰許可的情況下,用新的安全金鑰取代主金鑰。 你可以透過不同方式保護這些金鑰,或者將它們分配給受信任的監護人。 如此,竊賊便更難完全控制你的資金。 同樣,你可以向錢包新增規則,以減少主金鑰洩露時的影響,舉例來說,你可以允許透過單一簽名來驗證小額交易,而大額交易則需要多位經驗證簽署者的批准。 智慧型合約錢包還有其他方法可以幫助你阻止竊賊,例如,可以使用白名單來阻止每筆交易,除非交易是傳送到受信任的地址或是透過你預先批准的多個金鑰進行驗證。

可以內建到智慧型合約錢包中的安全邏輯範例:

  • 多重簽名授權:可以在多個受信任的人員或裝置之間共用授權憑證。 然後可以對合約進行設定,要求交易超過某個預設值時,必須得到一定比例(例如 3/5)的可信方的授權。 舉例來說,高額交易可能需要行動裝置和硬體錢包的批准,或者需要分配予可信家庭成員的帳戶的簽名。
  • 帳戶凍結:若裝置遺失或受到入侵,可以從另一台授權裝置鎖定帳戶,從而保護使用者的資產。
  • 帳戶恢復:裝置遺失或忘記密碼? 在目前的範例中,這意味著你的資產可能永遠凍結。 有了智慧型合約錢包,你可以設定一些預先核准的帳戶來授權新裝置並重設存取權限。
  • 設定交易限制:指定每日閾值,以控制每日/週/月可以從帳戶轉出多少金額。 這意味著,即使攻擊者確實取得存取你帳戶的存取權限,也不能立即提領所有內容,並且你將有機會凍結和重設存取權限。
  • 建立白名單:只允發送交易到你確認安全的地址。 這代表即使你的私密金鑰遭竊,攻擊者也無法將資金傳送到非白名單的目標帳戶。 這些白名單需要多個簽名才能更改,因此攻擊者無法將自己的地址新增至名單,除非他們有權存取你的多個備份金鑰。

更好的使用者體驗

帳戶抽象可以提供更好的整體使用者體驗改進的安全性,因為它在協定層級新增了對智慧型合約錢包的支援。 最重要的原因是,它將為智慧型合約、錢包和應用程式的開發者提供更大的自由,以我們可能無法預見的方式創新使用者體驗。 帳戶抽象帶來的一些明顯改進包括捆綁交易以提高速度和效率。 舉例來說,簡單的兌換原本應該是一鍵操作,但現在卻需要簽署多個交易,以批准各個代幣的支出,接著才能執行兌換。 帳戶抽象透過允許交易捆綁消除了這種分歧。 此外,捆綁交易可以精確批准每筆交易所需的代幣的正確價值,然後在交易完成後撤銷批准,從而提供額外的安全性。

透過帳戶抽象,燃料管理也得到很大的改進。 應用程式不僅可以支付使用者的燃料費用,還可以用以太幣以外的代幣支付燃料費用,讓使用者不必為了支付交易手續費而保留以太幣餘額。 這可以透過在合約內將使用者的代幣換成以太幣,然後使用以太幣支付燃料費用來實現。

可信會話還可能變革使用者體驗,特別是像遊戲這樣的應用程式,大量小額交易可能需要在短時間內獲得批准。 逐一批准交易將破壞遊戲體驗,但永久批准又不安全。 智慧型合約錢包可以在固定時間內核准某些特定交易,比如特定金額或地址的交易。

考慮購買過程如何隨著帳戶抽象而改變也非常有意思。 目前,必須使用已預先存入足夠數量代幣的錢包,每筆交易才能獲得批准和執行。 透過帳戶抽象,體驗比較像大家熟悉的線上購物,使用者只要將物品放入「購物車」並按一下結帳按鈕,即可一次性購買所有商品,所需的所有邏輯皆由合約處理,而非使用者。

這些只是帳戶抽象提升使用者體驗的個別例子,還有更多我們沒有想像到的使用場景。 帳戶抽象將開發者從現今的外部帳戶限制中解放,讓他們將 web2 的優點帶進 web3,而不必犧牲自我託管的權利,亦無需絞盡腦汁發明新的使用者體驗。

帳戶抽象將如何實作?

目前市面上已經有智慧型合約錢包了,但因為以太坊虛擬機還不支援,要實作它們非常有挑戰性。 相對的,它們依賴於在標準以太坊交易中包裝相對複雜的程式碼。 透過允許智慧型合約開啟交易,不在鏈下而是在以太坊智慧型合約中處理必要的邏輯,以太坊可以改變上述情況。 將邏輯放進智慧型合約也提高了以太坊的去中心化程度,因為有了它之後,便不需要錢包開發者運行的「中繼器」將使用者簽署的訊息轉換為常規以太坊交易。

目前進度

智慧型合約錢包早已可用,但需要更多升級才能讓它們盡可能去中心化及無需許可。 EIP-4337 是成熟的提案,且不需要對以太坊協定做任何變更,所以可以快速實作。 然而,改變以太坊協定的升級目前尚未積極開發,因此這些更改可能需要更長的時間才能發佈。 也有可能帳戶抽象透過 EIP-4337 完美實現,也就不需要變更任何協定了。

了解更多

這篇文章對你有幫助嗎?