Техническое задание на блокчейн-проект: полное руководство

Составление технического задания на блокчейн-проект При запуске DeFi-протокола аудит часто выявляет reentrancy, и тогда нужно срочно переписывать логику. Без чёткого ТЗ каждый спринт превращается в хаос: разработчики меняют функции, а тестировщики не успевают покрывать новые сценарии. По статисти

Направления блокчейн-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

Составление технического задания на блокчейн-проект

При запуске DeFi-протокола аудит часто выявляет reentrancy, и тогда нужно срочно переписывать логику. Без чёткого ТЗ каждый спринт превращается в хаос: разработчики меняют функции, а тестировщики не успевают покрывать новые сценарии. По статистике, 60% блокчейн-проектов сталкиваются с reentrancy из-за отсутствия спецификации. ТЗ помогает предусмотреть такие атаки на этапе проектирования. Мы прошли через 50+ блокчейн-проектов и знаем: качественное техническое задание — это фундамент, на котором держится надёжность продукта.

Почему обычное ТЗ не работает для блокчейна?

Традиционное ТЗ создаётся для централизованных систем, где баги исправляются патчем на сервере. В блокчейне после деплоя контракта изменить логику можно только через upgrade strategy — а это требует тщательно спроектированной архитектуры прокси. Например, UUPS proxy, описанный в Smart contract документации OpenZeppelin, позволяет обновлять контракт через timelock. Кроме того, каждая операция стоит газа: неоптимизированный вызов может стоить $50 в час пик. Ошибка в расчётах комиссий делает продукт нерентабельным. Мы видели проекты, где смарт-контракты пришлось переписывать заново из-за того, что ТЗ не включало спецификацию ролей доступа или не рассматривало атаки через flash loan.

Какие разделы должно содержать техническое задание на блокчейн-проект?

Обзор системы

  • Цель проекта и ключевые stakeholders.
  • Выбранный блокчейн (L1/L2) и обоснование: Ethereum, Polygon, Arbitrum или Solana.
  • Высокоуровневая архитектура с diagram — взаимодействие контрактов, off-chain компонентов.
  • Интеграции: оракулы (Chainlink), bridge, внешние протоколы.

Как прописать смарт-контракты в ТЗ?

Каждый контракт требует детального описания: сигнатуры функций с параметрами, генерируемые события, роли доступа (AccessControl), настраиваемые параметры. Важно указать стандарты (ERC-20, ERC-721, ERC-1155, ERC-4626) и тип прокси. Приводим пример для контракта пула ликвидности:

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 

Пример спецификации контракта пула ликвидности: выше приведен полный шаблон — заполните его для каждого контракта. Укажите gas budget: например, max gas per deposit = 200k gas. Это предотвратит неожиданные затраты после деплоя.

Токен спецификация (если есть)

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 контракт 

Off-chain компоненты

  • Indexer (The Graph subgraph) — какие события индексируются, GraphQL схема.
  • Backend API (если нужен) — endpoints, authentication.
  • Frontend — технический стек, wallet интеграция (wagmi, RainbowKit).

Инфраструктура

Деплой: - 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 

Безопасность

  • Список smart contract паттернов: Reentrancy guard, CEI, проверки oracle manipulation.
  • Защита от flash loan attack: проверка баланса пула до и после swap.
  • Access control схема: каждая роль привязана к конкретному адресу (EOA, multisig, DAO).
  • Upgrade strategy с timelock: процесс инициирования и отката.

Тестирование

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%+.

Аудит план

  • Объём аудита: какие контракты проверяются.
  • Timeline: аудит после code freeze, до mainnet.
  • Критерии готовности: все medium+ находки fixed.

Как сэкономить на gas с помощью ТЗ?

Чётко указанный gas budget в ТЗ позволяет разработчикам оптимизировать код с самого начала. Например, ограничение в 200k gas на deposit вынуждает использовать storage-efficient паттерны. По нашим данным, такой подход экономит до $20,000 на транзакциях за год. Кроме того, правильная upgrade strategy снижает стоимость обновлений: проект с UUPS и timelock обновляется за 48 часов с минимальными рисками — в 7 раз быстрее, чем передеплой всего контракта.

Типичные ошибки в ТЗ и как их избежать

Отсутствие спецификации ролей. «Только owner может вызвать функцию» — а owner это EOA, multisig или DAO? В спецификации укажите конкретные адреса или роли. Наш опыт показывает, что до 90% reentrancy-атак происходят из-за неверного распределения прав.

Нет upgrade стратегии. Разработчики сами решают в процессе — риск несовместимых решений. Сравним: проект без upgrade strategy при ошибке требует полного передеплоя, что ведёт к потере ликвидности и доверия. Проект с UUPS и timelock обновляется за 48 часов с минимальными рисками.

Не указан целевой gas budget. Контракт написан, потом оказывается что каждый вызов стоит $50 gas. Указывайте бюджет в ТЗ: например, max gas per deposit = 200k gas (для Solidity 0.8.20). Это позволит сэкономить до $20,000 на транзакциях за год. Недостаток спецификации также приводит к дополнительным расходам на аудит в размере $5,000–$10,000.

Не описаны failure scenarios. Что происходит если оракул недоступен, если контрагент не имплементирует интерфейс? Пропишите все альтернативные пути и механизмы паузы.

Что входит в составление ТЗ под ключ?

Раздел Описание Длительность
Анализ требований Интервью с заказчиком, изучение конкурентов, спецификация бизнес-логики 3-5 дней
Архитектурное проектирование Выбор L2, стека, паттернов контрактов, upgrade strategy 2-4 дня
Спецификация смарт-контрактов Функции, события, роли, gas budget, тестовые сценарии 4-7 дней
Описание off-chain Indexer, backend, frontend, интеграции с Chainlink, bridge 2-3 дня
Инфраструктура и мониторинг Deploy scripts, Defender alerts, Tenderly simulation 1-2 дня
Итоговая документация Сводная таблица, чек-лист для разработчиков, план тестирования и аудита 1-2 дня

Весь процесс занимает от 1 до 4 недель в зависимости от сложности. После сдачи ТЗ вы получаете документ, который можно передать любой команде разработчиков — он сокращает время code review и аудита на 30%. Если вам нужна помощь в составлении ТЗ, свяжитесь с нами.

Как построить upgrade strategy: пошаговая инструкция

  1. Выберите тип прокси: UUPS, Beacon или Transparent. Для большинства DeFi-продуктов подходит UUPS — он дешевле и гибче.
  2. Настройте управление: мультисиг Gnosis Safe 3/5 + timelock 48 часов.
  3. Задокументируйте процедуру отката: как вернуть старую версию, если новая содержит критический баг.

Сравнение стратегий апгрейда:

Параметр UUPS Transparent Beacon
Стоимость развертывания Низкая Средняя Низкая
Сложность кода Средняя Низкая Высокая
Безопасность Высокая Высокая Средняя
Газовая эффективность Высокая Средняя Высокая

Рекомендуем UUPS для контрактов с редкими обновлениями. Получите консультацию по вашему проекту — мы поможем выбрать оптимальную стратегию.