全部文章
7 分钟阅读

TON 跨链兑换到 Ethereum:原子 HTLC 全流程详解

通过原子 HTLC 锁定完成 TON → Ethereum 跨链兑换:quote、build、track、disclose 与 refund 全流程。非托管——私钥与资金始终在你手中。

跨链兑换TONEthereumHTLC非托管MCP

设想这样一个场景:你的 AI 智能体在 TON 上持有 USDT,用户说“帮我换成 Ethereum 上的 ETH”。常规路径是把钱转到中心化交易所,等到账,手动兑换,再提现到目标网络。智能体走不了这条路:它没有交易所账户,没有 KYC,更关键的是,每一步都有人替你保管资金。任何一个环节卡住,资产就悬在两条链之间,没人保证能退回来。

行业的经典答案是找个中间人做桥,把钱“暂存”给它——而被黑掉几亿美元的,恰恰就是这类桥。对自主运行的智能体来说这不可接受:它需要的是一种要么整笔成交、要么各自拿回本金的兑换方式,而且不依赖任何可信中间人。TON 到 Ethereum 的跨链兑换正是靠原子化的 HTLC 资金锁定(escrow)解决了这个问题。下面我们借助 TONNode MCP 服务器的真实工具,把它的内部机制拆开讲清楚——没有托管,也没有魔法。

什么是 TON → Ethereum 跨链兑换,为什么说它是原子的

所谓跨链兑换,就是把一条链上的资产换成另一条链上的资产,而两条链之间并没有一个公共账本,能把两侧的操作记进同一笔交易。TON 在物理上“看不到”Ethereum 上的交易,Ethereum 也看不到 TON 上的。没有共同的裁判。所以“我先转——你再转”这种朴素方案会撞上信任问题:谁先动手,谁承担风险。

这里的关键词是原子性。原子操作要么完整执行,要么完全不执行,不存在“执行了一半”的中间态。放到兑换场景里,这就是一条硬保证:要么两侧都成交、各自拿到想要的资产,要么交易回滚、各自取回原有资金。“我付了钱却没收到货”这种结局,在这套机制里根本不存在。

实现方式不是信任中间人,而是密码学加超时机制——也就是 HTLC。

通俗版原子 HTLC:哈希、秘密值和超时

HTLC 全称 Hash Time-Locked Contract——“哈希时间锁合约”。听起来唬人,其实思路很生活化。想象一个装了两把锁的银行保险柜:

  • 哈希锁。 只有知道秘密值的人才能打开柜子,秘密值就是一串很长的随机字符串 S。柜子里存的不是秘密值本身,而是它的“指纹”,即哈希 H = hash(S)。从指纹无法还原秘密值,但任何人只要见到秘密值,立刻就能验证指纹确实来自它。资金就锁定在“对应这个哈希”的锁定合约里。
  • 时间锁(超时)。 如果在规定时间内秘密值始终没有被披露,柜子会自动解锁,把资金退还给最初存入的人。

两条链串起来之后,原子性是这样实现的:

  1. TON 一侧,你的 GRAM/USDT 被锁进以哈希 H 为条件的锁定合约。
  2. 对手方(做市商)看到锁定后,在 Ethereum 上用同一个 H 镜像出一份锁定——把你要的 ETH 预留出来。
  3. 想在 Ethereum 上取走 ETH,你必须披露秘密值 S。而披露 S 意味着它在区块链上公开。
  4. 对手方看到 S,用同一个秘密值从 TON 侧锁定合约中取走你的资金。

整笔交易的两条腿共用同一个秘密值。只要你为了领取 ETH 把它披露出来,TON 那一侧也就随之解锁。想只解锁一条腿而不放开另一条,做不到。如果中途出了问题、S 始终没有披露——超时之后双方各自退款。“原子性”正来自这里:不存在第三种结局。这套方案在构造上就不需要信任任何中间服务器。

五个工具串起完整流程:quote → build → track → disclose/refund

在 TONNode 里,整个 HTLC 兑换被拆成五个工具,调用顺序与 HTLC 的逻辑一一对应。

1. get_crosschain_quote — 报价

第一步先问清条件:你在 TON 上的资产能换到多少 ETH(或 Ethereum 上的 USDT),流动性和手续费都算在内。返回汇率、预期到手金额和路由参数。这是只读操作——不锁定任何东西,也不签名。

2. build_crosschain_swap_tx — 未签名的 HTLC 锁定交易 + 秘密值

交易在这一步诞生。该工具返回一笔未签名的交易,它会把你的资金按秘密值的哈希锁进 HTLC 锁定合约;同时还会单独返回秘密值 S 本身。关键点:秘密值交到你手上,而不是留在服务器。交易由你的钱包通过 TonConnect 签名,服务器碰不到签名环节。后面正是靠你披露这个秘密值来完成整笔交易;而如果交易卡住,被锁定的资金会在超时后退回给你,秘密值无需披露。

3. track_crosschain_swap — 两条链上的交易阶段

签名并发出锁定交易之后,你需要知道交易进行到哪一步了:你的钱在 TON 上锁好了没有,Ethereum 那边有没有出现对应的锁定,是不是已经万事俱备可以结算。track_crosschain_swap 同时展示两条链上的阶段——这是你俯瞰两条区块链的统一视角。反复调用它,直到交易进入“可以披露秘密值”的状态。

4a. disclose_crosschain_secret — 披露秘密值,完成结算

当跟踪确认对手方已就绪、资金已在链上锁定后,你就披露秘密值。这是最后一步:披露即触发结算——你取走 ETH,对手方用同一个秘密值取走你的 GRAM/USDT。务必先通过 track_crosschain_swap 确认链上就绪之后再调用它——过早披露秘密值,等于在保险柜的另一半还没装满之前就把钥匙交了出去。

4b. build_crosschain_refund — 交易卡住时取回资金

兜底场景。如果对侧始终没有履约——对手方没有镜像出锁定、超时已过——build_crosschain_refund 会构建一笔未签名的退款交易,把你的资金从锁定合约中取回。这正是第二把锁——时间锁。秘密值不披露,被锁定的资金退回给你。这是原子性的应急保险丝:卡住的交易不会吞掉你的钱。

整条路径示意:

get_crosschain_quote      → 我能换到多少
build_crosschain_swap_tx  → 未签名的 HTLC-tx + 秘密值(秘密值在你手里)
        ↓ (在钱包中签名并发送)
track_crosschain_swap     → TON 和 Ethereum 两侧的阶段
   ├─ 链上就绪     →  disclose_crosschain_secret   → 结算
   └─ 卡住、超时   →  build_crosschain_refund      → 退款

接好服务器之后,你只需要用自然语言吩咐智能体——它会自己把工具链排好:

把我 TON 钱包里的 50 USDT 兑换成 Ethereum 网络上的 ETH。
先给我看报价(get_crosschain_quote)。
如果汇率合适,就构建 HTLC 锁定交易(build_crosschain_swap_tx),
交给我签名。之后持续跟踪这笔交易(track_crosschain_swap),
等两侧都在链上就绪后,披露秘密值完成结算。
如果超时前一直没有进展,就构建退款交易。

为什么它是非托管的:服务器不签名、不持有私钥

回到开头的痛点。普通跨链桥的危险在于你把资金交给中间人控制。TONNode 的设计完全不同,这也是它的原则性立场:服务器永远不签名,也不保管资金和私钥

落到 HTLC 锁定的实践上,这意味着:

  • build_crosschain_swap_tx 返回的是未签名交易——在你用自己的钱包通过 TonConnect 签名之前,什么都不会被锁定。
  • 秘密值 S 在你手里,不在服务器上。 没有你的秘密值,谁也无法替你完成结算。
  • 超时退款(build_crosschain_refund)同样构建为未签名交易,等你来签。
  • 就连生成的钱包(generate_wallet 工具)也是交付给你,不在服务器上留存。

即使服务器不可用或被攻破,它在物理上也卷不走你的资金,更无法在没有你的签名和秘密值的前提下完成这笔交易。换句话说:原子 HTLC 保护你不被对手方坑,非托管架构保护你不被服务本身坑。关于这套模型的更多细节,见托管与非托管 MCP 对比以及面向 TON 智能体的非托管兑换这两篇。

作为对比:TON Foundation 官方的 @ton/mcp 是托管型智能体钱包——它持有 operator 私钥并自行签名,且只在 TON 网络内工作,没有跨链能力。这个差别摆得很坦白:那边是以信任私钥为代价换取自主支出,这边则是非托管,外加走出 TON 的能力。

支持哪些网络:Ethereum、Arbitrum、Base、BNB、Polygon、Avalanche

在这套流程里,TON 永远是交易的源头,目标网络则是六条 EVM 链之一:

  • Ethereum
  • Arbitrum
  • Base
  • BNB Chain
  • Polygon
  • Avalanche

所有网络的机制完全一致——原子 HTLC 锁定。TRON 暂不支持。 如果你为了低手续费瞄准 L2,可以看单独的一篇解析:TON → Arbitrum 跨链兑换——流程相同,只是目标网络不同。至于智能体为什么需要这个、它对 TON 网络意味着什么价值,见第一笔跨链兑换与它对 TON 的价值

如何接入 MCP 并跑通第一笔跨链兑换

TONNode 是面向 TON 的 hosted MCP 服务器。MCP(Model Context Protocol)是 AI 智能体(Claude、Cursor、ChatGPT/Codex 以及任何 MCP 客户端)调用工具的标准协议。工具总共 16 个,全部 16 个在任何套餐都可用——你付费买的只是吞吐量。

本地、免费

公开配置自带完整的读取工具集,一条命令即可装好——npx -y @tonnode/mcp

{
  "mcpServers": {
    "ton": {
      "command": "npx",
      "args": ["-y", "@tonnode/mcp"]
    }
  }
}

把它加进你的 MCP 客户端配置(Claude Desktop、Cursor、Codex 或任何兼容 MCP 的客户端),get_crosschain_quotebuild_crosschain_swap_txtrack_crosschain_swapdisclose_crosschain_secretbuild_crosschain_refund 这些工具就对智能体可用了。@tonnode/mcp 包是开源的(MIT),发布在 npm 和 GitHub(tonnode/mcp)上,基于 TON 原生的 ADNL 协议工作,没有 HTTP 中间层。

Hosted——带上自己的密钥

想要有保障的吞吐量,就接入 hosted 端点并带上自己的密钥:

{
  "mcpServers": {
    "ton": {
      "type": "http",
      "url": "https://mcp.tonnode.io/mcp",
      "headers": { "Authorization": "Bearer tn_live_…" }
    }
  }
}

各套餐只在请求限额上有区别:Hobby——永久免费,60 请求/分钟;Pro——$29/月,300 请求/分钟;Scale——$199/月,1200 请求/分钟。所有套餐的 16 个工具完全相同。Hobby 免费密钥登录后立即发放,无需绑卡。顺带说一句货币的事:GRAM 是改名后的 Toncoin(2026 年 6 月更名),网络本身仍叫 TON,报价里你看到的就是 GRAM。

一分钟完成第一笔兑换

  1. 领取免费的 Hobby 密钥——无需绑卡,登录后立即发放。
  2. 写好配置(本地或 hosted 均可)。
  3. 把上文那段提示词交给智能体,然后用自己的钱包为锁定交易签名。

小结

跨越不同网络的兑换不必建立在信任之上。原子 HTLC 锁定给出“全有或全无”的保证,而 TONNode 的非托管架构确保资金、私钥和秘密值从不离开你的掌控。五个工具——get_crosschain_quotebuild_crosschain_swap_txtrack_crosschain_swapdisclose_crosschain_secretbuild_crosschain_refund——覆盖了交易的完整生命周期,包括应急退款。

想在一笔真实兑换上验证,完全免费:领取 Hobby 密钥,完成你的第一笔跨链兑换——无需绑卡,每分钟 60 次请求绰绰有余。全部 16 个工具的概览见 MCP 页面

让你的智能体接入 TON

16 个 MCP 工具:读取、非托管兑换、跨链与钱包。免费档 60 次/分钟,无需银行卡。