Составление технического задания на блокчейн-проект
Техническое задание для блокчейн-проекта принципиально отличается от ТЗ на обычный веб-сервис: нужно специфицировать смарт-контракты, их взаимодействие, upgrade стратегию, gas оптимизацию, и инфраструктуру. Недостаточно проработанное ТЗ ведёт к кардинальным изменениям уже в процессе разработки — в крипто это особенно дорого из-за аудита.
Структура ТЗ для блокчейн-проекта
1. Обзор системы
- Цель проекта и ключевые stakeholders
- Выбранный блокчейн и обоснование
- Высокоуровневая архитектура (diagram)
- Интеграции с внешними системами (оракулы, bridge, другие протоколы)
2. Смарт-контракты
Для каждого контракта:
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% (range: 0.01%-1%)
- protocolFeeShare: 20% от swap fee
3. Токен спецификация (если есть)
Token: PROTO
Standard: 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) — какие события индексируются, GraphQL схема
- Backend API (если нужен) — endpoints, authentication
- Frontend — технический стек, 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, etc.)
- Oracle manipulation protection
- Flash loan attack vectors
- Access control схема
- Upgrade strategy и timelock
7. Тестирование
Unit tests (Foundry):
- Все публичные функции
- Edge cases и boundary conditions
- Revert scenarios
Fuzz tests:
- Инварианты: "totalShares * pricePerShare = totalAssets"
- Random deposit/withdraw sequences
Fork tests:
- Integration с реальными протоколами на fork mainnet
Coverage target: 95%+
8. Аудит план
- Объём аудита (какие контракты)
- Timeline (аудит после code freeze, до mainnet)
- Критерии готовности (все medium+ находки fixed)
Типичные ошибки в ТЗ
Нет спецификации ролей: "только owner может вызвать функцию" — а owner это EOA, multisig или DAO?
Нет upgrade стратегии: разработчики сами решают в процессе — риск несовместимых решений.
Не указан целевой gas budget: контракт написан, потом оказывается что каждый вызов стоит $50 gas.
Не описаны failure scenarios: что происходит если оракул недоступен, если контрагент не имплементирует интерфейс.
Составление ТЗ для блокчейн-проекта: 1-2 недели. Включает архитектурные диаграммы, спецификации контрактов, инфраструктурные требования.







