作者: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 合约来学习和评估它们在解决现实世界问题和通过链上交互显着增强客户体验方面的潜在效用,从而侧重于两个不同的用例。对于在这一前沿工作的公司,我们的产品、研究和工程团队将很乐意讨论可编程支付方面的想法。