TON → Base 크로스체인 스왑은 어떻게 동작하는가
MCP로 실행하는 TON → Base 크로스체인 스왑: HTLC 에스크로, 완전 논커스터디얼, 5개 도구. 커스터디 브리지 없이 에이전트가 TON의 가치를 Base로 옮기는 방법.
여러분의 AI 에이전트가 수익성 있는 기회를 찾아냈습니다. 그런데 사용자의 자본은 TON에 있고, 필요한 프로토콜이나 자산은 Base에 있습니다. 고전적인 해답은 "브리지로 넘겨라"입니다. 하지만 브리지를 쓴다는 것은, 자금이 넘어가는 그 순간에 누군가가 여러분의 돈을 쥐고 있다는 뜻입니다. 브리지 컨트랙트, 릴레이어, 여러분이 고르지도 않은 서명자들로 이루어진 멀티시그가 그렇습니다. 지난 몇 년 사이 사용자 자금 10억 달러 이상을 앗아간 것이 바로 이 커스터디 브리지였습니다. 암호학이 부실해서가 아니라, 중간 구간에서 누군가가 자금을 쥐고 있었기 때문입니다.
자율 에이전트에게 이것은 이중의 문제입니다. 첫째, 에이전트는 반환 보장 없이 제3자에게 자금을 넘기는 트랜잭션에 서명해서는 안 됩니다. 둘째, 애초에 에이전트가 여러분의 개인키를 가지고 있어서도 안 됩니다. 그런데 고전적인 브리지는 바로 그것, 즉 중개자에 대한 신뢰를 요구합니다.
다른 길이 있습니다. 원자적(atomic) HTLC 에스크로입니다. 아래에서는 어떤 중개자도 어느 순간에도 여러분의 키나 자금에 손댈 수 없는 방식으로 TON → Base 크로스체인 스왑을 수행하는 방법, 그리고 이 전체 흐름을 AI 에이전트가 TONNode의 MCP 도구 5개로 호출하는 방법을 살펴봅니다.
왜 TON에서 Base로 스왑하는가, 그리고 왜 이것이 일반 브리지가 아닌가
Base는 Coinbase가 OP Stack 위에 만든 Ethereum L2입니다. 유동성이 그쪽으로 이동하고, DeFi 프로토콜이 그쪽으로 향하며, 에이전트가 다뤄야 할 컨트랙트도 점점 더 자주 그곳에 있습니다. 반면 원래 자본은 TON에 있습니다. 2026년 6월 Toncoin에서 이름이 바뀐 GRAM(네트워크 이름은 여전히 TON입니다), 또는 TON 위의 USDT 형태로 말입니다.
일반적인 브리지는 이 문제를 커스터디로 해결합니다. 여러분이 출발 네트워크의 브리지 컨트랙트에 자금을 넘기면, 한쪽에서 릴레이어가 이를 감지하고 Base에서 그에 상응하는 물량을 발행합니다. "넘겼다"와 "받았다" 사이에는, 여러분의 돈을 여러분이 아닌 누군가가 통제하는 구간이 존재합니다. 한 달에 한 번 자금을 옮기는 사람에게는 감수할 만합니다. 하지만 감독 없이 루프를 돌며 이 작업을 반복하는 에이전트에게는 받아들일 수 없는 리스크입니다.
대안은 자금이 중개자에게 귀속되는 순간 자체가 존재하지 않는 원자적 교환입니다. 거래는 양쪽 네트워크에서 통째로 실행되거나, 통째로 롤백됩니다. TONNode의 크로스체인은 정확히 이렇게 설계되어 있습니다.
TON과 Base 사이의 원자적 HTLC 에스크로는 어떻게 동작하는가
HTLC는 hashed timelock contract, 즉 잠금 해제 조건이 두 개인 에스크로입니다. 시크릿의 해시와 타임락입니다. 가장 쉬운 비유는 금고 두 개입니다. 하나는 TON에, 하나는 Base에 있습니다. 두 금고 모두 같은 열쇠 — 시크릿 — 로 열립니다. 시크릿이 공개되기 전까지는 둘 다 잠겨 있습니다.
- 해시락. 양쪽 네트워크의 자금이 동일한 시크릿 해시
h = hash(s)아래 잠깁니다. 에스크로를 열려면 해시가 일치하는 시크릿s자체를 제시해야만 합니다. - 타임락. 각 금고에는 기한이 있습니다. 거래가 제때 실행되지 않으면 타임락 만료 후 자금은 소유자에게 되돌아갑니다.
전체 구조를 간단히 정리하면 이렇습니다.
- 무작위 시크릿
s와 그 해시h = hash(s)를 생성합니다. - TON에서 여러분의 자금이 다음 조건으로 에스크로에 잠깁니다. "
s를 제시하는 사람에게 지급한다. 마감 시각까지s가 제시되지 않으면 발신자에게 반환한다." - Base에서는 상대방(목적지 유동성을 공급하는 리졸버)이 동일한
h아래 자신의 자금을 잠급니다. 타임락은 더 짧게 잡힙니다. - 여러분이 Base에서 자금을 받기 위해
s를 공개합니다. 이 순간s는 온체인에서 공개 정보가 됩니다. - 상대방은 공개된
s를 확인하고 TON에 잠긴 자금을 가져갑니다.
핵심 속성은 h가 양쪽 네트워크에서 동일하다는 점입니다. 한쪽 정산을 위해 시크릿이 공개되는 순간, 다른 쪽은 수학적으로 거래를 완료할 수 있게 됩니다. "내 돈이 남의 손에 있는" 중간 상태는 존재하지 않습니다. 존재하는 것은 해시의 수학과 타임락의 시계뿐입니다. 무언가 잘못되어 타임락이 만료되면 자금은 원래 소유자에게 돌아갑니다. 즉 원자적입니다. 양쪽 레그가 모두 실행되거나, 둘 다 롤백되거나, 둘 중 하나뿐입니다.
TONNode의 구조에서 TON은 언제나 거래의 출발지이며, Base(또는 지원되는 다른 네트워크)가 목적지입니다.
TONNode MCP의 크로스체인 스왑 도구 5종
TONNode는 정확히 16개의 도구를 갖춘 TON용 hosted MCP 서버입니다. MCP(Model Context Protocol)는 AI 에이전트(Claude, Cursor, ChatGPT/Codex 및 모든 MCP 클라이언트)가 외부 도구를 호출하는 표준입니다. 크로스체인 세트는 정확히 5개 도구이며, 모든 요금제에서 사용할 수 있습니다.
get_crosschain_quote— 견적. TON에 있는 자금으로 Base에서 얼마를 받게 되는지, 경로와 타임락까지 감안해 알려줍니다.build_crosschain_swap_tx— TON용 서명되지 않은 HTLC 에스크로 트랜잭션을 조립해 시크릿과 함께 돌려줍니다. 서명은 TonConnect를 통해 사용자의 지갑이 합니다.track_crosschain_swap— 양쪽 네트워크의 거래 단계를 보여줍니다. TON에 잠겼는지, 상대방이 Base에 잠갔는지, 시크릿이 공개됐는지, 완료됐는지.disclose_crosschain_secret— 정산을 위해 시크릿을 공개합니다. 단, 반대편 레그가 준비됐다는 사실이 온체인으로 확인된 뒤에만 공개합니다.build_crosschain_refund— 거래가 멈추고 타임락이 만료된 경우, 에스크로에서 자금을 되돌려받는 서명되지 않은 트랜잭션을 조립합니다.
책임의 순서에 주목하십시오. 시크릿을 공개하는 도구는 무작정 공개하지 않고, Base 쪽 준비 상태를 확인한 뒤에 공개합니다. 이것이 상대방이 아직 아무것도 잠그지 않은 상황에서 s를 공개해 버리는 사태로부터 여러분을 지켜 줍니다.
전체 흐름: 견적 → 조립 → 추적 → 시크릿 공개
먼저 서버를 연결합니다. 로컬에서 무료로 쓸 수 있고, @tonnode/mcp 패키지는 오픈소스(MIT)이며 HTTP 중간 계층 없이 TON 네이티브 ADNL 프로토콜로 동작합니다.
{
"mcpServers": {
"ton": {
"command": "npx",
"args": ["-y", "@tonnode/mcp"]
}
}
}
이후 모든 작업은 에이전트에게 보내는 프롬프트로 이루어집니다. 에이전트가 알아서 이를 도구 호출로 분해합니다.
1단계. 견적.
TON의 USDT 200개를 Base의 USDC로 바꾸는 크로스체인 스왑 견적을 알려주세요.
get_crosschain_quote를 사용해 주세요.
에이전트는 Base에서 얼마를 받게 되는지, 에스크로의 타임락은 어떤지 알려줍니다. 어떤 행동을 하기 전에 숫자를 먼저 보는 셈입니다. 조건이 마음에 들면 다음 단계로 넘어갑니다.
2단계. 서명되지 않은 트랜잭션 조립.
이 견적대로 build_crosschain_swap_tx로 HTLC 에스크로 트랜잭션을 만들어 주세요.
내 TON 주소는 EQ…, Base 수령 주소는 0x…
결과물은 HTLC 에스크로가 담긴 서명되지 않은 TonConnect 메시지와 거래 시크릿입니다. 시크릿은 여러분의 것이니 잘 보관하십시오. 서버는 이를 저장하지 않습니다. 자금은 이 시크릿의 해시 아래 TON의 에스크로에 잠깁니다. 서명은 TonConnect를 통해 여러분의 지갑이 하며, 서버는 서명에 일절 손대지 않습니다.
3단계. 추적.
해시 h…로 track_crosschain_swap을 써서 거래 상태를 확인해 주세요.
상대방이 Base에 자금을 잠갔나요?
이 도구는 양쪽 네트워크의 진행 단계를 보여줍니다. 에이전트는 양쪽이 모두 같은 해시 아래 잠길 때까지 기다립니다.
4단계. 시크릿 공개.
Base에 자금이 잠겼습니다. disclose_crosschain_secret으로
정산을 위한 시크릿을 공개해 주세요.
track_crosschain_swap이 온체인 준비 상태를 확인해 준 뒤에야 에이전트가 시크릿을 공개합니다. 공개는 두 에스크로를 원자적으로 실행합니다. 여러분은 Base에서 자금을 받고, 상대방은 공개된 시크릿으로 TON 쪽 자기 몫을 정산합니다. 거래는 이것으로 종료입니다.
순서를 눈여겨보십시오. 시크릿은 가장 마지막에, 그것도 반대편 에스크로가 실제로 잠겨 있음을 확인한 뒤에만 공개됩니다. 공개 전까지 여러분의 자금은 어디로도 빠져나갈 수 없고, 공개 이후에는 거래가 이미 원자적입니다.
목적지가 Ethereum인 동일한 흐름의 상세한 분석은 별도의 글 TON → Ethereum 크로스체인 스왑에서 다룹니다. 메커니즘은 같고 목적지 네트워크만 다릅니다. 그리고 에이전트의 손으로 TON에서 가치를 옮길 수 있다는 것 자체가 왜 새로운 종류의 작업인지는 이 글에서 설명합니다.
논커스터디얼: 서버가 여러분의 키를 절대 보관하지 않는 이유
이것은 마케팅 문구가 아니라 아키텍처의 속성입니다. TONNode 서버는 결코 트랜잭션에 서명하지 않으며, 자금이나 개인키를 결코 보관하지 않습니다. 서버가 외부로 내보내는 것은 서명되지 않은 TonConnect 메시지와 데이터(견적, 상태, 그리고 여러분 자신의 거래를 위한 시크릿)뿐입니다.
무엇이 어디에 있는지 단계별로 짚어 보겠습니다.
- 여러분 TON 지갑의 개인키 — 오직 여러분에게, 지갑 안에만 있습니다.
- 시크릿
s— 조립 시점에 생성되어 여러분에게 전달됩니다. 서버에는 남지 않습니다. - HTLC 트랜잭션의 서명 — TonConnect를 통해 여러분의 지갑이 합니다.
- TON의 자금 — 중개자의 계정이 아니라, 암호학적 조건이 걸린 에스크로 컨트랙트 안에 있습니다.
서버가 설령 원한다 해도 여러분을 대신해 서명할 수도, 에스크로에서 자금을 빼낼 수도 없습니다. 키도 없고, 잠금 해제 조건을 자기 앞으로 제시할 방법도 없기 때문입니다. 이는 운영자가 키를 쥐고 직접 서명하는 커스터디 방식과 근본적으로 다릅니다. 두 모델의 상세한 비교는 커스터디얼 vs 논커스터디얼 MCP 분석에, 커스터디 없는 스왑 자체에 대한 분석은 에이전트에서 실행하는 논커스터디얼 스왑 글에 있습니다.
Base 외에 지원되는 네트워크(그리고 TRON이 아직 없는 이유)
TON은 언제나 출발지이며, 목적지 네트워크로는 다음 중 어느 것이든 지정할 수 있습니다.
- Ethereum
- Arbitrum
- Base
- BNB Chain
- Polygon
- Avalanche
TRON은 아직 지원되지 않습니다. 이유는 이념적인 것이 아니라 기술적인 것입니다. 원자적 HTLC 에스크로는 목적지 쪽에서 해시 타임락의 호환 가능한 의미론과 예측 가능한 컨트랙트 동작을 요구합니다. 여러분의 시나리오가 TRON에 묶여 있다면, 그것을 전제로 에이전트 로직을 짜지 마십시오. 현재 크로스체인 세트에 TRON은 없습니다. 추가되면 로드맵에 반영될 것입니다: tonnode.io/roadmap.
연결 방법, 그리고 거래가 멈췄을 때: 환불
처리량이 보장되어야 하는 프로덕션 환경에서는 자체 키를 쓰는 hosted 엔드포인트를 사용합니다.
{
"mcpServers": {
"ton": {
"type": "http",
"url": "https://mcp.tonnode.io/mcp",
"headers": { "Authorization": "Bearer tn_live_…" }
}
}
}
모든 키에서 전체 크로스체인 세트를 포함한 16개 도구 전부를 쓸 수 있습니다. 요금은 도구 접근 권한이 아니라 처리량에 대해서만 지불합니다.
- Hobby — 영구 무료, 분당 60 요청. 로그인 직후 바로 키가 발급되며 카드가 필요 없습니다.
- Pro — 월 $29, 분당 300 요청.
- Scale — 월 $199, 분당 1200 요청.
상대방이 거래를 끝내지 않으면?
바로 여기서 타임락의 의미가 드러납니다. 반대편이 자기 몫을 이행하지 않은 채 타임락이 만료되어도 여러분의 자금은 사라지지 않습니다. 마감 이후 발신자에게 반환된다는 조건 아래 잠겨 있기 때문입니다. 에이전트는 이렇게 호출합니다.
거래가 멈췄고 타임락이 만료됐습니다. build_crosschain_refund로
에스크로에서 자금을 되돌려받는 트랜잭션을 만들어 주세요.
build_crosschain_refund는 서명되지 않은 환불 트랜잭션을 돌려줍니다. 여러분이 자기 지갑으로 서명하면 자금을 TON으로 되찾아 옵니다. 이것이 HTLC에 내장된 보험입니다. 거래는 원자적으로 실행되거나, 타임락에 따라 롤백됩니다. 멈춘 거래는 잃어버린 돈이 아니라 환불을 뜻합니다. 바로 이 보장이 원자적 교환을 커스터디 브리지의 안전한 대체재로 만들어 줍니다.
어디서부터 시작할까
남의 커스터디언이 아니라 해시락과 타임락이 거래를 책임지는 순간, TON → Base 크로스체인 스왑은 더 이상 브리지를 믿고 맡기는 행위가 아니게 됩니다. 5개의 도구, 엄격한 논커스터디얼 원칙, 6개의 목적지 네트워크 — 이 모든 것을 여러분의 에이전트가 MCP 설정 하나로 호출합니다.
가장 빠르게 시험해 보는 방법은 무료 Hobby 키(로그인 직후 발급, 카드 불필요)를 받아서 자신의 에이전트로 TON → Base 흐름을 한 번 돌려 보는 것입니다.
- 무료 Hobby 키 → tonnode.io/dashboard?plan=hobby
- 요금제 → tonnode.io/pricing
- 16개 도구 전체 → tonnode.io/mcp
- 로드맵 → tonnode.io/roadmap