Circle CCTP 跨链 USDC 到底是怎么工作的?Burn-and-mint 一次讲透

稳定币 · 2026-05-30 · 比特三棱镜编辑部
AI 搜索

如果你用过 Stargate、Wormhole、cBridge 把 USDC 从以太坊送到 Arbitrum,可能会注意到一个奇怪的现象:到账的 USDC 有时候是「原生 USDC」,有时候是某个桥的「wrapped USDC」。后者在某些 DEX 上深度差、清算时打折,甚至时不时被列为高风险资产。Circle 在 2023 年推出的 **CCTP(Cross-Chain Transfer Protocol)**就是为了解决这个问题。到 2026 年 5 月,CCTP V2 已经在以太坊、Arbitrum、Base、Optimism、Polygon、Solana、Avalanche、Aptos、Sui、Noble 等 14 条链上跑起来。这篇把它的机制拆开讲清楚。

Circle CCTP 跨链 USDC 销毁铸造机制开篇示意

它不是桥,这点要先讲清楚

传统的跨链桥做的是「锁仓 + 铸 wrapped 资产」:你把 USDC 锁进以太坊上的桥合约,桥在 Arbitrum 上铸出一个 IOU,叫 anyUSDC、axlUSDC、Wormhole USDC 这种东西。等你想跨回去,再把 IOU 销毁、解锁原 USDC。

这套机制有两个老问题:

  1. 桥被攻破,IOU 就成空气。2022 年 Ronin 桥被偷 6 亿,2022 年 Wormhole 被偷 3.25 亿,2022 年 Nomad 被偷 1.9 亿,wrapped 资产瞬间脱锚。
  2. 同一种 USDC 在不同链上有十几个版本。流动性碎掉,DEX 上要开十几个 pool 才能让它们互换,极其浪费。

CCTP 解决这两个问题的办法非常简单:让 Circle 自己来发。在 A 链上,你把 USDC 销毁;Circle 的网络在 B 链上直接铸新的原生 USDC给你。整个过程没有桥合约托管你的资产,也没有 wrapped 版本,跨完链你拿到的就是 B 链上 Circle 官方发行的 USDC。

如果你想先回顾一下传统跨链桥的攻击史,可以读 /tutorial/crosschain-bridge-hack-history.html 那篇。

一笔 CCTP 转账,链上发生了什么

一个用户在 Arbitrum 上把 1000 USDC 跨到 Base,完整流程如下:

  1. Arbitrum 上销毁。用户调 TokenMessenger.depositForBurn(1000 USDC, Base 链 ID, 接收地址)。合约把 1000 USDC 立刻从用户钱包里销毁(burn),并发出一个 MessageSent 事件。
  2. Circle attestation 网络监听。Circle 跑了一组链下证明节点,它们订阅每条链上的 MessageSent 事件,看到后会用 Circle 的密钥对这条销毁消息做签名
  3. 生成 attestation。大约 12~20 个区块确认后(以太坊主网会慢一些),Circle 的 API 把签名好的 attestation 暴露出来,任何人都可以查。
  4. Base 上铸造。用户(或一个代付的 relayer)拿着这个 attestation 调 Base 链上的 MessageTransmitter.receiveMessage(签名,消息)。Base 链上的 USDC 合约直接 mint 1000 USDC 给目标地址。

整套流程没有任何资产被「锁」在桥里。Arbitrum 上的 USDC 数量真的少了 1000,Base 上的 USDC 数量真的多了 1000。这意味着 USDC 在全网的总供应量恒定,Circle 是唯一的发行方/销毁方。

CCTP V1 vs V2:速度差距非常明显

维度 CCTP V1 CCTP V2(2024 起)
典型确认时间 13~19 分钟(以太坊),其他链 5~10 分钟 快速通道 8~20 秒,标准 13 分钟
是否支持 Hook 支持,可以跨链同时执行任意调用
Fast Transfer 费率 不适用 约 1 bps(0.01%)
风险后备 Circle 撤回攻击地址的能力 同 V1,加上快速通道额度上限

V2 的「Fast Transfer」是 Circle 自己出资垫付:你在源链上销毁后,Circle 用自己的资金池在目标链上先给你 mint,等 attestation 跑完再把钱补回 Circle 自己的池子。代价是 1 bps 的 fast fee。对零售用户来说几乎不可感知,但这一改造把跨链体验从「等十几分钟」变成了「等十几秒」,直接干掉了多数桥的存在理由。

Hook 这个特性更重要:你可以在 Base 链上直接绑定一个目标合约调用,比如「跨完 USDC 直接存进 Aave」。原生 USDC 到账 + 自动调用,这是普通桥做不到的,因为普通桥的 wrapped USDC 在目标合约里不被认。

CCTP V1 与 V2 速度对比与 Hook 机制示意

费用比想象中低,但要看「执行」而不是「桥费」

CCTP 协议本身不收费。你的成本只有三块:

  • 源链销毁的 gas(以太坊主网最贵,Base/Arbitrum 几乎可忽略)
  • 目标链铸造的 gas(几分钱到几毛钱)
  • V2 fast fee,如果用快速通道(1 bps,大额转账才有意义,小额可走标准模式免费)

对比 Stargate 这种 LayerZero 桥的 5~10 bps,CCTP 在跨 USDC 这件事上几乎降维。所以你会看到 2025 年下半年开始,大部分交易所、聚合器、钱包都把 USDC 跨链默认路由切到了 CCTP。Uniswap、Phantom、MetaMask 的跨链 swap 在涉及 USDC 时,底层就是 CCTP

如果你想完整理解 USDC 这个产品的合规与储备结构,可以读 /tutorial/usdc-vs-usdt-comparison.html

它会替代所有桥吗?不会

CCTP 有两个明确的局限:

  1. 只能跨 USDC。你跨 ETH、跨 BTC、跨 SOL、跨任何 ERC-20 都没用。要跨 USDT,Tether 自己也在做类似的产品(2024 年开始的 USDT0 走 LayerZero),但 Tether 的覆盖远不如 CCTP 广。
  2. 集中度依赖 Circle。如果 Circle 的 attestation 网络出问题,所有的 CCTP 跨链都会卡住。Circle 也保留了冻结销毁消息的能力——理论上美国监管可以要求 Circle 拒绝给某个地址 mint。

普通用户而言,只要你跨的是 USDC,默认就用 CCTP。对协议而言,如果你的产品需要跨链 USDC 流动性,直接集成 CCTP,把传统桥留作 fallback。对桥项目而言,这是个生死信号——USDC 这块最大的跨链流量已经被 Circle 自己吃掉了,只能往「跨任意资产」的方向卷。

想看更广义的稳定币基础概念,可以回到 /tutorial/stablecoin-guide.html/tutorial/can-stablecoin-redeem-fiat-1-to-1-mechanism.html

一个开发者侧的小细节:谁来付目标链 gas

CCTP 流程里有一个容易被忽略的点:目标链的 mint 调用需要有人付 gas。如果你只是从一个 EOA 钱包把 USDC 跨过去,你需要先在目标链上拥有一些 ETH(或对应链的 native token)才能调用 receiveMessage。这对 onboard 新用户是一个非常糟糕的体验——「你说让我用 Base,但我得先有 Base 上的 ETH 才能收到我的 USDC」。

为了解决这个,大多数 dApp 集成 CCTP 时都会跑一个 relayer:用户在源链完成 burn,relayer 用自己的 ETH 在目标链上代为 mint,然后从用户的 USDC 里扣一小笔(几分美元)作为补偿。Circle 自家也提供了官方 relayer(CCTP V2 Fast Transfer 模式),开发者只需要付那 1 bps fast fee,gas 由 Circle 兜底。这套机制让普通用户感觉不到「跨链需要付目标链 gas」这件事的存在,从产品角度看,这才是 CCTP 用户体验真正打透传统桥的关键一步

不动声色的关键基础设施

CCTP 这套机制看上去不性感——没有代币、没有 TVL 排名、没有空投。但它在 2025-2026 年成了链上美元的高速公路,Circle 没有发声多少,但 USDC 跨链流量的 60% 以上已经走它。理解它的工作原理,对你做任何涉及多链 USDC 的产品决策、对你判断哪些「USDC 跨链项目」还有价值,都是一个分水岭。下次你在某个 dApp 上看到「Bridge USDC via CCTP」的选项,直接点它——你拿到的就是真的 USDC,不是某个桥发行的 IOU。