Дизайн економічної моделі токена
Економічна модель токена — це механізм координації учасників через стимули. Хорошою модель створює Nash Equilibrium, де раціональна поведінка кожного учасника призводить до хороших результатів для протоколу в цілому. Погана модель — коли раціональна поведінка руйнує систему (bank run на staking, governance attacks, liquidity exits).
Mechanism Design: фундаментальні принципи
Alignment стимулів
Кожний учасник має бути мотивований діяти в інтересах протоколу:
Постачальники ліквідності: заробляють на комісіях пропорційно своїй частці. Якщо комісії > impermanent loss + opportunity cost → LP залишаються.
Держателі токенів: захоплення цінності через fee share, governance або buyback. Якщо тримання токена менш вигідно, ніж інші активи — продають.
Validators/Stakers: заробляють на block rewards + transaction fees. Staking робить атаку дорогою → безпека через економічні стимули.
Розробники: гранти з скарбниці, protocol owned liquidity використовує доход для фінансування розробки.
Value Flows
Користувачі платять комісії
↓
[Protocol Revenue]
↓
├─ 50% → Liquidity Providers (стимулювання ліквідності)
├─ 30% → Treasury (governance-контрольована)
└─ 20% → Buyback & Burn (дефляційний тиск)
Цей потік має бути задокументований і змодельований кількісно.
Моделі захоплення цінності
ve-Token (Vote-Escrowed)
Curve Finance представила механізм veToken, який став індустріальним стандартом:
- Holder локує токен на 1 тиждень до 4 років
- Отримує veCRV (vote-escrowed CRV) — non-transferable
- veTokens надають: boosted yield (до 2.5x), governance голоси, частку protocol fees
- Більше locked time = більше veTokens
- При закінченні lockup: повертає CRV, втрачає veCRV
Це вирішує фундаментальну governance проблему: спекулянти (short-term holders) отримують менше впливу, ніж довгострокові holders.
Реалізація:
contract VotingEscrow {
struct LockedBalance {
int128 amount;
uint256 end; // timestamp розблокування
}
mapping(address => LockedBalance) public locked;
function lockAmount(uint256 value, uint256 unlockTime) external {
// unlockTime має бути в майбутньому, кратний WEEK
require(unlockTime > block.timestamp, "Can only lock until future");
token.transferFrom(msg.sender, address(this), value);
locked[msg.sender] = LockedBalance({
amount: int128(int256(value)),
end: (unlockTime / WEEK) * WEEK, // round to week
});
emit Deposit(msg.sender, value, unlockTime);
}
// Voting power = amount * (end - now) / MAX_LOCK_TIME
function balanceOf(address addr) public view returns (uint256) {
LockedBalance memory _locked = locked[addr];
if (block.timestamp >= _locked.end) return 0;
uint256 remaining = _locked.end - block.timestamp;
return uint256(int256(_locked.amount)) * remaining / MAX_LOCK_TIME;
}
}
Bonding Curve
Для токенів, де ціна математично визначена smart contract:
// Простою bonding curve: P = k * S (linear)
// де S = circulating supply, k = коефіцієнт
contract BondingCurveToken {
uint256 public constant SLOPE = 1e12; // k
function getBuyPrice(uint256 amount) public view returns (uint256) {
uint256 currentSupply = totalSupply();
// Інтеграл від S до S+amount по f(x) = SLOPE*x
return SLOPE * (2 * currentSupply + amount) * amount / 2 / 1e18;
}
function buy(uint256 minTokens) external payable {
uint256 tokensToMint = calculateTokensForETH(msg.value);
require(tokensToMint >= minTokens, "Slippage");
_mint(msg.sender, tokensToMint);
}
function sell(uint256 tokenAmount, uint256 minETH) external {
uint256 ethToReturn = getSellPrice(tokenAmount);
require(ethToReturn >= minETH, "Slippage");
_burn(msg.sender, tokenAmount);
payable(msg.sender).transfer(ethToReturn);
}
}
Bonding curves використовуються в: Pump.fun, Clanker, ранній Uniswap concept, social tokens.
Protocol Owned Liquidity (POL)
OlympusDAO популяризував POL через bonding: замість токена користувач "продає" LP tokens протоколу і отримує токени зі знижкою. Протокол стає власником ліквідності — не залежить від mercenary LPs.
Проблема: без стабільного доходу OlympusDAO стала Ponzi (3,3 game theory). POL працює, коли протокол має реальний дохід.
Game Theory: аналіз Nash Equilibrium
Для кожної ключової ситуації потрібно перевірити: який вибір раціональний для кожного учасника?
Приклад — governance attack:
- Вартість накопичення 51% голосів: X
- Потенційний прибуток від атаки: Y
- Якщо Y > X → атака раціональна
- Захист: великий token supply (дорого атакувати), timelock (дні на реакцію), multisig veto для екстремальних дій
Приклад — liquidity exits:
- APY від staking: 10%/рік
- Якщо ціна падає > 10% → невигідне staking → exit → ціна падає далі → смерть спіраль
- Захист: backed value (treasury), fee-based rewards (не інфляційні)
Кількісне моделювання
Обов'язковий крок перед публікацією моделі — spreadsheet симуляція:
| Параметр | Рік 1 | Рік 2 | Рік 3 |
|---|---|---|---|
| Circulating Supply | 20M | 45M | 70M |
| Treasury Revenue | $500K | $2M | $8M |
| Buyback | $100K | $400K | $1.6M |
| Inflation rate | 40% | 20% | 10% |
| Break-even price | $0.10 | $0.08 | $0.06 |
Break-even price: при якій ціні токена staking/holding залишається економічно вигідним.
Stress-тестування
Модель має перевірятися в сценаріях:
- Bear market: ціна падає на 90%, що відбудеться зі стимулами?
- Governance attack: наскільки дорого атакувати, які наслідки?
- LP exit: якщо 80% LP уходить, наскільки це критично для протоколу?
- Founder exit: що відбудеться, якщо founding team продасть всі токени?
Дизайн економічної моделі токена: 2-4 тижні. Включає mechanism design, кількісне моделювання, stress-tests і фінальний документ.







