Понад 200 проєктів форкнули Uniswap v2, але більшість тихо померли. Причина не в коді — він перевірений роками. Проблема в тому, що форк скопіювали як є, не розібравшись у механіці, і зламали при першій кастомізації. Storage collision при апгрейді, неправильно відкалібровані параметри fee, зламаний механізм ціноутворення через некоректну ініціалізацію пулів — ось чому «просто форкнути Uniswap» не працює без глибокого розуміння внутрішньої будови. Ми спеціалізуємося на кастомізації DeFi-протоколів під конкретні завдання, з аудитом та тестуванням кожної зміни. Наш досвід — кілька років на ринку, десятки успішних форків. При цьому кастомізація форка економить до 70% бюджету порівняно з розробкою з нуля.
Які проблеми вирішує кастомізація форка?
Перший крок — зрозуміти, що саме ми форкаємо. Uniswap v2, Uniswap v3, Curve, Aave v3, Compound v3, Balancer v2 — кожен має свою архітектуру та обмеження на кастомізацію.
Uniswap v2 форк — найпростіший. AMM-логіка в UniswapV2Pair, роутер окремо. Кастомізують: fee структуру (v2 фіксовані 0.3%), токеноміку LP-токенів, whitelist торгових пар. Додають: buyback механіку з protocol fee, staking rewards для LP.
Aave v3 форк — складніший. Протокол модульний, 20+ контрактів. Кастомізують: список підтримуваних активів, LTV/liquidation threshold параметри, interest rate strategy, увімкнення/вимкнення isolation mode для нових активів. Не варто чіпати: core математику InterestRateModel без глибокого розуміння, механіку aToken.
Curve форк — нішева задача для stable swap. Параметр A (amplification) критичний: занадто високий — пул не ребалансується при depeg, занадто низький — високий slippage. Значення A для існуючих пулів Curve підбиралося експериментально місяцями.
Поширені помилки при форках
Неправильний fee calculation. В Uniswap v2 fee знімається через amountIn * 997 / 1000 (0.3%). Якщо змінити fee без перерахунку константи — зламається інваріант k = x * y. Транзакції будуть проходити, баланс пулу буде некоректним, LP втратить гроші.
Storage layout при апгрейді форка. Якщо взяли Aave v3 з proxy архітектурою і додали змінну в середину storage — наступний апгрейд зламає storage. Aave v3 використовує свій ReserveData struct в storage slot N. Додавання поля до нього зсуне всі наступні дані.
Oracle configuration. Aave v3 використовує Chainlink aggregators з конкретними heartbeat та deviation threshold параметрами під кожен asset. Форк на новому чейні вимагає або підтримки Chainlink на цьому чейні, або заміни на інший оракул. Використання оракула без anti-manipulation захисту (TWAP, circuit breaker) — прямий вектор до oracle manipulation атаки.
Як ми кастомізуємо: стек і процес
Diff-based аналіз
Беремо оригінальний протокол з офіційного GitHub, робимо fork в приватний репозиторій. Всі зміни — тільки через pull request з описом причини та impact. Це дозволяє в будь-який момент зробити git diff проти оригіналу і зрозуміти повний обсяг змін.
Типовий розмір diff для «легкої» кастомізації Uniswap v2 з додатковим fee механізмом — 200-400 рядків. Якщо diff >1000 рядків — це вже не кастомізація, це новий протокол.
Параметризація через конфіги
Хороші форки виносять змінні параметри в admin-controlled конфіги, а не хардкодять в контракти. Uniswap v2 зі змінним fee: uint256 public swapFee = 30; // basis points з onlyOwner сетером і timelock. Це дозволяє калібрувати параметри після деплою без апгрейду контракту.
Тестування зміненої логіки
Fork-тести в Foundry — основний інструмент перевірки. Беремо реальні історичні транзакції оригінального протоколу, відтворюємо їх проти нашого форка, порівнюємо результати. Розбіжність у балансах — індикатор помилки в математиці.
Invariant тести: для AMM — k повинен тільки зростати (не зменшуватися) з кожним свапом. Для lending — totalDebt ніколи не перевищує totalSupply. Echidna запускаємо на 100k+ ітерацій.
| Протокол | Складність форка | Типовий час кастомізації | Основні ризики |
|---|---|---|---|
| Uniswap v2 | Низька | 3-7 днів | Fee math, oracle |
| Uniswap v3 | Висока | 2-4 тижні | Tick math, concentrated liquidity |
| Aave v3 | Висока | 2-4 тижні | Oracle setup, risk parameters |
| Curve StableSwap | Середня | 1-2 тижні | Параметр A, pool init |
| Balancer v2 | Середня | 1-2 тижні | Vault архітектура, pool math |
Чому варто довірити форк професіоналам?
Кастомізація форка в 3 рази швидша за розробку з нуля і вимагає менше аудитів. Ви отримуєте готовий протокол з налаштованими параметрами, перевіреними змінами та документацією. Ми гарантуємо безпеку: кожна зміна тестується invariants і fork-тестами, diff-документація дозволяє відстежити всі правки. Кастомізація форка економить до 70% бюджету порівняно з розробкою з нуля. Вартість кастомізації розраховується індивідуально, але в середньому на 30-50% нижча за розробку з нуля.
Джерело: аналіз десятків форків DeFi-протоколів за останні роки.
Етапи кастомізації форка
- Аналіз протоколу та підготовка специфікації змін.
- Розробка змінених контрактів з diff-документацією.
- Написання fork- та invariant-тестів (Foundry, Echidna).
- Внутрішній аудит зміненого коду.
- Деплой за допомогою
forge scriptта пост-деплой моніторинг.
Чек-лист перевірки перед деплоєм
- [ ] Всі зміни задокументовані в PR.
- [ ] Fork-тести пройдені на історичних даних.
- [ ] Invariant тести (Echidna) — 100k+ ітерацій.
- [ ] Аудит змінених контрактів зовнішньою командою.
- [ ] Deploy скрипти відтворювані.
Орієнтири за термінами
| Тип кастомізації | Терміни | Приклади |
|---|---|---|
| Легка (fee механіка, whitelist) | 1-2 тижні | Uniswap v2 |
| Середня (нові параметри пулу) | 2-3 тижні | Curve, Balancer v2 |
| Складна (нові активи, oracle) | 2-4 тижні | Aave v3, Compound v3 |
Зв'яжіться з нами для безкоштовного аналізу вашого протоколу — ми оцінимо складність і запропонуємо оптимальний план кастомізації за 1 день. Замовте консультацію, щоб обговорити деталі та отримати оцінку вартості робіт.







