跳到主要内容

EOA Paymaster

概述

EOA 基于 Paymaster

本文档介绍了专门为外部拥有帐户(EOA)钱包设计的 Paymaster 解决方案,与EIP-4337中定义的 Paymaster 不同。只需很少的修改,钱包就可以集成该解决方案来支持 Gas 费赞助,从而显着增强用户体验。

什么是基于 EOA 的 Paymaster

EIP-4337(通过入口点合约规范进行账户抽象)中的 Paymaster 是一个关键组件,旨在增强 Ethereum 交易的灵活性和用户体验。它允许第三方支付用户的交易费用,用户无需持有 ETH 来支付 Gas 费。

虽然EIP-4337为智能合约钱包引入了 Paymaster 的革命性概念,但Ethereum生态系统的很大一部分仍然依赖于EOAs。认识到这一点,这就提出了专为 EOA 钱包设计的突破性 Paymaster 解决方案。这项创新为更广泛的 BOT Chain 用户群带来了交易赞助和增强的用户体验的好处,而无需转向智能合约钱包。 EOA Paymaster 解决方案旨在使赞助交易的访问民主化,使区块链交互对于数百万现有的 EOA 钱包用户来说更加用户友好且更具成本效益。

它是如何工作的

交易处理发生重大转变:

  1. 验证者角色:验证者不再验证区块内的单个交易 Gas 价格。

  2. 交易捆绑:私有交易被分组并提交给构建者。

  3. 优先级:构建者根据每个捆绑包的总 Gas 价格确定优先级。

  4. 捆绑包内灵活性:在单个捆绑包内,gas 价格可能会有所不同,从而允许零费用和更高费用的交易共存。

这种灵活性实现了创新功能,例如赞助 Gas 费和无 Gas 交易。

定义

Bundle:以原子方式执行的有序交易数组,确保捆绑中的所有交易一起处理或根本不处理。

Builder:MEV供应链中负责构建区块的新利益相关者。构建者将交易捆绑、来自公共交易池的单个交易以及私人交易订单流打包到提议的区块中。

提案者:验证者从多个构建者的提案中选择最有利可图的区块以包含在区块链中。

Paymaster:支持交易赞助的基础设施组件,允许自己或第三方支付 Gas 费。

赞助商政策:由 Gas 赞助商定义的一组规则,用于确定哪些交易有资格获得赞助。这可能包括白名单交易发送者或特定交易类型等标准。

总体工作流程

Gas 赞助流程涉及几个关键组成部分和步骤:

  1. 用户启动:

    • 用户使用任何兼容的钱包准备交易。

    • 钱包将潜在赞助交易的 Gas 价格设置为零。

  2. Paymaster 提交:

    • 钱包将零 Gas 价格交易提交给 Paymaster。
  3. 赞助商政策验证:

    • Paymaster 根据现有赞助商政策检查交易。

    • 策略可能包括发件人/收件人地址、令牌类型或交易限制等标准。

  4. 赞助处理:

    • 如果交易符合赞助资格: Paymaster 以更高的 Gas 价格创建赞助商交易。 b.原始用户交易和赞助商交易合并为一个捆绑包。

    • 如果不符合条件,交易将被拒绝或返回给用户进行正常处理。

  5. 捆绑包创建和提交:

    • 此捆绑包已提交给多个 MEV 构建者。
  6. 建造者选择和区块提案:

    • MEV 构建者将捆绑包合并到他们的区块提案中。
  7. 区块链包容性:

    • 提案者(验证者)从构建者的提案中选择最有利可图的区块。

    • 包含用户原始交易和赞助商交易的选定区块将被添加到区块链中。

    • 这确保了两个事务的原子执行。

  8. 交易后处理:

    • Paymaster 经理更新赞助商的帐户,扣除适当的赞助 Gas 金额。

该解决方案可实现无缝 Gas 赞助,无需对现有钱包基础设施进行重大更改。它提供了一个灵活的系统,可以适应各种赞助模式,同时保持区块链网络的安全性和完整性。

Paymaster 基础设施

准备好在您的应用程序或钱包中启用无 Gas 体验了吗?以下是 BOT Chain 上提供的有关 Paymaster 基础设施的一些有用信息:

  • Nodereal。由 Nodereal 提供支持的 MegaFuel 是基于 BOT Chain Paymaster 的 EOA 钱包的 Paymaster 实现。只需很少的修改,钱包就可以集成MegaFuel来支持 Gas 费赞助,从而显着增强用户体验。同时,赞助商可以在MegaFuel上定制他们的赞助,允许赞助用户发送无 Gas 交易。

Paymaster API 规格

为了促进广泛采用并确保不同钱包实现之间的互操作性,为 Paymaster 建立一套标准化的接口规范至关重要。这种标准化将使钱包开发人员能够高效、一致地集成 Gas 赞助功能,无论他们选择使用哪种特定的 Paymaster 服务。

API 规格

Paymaster需要实现一个名为pm_isSponsorable的JSON-RPCAPI,以便它可以将赞助商和保单信息返回给钱包。 Paymaster 还需要实施 eth_sendRawTransaction JSON-RPC API。详细的API规格定义如下:

pm_isSponsorable

请求参数

  • jsonrpc:JSON-RPC协议版本(“2.0”)。

  • id:请求的唯一标识符(本例中为 1)。

  • method:要调用的方法名称(“pm_isSponsorable”)。

  • params:包含单个对象的数组,该对象具有以下字段:

    • to:交易的接收地址。

    • from:交易的发送者地址。

    • value:交易的十六进制值。

    • data:交易的附加数据(十六进制)。

    • gas:交易的gas limit(十六进制)。

示例:

{
"jsonrpc": "2.0",
"id": 1,
"method": "pm_isSponsorable",
"params": [
{
"to": "0x...", // an address
"from": "0x...", // an address"value": "0xa1",
"data": "0x",
"value": "0x1b4",
"gas" : "0x101b4"
}
]
}

响应字段

  • jsonrpc:JSON-RPC协议版本(“2.0”)。

  • id:请求的唯一标识符(本例中为 1)。

  • result:包含赞助政策详细信息的对象:

    • (必需)Sponsorable:一个布尔值,指示交易是否受到赞助(true 或 false)。

    • (必填)SponsorPolicy:。赞助商政策的名称。

示例:

{
"jsonrpc": "2.0",
"id": 1,
"result": {
"Sponsorable": true,
"SponsorPolicy": "a sample policy name"
}
}
eth_sendrawtransaction

由 Paymaster 实施的 eth_sendrawtransaction API 应遵循此 Ethereum API 规范。客户端可以通过eth_sendrawtransactionAPI创建新的消息调用交易或为签名交易创建合约。

请求参数

params 应包含签名的交易数据。

示例:

{
"jsonrpc": "2.0",
"id": 1,
"method": "eth_sendRawTransaction",
"params": [
"0x02f86a6102850df8475800850df84758000a94cd9c02358c223a3e788c0b9d94b98d434c7aa0f18080c080a0bcb0e8ffa344e4b855c6e13ee9e4e5d22cff6ad8bd1145a93b93c5d332100c2ca03765236eba5fbb357e35014fd19ba4b3c6b87f3793bd14dddf7913fc8dcc88bf"
]
}

响应字段

DATA,32 字节 - 交易哈希。

示例:

{
"id": 1,
"jsonrpc": "2.0",
"result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}

钱包集成

本指南概述了钱包开发人员集成 Paymaster 服务、为其用户提供 Gas 费赞助的步骤。通过遵循这些标准,钱包可以跨多个 Paymaster 提供商提供无缝、无 Gas 的交易。

互动工作流程

钱包、Paymaster 与区块链之间的 EOA Paymaster 交互流程图

集成涉及修改交易创建和发送流程以与 Paymaster 服务交互。

主要步骤是:

  1. 交易准备:

    • 当用户发起交易时,首先调用gm_sponsorable检查是否符合赞助资格。

    • 如果可赞助,请将交易的 Gas 价格设置为零。

  2. 用户通知:

    • 通知用户该交易将是无 Gas 的,并由API返回的“政策名称”赞助。
  3. 交易签名:

    • 让用户签署零 Gas 价格交易。
  4. 提交给 Paymaster:

    • 使用 eth_sendRawTransaction 将签名的交易发送给 Paymaster。
  5. 响应处理:

    • 处理 Paymaster 的回复:

      • 如果成功,通知用户交易已提交。

      • 如果失败,请考虑回退到正常事务处理或通知用户失败。

  6. 交易监控:

    • 照常监控交易状态。

最佳实践

  1. 在修改 Gas 价格之前,请务必检查赞助情况。

  2. 提供有关赞助状态的清晰用户反馈。

  3. 对赞助失败的情况实施适当的错误处理。

  4. 考虑非赞助交易的后备机制。

尝试无 Gas 交易

在主流钱包中体验Paymaster

多个主流加密货币钱包已经实现了 Paymaster 集成。本教程将指导您体验将无 Gas 交易发送到 Paymaster 集成钱包的体验。

Paymaster 集成钱包

具有集成 Paymaster 功能的钱包为用户提供无缝体验。这些钱包会自动检测交易是否有资格获得赞助。当交易合格时,钱包会将 Gas 价格设置为零,无需任何用户干预。

为了说明这一点,我们将通过在 BOT Chain 上转移稳定币来完成整个过程。