Складання технічного задання на блокчейн-проект
Технічне завдання для блокчейн-проекту принципово відрізняється від ТЗ на звичайний веб-сервіс: потрібно специфікувати smart contracts, їх взаємодію, upgrade стратегію, gas оптимізацію і інфраструктуру. Недостатньо розроблене ТЗ веде до кардинальних змін вже під час розробки — в крипто це особливо дорого через аудит.
Структура ТЗ для блокчейн-проекту
1. Огляд системи
- Мета проекту і ключові stakeholders
- Вибраний блокчейн і обґрунтування
- High-level архітектура (діаграма)
- Інтеграції з зовнішніми системами (оракули, bridges, інші протоколи)
2. Smart Contracts
Для кожного контракту:
Contract: LiquidityPool
Мережа: Arbitrum One
Стандарти: ERC-20 compatible
Апгрейдаємість: UUPS proxy
Функції:
- deposit(uint256 amount) — депозит токенів, mint LP shares
- withdraw(uint256 shares) — burn LP shares, отримати токени + accumulated fees
- swap(address tokenIn, uint256 amountIn, uint256 minAmountOut) — обмін токенів
Events:
- Deposit(address indexed user, uint256 amount, uint256 shares)
- Withdraw(address indexed user, uint256 shares, uint256 amount)
- Swap(address indexed user, address tokenIn, uint256 amountIn, uint256 amountOut)
Ролі (Access Control):
- DEFAULT_ADMIN_ROLE: Gnosis Safe 3/5
- PAUSE_ROLE: Protocol Defender (multisig або automated)
- FEE_MANAGER_ROLE: DAO timelock
Параметри (configurable):
- swapFee: 0.3% (діапазон: 0.01%-1%)
- protocolFeeShare: 20% від swap fee
3. Специфікація токена (якщо є)
Token: PROTO
Стандарт: ERC-20 + ERC-2612 (Permit)
Supply: 100,000,000 (fixed)
Decimals: 18
Mintable: ні (fixed supply)
Burnable: так (holder може спалити)
Pausable: так (PAUSE_ROLE)
Distributor: спеціальний Vesting контракт
4. Off-chain компоненти
- Indexer (The Graph subgraph) — які events індексуються, GraphQL схема
- Backend API (якщо потрібен) — endpoints, authentication
- Frontend — технічний stack, wallet інтеграція
5. Інфраструктура
Деплой:
- Foundry Deploy Scripts + Hardhat для верифікації
- Multisig owner: Gnosis Safe 3/5
- Timelock: 48 годин для admin функцій
- Proxy: UUPS (implementation upgrade через timelock)
Моніторинг:
- OpenZeppelin Defender для alerts
- Tenderly для simulation транзакцій
- The Graph для історичних даних
Мережи для деплою:
- Testnet: Arbitrum Sepolia
- Mainnet: Arbitrum One
6. Безпека
- Список smart contract паттернів (Reentrancy guard, CEI, тощо)
- Oracle manipulation protection
- Flash loan attack vectors
- Access control схема
- Upgrade стратегія і timelock
7. Тестування
Unit tests (Foundry):
- Всі публічні функції
- Edge cases і boundary conditions
- Revert сценарії
Fuzz tests:
- Інваріанти: "totalShares * pricePerShare = totalAssets"
- Random deposit/withdraw sequences
Fork tests:
- Інтеграція з реальними протоколами на fork mainnet
Coverage target: 95%+
8. План аудиту
- Обсяг аудиту (які контракти)
- Timeline (аудит після code freeze, до mainnet)
- Критерії готовності (всі medium+ findings fixed)
Типові помилки в ТЗ
Немає специфікації ролей: "тільки owner може вызвать функцію" — але owner це EOA, multisig або DAO?
Немає upgrade стратегії: розробники вирішують під час розробки — ризик несумісних рішень.
Не указан целевой gas бюджет: контракт написаний, потім виявляється, що кожен вызов коштує $50 gas.
Не описані failure сценарії: що відбудеться, якщо оракул недоступний, якщо контрагент не реалізує інтерфейс.
Складання технічного завдання для блокчейн-проекту: 1-2 тижні. Включає архітектурні діаграми, специфікації контрактів, інфраструктурні вимоги.







