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