由 Gelato 提供支持的 Gasless 自动化跨链传输

  • gelato
  • 发布于 2023-12-01 11:36
  • 阅读 24

本文介绍了如何使用 Gelato 的 Functions 和 Relayer 服务,结合 Circle 的 CCTP 协议,实现无需原生代币即可完成 USDC 跨链转移的功能。通过 Gasless CCTP SDK,开发者可以轻松地将此功能集成到他们的应用中,从而使用户可以使用 USDC 支付交易费用,简化跨链资产转移的流程。

简介

  • Circle 的 CCTP 促进通过原生销毁和铸造进行无需许可的 USDC 转移
  • 原生销毁和铸造涉及源链和目标链上的交易,这需要 gas 和手动用户交互
  • Gelato 实现了无需 gas 且自动化的跨链转移,其中 USDC 本身涵盖了交易费用
  • 开发者可以利用新的 Gasless CCTP SDK 轻松集成到他们的应用程序中

在链之间移动 Token 是实现区块链互操作性的关键组成部分,允许用户在多个网络上使用他们的资产,并为他们提供访问各种生态系统的途径。然而,现有的锁定和铸造桥会分割流动性,并对合成 Token 的支持构成安全隐患。

Circle 的跨链传输协议 通过启用在链之间通过原生销毁和铸造进行无需许可的 USDC 传输来解决这些限制。然而,仍然存在一个准入障碍——需要原生 Token 来分别促进源区块链和目标区块链上的交易。通过将 Gelato 的 Functions 和 Relayer 服务与 Circle 的 CCTP 相结合,此过程得到了简化,同时保持了最小化的信任。在这篇文章中,我们将探讨将无需 gas 的跨链传输集成到你的下一个项目中的简单过程!

工作流程

  1. 快速入门指南
  2. CCTP 的工作原理
  3. 愿景
  4. 无需 Gas 且自动化的 CCTP
  5. 集成
  6. 结论

快速入门指南

GitHub 上提供了一个示例实现以及快速入门说明和文档。该存储库演示了从 Avalanche 到 Arbitrum 的 10 USDC 的跨链传输。 https://github.com/gelatodigital/gasless-cctp:

import { ethers } from "ethers";
import { transfer, ChainId } from "./src/cctp-sdk";
const PRIVATE_KEY = ••;
const main = async () => {
const wallet = new ethers.Wallet(PRIVATE_KEY);
const taskId = await transfer(
wallet.address,
ethers. parseUnits ("100", 6),
ethers. parseUnits("1", 6),
ethers. parseUnits ("1", 6),
ChainId. Arbitrum,
ChainId. Avalanche,
wallet.signTypedData. bind (wallet)
console. log("https://api.gelato.digital/tasks/status/" + taskId);
};

注意: 我们绑定 ethers 签名类型化数据方法,以便“this”指的是钱包。

CCTP 的工作原理

  1. USDC 在源链上被销毁,这会发出一个链上事件
  2. Circle 观察到此事件并签署一个证明 (attestation) 签名,授权在目标链上进行铸造
  3. 然后使用提供的证明目标链铸造 USDC

在这种情况下,限制是步骤 13 都需要在链上进行交易,因此需要原生 Token 来支付相关的成本。步骤 2 可能需要长达约 13 分钟,并且用户必须在场才能启动最终交易,这使得它成为一个相对较长的过程。此外,一旦转移,又需要原生 Token 才能与目标链上的 USDC 进行交互。从本质上讲,虽然 USDC 可以自由地在链之间移动,但原生 Token 却不能。

愿景

想象一下,我们可以使用 USDC 本身在链之间移动 USDC 并支付所有相关费用。例如,用户可以将 USDC 从 Ethereum 转移到 Avalanche。一旦启动,转移就会在后台可靠地处理,并且相关的交易成本以及后续费用都使用 USDC 本身支付。在任何时候,用户都不需要担心获取和维护各种每个链的原生 Token (ETH/AVAX)。消除这种依赖性可以将交易费用支付与原生 Token 分离开来,从而实现资产的统一。这意味着 USDC 充当区块链互操作性层和通用交易支付解决方案,从而消除了 gas Token 的复杂性。

无需 Gas 且自动化的 CCTP

通过利用 Gelato Functions 和 Gelato Relay 自动化整个过程,同时将交易费用支付从用户那里抽象出来,这成为了现实。Relayer 代表用户将交易放在链上,因此会产生需要补偿的 gas 成本。这可以通过两种方式实现:通过使用 1Balance 赞助交易,或者在交易执行期间同步支付 relay 费用。后者是理想的,因为我们可以使用一部分转移的 USDC 来支付两条链上的费用。Functions 允许我们根据任意链上和链下数据(API、子图等)执行链上交易。这允许我们索引链上转移请求并定期获取其相应的证明。一旦 Circle 发布证明,Web3 Function 就会在目标链上 relay 最终交易,将 USDC 铸造给用户。

以下是流程的概述:

  1. 提示用户预先签署三个链下签名。其中两个签名授权使用 ERC-3009 在源链和目标链上进行 USDC 转移。第三个签名签署元交易本身,使用 ERC-2771 强制执行最大费用和目标域意图。由于所有数据都经过链上验证以确认已由用户签名,因此我们避免了任何信任假设。预先签名可以改善用户体验,因为用户无需在整个过程中都必须在场。
  2. Relay 一笔交易以在源链上 销毁 USDC。这会发出 Circle 和 Web3 Function 观察到的事件。
  3. Web3 Function 索引所有事件并定期从 Circle 的证明服务中获取 证明 签名。
  4. 一旦发布证明,Web3 Function 就会使用证明签名在目标链上 relay 最终交易,以将 USDC 铸造 给用户。

中间的 转发器 (Forwarder) 合约促进了 relay 费用支付。这些合约部署在每个与 CCTP 兼容的网络上,从而允许任何链之间的转移。

注意: 无需 gas 是指在交易费用支付期间不存在原生 Token。Gas 仍然由 relayer 支付,但从用户那里抽象出来,并以 USDC 支付。

集成

上面概述的所有逻辑都打包到新的 Gasless CCTP SDK 中,从而可以轻松集成。现有的桥可以实现此功能,其他 dApp 也可以使用此功能来支持各种用例——没有限制。例如,Avalanche 上的 NFT 市场可以支持来自各种其他区块链的 USDC 支付,同时仍然保持 Avalanche 原生。 GitHub 上提供了一个示例前端实现: https://github.com/gelatodigital/gasless-cctp-frontend

SDK 提供了一种转移方法,该方法在底层结合了 Gelato Relay 和 Functions 以及 Circle 的 CCTP,以在链之间无需 gas 地转移 USDC。调用者提供 EOA 的地址,USDC 将从源链上的 EOA 转移到目标链上的 EOA。下一个参数是要转移的 USDC 总金额,包括费用金额。这些费用通过分别指定源链和目标链上的最大费用金额来限制。在此之后,指定源链和目标链。最后一个参数是一个任意的回调函数,负责签署类型化数据,并允许调用者定义自定义签名逻辑以及执行 UI 更新和错误处理。

await transfer(
owner, // owner 账户地址
amount, // 包括费用的 Token 总量
srcMaxFee, // 源链上的最大 relay 费用
dstMaxFee, // 目标链上的最大 relay 费用
srcChainId, // 源链 ChainId
dstChainId, // 目标链 ChainId
signTypedData // 用于签署类型化数据的回调
);

结论

Gasless CCTP 为进一步的区块链互操作性铺平了道路,从而可以实现无缝且安全、与 gas Token 无关的资产转移。通过利用 Gelato Relay 和 Functions,USDC 充当通用费用支付解决方案,从而消除了区块链的复杂性并统一了不同的生态系统。通过 Gasless CCTP SDK 的实现,可以轻松获得此功能。

关于 Gelato

Gelato 是一个 Web3 云平台,使开发者能够创建自动化的、无需 gas 的且具有链下感知能力的 Layer 2 链和智能合约。400 多个 web3 项目多年来一直依赖 Gelato 来促进 DeFi、NFT 和游戏领域的数百万笔交易。

  • Gelato RaaS: 一键部署你自己的定制 ZK 或 OP L2 链,其中内置了原生账户抽象和所有 Gelato 中间件。

  • VRF: Gelato VRF 为区块链应用程序提供快速、链上可验证的随机性。

  • Functions: 无服务器、事件驱动的函数,用于自动化区块链交易。

  • Relay: 通过易于使用的 API,让你的用户可以访问可靠、稳健且可扩展的无需 gas 的交易。

  • 账户抽象 SDK: Gelato 与 Safe 合作构建了一个功能齐全的账户抽象 SDK,将 Gelato 业界最佳的无需 gas 的交易能力与业界最安全的智能合约钱包相结合。

订阅我们的新闻通讯并打开你的 Twitter 通知以获取有关 Gelato 生态系统的最新更新! 如果你有兴趣成为 Gelato 团队的一员并构建互联网的未来,请浏览空缺职位并在 此处 申请。

  • 原文链接: gelato.cloud/blog/gasles...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
gelato
gelato
The Web3 Developer Cloud. Launch your own chain via our #1 Rollup-As-A-Service platform.