DeFi System Design на TON
DeFi экосистема TON (2026)
TON DeFi экосистема активно развивается. Ключевые протоколы:
Legacy Toncoin Bridge — deprecated
Оригинальный Toncoin Bridge (TON ↔ Ethereum / BNB) был официально отключён 10 мая 2025 после ~32K transfers и 100M+ TON moved (zero security incidents). На замену пришли general-purpose cross-chain провайдеры (LayerZero, Axelar, Symbiosis) и нативные wrapped tokens (tgBTC, USDe). При проектировании cross-chain интеграций в 2026 — закладывайте именно эти каналы, не legacy Toncoin Bridge.
Ключевые отличия DeFi на TON vs Ethereum
| Аспект | Ethereum DeFi | TON DeFi |
|---|---|---|
| Composability | Синхронная (flash loans, chained calls) | Асинхронная (message chains) |
| Flash loans | Возможны | Невозможны (нет atomic cross-contract) |
| MEV | Значительный (front-running, sandwich) | Минимальный (async messages) |
| Gas model | Пользователь платит за всё | Forward gas + excess return |
| Token standard | ERC-20 (монолитный) | Jetton (sharded) |
| Liquidity fragmentation | L2 проблема | Нет L2 → единый liquidity pool |
Flash loans невозможны на TON — это feature, не bug
Flash loans на Ethereum позволяют взять кредит, использовать и вернуть в одной транзакции. На TON каждый вызов контракта — отдельная транзакция. Нет атомарности → нет flash loans. Это снижает attack surface (flash loan attacks — один из главных exploit vectors в Ethereum DeFi).
AMM DEX Architecture на TON
Constant Product Formula
x × y = k
Где:
x = reserve Token A в pool
y = reserve Token B в pool
k = constant product (не меняется при swaps)
Swap: отдать dx Token A → получить dy Token B
(x + dx) × (y - dy) = k
dy = y × dx / (x + dx)
TON DEX Architecture (STON.fi style)
Swap Message Flow
DEX Swap: User wants to swap 100 USDT → TON
1. User → User's USDT Wallet: transfer(100, pool_address, swap_payload)
2. User's USDT Wallet → Pool's USDT Wallet: internal_transfer(100)
3. Pool's USDT Wallet → Pool: transfer_notification(100, user)
4. Pool: calculate output = 100 × reserve_TON / (reserve_USDT + 100) × (1 - fee)
5. Pool → User: send TON (direct, not Jetton) + excess gas
Messages: 4-5 hops
Total time: ~15-25 sec (cross-shard)
Gas: ~0.05 TON (excess returned)
Lending Protocol Architecture
Core Components
Lending System:
├── Market Controller (master)
│ ├── Supported assets list
│ ├── Interest rate parameters
│ ├── Liquidation thresholds
│ └── Oracle price feeds
├── Supply Pool (per asset)
│ ├── Total supplied
│ ├── Total borrowed
│ ├── Interest rate model
│ └── Utilization ratio
├── User Position (per user, sharded)
│ ├── Collateral deposits
│ ├── Borrow amounts
│ ├── Health factor
│ └── Accrued interest
└── Liquidation Bot (off-chain)
├── Monitor health factors
├── Trigger liquidation tx
└── Claim liquidation bonus
Liquidation Flow
Liquidation (health_factor < 1.0):
1. Off-chain bot detects: user_position.health_factor < 1.0
2. Bot → Market: "liquidate(user, collateral_asset, debt_asset, amount)"
3. Market → User Position: verify health_factor < 1.0
4. User Position → Debt Pool: "repay(amount)" (from liquidator's funds)
5. User Position → Collateral Pool: "release(collateral × (1 + bonus))"
6. Collateral → Liquidator: receive collateral with bonus
Key design: liquidation must be profitable for bot (bonus 5-15%)
Otherwise nobody liquidates → protocol becomes insolvent
Staking Pool Architecture
Liquid Staking (stTON/tsTON):
User deposits 100 TON →
Pool mints 95 stTON (exchange rate includes accrued rewards) →
Pool stakes TON with validator →
Validator earns rewards →
Exchange rate: stTON/TON increases over time
Unstake:
User burns 95 stTON →
Pool calculates: 95 × current_rate = 102 TON (with accumulated rewards) →
Pool unstakes from validator (unbonding period) →
User receives 102 TON
Design Pattern: Exchange Rate Token
Liquid staking tokens (stTON) используют exchange rate вместо rebase. 1 stTON ≠ 1 TON — rate растёт со временем. Это проще для интеграций (DeFi, wallets) чем rebase-токены (которые меняют balance).
Advanced DeFi на TON (2025-2026)
EVAA Protocol: leveraged liquid staking
EVAA — основной lending протокол на TON. После TGE 3 октября 2025 ($EVAA token live на Binance Alpha, MEXC, STON.fi, Gate.io) протокол активно расширяет функциональность. К моменту TGE:
- 300,000+ wallets onboarded
- $1.4B+ суммарно в транзакциях
- ATH $118M deposits
Новый primitive: leveraged liquid staking loop:
Leveraged liquid staking (Tonstakers + EVAA):
Step 1: User stakes 100 TON в Tonstakers → получает 100 tsTON
Step 2: User supplies 100 tsTON в EVAA как collateral
Step 3: User borrows ~70 TON против tsTON (LTV 70%)
Step 4: User stakes 70 TON в Tonstakers → 70 tsTON
Step 5: Loop: supply 70 tsTON, borrow 49 TON, stake → 49 tsTON, ...
Effective leverage: ~3-5x on staking yield
APY uplift: base ~5% staking → ~7.89% leveraged
Borrow cost: ~0.37% APR (low благодаря TON pool dynamics)
Leverage loop = leveraged liquidation risk
При падении tsTON/TON exchange rate (теоретически возможно при slashing event у валидаторов), loop может попасть под liquidation. Health factor в leveraged loop падает быстрее, чем в “плоском” supply. Дизайн: автоматический deleveraging bot мониторит health и unwind’ит loop до критического порога.
Storm Trade: perpetuals на TON
Storm Trade — первый perpetual futures DEX на TON, работающий через Telegram Bot UI. Особенности дизайна:
| Аспект | Storm Trade |
|---|---|
| Leverage | До 50x (некоторые активы — до 100x) |
| Assets | Crypto + RWA (forex, stocks, commodities) |
| Margin | TON и USDT |
| Architecture | Sequencer-based order execution — фиксирует цену в момент open |
| Slippage | Zero slippage благодаря sequencer queue management |
| Social | Squad tournaments, copy trading через Telegram |
Архитектурные импликации perpetuals на TON:
Perpetual DEX architecture (Storm Trade style):
Off-chain Sequencer:
- Receives signed orders (signData) from users
- Maintains order queue с FIFO ordering
- Computes mark price from oracle feeds (Pyth/RedStone)
On-chain Execution:
- Sequencer batches matched orders → submits to Vault contract
- Vault: holds margin (USDT/TON), tracks positions
- Liquidation: off-chain bot monitors → triggers on-chain liquidation tx
Funding rate:
- Computed off-chain on schedule (например, каждые 8h)
- Applied on-chain как state update в Vault
Trade-off: sequencer = центр доверия (один оператор). Хотя сами funds custody on-chain, censorship resistance ниже, чем у full on-chain order book. Это типичный compromise для high-frequency DEX дизайна.
Pyth и RedStone: production-grade oracles на TON
В 2025 две major oracle сети интегрировались с TON:
RedStone — первый oracle с production feeds на TON (запуск в 2025). Поддерживает 70+ chains, 130+ клиентов. Также предоставляет smart contract templates с TON Connect integration.
Pyth Network — расширил поддержку до 100+ блокчейнов в Q1 2025. На TON в Q2 2025 был проведён upgrade Pyth Oracle до v2 — поддержка более 3 price feeds в одной update transaction (адресует ограничение TON cell size 1023 бит через cell chain traversal).
Pyth Oracle v2 on TON:
Cell chain для multi-feed update:
Cell 1: header + first 3 feeds
ref → Cell 2: next 3 feeds
ref → Cell 3: next 3 feeds
ref → ...
Contract iterates через ref'ы для всех feeds → атомарный update многих цен в одной транзакции.
Сравнение для системного дизайна:
| Аспект | Pyth | RedStone | Свой oracle |
|---|---|---|---|
| Latency | Pull-based, on-demand | Pull + push | Полный контроль |
| Coverage | 1000+ feeds | 1200+ feeds | По вашим ассетам |
| Cost | Pay-per-update | Subscription/template | Полная стоимость инфраструктуры |
| Trust model | Wormhole + publishers | Decentralized data feeds | Ваше доверие |
| Best for | Crypto-native DeFi | Crypto + RWA | Specialized dApps |
Когда не использовать готовый oracle
Готовый oracle (Pyth/RedStone) хорош для общих market prices (TON/USD, BTC/USD, ETH/USD). Если ваш протокол работает с специфичными данными — длиннохвостые токены без публичного price feed, RWA с custom evaluation, или off-chain events — придётся строить свой oracle. Storm Trade использует комбинацию: Pyth/RedStone для major assets, custom feeds для RWA.
Design pattern: oracle fallback chain
Multi-oracle fallback:
primary_price = Pyth.get_price(symbol)
if (primary_price.staleness > 60s OR primary_price.confidence < threshold) {
secondary_price = RedStone.get_price(symbol)
if (secondary_price.staleness > 60s) {
// Critical: emergency pause
pause_trading()
} else {
use secondary_price
}
} else {
use primary_price
}
Production lending/perp протоколы никогда не доверяют одному oracle. Multi-oracle с staleness check + emergency pause — обязательный паттерн.
Design Checklist для DeFi на TON
| Аспект | Проверка |
|---|---|
| Async safety | Все multi-step операции имеют bounce handlers и timeouts? |
| Slippage | Min output amount проверяется? Refund при slippage > tolerance? |
| Reentrancy | Не применимо на TON (Actor Model), но race conditions в state machine? |
| Oracle | Price feed актуален? Staleness check? Fallback oracle? |
| Liquidation | Profitable для liquidators? Dust amounts handled? |
| Gas | Gas budget для worst-case message chain? Excess returned? |
Чтобы привязать design-решения к реальному состоянию экосистемы, полезно посмотреть обзор DeFi-протоколов TON: STON.fi и DeDust как DEX, EVAA как lending, оракулы и staking-инфраструктура.
DeFi на TON: обзор протоколов