Проектирование экономической модели токена
Экономическая модель токена — это механизм координации участников через incentives. Хорошая модель создаёт Nash Equilibrium где рациональное поведение каждого участника ведёт к хорошим исходам для протокола в целом. Плохая модель — когда рациональное поведение разрушает систему (bank run на staking, governance attacks, liquidity exits).
Механизм design: фундаментальные принципы
Incentive alignment
Каждый участник должен быть мотивирован действовать в интересах протокола:
Liquidity providers: зарабатывают на fees пропорционально своей доле. Если fees > impermanent loss + opportunity cost → LPs остаются.
Token holders: value capture через fee share, governance, или buyback. Если holding токена менее выгодно чем другие активы — продают.
Validators/Stakers: зарабатывают на block rewards + transaction fees. Staking makes it costly to attack → security через economic incentives.
Developers: grants из treasury, protocol owned liquidity использует доход для финансирования development.
Value flows
Пользователи платят fees
↓
[Protocol Revenue]
↓
├─ 50% → Liquidity Providers (incentivize liquidity)
├─ 30% → Treasury (governance-controlled)
└─ 20% → Buyback & Burn (deflationary pressure)
Этот flow должен быть задокументирован и смоделирован количественно.
Модели value capture
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
- При expiry lockup: возвращают CRV, теряют veCRV
Это решает fundamental проблему 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 popularized POL через bonding: вместо токена пользователь "продаёт" LP tokens протоколу и получает токены с дисконтом. Протокол становится собственником ликвидности — не зависит от mercenary LPs.
Проблема: без стабильного revenue OlympusDAO стала Ponzi (3,3 game theory). POL работает когда протокол имеет реальный доход.
Геймтеория: Nash Equilibrium анализ
Для каждой ключевой ситуации нужно проверить: какой выбор рационален для каждого участника?
Пример — governance attack:
- Стоимость накопления 51% голосов: X
- Потенциальная прибыль от атаки: Y
- Если Y > X → атака рациональна
- Защита: большой token supply (дороже атаковать), timelock (дни на реакцию), multisig veto для extreme actions
Пример — liquidity exits:
- APY от staking: 10%/год
- Если цена падает > 10% → unprofitable staking → exit → цена падает ещё → смерть спираль
- Защита: backed стоимость (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: при каком token price staking/holding остаётся экономически выгодным.
Стресс-тестирование
Модель должна проверяться в сценариях:
- Bear market: цена падает 90%, что происходит с incentives?
- Governance attack: как дорого атаковать, какие последствия?
- LP exit: если 80% LP уходит, насколько критично для протокола?
- Founder exit: что происходит если founding team продаёт все токены?
Проектирование экономической модели токена: 2-4 недели. Включает механизм design, количественное моделирование, стресс-тесты, и финальный документ.







