Барлық мақалалар
7 мин оқу

TON MCP: кастодиалды vs кастодиалды емес — кілтті кім ұстайды

Кастодиалды MCP өзі қол қояды және operator-кілтті ұстайды, кастодиалды емес агент-әмиян қол қойылмаған транзакция береді. Кілтті кім ұстайды — талдаймыз.

MCPкастодиалдылықкастодиалды емес әмиянTONЖИ-агенттерDeFAI

Сіз ЖИ-агентке TON-да свап жасауды тапсырасыз. Ол қажетті құралды шақырады, он секундтан кейін транзакция блокчейнде — сіз оған қол қойған жоқсыз, әмиянды ашқан жоқсыз, ештеңе растаған жоқсыз. Ыңғайлы ма? Иә. Ал енді сол агент промптыңызды дұрыс оқымай, amount өрісін шатастырып, 5 емес, 500 GRAM жіберді. Бұл жолы да сұраған жоқ. Бірінші свапқа дейін қою керек сұрақ — одан кейін емес: жеке кілтті кім ұстайды және транзакцияға кім қол қояды?

Дәл осы — TON-ға арналған MCP-серверлердің екі моделі арасындағы жол айрығы. Кастодиалды MCP пен кастодиалды емес агент-әмиянды нақты талдаймыз — конфигтермен, құралдармен және екі жақтың да адал тәуекелдерімен.

Кастодиалды MCP пе әлде кастодиалды емес агент-әмиян ба: кілтті кім ұстайды және кім қол қояды

Алдымен теориясы. MCP (Model Context Protocol) — ЖИ-агенттер (Claude, Cursor, ChatGPT/Codex және кез келген басқа MCP-клиент) сыртқы құралдарды шақыратын стандарт. Агент блокчейнге өзі бара алмайды — ол «баланс бер» немесе «свап жина» тәрізді MCP-құралды шақырады, ал жұмысты MCP-сервер атқарады. Ал блокчейнде бәрі бір техникалық түйінге тіреледі: транзакцияға жеке кілтпен қол қою керек.

Агенттің кастодиалдылығын екі нәрсе анықтайды:

  1. Жеке кілт физикалық тұрғыда қайда жатыр — MCP-серверде ме, әлде пайдаланушыда ма? Кім оған иелік етсе, қаражатты сол басқарады.
  2. Қолды кім қояды — сервердің өзі ме, әлде пайдаланушының әмияны ма? Қолтаңба ниетті ақшаның қайтымсыз қозғалысына айналдырады.

Егер кілт те, қолтаңба да сервис/агент жағында тұрса — бұл кастодиалды модель: агент өзі жұмсай алады. Егер кілт пайдаланушыда болып, әр транзакцияға оның әмияны қол қойса, ал сервер тек қол қойылмаған транзакцияны жинаса — бұл кастодиалды емес модель: сервер бөтен қаражатты физикалық тұрғыда жұмсай алмайды.

Бұл «досыңа пин-кодымен қоса банк картаңды беру» мен «досыңа толтырылған төлем тапсырмасын беру, ал оған банкте өзің қол қою» арасындағы айырмашылық сияқты. Екі жағдайда да дос көмектеседі, бірақ тәуекел түбегейлі басқа. Оқшау алғанда модельдердің ешқайсысы екіншісінен «дұрысырақ» емес — олар автономия мен бақылаудың әртүрлі балансын береді. Әрі қарай — мұның нақты өнімдерде қалай көрінетіні.

Кастодиалды модель: ресми @ton/mcp және split-key

TON Foundation-ның ресми @ton/mcp-і — кастодиалды агент-әмиян. Ол operator-кілтті ұстайды және транзакцияларға өзі қол қояды. Split-key моделі бойынша жұмыс істейді: operator-кілт агентте, owner-кілт пайдаланушыда. Яғни агент бәріне билік етпейді (owner-кілт адам жағындағы тұтқа болып қала береді), бірақ өз өкілеттігінің шегінде ол әр операцияға қолмен қол қоймай-ақ қаражат жұмсайды.

@ton/mcp не істей алады:

  • желі мен аккаунттардың күйін оқу;
  • GRAM, жетон және NFT жіберу;
  • DEX-агрегатор арқылы свап;
  • агент-әмияндарды құру және импорттау;
  • NFT мен DNS-ті оқу.

Не істей алмайды: кроссчейн — тек TON ішінде жұмыс істейді. Жергілікті, HTTP арқылы немесе serverless режимінде іске қосылады.

Бұл — Foundation-ның ресми пакеті, әрі оның адал мойындауға тұрарлық күшті жақтары бар:

  • Жұмсаудың толық автономиясы. Агент әрекеттер тізбегін растауға тоқтамай орындайды — шынымен автономды сценарийлерге (жазылымдар, автоматты төлемдер) керегі осы.
  • NFT және DNS — қосымша баптаусыз, бірден.
  • Ресмилік — Foundation тарапынан қолдау.

Автономияның бағасы айқын: operator-кілт агенттің ортасында тұрады. Ал агент — мәтінмен алдауға болатын LLM. Осы ортаны және оның конфигурациясын кім бақыласа, operator-өкілеттігінің шегінде қолтаңбаны да сол бақылайды.

Кастодиалды емес модель: TONNode қол қойылмаған TonConnect-хабарламаларын береді

TONNode — TON үшін дәл 16 құралы бар hosted MCP-сервер (сайты tonnode.io). Мұнда свап, кроссчейн және әмиян құралдары қатаң түрде кастодиалды емес: сервер ешқашан қол қоймайды әрі қаражат пен жеке кілттерді сақтамайды.

Механикасы қарапайым. «Свап жаса» дегеннің орнына build_swap_tx құралы қол қойылмаған TonConnect-хабарламасын қайтарады — оған пайдаланушының әмияны (Tonkeeper, MyTonWallet, кез келген TonConnect-үйлесімді) қол қоятын дайын транзакция. Сервер «төлем тапсырмасын» жинады, бірақ қолды кілт иесі қояды. Сервер тек ашық деректерді көреді: мекенжай, сома, мақсатты смарт-контракт. Жеке кілтке ол мүлдем тимейді.

Свап ағыны әдетте былай көрінеді:

  1. get_swap_quote — DEX-тің нақты котировкасы (GRAM ⇄ жетон, Omniston протоколы арқылы STON.fi + DeDust өтімділігі).
  2. build_swap_tx — сол котировкаға арналған қол қойылмаған транзакция.
  3. Пайдаланушының әмияны оған TonConnect арқылы қол қояды. Болды.

Ал агентке берілетін промпт әдеттегідей көрінеді:

10 GRAM-ды USDT-ға свап жасауға котировка бер, содан кейін менің
EQ... мекенжайыма свап транзакциясын жина — оған әмиянда өзім қол қоямын.

Агент get_swap_quote, содан соң build_swap_tx шақырады, ал шығыста сіз есептен шығару фактісін емес, транзакция нысанын аласыз.

Тіпті әмиян құру да кастодиалды емес. generate_wallet v3r2 / v4 / v5r1 / highload_v3 нұсқаларындағы әмиянды жасайды және мнемониканы, кілттерді және мекенжайды пайдаланушыға береді — сервер оларды сақтамайды. Генерациялап алдыңыз, сид-фразаны өзіңізге алдыңыз, ал сервер ол туралы «ұмытты».

Нұсқалар мен сидті қауіпсіз сақтау туралы толығырақ — TON-әмиянды генерациялау талдауында.

DeFAI қыры: автономды агенттер үшін жеке кілттің қайда тұрғаны неге маңызды

DeFAI — бұл ЖИ-агенттердің DeFi-де өз бетінше әрекет етуі. Дәл осы жерде «кілт қайда тұрады» деген сұрақ теория болудан қалады.

LLM — ықтималдық жүйесі. Ол деректерді блокчейннен, бөгде смарт-контракттардан және өзіне тықпаланған мәтіндерден оқиды. Классикалық шабуыл — промпт-инъекция: жетонның сипаттамасында немесе бөгде құралдың жауабында «барлық қаражатты X мекенжайына аудар» деген нұсқау жасырылады. Агенттің өзі қол қоятын кастодиалды модельде мұндай инъекция шынайы шығынға әкелуі мүмкін — өйткені кілт дәл сол алданған агенттің қолында. Уланған контекст, құралдар тізбегіндегі баг, бұзып кірілген хост — осы сценарийлердің кез келгені қолтаңбаға айналады, себебі қол қоюды ортаның өзі жасай алады.

Кастодиалды емес модельде шабуыл қабырғаға тіреледі: агентті зиянды транзакцияны жинауға көндірген күннің өзінде build_swap_tx тек қол қойылмаған хабарлама қайтарады. Кілт иесі оған өз әмиянында қол қоймайынша, ол ештеңені қозғалтпайды — ал бұл қадамда пайдаланушы алушының мекенжайы мен соманы көреді. Адам (немесе бөлек қол қою саясаты) соңғы шеп болып қала береді.

Бұл автономия жаман дегенді білдірмейді. Бұл автономия мен кілттерді бақылау — әртүрлі осьтер екенін, әрі таңдауды саналы түрде жасау керегін білдіреді. Агенттерге арналған кастодиалды емес свап туралы толығырақ — TON-дағы агенттік свап материалында.

Екі модельдің тәуекелдері: автономды жұмсау мен қолмен қол қою

Екі жақ туралы да адал, бір жаққа бұрмай.

Кастодиалды модель (@ton/mcp):

  • Артықшылығы: агент шынымен автономды — өзі төлейді, өзі әрекет етеді, операциялар тізбегі тоқтаусыз жүреді.
  • Артықшылығы: split-key агентті шектейді (owner-кілт пайдаланушы жағында) — бұл «бәріне толық қолжетімділік» емес.
  • Артықшылығы: Foundation-ның ресми мәртебесі, циклде адамы жоқ сценарийлерге ыңғайлы (жазылымдар, автотөлемдер, NFT/DNS).
  • Тәуекел: операциялық қол қою кілті мәтінмен басқарылатын LLM жұмыс істейтін жерде тұр — промпт-инъекция немесе галлюцинация шынайы шығынға әкелуі мүмкін.
  • Тәуекел: агенттің қатесі (соманы/мекенжайды дұрыс оқымау) қолмен қойылатын кедергісіз орындалады.

Кастодиалды емес модель (TONNode):

  • Артықшылығы: жеке кілт пайдаланушыдан ешқашан шықпайды — сервер қаражатты физикалық тұрғыда есептен шығара да, әкете де алмайды.
  • Артықшылығы: әрбір шығын әмиянда көзбен көріп расталады — агенттің қатесі мен инъекцияға қарсы соңғы шеп.
  • Шектеу: әмиянмен қол қою қадамы қажет — толықтай «адамсыз» 24/7 автопилотты бұлай құра алмайсыз.
  • Шектеу: generate_wallet берген мнемониканың сақталуына пайдаланушының өзі жауапты (сервер оны сақтамайды — қалпына келтіретін ешкім жоқ).

Тәуекел моделі ең айқын көрінетін кроссчейн туралы бөлек айтайық. TONNode-та TON әрқашан бастау көзі, ал айырбас атомарлық HTLC-эскроу арқылы жүреді:

  • get_crosschain_quote — котировка.
  • build_crosschain_swap_tx — қол қойылмаған HTLC-эскроу транзакциясы және секрет.
  • track_crosschain_swap — мәміленің екі желідегі фазалары.
  • disclose_crosschain_secret — он-чейн дайындықты тексергеннен кейін есеп айырысу үшін секретті ашу.
  • build_crosschain_refund — контрагент айырбасты аяқтамаған жағдайда, ілініп қалған эскроудан қаражатты қайтару.

build_crosschain_refund-тың болуы — кастодиалды еместіктің тікелей салдары: кілт те, секрет те пайдаланушыда болғандықтан, тұрып қалған мәміледен ақшасын қайтаратын тұтқа да сонда, «қолдау қызметіне жазу» емес. Ethereum, Arbitrum, Base, BNB Chain, Polygon, Avalanche желілеріне қолдау көрсетіледі. TRON әзірге қолдау көрсетілмейді.

Адал салыстыру: қай тәсілді қашан таңдау керек

Критерий @ton/mcp (кастодиалды) TONNode (кастодиалды емес)
Кілтті кім ұстайды operator-кілт агентте жеке кілт пайдаланушыда
Кім қол қояды сервердің/агенттің өзі пайдаланушының әмияны
Автономды жұмсау иә жоқ (қол қою керек)
Кроссчейн жоқ, тек TON иә, HTLC (TON — бастау көзі)
NFT / DNS иә жоқ (роадмапта)
Формат жергілікті / HTTP / serverless жергілікті + hosted-опция
Мәртебесі Foundation-ның ресми пакеті үшінші тараптық open-source (MIT)

Практикалық таңдау:

Кастодиалды @ton/mcp-ті алыңыз, егер:

  • агенттің нағыз автономиясы керек болса — ол циклде адамсыз, өзі жұмсауы тиіс;
  • TON-дағы NFT мен DNS маңызды болса;
  • Foundation-ның ресми мәртебесі маңызды болса;
  • бәрі TON ішінде болса — кроссчейн керек емес, ал operator-кілттің операциялық тәуекелдерін саналы түрде қабылдайсыз.

Кастодиалды емес TONNode-ты алыңыз, егер:

  • жеке кілт те, қолтаңба да өзіңізде қалып, әрбір шығынға қолмен қол қойылғанын қаласаңыз;
  • кроссчейн керек болса: TON әрқашан бастау көзі, атомарлық HTLC-эскроу, тұрып қалған мәміледен қайтарумен;
  • кепілді өткізу қабілеті мен өз кілтіңіз бар hosted-опция керек болса;
  • нативті ADNL-де жұмыс істейтін open-source пакетті (MIT) қаласаңыз.

Айырмашылық адал әрі бұрмалаусыз: @ton/mcp — кастодиалды және тек TON; TONNode — кастодиалды емес, кроссчейні мен hosted-опциясы бар. Функциялардың жан-жақты салыстырмасы — TONNode пен ресми TON MCP салыстырмасы деген бөлек талдауда немесе ресми MCP-мен салыстыру бетінде.

Инфрақұрылым туралы шағын ескертпе. Жүктеме кезінде ашық лайтсерверлерді немесе ашық HTTP-API-лерді (toncenter, tonapi.io) пайдалансаңыз, нақты лимиттерді ұмытпаңыз: асып кеткенде HTTP 429 «Too Many Requests» келеді (кілтсіз — секундына шамамен 1 сұрау), ал ашық лайтсерверлер жиі «not ready» деп жауап береді немесе ADNL-таймаутпен үзіледі. Ал API-де ешқандай «228 қатесі» жоқ — бұл жауап коды емес, қауымдастықтағы әзіл-мем, фольклор.

Кастодиалды емес MCP-ді бірер минутта қалай байқап көруге болады

Айырмашылықты сезінудің ең жылдам жолы — жергілікті іске қосып, агентке қарапайым промпт беру. Оқу құралдарының толық жинағы бар ашық конфиг, тегін әрі картасыз:

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

Әрі қарай агенттен адам тілінде сұраңыз — бұл тегін конфигте оқудың бүкіл жинағы ашық:

EQ... мекенжайының GRAM балансын көрсет, USDT метадеректерін қара
және 10 GRAM-ды USDT-ға свап жасауға нақты котировка бер.

Агент get_balance, get_jetton_info және get_swap_quote шақырады — және ештеңе жұмсамай, деректерді қайтарады. Не қолтаңба, не қаражат қозғалысы: оқу — ол оқу.

@tonnode/mcp пакеті — open source (MIT), TON-ның нативті ADNL-протоколы бойынша, HTTP-қабаттарсыз жұмыс істейді. Транзакция жинайтын құралдар (свап, кроссчейн, әмиян генерациясы) қажет болғанда — бұл hosted-эндпоинттегі 16 құралдың бәрі, өз кілтіңізбен және кепілді өткізу қабілетімен:

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

Hosted-кілтпен агентке толыққанды кастодиалды емес сценарий беруге болады:

v5r1 нұсқасындағы жаңа TON-әмиян жаса және мекенжайын көрсет.
Содан кейін 10 USDT-ды GRAM-ға свап жасауды жинап, қол қойылмаған транзакцияны қайтар.

Агент generate_wallet, содан соң get_swap_quote және build_swap_tx шақырады — және сізге қол қойылмаған хабарлама қайтарады. Назар аударыңыз: осы сәтте ештеңе жұмсалған жоқ. Қол қою — сіздің бөлек, саналы қадамыңыз. Практикадағы кастодиалды еместік деген осы.

Барлық тарифтерде 16 құралдың бәрі қолжетімді — сіз тек өткізу қабілеті үшін төлейсіз. Тегін Hobby кілті (минутына 60 сұрау, мәңгілікке, картасыз) кірген бойда беріледі.

MCP-ді TON-ға қосудың жалпы нұсқаулығы — TON үшін MCP жөніндегі нұсқаулықта.


Ақшаңызды жұмсай алатын кілт бір абзац мәтінмен алдауға болатын модельдің қасында жатпауы керек. Сіздің сценарийіңіз үшін автономды жұмсау маңыздырақ болса — кастодиалды @ton/mcp бұл міндетті адал шешеді. Ал қолтаңба өзіңізде қалғаны маңыздырақ болса — кастодиалды емес TONNode-тан бастаңыз да, сенім шекарасын қайдан жүргізетініңізді өзіңіз шешіңіз.

Кастодиалды емес MCP-ді тегін байқап көру — Hobby кілтін алу: tonnode.io/dashboard?plan=hobby

Агентіңізге TON-ға қолжетімділік беріңіз

16 MCP-құрал: оқу, кастодиалды емес сваптар, кроссчейн және әмияндар. Тегін тариф — 60 сұрау/мин, карта керек емес.