對話 ERC-4337 作者:以太坊帳戶抽象及演化

Foresight News
分享
對話 ERC-4337 作者:以太坊帳戶抽象及演化

聽 ERC-4337 共同作者談帳戶抽象最前沿和最關鍵的問題。

  • 採訪:Lucas、Jenny,分別為火必孵化器高級研究經理和高級營運經理

  • 受訪者:Kristof Gazso、Praneeth Srikanti,前者為 ERC-4337 共同作者、後者為 Ethereal Ventures 投資合夥人

  • 編譯:aididiaojp.eth,Foresight News

主持人:各位能否先自我介紹一下?

Kristof:我在 2021 年 5 月加入 Nethermind,大約在去年 11 月的時候,我在想我接下來要在這個領域做什麼,這個領域所面臨最大的瓶頸是什麼?目前最大的問題是看到沒有技術背景的普通人在使用以太坊應用程序時會遇到很大困難。所以對我來說我能做的最有效的事情就是解決以太坊的帳戶和錢包使用困難的問題,改善以太坊應用程序的用戶體驗。

帳戶有兩種類型:私人帳戶(EOA)和智能合約帳戶。現在在以太坊上,用戶主要使用的是 EOA 帳戶( 比如 Metamask 和 Rainbow),但它們存在一定的限制。

我一直在尋找解決方案,不久後發現了帳戶抽象的概念。我意識到現在還沒有任何提案有機會部署到主網,因為之前的所有提案要麼太複雜,要麼需要在提案方面做太多工作。所以與 Vitalik 和 OpenGSN 一起,我們一起探索帳戶抽象的解決方案,通過它,主網就不需要進行共識級別的協議更改,而這就是 ERC-4337 的主要創新點。

我們可以看到目前為止已經有一些應用程序正在被構建。現在,我們正在不斷發展生態,並為 ERC-4337 的普及鋪平道路。

Praneeth:我是 Ethereal Ventures 的投資合夥人,這是一家新成立的加密投資公司,由 ConsenSys 的前風險投資團隊創立。

為了讓更多的人進入 Web3,我們需要為用戶提供更低門檻和流暢的體驗,這是人們從根本上習慣的典型約定,例如身份驗證和社會恢復。

通過帳戶抽象,它能夠為這些問題提供有效的解決方案。我非常有興趣看到 ERC-4337 的演變,並與生態系統中的人們和利益相關者合作來見證它的誕生。

主持人:今年關於實施帳戶抽象的 ERC 4337 被提出,在 Devcon 期間我們有幾個關於帳戶抽象的討論。 ERC 4337 實際上成為了一個流行詞,儘管目前市場非常不好,但我們看到了圍繞帳戶已經出現了一些好的勢頭。那麼首先能解釋一下什麼是帳戶抽象嗎?

Kristof:我先來通俗地解釋一下。在以太坊中,大多數人使用的帳戶都是私鑰帳戶,我們稱這些帳戶為外部擁有帳戶 EOA。

然而,以太坊中還有另一種類型的帳戶,就是智能合約帳戶。 EOA 帳戶由私鑰控制,而智能合約帳戶由其代碼控制。

問題在於在以太坊中,EOA 帳戶擁有很多智能合約帳戶所沒有的特殊權限。比如只有 EOA 帳戶可以發起交易,而智能合約帳戶不能發起交易。

此外,EOA 帳戶在工作方式上是非常程序化的,所以對於 EOA 帳戶,Gas 支付的工作方式是你將在交易中使用的所有 Gas 放在以太坊智能合約中,如果有任何剩餘,它才會退還到帳戶。

在 EOA 中,簽名驗證也非常程序化,例如 ECDSA 簽名。這本身並沒有什麼問題,但我們在這個方案中有很多今天可以使用的創新。

因此帳戶抽象只是試圖通過擺脫只有一種帳戶類型的觀念,並為智能合約帳戶提供了更多權力,賦予他們發起交易的權力。

Praneeth:帳戶抽象能夠為 Web3 引入更多的安全性和用戶友好性,這就是我們希望用戶在第一次開始與區塊鏈交互時的感受。考慮他們需要如何存儲和記住他們的私鑰而不授予訪問特定智能合約來購買代幣或服務的經歷是糟糕的。

帳戶抽象使我們能夠以非常直觀的方式進行交互。人們可以用它來對關鍵權限進行精準控制,這是人們今天在 Web2 帳戶上使用的東西。

我們還需要從根本上考慮給定錢包的限制功能是什麼,並嘗試看看我們是否可以從基於交易的模型轉變為有希望成為基於共識的模型。

Kristof:如果我們能很好地過渡到智能合約錢包,這裡有幾個示例,說明用戶能夠在當前功能之上獲得的權力。

一個例子是 Gas 支付方式。 Dapps 將非常容易獲得激勵用戶交易的能力。用戶還可以使用不同的代幣甚至鏈下信用卡進行支付,因此無需 ETH 即可進行交易。現在任何類型的系統或個人 Gas 支付方式都是可能的。

使用簽名方案,用戶可以擁有社會恢復方案和多重簽名方案,並且可以完全自定義帳戶的行為方式以及子帳戶的權限類型。

用戶的主帳戶可能由多重簽名控制,並通過私鑰授予快速訪問權限,但前提是它與鏈上游戲合約進行交互。通過此設置,用戶錢包和鏈上游戲將能夠代表用戶進行交易,但權限非常有限。換句話說用戶可以使用 EVM / Solidity 代碼完全定義個人帳戶應該如何,你可以提供自定義權限,例如基於時間的權限、支出限制等。

最後一個非常常見的用戶體驗問題是缺少批次交易。用戶不必再需要批准然後在 Uniswap 上進行 Swap(現在是 2 筆交易),而是用戶現在可以將任意數量的單獨操作放入同一個事務中。

這些改善結合在一起,為下一代加密用戶提供了真正強大的用戶體驗。用戶基本上可以擁有與使用 NEO Banks 相同的體驗。

主持人:以太坊社區正在推進 EIP-4337 的實現,EIP-4337 是在 EIP-86、EIP-2938 等之後推出的。為什麼我們要有一個新的帳戶抽象協議級標準?對以太坊開發社區和用戶有何影響?

Kristof:之前最相關的提案是 EIP-2938,這是我朋友 Ansgar 創立的。 EIP-2938 定義了一種基於以太坊的帳戶抽象機制,它實際上是改變了以太坊將如何運作的協議。那麼現在為什麼不進行維護?問題在於,任何類型的協議級別更改都是一個非常困難的過程。在過去一年半的時間裡,幾乎所有核心開發人員的努力都投入到了合併上,因此核心開發人員沒有時間嘗試實施帳戶抽象提案。

帳戶抽象在 UX 術語中非常有用,但它的優先級不如可擴展性和安全性高,目前資源主要分配在合併、取款以及 EIP-4844 proto-danksharding 和 EVM 等方面,並且核心開發人員社區至少還需要 2-4 年的時間才能將注意力轉移到提升用戶體驗上。這就是為什麼我們決定嘗試提出新的 ERC-4337 提案,該提案可以通過與以太坊一起部署的智能合約來實現,而無需在協議級別進行部署。

我想社區沒有採用 2938 之類的最終原因是因為帳戶抽象本質上會引入一些潛在的拒絕服務風險。通過帳戶抽象,你可以讓錢包定義交易是否有效,基本上你必須執行自定義 EVM 代碼來確定交易是否實際支付給礦工或驗證者。因此,將類似的東西直接引入共識是一個非常大的風險,最好先嘗試使用 ERC,而非實際更改節點服務。

Praneeth:我認為這是 4337 生態系統在類似 EVM 兼容環境中啟動的一種非常好的方式,它可以在以後的協議中完全友好並為其他發明起到引導作用。

主持人:以帳戶抽象為標準,合約錢包成為第一選擇,如 Gnosis Safe,Argent 之類的,那麼哪些功能現在是可以普及的,又有哪些功能有望在不久的將來出現?

Kristof:首先需要注意的是,Gnosis Safe 和 Argent 尚未與 ERC-4337 兼容。所以 ERC-4337 只是一個標準,它定義了帳戶抽象錢包和付款人以及生態系統的其他部分應該是什麼樣子。

關於你的另一個問題,即我們已經看到了哪些功能以及我們在未來期待哪些功能?在 Argent 中,我們已經看到了使用 ERC-20 代幣進行支付之類的事情。我們還沒有看到非常普遍的 Gas 費支付形式。這絕對是 Gnosis Safe 和 Argent 的未來。我們已經看到社交恢復和多同步等方案有很多差異,但我們還沒有真正看到子帳戶的生成和為子帳戶提供非常自定義的權限。

我記得使用 Argent 有一項功能,你可以在其中生成一個簽名者密鑰,該密鑰可以根據你的規定條款代表你進行交易。所以你可能會去找你的社交恢復簽名者,你可能會要求他們批准一個可以在一天內進行交易的特殊密鑰,這意味著你可以按順序執行大量交易,而不必每次都返回給你的簽名者。所以這已經是未來可能發生的事情的一個基本例子。

據我所知,目前還沒有引入支出限制之類的東西,我認為這對未來的用戶體驗非常重要。 Argent 和 Gnosis Safe 等錢包尚未符合標準,一旦符合標準,它們將解鎖許多非常酷的功能。

Praneeth:ERC-4337 仍然需要現有用戶通過將資產和活動轉移到新帳戶來升級我們擁有的控制台,使其符合 ERC-4337 標準。除此之外,為了確保遷移過程可以順利進行,還有一些其他措施需要發揮作用,並且避免引入太多摩擦,特別是對於後台沒有太多活動的帳戶來說。

但除此之外,我認為仍然存在這樣的想法,即我們將讓 EOA 始終成為第一選擇,我們可能會看到更多與帳戶抽象相關的功能發揮作用,尤其是在人們從 4337 中汲取靈感的 L2 上。獲得 EOA 遷移帳戶的途徑也將是一個非常有趣的途徑,而且很有希望在不久之後實現突破。

Kristof: Praneeth,你提到了一個非常有趣的話題,那就是我們究竟如何在未來將 EOA 遷移到智能合約錢包。這是一個非常重要的問題,很多和我談過智能合約錢包的人都有一個共同的反應,就是覺得把所有東西都轉移到一個新錢包很麻煩,尤其是靈魂綁定代幣。

所以,我們得想辦法把 EOA 錢包做成智能合約。我們有兩個主要選擇。一種是較弱的版本,我們可以引入一種新的交易類型。這種交易類型能夠實現的是如果你提交了一筆交易,它會簡單地將你的 EOA 轉換成一個智能合約帳戶,例如可根據你在數據字段中指定的代碼來進行轉換。你只需調用 1 筆交易,就可以以非常完全自定義的方式來定義你的帳戶使用智能合約代碼的樣子。這將與你之前擁有的所有代幣、所有 NFT 或所有東西的地址相同。

另一種選擇是一個更強的版本,即不是讓用戶選擇將他們的 EOA 變成智能合約,而是一旦硬分叉發生,你可以立即將每個 EOA 變成一個非常簡單的智能合約帳戶,所以這個智能合約帳戶將與你現在擁有的方案相同。它將依賴於 ECDSA,這基本上一舉擺脫了 EOA。

這是我們現在需要考慮的一個重要權衡,我們很可能會傾向於第二種選擇,試圖獲得更強大的版本。因為如果你採用較弱的版本並允許人們將 EOA 變成智能合約帳戶,你實際上會更多地使用 EOA。因此,你將擁有一種交易類型,其唯一用途是將 EOA 轉換為智能合約帳戶。但是如果將來你想完全擺脫 EOA 怎麼辦,所以這是我們正在努力弄清楚的未來主題。

但正如我之前所說,嘗試引入以太坊的任何類型的共識改變都需要很長時間才能實施,比如 1-3 年。所以絕對不要打賭很快就會擺脫 EOA。

Praneeth:我絕對同意這一點。此外,它還改變了應用程序開發人員的這些假設,因為它與通常依賴於圍繞簽名方案某些假設的合約相關,這些假設基本上表明該簽名是否與 EOA 帳戶相關。

但我認為這會引發更多的問題,因為它可能歸結為對可能舊的帳戶進行強制轉換,並且在某種意義上可能無法真正檢測到人們多年未進行任何活動的帳戶。但我認為,對於使用 EOA 的人來說,在接受起來,可能需要做出一些改變。

主持人:如果帳戶抽象是遊戲規則的改變者,並且是我們未來加密體驗不可或缺的預設設置,那麼需要構建許多其他 Dapps 和基礎設施才能使其正常工作。對於開發者來說,需要哪些錢包支持,以及 Dapps 如何提前計劃以設計基於智能合約錢包的功能?

Kristof:有兩個非常簡單的答案,Dapps 有望實現部署,而且不是太難。一是停止歧視智能合約帳戶,比如停止使用交易來源。一旦我們有了帳戶抽象,這確實會在未來產生很大的誤導,即使現在使用 457。如果你使用交易來源,它也會將你指向 Bundles,一個將用戶操作捆綁在一起的生態系統播放器。因此,停止使用交易來源,不要禁止智能合約與你的 Dapps 交互。

二是開始與 EIP-1271 兼容。這個 EIP 定義了一種用智能合約錢包簽署授權的方法。因此,如果智能合約錢包實現了「if valid signature」功能並返回「true」,那麼你會把它當作是錢包簽署了該消息。但是許多 Dapps 仍然不符合這一點,它們假設 EOA 帳戶有一個簡單的 ECDSA 簽名來確定它是否被簽名。所以我想這就是兩件事。一,不要歧視智能合約帳戶,二,遵守 EIP-1271。

Praneeth:是的,我認為這很準確。只需記住一件事,所有圍繞 EVM 對象格式的變化都可能進入上海昇級。

當我們考慮更廣泛的提案或構建者分離的長期路線圖,並確保我們有能力被核心協議考慮時,許多有望發生的工作,如專門的美國部分,從根本上來說將是非常重要的團隊,因為你正在考慮新的機制和模型,比如發揮作用的提案或構建者分離方案。

但只要確保你密切關注 EOF 和 EIP,你就能更好地理解協議中驗證和執行的概念。

主持人:我們只在由 Layer2 和 Layer3 組成的以太坊生態系統中談論帳戶抽象,還是在更廣泛的多鏈生態系統中談論帳戶抽象?為什麼 Layer2 會是帳戶抽象的發源地而不是 以太坊? StarkNet 目前在開發帳戶抽象方面的工作是什麼?

Kristof:我可以回答你的第一個問題,這就是為什麼我們用兩個詞來看待 Layer2 中帳戶抽象的發展:Gas 費。通過帳戶抽象,依靠智能合約代碼來驗證你的交易是否有效。但使用 EOA,這由節點本身去驗證的。

由於 Layer1 主網 Gas 成本比 Layer2 高很多,因此 Layer1 中增加的 Gas 成本懲罰要大得多。在第一層,EOA 交易可能花費 10 美元,而智能合約錢包交易可能花費 20 美元,這在 Layer2 可能只需要一美分或者兩美分。因此,Layer2 中的 Gas 費差異可以忽略不計,這就是為什麼我們期望看到 Layer2 在任何特定的 Layer1 採用之前出現。

據我所知,StarkNet 有很多受 ERC-4337 啟發的機制。我對它們不是很熟悉,但它們已經允許部署智能合約並直接使用該合約發起交易。所以他們以類似於 4337 的方式實施相關合約,並且他們已經在他們的協議中進行了嘗試。他們向前邁進了一大步,這非常鼓舞人心。

Praneeth: Dan Finlay 的委託框架,本質上具有向任何 solidity 合約和帳戶添加反事實委託的能力,包括許多與基於智能合約的錢包相關的功能:具有驗證、具有批次交易的能力。使用該框架為基礎,允許 EOA 充當智能合約錢包,而無需通過在鏈下發布消息來部署合約。這基本上是 EIP-3074 和 EIP-5003 的主要工作。

但是你的簽名密鑰仍然與用戶仍需要備份的密鑰相關聯。你可以將權限委託給任意智能合約,但你仍然會遇到與撤銷和取消權限以及節點管理相關的問題。我認為有一些非常有趣的概念圍繞著帳戶抽象,但是是以一種避免協議修改的方式進行的。使用這些實驗中的一些甚至可以看看這是否是一種可用於大部分 EOA 帳戶的數據遷移的方法。

我們會鼓勵人們花一些時間看看已經試用了一段時間的可委託框架。

聽眾問題(Eric Siu):你對 4337 與其他 EIP(如 3074 和 5003)的帳戶抽象有何看法?

Kristof: 3074 比任何帳戶 EIP 的出現都要早。它的作用是賦予 EOA 帳戶更多的權力。因此它引入了調用者的概念,並且基本上允許該調用者在其可以定義的一些限制下代表 EOA 進行交易。

這有兩個問題,也是它可能不會進入主網的原因。第一個問題是它服務於 EOA,讓 EOA 變得更強大。這很好,因為如果你想使用智能合約錢包的功能,你不必再轉移你的餘額,但這也很糟糕,因為如果你將來要引入帳戶抽象時會有很多技術問題。

第二個問題是它與 Invokers 有一些安全問題。授予對調用者的完全訪問權限可能會導致一些奇怪的副作用。 Yoav Weiss 是 4337 的共同作者,他發表了 3074 的許多安全問題,我建議人們查看他概述安全問題的帖子。所以我想這就是為什麼這個 EIP 不太可能進入主網的原因。

聽眾提問 (Ric Burton):我真的很好奇舞台上的人們認為在所有這些開始發揮作用的未來可能發生什麼。我認為現在我們專注於實施細節以及如何讓 Dapps 開發人員了解所有這些事情。我想知道如果所有這一切都在五年內實現,你未來的夢想是什麼,是否有任何匹配的應用程序、產品、工具或服務?

Kristof:對我來說,我的願景是一旦我們真正擁有一個良好的帳戶抽象生態系統,在以太坊上運營獎勵將與使用我們現在擁有的任何類型的 NEO Bank 一樣簡單或更簡單。我可以很容易地將任何資產轉移給朋友。我可以使用許多內置應用程序來進行儲蓄和預算,但權限非常有限,例如阻止我的信用卡並執行這些操作。我真的認為一旦我們的錢包利用了帳戶抽象化的許多功能,我們將能夠與鏈上生態系統進行交互,就像我們與我們的銀行在鏈下生態系統中進行交互一樣簡單。

Praneeth:我之前非常簡要地談到了這一點,但從某種意義上說,它是用戶表達他們的意圖,並自動執行或在應用程序和協議的自動會話中執行的能力,我們抽象出這個組合共識的固有事務稱之為抽象帳戶。當你與這些協議交互時,人們需要使用可以做到這一點的技術或工具,而不會真正陷入執行細節,即如何以實際方式實現這一點。因此,我認為將事物組合在一起的能力;分配多個未停滯的動作;簽署可以稍後輕鬆提交到區塊鏈承諾的能力;以及從根本上在驗證和執行之間進行核心分離的能力等都是值得思考的事情。

從根本上說,這意味著能夠公開更多與訪問和授權相關的細粒度的事情。用戶通常習慣於使用當今世界中非常成熟的 Web2 平台,但是讓這些功能實際執行或寫入協議中,並能夠通過非常熟悉的用戶流程來調整這些功能,將對於提高 Web3 平台的採用率非常有幫助。

(本文經授權轉載自 Foresight NewsForesight News Web3 垂直領域中文內容平台,秉持「客觀、中立」的基本原則,致力於打造 Web3 世界中文入口。)