Розробка контрактів ліквідного майнінгу: аудит та газ-оптимізація

Розробка контрактів ліквідного майнінгу Відзначимо: коли протокол запускає liquidity mining, типова задача — розподіляти винагороду в токенах пропорційно вкладеній ліквідності. На перший погляд, простий стейкінг, але після впровадження спливають десятки edge cases: flash loan атаки, inflation att

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

Часті запитання

Останні роботи

  • 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

Розробка контрактів ліквідного майнінгу

Відзначимо: коли протокол запускає liquidity mining, типова задача — розподіляти винагороду в токенах пропорційно вкладеній ліквідності. На перший погляд, простий стейкінг, але після впровадження спливають десятки edge cases: flash loan атаки, inflation attack на порожньому контракті, втрата точності при округленні. Один наш клієнт втратив $50 000 через precision loss у першій версії — після цього ми переписали архітектуру, впровадивши віртуальний початковий баланс і масштабування 1e18. Наша команда вирішила ці проблеми в 50+ проектах, від невеликих IDO до мультичейн-ферм з TVL > $200M. Ми не пишемо універсальний контракт — кожен проект потребує налаштування під конкретну токеноміку, аудит на reentrancy та газ-оптимізацію. Звертайтеся до нас для розробки надійних контрактів — підготуємо архітектуру та кошторис за один день.

Як влаштована математика розподілу винагород?

Базовий алгоритм — MasterChef із Synthetix StakingRewards. Ключова ідея: накопичена винагорода на одиницю стейку (rewardPerTokenStored).

uint256 public rewardPerTokenStored; function rewardPerToken() public view returns (uint256) { if (totalSupply == 0) return rewardPerTokenStored; return rewardPerTokenStored + ( (block.timestamp - lastUpdateTime) * rewardRate * 1e18 / totalSupply ); } function earned(address account) public view returns (uint256) { return (balanceOf[account] * (rewardPerToken() - userRewardPerTokenPaid[account]) / 1e18) + rewards[account]; } 

Оновлення відбувається лише при stake/withdraw/getReward, а не в кожному блоці — O(1) при будь-якій кількості учасників. Похибка від дискретних блоків усувається масштабуванням через 1e18.

Що робити з boosted rewards та multi-reward?

У моделях типу Convex/Curve ефективний стейк залежить від заблокованих governance-токенів (veTokens). Формула:

effective_balance = min(0.4 * balance + 0.6 * (totalSupply * veBal / veTotalSupply), balance) 

Це знижує sell pressure на reward-токен, але потребує ретельного тестування при нульовому veBalance. Для multi-reward кожен токен веде власний rewardPerTokenStored. Референс — Synthetix StakingMultiRewards.

Параметр Masterchef Boosted rewards Multi-reward
Складність Низька Середня Висока
Вартість газу 50-70k 70-90k 90-120k
Стійкість до inflation attack Так (вірт. баланс) Так Так
Гнучкість токеноміки Низька Висока Висока
Ризики precision loss Низькі Середні Середні

Захист від вразливостей ліквідного майнінгу

  1. Inflation attack при першому депозиті. Вводимо віртуальний початковий баланс (VIRTUAL_TOTAL_SUPPLY = 1e18), який ніколи не знімається, або вимагаємо мінімальний депозит.
  2. Flash loan атака. Встановлюємо мінімальний період стейку (lockup) — 1-7 днів. Альтернатива: vesting винагород (лінійне вивільнення за N днів). Навіть 24-годинний vesting робить атаку нерентабельною.
  3. Griefing через оновлення staking. Робимо _updateReward O(1), уникаємо ітерацій по масивах.
  4. Precision loss. Масштабування через 1e18, накопичення remainder'ів.
Деталі реалізації boosted rewardsВнутрішня логіка: при stake/withdraw перераховуємо `effectiveBalance` користувача на основі його ваги в veToken. Зберігаємо відображення `effectiveBalances`. При оновленні `rewardPerToken` використовуємо суму effective-балансів замість raw totalSupply.

Порівняння газових витрат на складні схеми

Операція Базова ферма Multi-reward Boosted
Stake 60k 90k 80k
Withdraw 55k 85k 75k
GetReward 50k 80k 70k

Наші контракти на 20-30% дешевші за типові реалізації за рахунок компактного storage layout та off-chain розрахунків. Наприклад, економія газу в 30k на кожній операції дозволяє зекономити до $5 000 на місяць на комісіях при активному пулі. Додаткова економія: використання immutable змінних знижує вартість деплою на 15-20%.

Як ми працюємо?

  1. Аналітика (0.5 дня). Визначаємо: один або декілька reward-токенів, чи потрібен boosting, мінімальний lockup, спосіб поповнення винагород (manual або автомат).
  2. Проектування архітектури (0.5 дня). Вибір патерну, розрахунок rewardRate, проектування подій для індексації.
  3. Розробка (2-3 дні). Реалізація контракту з форматними тестами та fuzzing-перевірками арифметики.
  4. Аудит внутрішній (1 день). Прогін Slither, Mythril, Echidna. Виправлення зауважень.
  5. Деплой (0.5 дня). Deployer-скрипт, верифікація на Etherscan, transferOwnership на multisig.

Що входить в роботу?

  • Повний вихідний код контрактів з коментарями та тестами (Foundry/Hardhat).
  • Розгорнутий звіт про газ-оптимізацію з вимірами.
  • Гайд по інтеграції субграфа (The Graph) для подій.
  • Підтримка протягом 30 днів після деплою: доопрацювання параметрів, редеплой при необхідності.
  • Супровід зовнішнього аудиту (за запитом).

Чому варто замовити розробку у нас?

Ми розробили контракти для протоколів з TVL до $500M, провели понад 20 внутрішніх аудитів. Наш досвід включає інтеграцію з Chainlink oracle, кросс-чейн мости (LayerZero, Wormhole) та MEV-захист. Проекти, які ми супроводжуємо, проходять зовнішній аудит без критичних зауважень. Ми проводимо аудит ліквідності контракту на предмет вразливостей. Отримайте консультацію по вашому проекту прямо зараз — зв'яжіться з нами для підготовки архітектури та кошторису.