全部文章
9 分钟阅读

TON 跨链兑换 BNB Chain:原子 HTLC 全流程详解

TON 跨链兑换 BNB:原子化 HTLC 锁定合约如何以非托管方式把价值从 TON 转移到 BNB Chain,全程通过 TONNode 的 MCP 工具完成。

跨链兑换TONBNB ChainHTLC非托管MCP

一个被指派“把 GRAM 换成 BNB、再在 BNB Chain 上付款给交易对手”的智能体,在第一步就会撞墙。它没有任何安全手段在两条互不知晓的区块链之间转移价值。传统路径是中心化跨链桥或交易所:把币打进去、选择信任、然后等待并祈祷资金不会卡在两条链之间。对一个自主运行的 AI 智能体来说,这是不可接受的:它无法“信任”托管方,无权把用户的私钥交给第三方,也没有一双手去人工处理卡住的交易。

我们需要一种方式,把价值从 TON 转移到 BNB Chain:要么整体成功,要么全部退回——中间没有任何持有资金的中介。原子化 HTLC 锁定合约驱动的跨链兑换做的正是这件事。下面我们拆解它的运作机制、智能体用哪五个 TONNode MCP 工具完成整笔交易,以及为什么服务器全程碰不到你的资金。

什么是 TON → BNB Chain 跨链兑换,智能体为什么需要它

跨链兑换,指的是在两条链之间没有共同账本的前提下,用一条链上的资产换取另一条链上的资产。TON 和 BNB Chain 是两条独立的网络,各自运行自己的虚拟机;它们之间不存在一个能直接改写余额的共同“银行”。因此需要一个协议,把两笔相互独立的转账同步成不可拆分的整体。

在 TONNode 中,跨链始终以 TON 作为源链,流向目标 EVM 网络——在本文中就是 BNB Chain。不存在反方向,也没有“以 BNB 为源”的选项:TON 永远是起点。你在 TON 一侧锁定 GRAM 或 Jetton 代币,在 BNB Chain 一侧收到资产。

GRAM 是 Toncoin 在 2026 年 6 月改用的新名字。网络仍然叫 TON,改名的只是代币本身。

智能体为什么需要它?因为真实任务很少局限在单条链内。财务智能体的金库放在 GRAM 里,但供应商要求用 BNB Chain 收款。交易机器人在 TON 的 DEX 和 BNB 的 DEX 之间发现了套利机会。助理收到指令“把等值 50 GRAM 转给 BSC 上的交易对手”。所有这些场景都需要一种跨越网络边界的手段——确定性的、无托管方的、无需人工干预的。

原子化 HTLC 锁定合约的工作原理:秘密值、哈希与时间锁

HTLC 的全称是 Hashed Timelock Contract——带哈希锁和时间锁的合约。听起来复杂,但类比其实很简单。

想象两只保险柜:一只在 TON,一只在 BNB Chain。两只柜子用的是同一把锁,只有唯一的密钥能打开——一个随机数,也就是“秘密值”S。写进区块链的不是秘密值本身,而是它的哈希 H = hash(S)——相当于这把锁的指纹。任何人都能验证某把钥匙是否匹配这把锁,但没人能从指纹反推出钥匙。

BNB Chain 上那只柜子不是由你来装填的:对手腿由交易对手 resolver(做市商)架设,它在同一个哈希 H 下锁入 BNB,指望之后用同一个秘密值取走你在 TON 一侧的 GRAM。正因如此,这笔交易是对称的:双方被同一把锁锁住。

接下来起作用的是两个条件:

  • 哈希锁。 想从柜子里取走资金,必须出示与已公开哈希匹配的秘密值。秘密值一旦在一侧被揭示,另一侧也立刻可见——交易的第二条腿会被同一把钥匙执行。谁取走资金,谁就必须把 S 以明文形式在链上公开。
  • 时间锁。 每只柜子都带着计时器。如果交易在时间锁到期前没有完成,资金退回原主。两侧时间锁的设置保证了先揭示秘密值的一方无法欺骗对手方。

结果就是原子性:要么两条腿都执行,要么两条腿都退回。“你交出了 GRAM 而 BNB 没有到账”这种中间状态在物理上不存在。这里没有任何“担保”这笔交易的第三方——担保来自哈希函数的数学与合约里的时间锁逻辑。这与原子交换、Lightning 支付背后的机制一脉相承,只是针对 TON 与 EVM 做了适配。

完成一笔交易的五个工具:报价、构建、追踪、揭示、退款

TONNode 中跨链兑换的完整生命周期由五个 MCP 工具覆盖。智能体按顺序依次调用——它们就是同一笔交易的五个环节。

get_crosschain_quote — 报价

返回 TON → BNB Chain 交易的报价:你在 TON 一侧付出多少、在 BNB Chain 一侧收到多少。任何一笔兑换都从这里开始——智能体先把数字亮给用户,然后才会锁定任何东西。

build_crosschain_swap_tx — 构建交易 + 秘密值

返回一笔未签名的 HTLC 锁定交易外加秘密值。交易由用户的钱包通过 TonConnect 签名,而不是服务器。秘密值 S 也在这一步生成,并保留在用户/智能体手中——之后正是用它解锁交易的第二条腿。服务器生成了交易和哈希,但签名权与秘密值的所有权始终在用户这边。

track_crosschain_swap — 阶段追踪

展示交易在两条链上的阶段——TON 与 BNB Chain 各自的状态:TON 一侧的腿是否已锁定、BNB Chain 上的对手腿是否已出现、秘密值是否已揭示、结算是否完成。这是智能体的眼睛:没有追踪,它不知道什么时候可以安全地揭示秘密值,也不知道是否该启动退款。

disclose_crosschain_secret — 揭示秘密值

揭示秘密值以完成结算——但只在链上就绪检查通过之后。这个工具不会盲目交出 S:它会先确认 BNB Chain 上的对手腿确实到位,条件也全部满足。这可以防止“秘密值已经公开、对面却无物可取”的局面。

build_crosschain_refund — 从锁定合约退款

当交易卡住、时间锁到期后,构建从锁定合约中取回资金的交易。同样是一笔交给 TonConnect 签名的未签名交易。这是保险绳,文末我们还会回到它。

为什么是非托管的:服务器既不签名也不保存私钥

这是 TONNode 的核心底线。兑换、跨链与钱包工具严格非托管。服务器从不签名、从不保管资金和私钥——它返回的只有未签名的 TonConnect 消息,由用户的钱包完成签名。

具体到跨链场景:

  • build_crosschain_swap_tx 返回的是未签名的交易。签名由用户的钱包完成——Tonkeeper、MyTonWallet 或任意兼容 TonConnect 的钱包。在用户确认交易之前,什么都不会被锁定。
  • 秘密值 S 交付到客户端。服务器无法偷偷从锁定合约里取走资金:那需要所有者的签名,而服务器手里没有。
  • 就连退款也是一笔未签名交易:发起退款的是用户,不是服务器。

实践结论:服务器被攻破也不会导致资金失窃——那里根本没有可偷的东西:没有私钥、没有签名、也没有对锁定合约的控制权。最坏情况只是拒绝服务(智能体拿不到报价),而不是丢钱。

对比一下托管模式:智能体钱包持有 operator 私钥并自行签名。两种模式各有存在的理由,但对于横跨两条独立网络的跨链交易,非托管尤为重要——你不会希望有个中介控制着卡在两条链之间的资金。两种方案的详细对比见托管还是非托管 MCP,TON 链内普通兑换的非托管实践见面向智能体的非托管兑换

支持哪些网络(以及为什么暂不支持 TRON)

TONNode 的跨链始终从 TON 出发,流向目标 EVM 网络。支持的目标链:

  • Ethereum
  • Arbitrum
  • Base
  • BNB Chain(本文的主角)
  • Polygon
  • Avalanche

TRON 目前尚不支持。 原因纯粹是技术性的:原子化 HTLC 锁定要求目标网络在所选锁定协议下,对哈希时间锁合约的解释方式完全一致。上面这六条链都兼容 EVM,符合这套模型;TRON 尽管表面相似,却运行在自己的模型之上,需要单独实现一套锁定合约。在这套实现落地之前,TRON 不会出现在列表里——我们不会把愿望当成事实来宣传。

关于最热门的组合——TON → Ethereum——有单独的拆解:TON → Ethereum 跨链兑换。机制完全相同,变的只是目标网络。

通过 MCP 一步步跑通 TON → BNB 兑换

先把 TONNode 接到智能体上。本地公共配置 @tonnode/mcp 免费,提供全套读取类工具——但仅限读取。这个包是开源的(MIT),通过 TON 原生的 ADNL 协议工作,没有 HTTP 中间层:

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

一个重要说明:五个跨链工具无法通过本地公共 npx 使用——那里只有读取能力。 跨链交易走的是带自有密钥的 hosted 端点,而免费的 Hobby 密钥就足够了:

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

在 hosted 密钥下,全部 16 个工具——包括五个跨链工具——在任何套餐下都可用,从免费的 Hobby 开始。你付费的只是吞吐量(Hobby 免费,60 次请求/分钟;Pro $29/月,300 次请求/分钟;Scale $199/月,1200 次请求/分钟)。跨链能力没有被锁在高级套餐后面——但本地 npx 干不了这件事,需要 hosted 密钥。

接下来是实际流程。给智能体的提示词可以写得非常口语化:

“把我 TON 钱包里的 50 GRAM 换到 BNB Chain 上的地址 0x…。先给我看报价,再构建交易——我自己签名。”

幕后发生的事:

  1. 报价。 智能体调用 get_crosschain_quote(源链 TON,目标链 BNB Chain,金额 50 GRAM),展示 BNB Chain 一侧将到账多少。
  2. 构建。 你说“可以”之后,智能体调用 build_crosschain_swap_tx,拿到未签名的 HTLC 锁定交易和秘密值 S。你在自己的钱包里通过 TonConnect 确认交易。资金在 TON 一侧被锁进哈希 H 名下的锁定合约。
  3. 追踪。 智能体周期性调用 track_crosschain_swap,盯着两条链上的阶段:TON 腿是否已锁定、BNB Chain 上的对手腿是否已架好(由 resolver 在同一个哈希 H 下架设)。
  4. 揭示与结算。 一旦 track_crosschain_swap 显示就绪,智能体调用 disclose_crosschain_secret。工具在链上核验就绪状态后揭示 S——秘密值在 BNB Chain 上可见,两条腿同时执行,BNB 到达你的地址。
  5. 确认。 最后一次 track_crosschain_swap 显示两侧均已结算。交易关闭。

关键在于:你随时都能看到交易在两条链上的状态,并且只签名自己看得见的东西。如果你对“第一次通过 MCP 把价值移出 TON”背后的整体思路感兴趣——它在第一笔从 TON 出发的 MCP 跨链价值转移里有完整拆解。

如果交易卡住了:从锁定合约取回资金

跨链意味着两条相互独立的网络,有时对手腿就是架不起来:交易对手出了状况、网络拥堵、总之出了岔子。在托管模式下,接下来是与客服的漫长拉扯。而在 HTLC 里——只需要等时间锁。

资金不会被永远锁死。只要时间锁到期而交易仍未完成,智能体就调用 build_crosschain_refund,拿到一笔未签名的退款交易。你用自己的钱包通过 TonConnect 签名——被锁定的 GRAM 回到你手中。不存在“资金永远卡住”这种事:这是写进合约本身的保证,而不是某个服务的口头承诺。

提示词可以是这样:

“我在 BNB Chain 上的跨链兑换没有完成。检查一下状态,如果时间锁已经过期,把我的资金退回来。”

智能体会调用 track_crosschain_swap,确认结算未完成且时间锁已过,然后通过 build_crosschain_refund 构建退款交易,交给你签名。

安全上的关键点:disclose_crosschain_secret 只在链上就绪检查通过之后才会揭示秘密值。智能体不会陷入“秘密值已公开、对面却无物可取”的陷阱。要么结算原子化地完成,要么时间锁到期后退款生效。没有第三种可能——这正是“原子”一词的全部含义。


领取免费密钥,接入跨链能力

五个跨链工具本就包含在标准的 16 个工具当中——不需要额外购买。领取免费的 Hobby 密钥(60 次请求/分钟,无需绑卡,登录后即时发放),把 TONNode 接到你的智能体上:tonnode.io/dashboard?plan=hobby

想先看看全部 16 个工具及其参数——工具页在这里:tonnode.io/mcp

从 TON 到 BNB Chain 的跨链,从此不再是“信任某座桥”的问题,而只是一次普通的工具调用——原子化、非托管,并且在出问题时有合约级的退款保证。

让你的智能体接入 TON

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