5145 字
26 分钟
USDT 与 USDC 是如何转账的:稳定币、代币标准与链上确认
  1. 1区块链入门:数据可信、分布式共识与系统分层
  2. 2一笔交易是如何上链的:从钱包签名到区块确认
  3. 3USDT 与 USDC 是如何转账的:稳定币、代币标准与链上确认本文

对很多用户来说,区块链最常见的使用场景并不是购买 Bitcoin,而是充值、提现或转账 USDT、USDC。

但“转 USDT”并不是一个完整的技术描述。还必须说明:

  • 转的是哪一种资产;
  • 使用哪一条区块链网络;
  • 资产遵循哪一种代币标准;
  • 由哪个地址发出、发送到哪个地址;
  • 手续费由哪一种原生代币支付。

如果只看“USDT”或“USDC”这几个字,很容易把不同网络上的不同代币混为一谈。本文从一笔稳定币转账的实际过程出发,解释 USDT、USDC、ERC-20、TRC-20 和交易所充值之间的关系。

本文讨论的是技术机制,不构成投资、交易或资产安全建议。稳定币的发行方、支持网络、兑换政策和交易平台规则可能发生变化,实际操作应以对应官方文档和平台页面为准。

一、USDT 和 USDC 到底是什么#

稳定币不是美元本身#

USDT 和 USDC 都属于稳定币。它们的目标通常是让一个代币的市场价格尽量接近一个美元,但链上的代币并不是银行账户里的美元,也不是由区块链协议自动生成的现金。

更准确地说,USDT 和 USDC 是由发行方创建和管理的链上代币。发行方通过储备资产、发行和赎回机制,以及市场参与者的交易活动,尝试维持代币与美元之间的价格联系。

因此,用户持有 USDT 或 USDC,同时面对两类不同风险:

  1. 链上风险:私钥丢失、签名错误、选错网络、智能合约漏洞或区块链重组。
  2. 发行方和平台风险:发行方的储备、赎回政策、合规限制、冻结能力,以及交易所的账户和运营风险。

稳定币使用了区块链的可编程转账能力,但不等于它具有 Bitcoin 那种无需中心发行方的属性。

为什么同一个名称会出现在多条链上#

区块链本身通常不会自动知道“USDT”这个名称代表什么。某条链上的代币,实际上由一个智能合约或代币程序维护余额和转账规则。

因此,下面这些资产不能只因为名称相同就视为完全相同:

展示名称所在网络技术形式
USDTEthereum通常是 ERC-20 代币合约
USDTTron通常是 TRC-20 代币合约
USDCEthereum通常是 ERC-20 代币合约
USDCSolana由 Solana 的代币程序管理
USDC其他网络可能是原生发行,也可能是跨链或封装资产

实际支持网络和合约地址可能变化,表格只用于说明概念。判断资产时,至少要同时看网络、合约地址和发行方式。

二、USDT 和 USDC 与 ETH、TRX 是什么关系#

这是新用户最容易混淆的地方:

USDT 或 USDC 是要转移的代币;ETH、TRX 或 SOL 通常是支付网络手续费的原生资产。

例如,在 Ethereum 上发送 ERC-20 USDC:

  • USDC 合约记录发送者和接收者的 USDC 余额变化;
  • Ethereum 网络负责执行这次合约调用;
  • 发送者需要支付 ETH 作为 gas 费用。

在 Tron 上发送 TRC-20 USDT:

  • USDT 合约记录 TRC-20 余额变化;
  • Tron 网络负责执行合约调用;
  • 交易通常需要消耗带宽、能量等网络资源,用户可能需要 TRX 或由平台代付相关费用。

所以,“我有 100 USDT,为什么还不能把它转出去?”常见原因是钱包没有对应网络的原生手续费资产。USDT 余额只能支付 USDT 本身,不能自动替代 ETH、TRX 或 SOL。

交易所可能在内部替用户承担手续费,或者从提现金额中扣除手续费,但这属于平台的产品和结算规则,不代表底层区块链不需要资源费用。

三、ERC-20 和 TRC-20 是什么#

ERC-20:Ethereum 上的代币接口约定#

ERC-20 是 Ethereum 生态中广泛使用的一套代币接口标准。它规定了代币合约通常应提供的能力,例如:

  • 查询某个地址的余额;
  • 查询代币总供应量;
  • 从一个地址向另一个地址转账;
  • 授权某个地址代为使用代币;
  • 查询和修改授权额度。

ERC-20 本身不是一条链,也不是一种代币。USDT、USDC、DAI 等都可以各自部署为不同的 ERC-20 合约。

因此,“ERC-20 USDT”可以理解为:部署在 Ethereum 网络上、遵循 ERC-20 接口的 USDT 合约资产。

当用户点击转账时,钱包通常不是直接修改自己的余额,而是向代币合约发起 transfer 调用。合约检查发送者余额,然后减少发送者余额、增加接收者余额,并发出转账事件。

TRC-20:Tron 上的代币接口标准#

TRC-20 是 Tron 网络上的智能合约代币标准,设计目标与 ERC-20 类似。TRC-20 USDT 的余额和转账记录由 Tron 上的代币合约维护。

它和 ERC-20 USDT 使用不同的网络规则、交易格式、节点和浏览器。即使两者都显示为 USDT,也不能直接把一条链上的交易当成另一条链上的交易。

相同标准也不代表相同资产#

两个代币都遵循 ERC-20,并不表示它们是同一种资产;就像两个网站都使用 HTTPS,也不代表它们属于同一个公司。

判断一种代币,至少需要关注:

  1. 所在网络;
  2. 合约地址;
  3. 代币符号和精度;
  4. 发行方或官方验证信息;
  5. 钱包和交易平台是否支持它。

四、一笔 USDT 或 USDC 转账到底发生了什么#

下面以用户从个人钱包发送 ERC-20 USDC 为例。其他网络的细节不同,但整体思路相近。

第一步:用户填写转账信息#

用户输入:

  • 接收地址;
  • USDC 数量;
  • 所使用的网络;
  • 可能的备注或业务标识。

钱包会根据代币合约地址、代币精度和当前账户状态构造交易。用户看到的是“发送 50 USDC”,链上实际可能是向某个合约调用函数,并传入一个按照代币精度换算后的整数金额。

第二步:钱包生成合约调用#

对 ERC-20 代币来说,转账通常对应代币合约的转账方法。交易的目标地址可能是代币合约,而不是接收者地址。

这意味着区块链浏览器中经常会出现这样的结构:

  • 交易发送者:用户钱包地址;
  • 交易目标:USDC 或 USDT 合约地址;
  • 方法:代币合约的转账方法;
  • 参数:接收地址和代币数量;
  • 费用支付者:发送交易的账户;
  • 资产变化:代币合约内部余额变化。

普通用户容易误以为“交易目标不是接收者,所以没有转给接收者”。实际上,接收者和合约地址分别出现在交易的不同层次:外层交易调用合约,合约内部再把代币记到接收者名下。

第三步:钱包使用私钥签名#

钱包使用私钥对交易签名。签名授权的是一组具体数据,包括目标合约、调用参数、费用参数、nonce 等。

签名不代表:

  • 交易一定会被打包;
  • 合约执行一定成功;
  • 接收方一定会接受这笔钱;
  • 交易所在区块永远不会被回滚。

它只表示持有对应私钥的一方授权了这份交易。

第四步:交易支付网络手续费#

钱包把交易发送给节点后,节点会检查签名、账户余额、nonce、gas 等内容。

即使转账的是 USDC,Ethereum 节点仍然需要发送者支付 ETH 作为执行合约调用的费用。费用不是交给 USDC 合约的,而是支付给维护 Ethereum 网络的参与者。

同理,TRC-20 USDT 使用 Tron 网络资源;Solana 上的代币转账使用 Solana 网络规则。手续费资产由底层网络决定,而不是由代币名称决定。

第五步:交易进入交易池并等待打包#

通过节点的初步检查后,交易会被传播到网络,并等待出块者选择。

如果网络拥堵、费用参数过低、nonce 冲突、账户 ETH 不足,或者交易池策略拒绝它,交易就可能长时间处于待处理状态。

交易池中的交易还没有改变最终链上状态。此时区块浏览器可能能够查询到交易哈希,也可能只能在发送交易的节点上看到它。

第六步:合约执行转账#

交易被纳入区块后,节点按确定的顺序执行代币合约:

  1. 检查发送者是否有足够的代币余额;
  2. 检查转账参数和合约状态;
  3. 减少发送者在合约中的余额;
  4. 增加接收者在合约中的余额;
  5. 发出代币转账事件;
  6. 更新交易执行结果和消耗的 gas。

这里的余额变化是合约存储中的变化,不是 Ethereum 或 Tron 的原生余额变化。用户的 ETH 或 TRX 余额通常只会因为手续费减少,USDC 或 USDT 余额则由代币合约另外记录。

第七步:钱包和交易所读取结果#

交易进入区块后,钱包可以通过节点查询交易回执、代币转账事件和最新状态。交易所则会监听相关网络和合约地址,发现充值地址收到符合条件的代币后,再把金额记入交易所内部账户。

这就是为什么“链上已经成功”与“交易所账户已经到账”可能不是同一时刻:前者是区块链状态,后者还要经过交易所的监听、确认数要求、风控和内部记账。

五、为什么选错网络可能导致不到账#

假设交易所给出了同一个收款地址,但充值页面分别提供 Ethereum、Tron 和其他网络选项。用户选择网络时,实际上是在选择一套不同的账本和转账规则。

EVM 地址相同,不代表资产在同一条链上#

Ethereum、Arbitrum、Optimism、Polygon 等网络通常使用相似的地址格式。一个地址可能在多条 EVM 网络上都显示为 0x 开头。

但地址格式相同只说明它们使用相似的密钥和地址编码规则,不代表这些网络共享同一个余额。

在网络 A 上向某地址发送 USDC,不会自动让网络 B 上的交易所账户增加 USDC。交易所是否能够找回或人工处理,还取决于平台是否支持该网络、私钥是否由平台控制,以及平台的恢复政策。

TRC-20 和 ERC-20 不是同一条网络#

TRC-20 USDT 记录在 Tron 网络上,ERC-20 USDT 记录在 Ethereum 网络上。它们的交易哈希、区块浏览器、手续费和合约地址都不同。

当充值页面写着“仅支持 ERC-20 USDT”时,发送 TRC-20 USDT 即使目标地址看起来可用,也不应假设平台会自动识别。

备注和 Memo 也可能是必要的#

某些交易所使用共享充值地址,通过 Memo、Tag 或 Payment ID 区分用户。此时即使网络和资产选择正确,遗漏备注也可能导致自动入账失败。

是否需要 Memo 取决于具体资产和平台,不是所有 USDT、USDC 转账都需要。发送前应以收款平台当前充值页面为准。

六、如何通过区块浏览器确认一笔转账#

不要只根据钱包弹出的“发送成功”判断交易完成。可以按下面的层次检查。

1. 先确认网络#

使用与交易网络匹配的浏览器。例如,Ethereum 交易应在 Ethereum 对应的浏览器查询,Tron 交易应在 Tron 对应的浏览器查询。不同网络的交易哈希可能格式相似,但不属于同一个查询空间。

2. 查询交易哈希#

交易详情通常可以看到:

  • 交易状态;
  • 所在区块;
  • 发送地址和目标地址;
  • 手续费;
  • 时间和确认信息。

如果只看到交易哈希,但没有区块位置,交易可能还在交易池中,或者当前浏览器并没有索引到它。

3. 查看代币转账记录#

对于 ERC-20 或 TRC-20 资产,不能只看原生资产的余额变化,还要查看 Token Transfers、Transfers 或类似的代币转账栏目。

重点核对:

  • 代币合约地址是否是官方或平台认可的合约;
  • 发送地址是否是自己的地址;
  • 接收地址是否完全匹配;
  • 数量和代币精度是否正确;
  • 交易状态是否成功。

4. 检查执行结果#

一笔交易可能已经进入区块,但合约执行失败。失败交易通常不会产生预期的代币余额变化,但手续费可能已经消耗。

因此需要同时检查交易状态和代币转账事件,不能仅凭“交易已经上区块”就断定稳定币已经到账。

七、为什么交易成功了,交易所仍然没有到账#

常见原因包括:

使用了平台不支持的网络#

链上交易本身可能成功,但交易所没有监听或不接受该网络。此时资产不一定消失,但能否找回取决于平台的人工处理能力和政策。

使用了错误的代币合约#

假代币、仿冒代币或未被平台支持的版本,也可能在区块浏览器中显示为成功转账。代币符号可以重复,必须核对合约地址。

确认数还不够#

交易所通常不会在交易刚进入区块时立即入账,而是等待一定数量的后续区块,以降低链重组或节点同步差异带来的风险。

忘记 Memo 或 Tag#

共享地址系统需要额外标识来匹配账户。缺少标识时,资产可能已经到达平台控制的地址,但系统无法自动归属到具体用户。

平台暂停充值或维护#

平台可能因为钱包升级、网络拥堵、合规要求或安全事件暂停某种资产充值。此时链上转账和平台入账是两个独立系统。

处理这类问题时,最有用的信息通常是:网络名称、资产名称、合约地址、交易哈希、接收地址、Memo/Tag,以及平台充值页面的截图或记录。

八、USDT 和 USDC 的中心化特征#

发行方可以拥有管理权限#

稳定币合约可能包含发行、销毁、暂停或限制某些地址的能力。具体权限取决于代币合约设计和发行方的治理方式。

这意味着稳定币并不等同于“任何人都无法阻止的数字现金”。在满足法律、合规或安全条件时,发行方可能对特定地址采取限制措施。用户仍然可以在区块浏览器中看到地址和交易,但受限地址未必能够像普通地址一样自由转移资产。

资产透明不代表风险透明#

区块浏览器可以公开展示代币供应量、余额和转账记录,但这不能自动证明发行方的储备资产足额,也不能替用户消除托管、法律和市场风险。

储备构成、鉴证报告、赎回条件和风险披露需要查看发行方发布的官方材料。不同发行方披露的范围、频率和审计/鉴证形式也可能不同。

原生资产、跨链资产和封装资产要分开#

同一个品牌的稳定币可能通过不同方式出现在一条链上:

  • 发行方直接在该链部署和管理的资产;
  • 通过跨链机制转移或映射的资产;
  • 第三方协议发行的封装资产;
  • 交易所或应用内部记账的余额。

它们的赎回路径、合约权限和风险承担者可能不同。不能因为名称相同,就认为它们可以无条件一比一兑换或由同一主体负责。

九、几个常见误区#

“我转的是 USDT,所以手续费也应该用 USDT 支付”#

错误。手续费由底层网络决定。ERC-20 USDT 通常需要 ETH,TRC-20 USDT 通常涉及 TRX 和 Tron 网络资源,其他网络也有各自的原生资产和费用规则。

“地址一样,网络就一样”#

错误。尤其是 EVM 网络之间,地址格式相同并不表示余额和交易互通。

“交易哈希存在,就说明已经到账”#

错误。还要确认交易进入了正确网络的有效区块、执行成功、代币合约正确,并满足收款平台的确认和入账条件。

“浏览器显示 USDT,所以一定是真 USDT”#

错误。代币符号可以重复。需要核对合约地址和官方来源。

“稳定币一定等于一美元”#

错误。稳定币的目标是维持价格稳定,不是协议层面永远保证一比一兑换。价格、流动性、赎回渠道和发行方信用都可能影响实际价值。

十、一个实用的转账检查清单#

发送 USDT 或 USDC 前,可以依次确认:

  1. 资产名称是否正确:USDT、USDC,还是其他同名代币?
  2. 网络是否正确:Ethereum、Tron、Solana 或平台指定的其他网络?
  3. 接收地址是否完整复制,没有首尾空格或字符缺失?
  4. 是否需要 Memo、Tag 或其他备注?
  5. 钱包是否有足够的 ETH、TRX、SOL 等手续费资产?
  6. 代币合约地址是否与收款平台公布的地址一致?
  7. 先发送小额测试是否更合适?
  8. 发送后是否保存交易哈希?
  9. 是否在正确网络的区块浏览器中核对交易状态?
  10. 是否满足平台所需的确认数和入账条件?

大额转账尤其不应只凭“地址看起来一样”或“代币名称一样”进行判断。区块链交易通常不可逆,平台能否协助找回并没有统一保证。

结语#

USDT 和 USDC 的转账,本质上是某条区块链上的代币合约或代币程序,根据用户签名执行一次状态变化。

一笔看似简单的稳定币转账,至少同时涉及:

  • 发行方发行的代币规则;
  • 所在区块链的账户和交易模型;
  • ERC-20、TRC-20 等代币接口标准;
  • ETH、TRX、SOL 等网络手续费;
  • 节点传播、交易池和区块确认;
  • 交易所监听和内部记账;
  • 发行方的冻结、赎回和合规权限。

理解这些层次后,面对“选哪条链”“为什么需要手续费”“为什么链上成功但平台未到账”等问题,就能把它们拆解成可验证的技术问题,而不是把所有结果都归结为一个模糊的“区块链转账”。

参考资料#

本文参考了以下官方或协议资料。稳定币支持的网络、合约地址和平台规则可能变化,实际操作时应以发行方和收款平台当前页面为准。

  1. Ethereum ERC-20 Token Standard —— ERC-20 的接口、转账、授权和事件规范。
  2. Ethereum Developer Documentation: ERC-20 Token Standard —— Ethereum 官方对 ERC-20 代币机制的说明。
  3. Ethereum Developer Documentation: Gas and fees —— Ethereum gas、交易费用和执行资源。
  4. TRON Developer Documentation: TRC-20 —— Tron 官方对 TRC-20 代币标准的说明。
  5. Circle Developer Documentation: Stablecoins —— Circle 官方关于 USDC 和稳定币开发者集成的资料。
  6. Circle: USDC Transparency —— Circle 关于 USDC 储备与透明度的官方说明入口。
  7. Tether: Transparency —— Tether 关于储备、流通量和透明度的官方说明入口。
  8. Ethereum Developer Documentation: Transactions —— Ethereum 交易、签名、nonce 和交易执行流程。
USDT 与 USDC 是如何转账的:稳定币、代币标准与链上确认
https://blog.xqcherry.top/posts/blockchain/stablecoin-transfer-usdt-usdc/
作者
xqcherry
发布于
2026-09-26
许可协议
CC BY-NC-SA 4.0