作者:Mustafa Bedawala、Mert Ozbay 和Catherine Gu ;Visa
儘管不斷取得進步,但區塊鏈目前難以提供與主流數字支付生態系統相同水平的靈活性和用戶體驗。然而,新興技術可以增強使用數字貨幣進行交易時的支付體驗。在“自託管錢包的自動支付”中,我們通過利用公共區塊鏈上的賬戶抽象(AA) 概念,深入研究了尖端技術在自動支付方面的應用。 ¹我們對AA 和改進的加密支付體驗的探索繼續看看當前以太坊上的AA 範式如何提供創造性的解決方案來處理交易費用:用戶可以使用穩定幣、其他ERC-20 代幣支付以太坊交易費用,還是根本不支付?在數字貨幣獲得主流採用之前,尋找創新解決方案以實現無摩擦的加密入職和交易體驗至關重要。
ERC-4337 的技術概述是以太坊上AA 實施的當前標準,旨在更好地了解ERC-4337。我們討論了Visa 對兩組Paymaster 合約的實驗性部署,以展示如何重新設計區塊鏈上的Gas費以提高用戶便利性。
賬戶抽象和ERC-4337
為了更好地理解賬戶抽象的價值主張,讓我們簡要回顧一下以太坊上目前存在的兩種類型的賬戶:外部擁有賬戶(EOAs)和合約賬戶(CAs),通常分別稱為用戶賬戶和智能合約。由私鑰控制的EOA 允許用戶發送交易。然而,它們缺乏智能合約的可編程性,使它們更加僵化。相反,CA 擁有可執行代碼,但無法獨立發起交易。交易必須始終來自用戶的賬戶並包含用戶的簽名,無論是簡單的代幣轉移還是通過許多智能合約執行的複雜操作。
帳戶抽象(AA) 的概念旨在利用CA 的可編程性來造福最終用戶。在編寫智能合約時,通常的做法是定義一個擁有者來控制合約的行為。作為智能合約構建的自託管錢包可以為用戶提供比基於EOA 的錢包更多的功能。這是通過引入稱為ERC-4337 的新以太坊標準來實現的,該標準由以太坊社區成員(包括以太坊創始人Vitalik Buterin)提出。 ² ERC-4337 使所有者可以直接擁有智能合約賬戶,而無需EOA 簽名。雖然所有者可能不會使用傳統意義上的EOA 簽名,但他們對智能合約的所有權仍然需要一個安全的身份驗證過程,以確保他們正確地控制和管理智能合約賬戶。反過來,這個智能合約帳戶可以處理諸如多因素身份驗證、定期付款以及最終用戶定義的自定義規則和策略等任務。
ERC-4337 是AA 的最新進展,最初於2021 年作為以太坊改進提案(EIP)-4337 提出。它經歷了以太坊徵求意見(ERC) 流程,該流程為以太坊網絡上的應用程序建立了標準。 EIP 和ERC 之間的區別在於它們的範圍和採用要求。 ERC 定義智能合約應如何在應用程序級別運行和相互交互。它們不需要像核心EIP(以太坊改進提案)這樣的所有參與者都採用,這些EIP 在協議級別部署並且需要在社區內達成更廣泛的共識。從EIP-4337 到ERC-4337 的過渡標誌著該提案已經滿足以太坊應用所需的標準,現已正式成為以太坊生態系統的一部分。截至2023年3月,ERC-4337的核心組件已經部署在以太坊主網上。與之前的賬戶抽象EIP 不同,ERC-4337 無需對區塊鏈協議的共識層進行修改即可在以太坊網絡上啟用賬戶抽象。 ² 這種開發允許區塊鍊網絡參與者立即探索和試驗新的用戶體驗,而無需等待重大網絡升級。值得注意的是,ERC-4337 的優勢之一是它與任何使用以太坊虛擬機的區塊鏈兼容,為AA 提供了一個超越以太坊本身的標準。
遍歷ERC-4337 交易
在典型的EOA 交易中,用戶與他們的自託管錢包交互以創建、簽署交易並將交易提交到公共內存池。生成並使用用戶私鑰簽名的交易有效負載隨後通過節點傳播到點對點(P2P) 內存池。驗證者或專門實體(稱為構建者)從公共內存池中選擇合適且有利可圖的交易來執行並將其合併到區塊鏈中。
圖1:典型的以太坊交易流程
ERC-4337 引入了一種不同於傳統EOA 方法的替代交易流程,它在交易到達代理EOA 地址之前添加了新步驟。用戶將他們的意圖作為UserOperations 發送,然後通過專用的UserOperations 內存池傳播。這個獨特的內存池由捆綁器監控,捆綁器充當代理EOA,以網絡可以處理的典型EOA 交易的形式將UserOperations 發送到公共內存池。然後,這些交易遵循與常規交易相同的流程,要么加入公共內存池,要么直接進入建設者。
我們逐步介紹了ERC-4337 交易的端到端流程,從UserOperation 生成到執行。在深入研究之前,必須定義出納員的概念,它在這個過程中起著至關重要的作用,並且是我們自己探索的核心。 Paymaster 是一個可選的智能合約賬戶,能夠贊助合約賬戶(以用戶為中心的智能合約)的交易費用。 Paymasters 評估是否在驗證階段接受UserOperation,並在執行階段實施任何所需的費用邏輯。通過這樣做,他們可以為用戶贊助交易費用,並使用戶能夠使用ERC-20 代幣(如美元穩定幣)支付燃料費。
圖2:ERC-4337 交易流程
1.用戶通過符合ERC-4337 標準的智能合約錢包生成UserOperations。 UserOperations 封裝了用戶與區塊鏈交互的意圖,用戶對其進行簽名以進行身份驗證。一旦生成,UserOperation 將被提交到專用的UserOperation Mempool,這是一個專門用於UserOperations 的存儲,與標準的Ethereum 交易mempool 分開。
2.Bundlers 是一類專門的參與者,它監控UserOperation Mempool,運行模擬並將一系列UserOperations 組裝成一個單一的交易包。 Bundlers 負責收集UserOperations 並將它們提交給EntryPoint 合約,優化gas 使用並通過利用費用優先邏輯來最大化利潤。
3.EntryPoint 合約接收捆綁的一批UserOperations。它充當中央協調員,用於管理ERC-4337 交易流程中的UserOperations。
4.如果UserOperation 指定,EntryPoint 合約將與Paymaster 合約交互。如前所述,Paymasters 可以贊助合約賬戶的交易費用。 EntryPoint 驗證付款人是否有足夠的存款,或者合約賬戶是否有足夠的資金來支付汽油費。在執行過程中,如果涉及到Paymaster,它可以實現自定義費用邏輯,我們將在下一節中進行演示。
5.然後EntryPoint 合約調用合約賬戶,必要時調用出納員,以驗證UserOperation 中的簽名。合約賬戶是與EntryPoint 合約無縫交互以促進交易執行的用戶賬戶。驗證成功後,EntryPoint 將每個UserOperation 的相關數據傳輸到Contract Account,啟動執行過程。
帳戶抽象和實際應用
隨著區塊鏈技術不斷探索現實世界的應用,自託管錢包正成為用戶持有和使用其數字貨幣進行交易的熱門選擇。自以太坊成立以來,已經有大約1.8 億個唯一地址進行了交易,包括所有類型的賬戶和屬於同一個人或一組個人的多個賬戶。 ³但是,每月,我們只看到發起了數百萬次鏈上交互由真人進行,以太坊主網每天的鏈上活動約為每天100 萬筆交易。 ⁴ 相比之下,Visa 在2022 年處理了2580 億筆交易,平均每天處理7.07 億筆交易,目前有41 億張Visa 關聯卡在流通全球範圍內。 ⁵ 如果區塊鏈支持同等廣度的支付體驗並具有相同的易用性,它們能否享有可比的採用水平?朝這個方向可能採取的步驟包括為用戶提取汽油費或允許他們用ERC-20 代幣支付交易費。
使用ERC-4337 Paymaster 使用ERC-20 代幣支付
圖3:Paymaster 促進使用ERC-20 代幣支付交易費用
今天要在以太坊區塊鏈上進行交易,用戶需要獲取ETH 來支付gas 費用;同樣,要在Polygon 區塊鏈上進行交易,用戶需要獲取原生代幣MATIC。是否有一種解決方案可以消除僅出於支付gas 的目的而積累不同範圍的本地區塊鏈代幣的需要?這種情況類似於Visa 的跨境支付核心網絡的價值,旅行者可以在其中以當地貨幣消費,而無需先獲取當地貨幣。在這個版本的Paymaster 合約中,合約可以充當中介貨幣轉換服務。該服務可以從用戶那裡收取數字貨幣,然後根據當前匯率將其轉換為原生代幣,以代表用戶支付汽油費。此外,這可以通過即時融資來完成,這意味著用戶只需要在交易時為天然氣成本提供資金,而無需任何預先融資要求,以優化他們的現金流管理。
使用ERC-4337 Paymaster 為用戶贊助交易費用
圖4:Paymaster 為用戶贊助交易費用
當今Web 2.0 中的P2P 交易在許多國家對消費者都是免費的,這就提出了一個直接的問題:為什麼消費者要為區塊鏈上的P2P 交易付費? Account Abstraction 提供了一種解決方案,如果第三方(例如金融科技錢包提供商)願意承擔這些費用,則允許用戶繞過這些費用。在這種情況下,錢包提供商或dApp 可以充當出納員,為用戶支付汽油費並顯著減少摩擦。 ERC-4337 Paymaster 概念可以通過讓用戶免費通過他們的錢包平台進行交易來激勵用戶採用。
除此之外,智能合約賬戶可以簡化錢包管理並提供簽名驗證的替代方法,從而實現多因素身份驗證,以提高自我保管錢包的安全性和資金回收。此外,它們通過允許具有可自定義限制的特定任務的臨時權限來簡化dApps 的使用,例如授權dApps 處理來自用戶帳戶的重複拉取付款,最高可達一定金額。這些示例只是說明智能合約如何幫助非加密本機用戶更輕鬆地與區塊鏈技術交互,同時確保其帳戶安全。
我們對ERC-4337 Paymaster 實施的實驗
使用ERC-4337 Paymaster 使用ERC-20 代幣支付
圖5:Paymaster 促進使用ERC-20 代幣支付交易費用(代碼片段)
通過我們的第一個Visa Paymaster 合約,我們正在探索用戶是否可以使用替代代幣支付交易費用,例如美元穩定幣,甚至在未來甚至是中央銀行數字貨幣。在這種情況下,Paymaster 通過接收用戶支付的等值通用ERC-20 代幣來支付ETH 交易費用。對於實施,我們使用了以太坊基金會和ERC-4337 核心團隊提供的起始代碼⁶。此示例合約包含Paymaster 及其自定義ERC-20 令牌的管理邏輯。對於這個合約,我們引入了一個白名單和一個更新代幣到ETH 轉換率的函數。這使我們能夠更好地模擬ETH 和代幣之間的匯率是動態的現實生活條件。我們的測試設置涉及部署智能合約錢包和發送用戶操作。目前,兼容ERC-4337 的錢包選項有限,我們決定使用以太坊基金會和ERC-4337 核心團隊打造的Trampoline 錢包。 ⁷ 為了將我們的用戶操作發送到Goerli Testnet,我們使用了Blocknative 的公共Bundler。 ⁸ 對於一個成功的UserOperation,Visa Paymaster 合約首先需要檢查用戶在ERC-20 中是否有足夠的資金來支付汽油費。確認後,用戶使用此通用ERC-20 令牌支付交易費用。您可以在此處找到我們已部署的合約,⁹ 以及已處理的UserOperation。
使用ERC-4337 Paymaster 為用戶贊助交易費用
圖6:Paymaster 為用戶贊助交易費用(代碼片段)
根據我們提到的第二個用例,我們的另一個Visa Paymaster 合約完全贊助交易費用。同樣,我們的實施基於以太坊基金會和ERC-4337 核心團隊提供的起始代碼¹¹。起始代碼無償贊助每筆交易。我們添加了一個白名單,只允許授權用戶與Visa Paymaster 合約進行交互。您可以在此處找到我們已部署的合同。 ¹² 我們的測試實施能夠成功贊助白名單用戶的用戶操作交易費用。您可以在此處查看成功的UserOperation。 ¹³
Paymaster 用例遠遠超出了我們在本文中強調的範圍。通過抽像出基本的區塊鏈處理邏輯,可以有許多創新的用戶體驗。對於目前正在進行的ERC-4337 開發,我們看到了幾種可能的方法,可以在我們上述實驗的基礎上進行構建。例如,與其要求在Paymaster 智能合約中內置自定義的新ERC-20 代幣,不如輕鬆地將Paymaster 與現有的ERC-20 代幣(例如USDC)集成。這種方法需要使用外部來源來確定代幣價格,並檢查Paymaster 合約是否已批准向用戶收取指定代幣的費用。一種方法是部署一個鏈下預言機服務,該服務可以提供代幣價格等必要信息,以及Paymaster 合約可以驗證的簽名。
或者,整個流程可以在必要數據的預言機合約的幫助下在鏈上處理。雖然這種方法可以更好地保證出納員得到適當的補償,但實施起來也更具挑戰性。一些ERC-4337 限制使得Paymaster 很難在Paymaster 驗證期間查詢鏈上預言機,並且Bundlers 通常會拒絕需要這樣做的UserOperations。為了啟用此流程,有必要使用受信任的Paymaster 列表建立替代內存池,Bundler 可以選擇加入。這些受信任的Paymaster 可以調用oracle 合約,而使用這些Paymaster 的UserOperations 將從備用內存池。
展望未來
使用數字錢包與區塊鏈交互可能是一種具有挑戰性的體驗,許多人認為確保易用性是推動更廣泛採用的關鍵步驟。 ERC-4337 為通過自我託管的智能合約錢包改善鏈上用戶支付體驗奠定了有趣的未來可能性,這反過來又可以改變用戶使用數字貨幣和數字資產的方式。
當談到ERC-4337 時,以太坊社區正處於這一新旅程的開始。有許多計劃提供可以構建AA 驅動流的基礎設施,其中一些我們在測試中使用並在本文中提到,但仍有相當大的增長空間。與任何開放領域一樣,存在相互競爭的方法和權衡,例如公共Bundler 提供的去中心化選項與私有Bundler 的可定制性;完全在鏈上的Paymaster 的無需信任的安全性與在鏈下部署某些組件的成本效益相比;以及錢包可能使用的眾多替代簽名方案,等等。這些不同的設計選擇可以產生一組豐富的選項,從而更好地為用戶提供未來的數字支付體驗。
無處不在的每個人的支付創新
作為支付解決方案的全球領導者,Visa 始終致力於探索滿足現實世界需求的創新。我們將繼續研究智能合約的潛力以及可編程貨幣和可編程支付可能帶來的未來。在本文中,我們深入研究了由ERC-4337 執行的以太坊上的AA 如何支持區塊鏈上有趣的新用例。我們提供了ERC-4337 交易的端到端演練,並解釋了它與標準以太坊交易的區別,以突出底層機制。
我們對ERC-4337 的實驗通過部署Paymaster 合約來學習和評估它們在解決現實世界問題和通過鏈上交互顯著增強客戶體驗方面的潛在效用,從而側重於兩個不同的用例。對於在這一前沿工作的公司,我們的產品、研究和工程團隊將很樂意討論可編程支付方面的想法。