作者:Mert Ozbay、Mustafa Bedawala 和 Catherine Gu
翻译:火火,白话区块链
近年来,区块链技术得到了广泛的采用,虽然它有可能塑造货币流动的未来,但区块链交易带来了传统支付方式中所没有的高度复杂性。区块链交易利用去中心化网络,多个参与者验证并记录每笔交易。它们涉及自我托管钱包、私钥、Gas费——所有这些元素不适用于传统支付方式。要使用像以太坊这样的区块链进行交易,消费者必须保持区块链原生Token(例如 ETH)的余额,以支付使用网络的费用,即“gas”。
Visa 比较擅长促进涉及不同货币的交易。例如,用户可以前往另一个国家旅行,而不必担心提前获得外币,因为同一张 Visa 卡可以让您在国内和国外进行购物。然而,这种程度的简单性和便利性在加密世界中并不存在。在以太坊上进行交易的消费者发现自己需要不断管理自己的 ETH 余额来支付gas费,这是一个繁重的过程,会分散他们对主要区块链活动的注意力。当将区块链交易的复杂性与 Visa 网络支持的基于法定支付交易的简单性进行比较时,很明显需要改进。剩下的问题是:
图 1 - Visa 的网络
Visa的网络图片说明
认识到这一挑战,我们探索了如何允许用户通过卡支付直接以法定货币支付链上 Gas 费用,从而简化区块链交易。在这种情况下,用户可能不再需要仅仅为了支付 Gas 费而持有特定于区块链的原生Token。这种潜在的解决方案将利用以太坊的 ERC-4337 标准和付款主合同,使用户能够使用 Visa 卡直接支付 gas 费。
我们相信这种创新且灵活的方法可以帮助简化新的加密货币用户的入口点并增强现有用户的体验。在本文中,我们将深入研究区块链交易的现有挑战,强调对更灵活方法的需求,并逐步完成我们的实验。
1、问题
加密世界的主要障碍之一是在区块链上支付交易或操作的复杂过程。每个操作,无论是简单的Token转移还是与智能合约的更复杂的交互,都会产生称为“gas”费用的成本。这表示执行该操作所需的计算量。就以太坊而言,这笔Gas费必须以区块链的原生Token ETH 支付。
尽管可以使用 USDC 等稳定币进行交易,但用户仍然需要保持单独的 ETH 余额来支付以太坊上的 Gas 费用。这通常会导致用户采用复杂且有时比较昂贵的方法。有些人依靠入口服务将法定货币转换为 ETH 等原生Token,而另一些人则在集中式加密货币交易平台购买 ETH,然后将其转移到钱包中。然而,这两种策略都需要额外的步骤,并且缺乏用户在传统金融交易中习惯的简单性和即时性。此外,这些方法使用户面临加密货币汇率波动的风险,因为即使使用不同的加密货币或稳定币进行支付交易,他们也需要持续购买 ETH。
图 2 – 入口流程:获取自我托管钱包的Token
入口匝道过程图像描述
例如,让我们考虑一下 Alex,她是一位想要参与 DeFi 项目的用户,该项目要求她铸造新的Token。为此,她决定使用入口服务将法定货币转换为 ETH。Alex 根据当前的 Gas 费和铸币过程的预期成本,仔细计划和购买特定数量的 ETH。然而,以太坊网络上的Gas费可能会快速波动。如果 Alex 进行铸币时费用大幅下降,她将多付 Gas 费,最终可能会得到她不打算购买的剩余 ETH。相反,如果 Alex 获得 ETH 后 Gas 费用意外上涨,她可能没有足够的资金来支付增加的费用,从而导致支付不足。图 2说明了用户通过入口提供商购买加密货币时的入口过程。
图 3 – 通过中心化交易平台获取Token
通过中心化交易平台获取Token 图片说明
此外,对于像 Alex 这样的用户来说,获取 ETH 等原生Token通常涉及从中心化交易平台转移资产。这需要将法定货币存入交易平台,购买必要的Token,然后将其转移到个人钱包中以获得足够的 ETH 来支付Gas费。然而,这种方法也存在由于 ETH 价值和 Gas 费用波动而导致多付或少付的风险。
此外,对于技术不太精通并想要参与区块链交易的个人来说,这可能是巨大且具有挑战性的。对于那些不熟悉加密货币交易平台以及购买和桥接Token复杂性的人来说,这个过程会成为进入的障碍。这就好比去不同国家旅行时将现金兑换成不同货币的繁琐且不友好的方法。图 3说明了用户通过加密货币交易平台购买加密货币并将其转移到钱包时的桥接过程。
2、解决方案
以我们之前描述的工作为基础“通过账户抽象重新思考数字交易”²我们的加密协议、Visa 创新中心和 Visa 研究团队举办了一次内部黑客马拉松,我们借此机会探索了 ERC-4337 下的支付大师。这项合作的结果是提出了一个解决方案流程,该流程演示了如何使用户能够通过存档的卡以法定货币支付其链上天然气费用。该提议的解决方案利用以太坊的 ERC-4337 标准和付款主合同,允许 Visa 持卡人直接支付其汽油费。我们相信,这种创新且适应性强的方法可以帮助简化新加密货币用户的入职流程并改善当前用户的体验。
图 4 – 简化的用户与 Paymaster 实施的交互
简化的用户交互图像描述
在这个提议的解决方案中,我们再次将出纳员置于流程的核心。Paymaster 是一种特殊类型的智能合约账户,可以为用户合约账户提供Gas费(将其视为以用户为中心的智能合约)。我们提出的解决方案使用户不再需要持有原生区块链Token或仅仅为了支付Gas费而不断参与桥接Token。
从用户的角度来看,该解决方案因其简单性和易于采用而具有吸引力,如图4所示。例如,让我们回到 Alex,他拥有一个自我托管钱包。通过我们提出的解决方案,Alex 可以使用她的 Visa 卡支付Gas费并参与需要她铸造新Token的 DeFi 项目。通过这样做,Visa 帮助处理幕后的复杂流程,使 Alex 能够轻松选择她的 Visa 卡来支付汽油费。这个提议的解决方案为像 Alex 这样正在寻找更简化和更易于访问的方式来参与区块链交易的用户带来了简单性和更好的体验。
3、我们的实验
出纳员的作用是抽象出 Gas 费机制的复杂性,同时提供费用融资的替代方式。我们的实验性实现是通过接受用户从 Visa 卡的链下支付的 Gas 费并代表用户在链上支付等值金额来实现这一点。用户端的gas费体验就像普通卡支付一样简单。用户在发送用户操作时可以选择使用这样的付款人。用户操作就像常规的区块链交互,因为它们指定用户想要在区块链上执行的操作。但与交易不同的是,用户操作不需要由外部拥有的账户签名,可以直接由智能合约账户验证和执行。
我们实现的用于启用链下Gas支付功能的设置以验证 Paymaster为中心。验证付款人是一种智能合约,它将所有必要的检查和信息来源委托给链下组件。然后,链上付款主智能合约可以使用链下组件提供的数据和批准来授权和支付Gas费。
将此信息从链下服务可靠地传输到付款主合同的方法是通过公钥加密:链下网络服务使用密钥来生成数字签名以与信息一起发送。付款人智能合约又可以使用相应的公钥来验证签名,从而验证信息的真实性。在我们的实验中,我们使用了验证 Paymaster智能合约样本由ERC-4337核心团队提供。
图 5 – 使用 Paymaster 和 Visa 卡进行交易的技术工作流程
使用 Paymaster 和 Visa 卡进行交易 图片说明
如图 5所示,在我们的实现中,当用户打算通过区块链发起操作时,钱包首先生成一个用户操作请求,其中包含有关他们尝试执行的操作的信息(即呼叫数据)和最大处理成本操作的(即与Gas费相关的参数)。更具体地说,指定 Gas 限制的参数决定了该操作应预算的最大计算量,而 Gas 费用则决定了每个计算单元的成本。
钱包不会立即将用户操作请求发送到区块链,而是首先将用户操作连同 Visa 卡凭证一起发送到 Paymaster Web 服务(图 5 中的步骤 2)。网络服务将使用Gas费信息来计算以法定货币向用户收取的适当费用,并且根据提供的卡凭证,发卡机构可以选择授权卡支付。对于网络服务的支付接受解决方案,我们使用了 Visa 自己的网络资源。Cybersource 为开发者提供必要的 SDK 和 API,使商家能够接受数字支付。
在我们的实验中,通过 Cybersource 处理付款后,网络服务会对用户操作中的相关数据(包括通话数据)生成数字签名和 Gas 费信息(步骤 3)。它还确定该签名有效的时间范围。指定时间窗口很重要,因为 ETH 和其他原生Token的价值在以太坊和其他 EVM 链上是动态的。如果不采取预防措施,用户可以利用付款人两个部分之间缺乏同步的情况,在 ETH 成本较低时以法定货币进行链下支付,然后在价格较高时使用签名,并让付款人合约承担成本差额。网络服务将数字签名发送回钱包。除此之外,钱包对用户操作的相关参数进行的任何更改都将导致与数字签名不匹配,并且验证Paymaster智能合约将检测到差异。
钱包从网络服务接收数字签名和时间窗口,并附加此信息以及付款主合同的链上地址,作为用户操作的付款主参数。现在,当用户操作的所有部分都完成后,钱包将能够签名并将其发送到区块链(步骤 4)。在区块链上,作为 ERC-4337 标准定义的用户操作处理流程的一部分,付款主合约将接收用户操作数据,其中应包括来自付款主 Web 服务的数字签名。如果提供的数据有任何问题(签名不正确、时间窗口无效等),付款主合同旨在引发错误,并且不会支付Gas费用。如果验证签名正确,这意味着网络服务收到了卡付款以启用此用户操作的处理成本。付款主合同不会引发任何错误,并将处理成本,并且将执行用户操作(步骤 5)。
图 6 – 代码片段 – 验证 Paymaster 数字签名验证
代码片段图像描述
在构建我们的实验时,我们使用了Stackup 的 userop.js 库使用我们的钱包构建、签名和发送用户操作。为了将这些用户操作发布到区块链,以及估计汽油费等补充功能,我们使用Stackup 的捆绑器作为我们的提供商。出于测试目的,我们部署了验证出纳员通过以太坊 Goerli 测试网并成功发送用户操作通过链下 Gas 费用支付。
4、减少区块链上的摩擦
基于区块链的交易的错综复杂性一直是许多用户的重大障碍,造成了具有挑战性的学习曲线并增加了用户摩擦。然而,我们的实验旨在提供一种有前途的方法来实质性解决这些挑战。通过利用付款人的创新概念,结合账户抽象和 ERC-4337 标准,我们探索了重新定义基于区块链的交易的流程的潜力。
帐户抽象允许开发人员设计新的流程,有助于减少各种资产交换的摩擦。我们的实验表明,开发人员可以利用现有的支付基础设施实施该解决方案。商家或去中心化应用程序 (dApp) 可以运行自己的 Paymaster 解决方案,通过使用 Visa 卡接受Gas费支付来帮助改善客户体验。或者,现有的钱包和付款大师服务提供商可以提供基于卡的Gas费支付选择,以供一般使用以及其他付款大师产品。
这种潜在解决方案的实现有助于为更易于访问和用户友好的数字交易方法奠定基础。