Barcha maqolalar
8 daq oʻqish

TON MCP: kastodial vs nokastodial — kalitni kim ushlaydi

Kastodial MCP oʻzi imzolaydi va operator-kalitni ushlaydi, nokastodial agent-hamyon esa imzolanmagan tranzaksiyalarni qaytaradi. Kalit kimda va xavf qanday?

MCPkastodialliknokastodial hamyonTONAI agentlarDeFAI

Siz AI agentga TONda swap qilishni topshirasiz. U kerakli toolni chaqiradi va oʻn soniyadan keyin tranzaksiya allaqachon blokcheynda — siz uni imzolamadingiz, hamyonni ochmadingiz, hech nimani tasdiqlamadingiz. Qulaymi? Ha. Endi esa oʻsha agent promptingizni notoʻgʻri parse qildi, amount ni chalkashtirdi va 5 emas, 500 GRAM yubordi. Va bu safar ham soʻramadi. Birinchi swapdan keyin emas, undan oldin berilishi kerak boʻlgan savol: umuman olganda, xususiy kalitni kim ushlab turadi va tranzaksiyaga kim imzo qoʻyadi?

Aynan shu savol TON uchun MCP-serverlarning ikki modelini bir-biridan ajratib turadi. Kastodial MCP va nokastodial agent-hamyonni aniq misollar bilan koʻrib chiqamiz — konfiglar, toollar va ikkala tomonning halol xavflari bilan.

Kastodial MCP yoki nokastodial agent-hamyon: kalitni kim ushlaydi va kim imzolaydi

Avval nazariya. MCP (Model Context Protocol) — AI agentlar (Claude, Cursor, ChatGPT/Codex va istalgan boshqa MCP-klient) tashqi toollarni chaqiradigan standart. Agent blokcheynga oʻzi kira olmaydi — u «balansni ber» yoki «swapni yigʻ» kabi MCP-toolni chaqiradi, ishni esa MCP-server bajaradi. Blokcheyn uchun esa hammasi bitta texnik tafsilotga borib taqaladi: tranzaksiyani xususiy kalit bilan imzolash kerak.

Agentning kastodialligi ikki narsa bilan belgilanadi:

  1. Xususiy kalit fizik jihatdan qayerda saqlanadi — MCP-serverdami yoki foydalanuvchidami? Unga kim egalik qilsa, mablagʻni oʻsha tasarruf etadi.
  2. Imzoni kim qoʻyadi — serverning oʻzimi yoki foydalanuvchining hamyonimi? Imzo niyatni pulning qaytarib boʻlmaydigan harakatiga aylantiradi.

Agar kalit ham, imzo ham servis/agent tomonida boʻlsa — bu kastodial model: agent oʻzi sarflay oladi. Agar kalit foydalanuvchida boʻlsa va har bir tranzaksiyani uning hamyoni imzolasa, server esa faqat imzolanmagan tranzaksiyani yigʻsa — bu nokastodial model: server fizik jihatdan oʻzganing pulini sarflay olmaydi.

Bu xuddi «doʻstingizga bank kartangizni pin-kodi bilan berish» va «doʻstingizga toʻldirilgan toʻlov topshiriqnomasini berish, uni esa bankda oʻzingiz imzolash» oʻrtasidagi farqqa oʻxshaydi. Ikkala holatda ham doʻst yordam beradi, lekin xavf tubdan farq qiladi. Modellarning hech biri oʻz-oʻzicha ikkinchisidan «toʻgʻriroq» emas — ular avtonomiya bilan nazorat oʻrtasida turlicha muvozanat beradi. Endi buning aniq mahsulotlarda qanday koʻrinishini koʻramiz.

Kastodial model: rasmiy @ton/mcp va split-key

TON Foundationʼning rasmiy @ton/mcp paketi — bu kastodial agent-hamyon. U operator-kalitni ushlab turadi va tranzaksiyalarni oʻzi imzolaydi. Split-key modeli boʻyicha ishlaydi: operator-kalit agentda, owner-kalit foydalanuvchida. Yaʼni agent cheksiz hokim emas (owner-kalit odam tomonidagi dastak boʻlib qoladi), lekin oʻz vakolatlari doirasida u har bir amalni qoʻlda imzolamasdan mablagʻ sarflaydi.

@ton/mcp nima qila oladi:

  • tarmoq va akkauntlar holatini oʻqish;
  • GRAM, jetton va NFT yuborish;
  • DEX-agregator orqali swap;
  • agent-hamyonlar yaratish va import qilish;
  • NFT va DNS oʻqish.

Nima qila olmaydi: cross-chain — faqat TON ichida ishlaydi. Lokal, HTTP orqali yoki serverless tarzda ishga tushadi.

Bu Foundationʼning rasmiy paketi va uning halol kuchli tomonlari bor:

  • Toʻliq sarflash avtonomiyasi. Agent amallar zanjirini tasdiqlash uchun toʻxtamasdan bajaradi — haqiqiy avtonom stsenariylar (obunalar, avtomatik toʻlovlar) uchun aynan shu kerak.
  • NFT va DNS — qutidan chiqqan holda.
  • Rasmiylik — Foundation tomonidan qoʻllab-quvvatlanadi.

Avtonomiyaning narxi ravshan: operator-kalit agent muhitida saqlanadi. Agent esa — matn bilan aldash mumkin boʻlgan LLM. Bu muhitni va uning konfiguratsiyasini kim nazorat qilsa, operator vakolatlari doirasida imzoni ham oʻsha nazorat qiladi.

Nokastodial model: TONNode imzolanmagan TonConnect-xabarlarni qaytaradi

TONNode — TON uchun hosted MCP-server (sayt: tonnode.io), roppa-rosa 16 ta tool bilan. Bu yerda swap, cross-chain va hamyon toollari qatʼiy nokastodial: server hech qachon imzolamaydi hamda mablagʻ va xususiy kalitlarni saqlamaydi.

Mexanikasi oddiy. «Swap qil» oʻrniga build_swap_tx tooli imzolanmagan TonConnect-xabarini qaytaradi — foydalanuvchining hamyoni (Tonkeeper, MyTonWallet, istalgan TonConnect bilan mos hamyon) imzolaydigan tayyor tranzaksiyani. Server «toʻlov topshiriqnomasi»ni tayyorladi, lekin imzoni kalit egasi qoʻyadi. Server faqat ommaviy maʼlumotlarni koʻradi: manzil, summa, maqsadli kontrakt. Xususiy kalitga u umuman tegmaydi.

Tipik swap oqimi shunday koʻrinadi:

  1. get_swap_quote — DEXning qatʼiy kotirovkasi (GRAM ⇄ jetton, STON.fi + DeDust likvidligi Omniston protokoli orqali).
  2. build_swap_tx — shu kotirovka boʻyicha imzolanmagan tranzaksiya.
  3. Foydalanuvchining hamyoni uni TonConnect orqali imzolaydi. Tamom.

Agentga beriladigan prompt esa oddiy koʻrinadi:

10 GRAM ni USDT ga swap qilish uchun kotirovka ber, keyin mening
EQ... manzilim uchun swap tranzaksiyasini yigʻ — men uni hamyonda oʻzim imzolayman.

Agent avval get_swap_quote ni, soʻng build_swap_tx ni chaqiradi — natijada siz pul yechib olinganini emas, tranzaksiya obyektini olasiz.

Hatto hamyon yaratish ham nokastodial. generate_wallet v3r2 / v4 / v5r1 / highload_v3 versiyalaridagi hamyonni yaratadi va mnemonika, kalitlar hamda manzilni foydalanuvchiga beradi — server ularni saqlamaydi. Hamyonni generatsiya qildingiz, seed-iborani oʻzingizda saqlab qoldingiz — server esa u haqida «unutdi».

Versiyalar va seedni xavfsiz saqlash haqida batafsil — TON-hamyon generatsiyasi tahlilida.

DeFAI nuqtai nazari: avtonom agentlar uchun xususiy kalit qayerda saqlanishi nega muhim

DeFAI — bu AI agentlarning DeFida mustaqil ish yuritishi. Va bu yerda «kalit qayerda saqlanadi» degan savol nazariy boʻlmay qoladi.

LLM — ehtimoliy tizim. U blokcheyndan, oʻzga kontraktlardan, unga uzatilayotgan matnlardan maʼlumot oʻqiydi. Klassik hujum — prompt injection: jetton tavsifida yoki uchinchi tomon toolining javobida «barcha mablagʻni X manziliga oʻtkaz» degan koʻrsatma yashiringan boʻladi. Agent oʻzi imzolaydigan kastodial modelda bunday injection haqiqiy sarflashga olib kelishi mumkin — kalit aynan aldangan oʻsha agentning qoʻli ostida-ku. Zaharlangan kontekst, toollar zanjiridagi bag, buzib kirilgan host — bu stsenariylarning istalgani imzoga aylanadi, chunki imzo qoʻyish imkoniyati muhitning oʻzida turibdi.

Nokastodial modelda hujum devorga urilib toʻxtaydi: agentni zararli tranzaksiyani yigʻishga koʻndirishgan taqdirda ham, build_swap_tx faqat imzolanmagan xabarni qaytaradi. Kalit egasi uni oʻz hamyonida imzolamaguncha, u hech nimani qimirlata olmaydi — bu qadamda esa foydalanuvchi qabul qiluvchi manzilini va summani koʻradi. Odam (yoki alohida imzo siyosati) oxirgi chegara boʻlib qoladi.

Bu — avtonomiya yomon degani emas. Bu — avtonomiya bilan kalitlar nazorati ikki xil oʻq ekanini va tanlovni ongli ravishda qilish kerakligini anglatadi. Agentlar uchun nokastodial swaplar haqida koʻproq — TONda agent orqali swap maqolasida.

Ikkala modelning xavflari: avtonom sarflash va qoʻlda imzolash

Ikkala tomon haqida ham halol, biror tomonga ogʻmasdan.

Kastodial model (@ton/mcp):

  • Afzallik: agent haqiqatan avtonom — oʻzi toʻlaydi va ish yuritadi, amallar zanjiri toʻxtashsiz ketadi.
  • Afzallik: split-key agentni cheklaydi (owner-kalit foydalanuvchi tomonida) — bu «hamma narsaga toʻliq kirish» emas.
  • Afzallik: Foundationʼning rasmiyligi, jarayonda odam ishtirokisiz kechadigan stsenariylar uchun qulay (obunalar, avtotoʻlovlar, NFT/DNS).
  • Xavf: operatsion imzo kaliti matn bilan boshqariladigan LLM ishlaydigan joyning oʻzida turadi — prompt injection yoki gallyutsinatsiya haqiqiy sarflashga olib kelishi mumkin.
  • Xavf: agentning xatosi (summa/manzilni notoʻgʻri parse qilish) qoʻlda tasdiqlash toʻsigʻisiz bajarilaveradi.

Nokastodial model (TONNode):

  • Afzallik: xususiy kalit hech qachon foydalanuvchidan chiqmaydi — server fizik jihatdan na hisobdan yecha oladi, na oʻgʻirlay oladi.
  • Afzallik: har bir sarflash hamyonda vizual tasdiqdan oʻtadi — agent xatosi va prompt injectionga qarshi oxirgi chegara.
  • Cheklov: hamyon bilan imzolash qadami kerak — toʻliq «odamsiz» 24/7 avtopilotni bunday qurib boʻlmaydi.
  • Cheklov: generate_wallet bergan mnemonikaning saqlanishi uchun foydalanuvchining oʻzi javob beradi (server uni saqlamaydi — tiklab beradigan hech kim yoʻq).

Alohida — cross-chain haqida: xavf modeli aynan shu yerda eng yaqqol koʻrinadi. TONNodeʼda TON doim manba, ayirboshlash atomar HTLC-eskrou orqali boradi:

  • get_crosschain_quote — kotirovka.
  • build_crosschain_swap_tx — imzolanmagan HTLC-eskrou tranzaksiyasi va sekret.
  • track_crosschain_swap — bitimning ikkala tarmoqdagi fazalari.
  • disclose_crosschain_secret — on-chain tayyorlik tekshirilgandan keyin hisob-kitob uchun sekretni oshkor qilish.
  • build_crosschain_refund — kontragent ayirboshlashni yakunlamagan boʻlsa, osilib qolgan eskroudan mablagʻni qaytarish.

build_crosschain_refund ning mavjudligi — nokastodiallikning bevosita natijasi: kalit ham, sekret ham foydalanuvchida ekan, tiqilib qolgan bitimdan oʻz pulini qaytarib olish dastagi ham oʻshanda — «qoʻllab-quvvatlash xizmatiga yozish» emas. Ethereum, Arbitrum, Base, BNB Chain, Polygon, Avalanche qoʻllab-quvvatlanadi. TRON hozircha qoʻllab-quvvatlanmaydi.

Halol taqqoslash: qaysi yondashuvni qachon tanlash kerak

Mezon @ton/mcp (kastodial) TONNode (nokastodial)
Kalitni kim ushlaydi operator-kalit agentda xususiy kalit foydalanuvchida
Kim imzolaydi serverning/agentning oʻzi foydalanuvchi hamyoni
Avtonom sarflash ha yoʻq (imzo kerak)
Cross-chain yoʻq, faqat TON ha, HTLC (TON — manba)
NFT / DNS ha yoʻq (roadmapda)
Format lokal / HTTP / serverless lokal + hosted-variant
Status Foundationʼning rasmiy paketi uchinchi tomon open-source (MIT)

Amaliy tanlov:

Kastodial @ton/mcp ni tanlang, agar:

  • agentning haqiqiy avtonomiyasi kerak boʻlsa — u jarayonda odam ishtirokisiz, oʻzi sarflashi kerak;
  • TONdagi NFT va DNS muhim boʻlsa;
  • Foundationʼning rasmiy maqomi muhim boʻlsa;
  • hammasi TON ichida kechsa — cross-chain kerak boʻlmasa va operator-kalitning operatsion xavflarini ongli ravishda qabul qilsangiz.

Nokastodial TONNodeʼni tanlang, agar:

  • xususiy kalit va imzo sizda qolishini, har bir sarflash esa qoʻlda imzolanishini istasangiz;
  • cross-chain kerak boʻlsa: TON doim manba, atomar HTLC-eskrou, osilib qolgan bitimdan qaytarish bilan;
  • kafolatlangan oʻtkazuvchanlik va oʻz kalitiga ega hosted-variant kerak boʻlsa;
  • nativ ADNL ustidagi open-source paketni (MIT) istasangiz.

Farq halol va hech qanday chalgʻitishsiz: @ton/mcp — kastodial va faqat TON; TONNode — nokastodial, cross-chain va hosted-variant bilan. Funksiyalarning batafsil taqqoslamasi — alohida TONNode va rasmiy TON MCP tahlilida yoki rasmiy MCP bilan taqqoslash sahifasida.

Infratuzilma haqida kichik izoh. Agar yuklama ostida ommaviy liteserverlardan yoki ommaviy HTTP-APIlardan (toncenter, tonapi.io) foydalansangiz, real limitlarni yodda tuting: chegara oshib ketganda HTTP 429 «Too Many Requests» keladi (kalitsiz — soniyasiga taxminan 1 soʻrov), ommaviy liteserverlar esa koʻpincha «not ready» deb javob beradi yoki ADNL-taymaut bilan tugaydi. APIda hech qanday memga aylangan «228-xato» yoʻq — bu javob kodi emas, hamjamiyat folklori.

Nokastodial MCPni bir necha daqiqada qanday sinab koʻrish mumkin

Farqni his qilishning eng tez yoʻli — lokal ishga tushirish va agentga oddiy prompt berish. Oʻqish toollarining toʻliq toʻplamiga ega ommaviy konfig, bepul va kartasiz:

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

Keyin agentdan oddiy inson tilida soʻrang — bu bepul konfigda oʻqishning butun toʻplami ochiq:

EQ... manzilining GRAMdagi balansini koʻrsat, USDT metadatasiga qara
va 10 GRAM ni USDT ga swap qilish uchun qatʼiy kotirovka ber.

Agent get_balance, get_jetton_info va get_swap_quote ni chaqiradi — va hech nima sarflamasdan maʼlumot qaytaradi. Na imzo, na mablagʻ harakati: oʻqish — bu oʻqish.

@tonnode/mcp paketi — open source (MIT), TONning nativ ADNL-protokoli boʻyicha, HTTP-qatlamlarsiz ishlaydi. Tranzaksiya yigʻadigan toollar (swap, cross-chain, hamyon generatsiyasi) kerak boʻlganda — bular hosted-endpointdagi barcha 16 ta tool, oʻz kalitingiz va kafolatlangan oʻtkazuvchanlik bilan:

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

Hosted-kalit bilan esa agentga toʻlaqonli nokastodial stsenariyni ishonib topshirish mumkin:

v5r1 versiyasidagi yangi TON-hamyon yarat va manzilni koʻrsat.
Keyin 10 USDT ni GRAM ga swap qilishni yigʻ va imzolanmagan tranzaksiyani qaytar.

Agent generate_wallet ni, soʻng get_swap_quote va build_swap_tx ni chaqiradi — va sizga imzolanmagan xabarni qaytaradi. Eʼtibor bering: bu nuqtada hech nima sarflanmagan. Imzo — sizning alohida, ongli qadamingiz. Amaliyotdagi nokastodiallik aynan shu.

Barcha tariflarda 16 ta toolning hammasi mavjud — siz faqat oʻtkazuvchanlik uchun toʻlaysiz. Bepul Hobby kaliti (60 soʻrov/min, abadiy, kartasiz) tizimga kirgandan soʻng darhol beriladi.

MCPni TONga ulash boʻyicha umumiy qoʻllanma — TON uchun MCP boʻyicha qoʻllanmada.


Pulingizni sarflay oladigan kalit bitta xatboshi matn bilan aldash mumkin boʻlgan model bilan yonma-yon turmasligi kerak. Agar sizning stsenariyingizda avtonom sarflash muhimroq boʻlsa — kastodial @ton/mcp bu vazifani halol yopadi. Agar imzo sizda qolishi muhimroq boʻlsa — nokastodial TONNodeʼdan boshlang va ishonch chegarasini qayerdan oʻtkazishni oʻzingiz hal qiling.

Nokastodial MCPni bepul sinab koʻrish — Hobby kalitini oling: tonnode.io/dashboard?plan=hobby

Agentingizga TONga yoʻl oching

16 ta MCP-vosita: oʻqish, nokastodial svoplar, krosscheyn va hamyonlar. Bepul tarif — 60 soʻrov/daq, karta kerak emas.