Втрати мільйонів доларів через Sybil-атаку на airdrop — не рідкість. Один DeFi-протокол роздав токени тисячам фейкових акаунтів, хоча реальних користувачів було лише кілька тисяч. Standard KYC відсік би 80% чесних учасників, а anti-sybil система, заснована на агрегації поведінкових та криптографічних сигналів, блокує 95% ботів з мінімальним тертям. Sybil attack — класична проблема розподілених систем, особливо гостра в DeFi. Верифікація користувачів DeFi — ключова задача для захисту аірдропів, гейтингу та управління DAO. Ми розробляємо такі системи під ключ. Sybil-атаки призводять до розмивання токенів та втрати контролю в DAO. Наше рішення об'єднує on-chain історію, зовнішні верифікатори (Proof of Humanity, BrightID, Worldcoin) та ZK-proofs, щоб відрізнити реального користувача від бота. Нижче — розбір сигналів та архітектури.
Чому KYC не вирішує проблему Sybil?
Традиційне KYC порушує приватність та відсікає 40-60% аудиторії, не готової ділитися документами. Блокчейн-адреса — просто пара ключів; створити тисячі адрес за хвилини. Anti-sybil використовує анонімні сигнали та криптографічні докази, зберігаючи анонімність та збільшуючи конверсію на 30%. Anti-sybil система в 10 разів ефективніша за KYC у відсіюванні ботів, при цьому не вимагаючи паспортних даних. Запобігання одній Sybil-атаці на airdrop зберігає в середньому $250k.
Які сигнали використовуються для anti-sybil?
- On-chain активність: акаунт з >2 років історії, >100 транзакцій, взаємодія з >10 протоколами — висока ймовірність реальної людини. Sybil фермери зазвичай мають молоді акаунти з <50 транзакціями.
- Asset holdings: мінімальний balance та різноманітний портфель. Фейкові акаунти часто порожні.
- DeFi participation: liquidity provision, borrowing, voting — складні патерни.
- NFT ownership: верифіковані колекції, що вимагають gas-intensive mint.
Зовнішні верифікатори:
- Proof of Humanity (PoH): відео-реєстрація з арбітражем. Стійкість до Sybil висока, але процес займає до 2 тижнів.
- BrightID: соціальна верифікація через відеоконференції. Friction в 5 разів нижчий, ніж у Worldcoin, при схожій стійкості.
- Worldcoin: біометрична iris scan через ZK — найсильніший сигнал, але високий поріг входу.
Порівняння методів:
| Метод | Приватність | Стійкість до Sybil | Friction (за 10-бальною шкалою) |
|---|---|---|---|
| Proof of Humanity | Середня | 8 | 4 |
| BrightID | Висока | 8 | 2 |
| Worldcoin | Низька | 10 | 9 |
Таблиця інтеграційних витрат:
| Сервіс | Час інтеграції (днів) | Підтримка ZK | Вартість газу (на верифікацію) |
|---|---|---|---|
| Gitcoin Passport | 5-10 | Ні | ~50k gas |
| BrightID | 3-5 | Ні | ~30k gas |
| Worldcoin | 10-15 | Так (Semaphore) | ~80k gas |
Як ми реалізуємо anti-sybil системи
Ми використовуємо Gitcoin Passport як базовий шар: агрегатор stamps (Google, GitHub, BrightID, on-chain). Користувач збирає stamps, контракт перевіряє score. Для глибокої інтеграції пишемо власний контракт скорингу з weights.
Приклад ядра системи:
contract AntiSybilSystem { // Різні сигнали з вагами struct SybilScore { uint256 humanityScore; // 0-100 bool isVerified; uint256 lastUpdated; bytes32[] passedChecks; } mapping(address => SybilScore) public scores; function updateActivityScore( address user, uint256 txCount, uint256 uniqueProtocols, uint256 accountAgeDays ) external onlyOracle { uint256 score = 0; if (accountAgeDays > 730) score += 30; else if (accountAgeDays > 365) score += 20; if (txCount > 500) score += 30; else if (txCount > 100) score += 20; if (uniqueProtocols > 20) score += 40; else if (uniqueProtocols > 10) score += 25; scores[user].humanityScore = score; scores[user].lastUpdated = block.timestamp; } function registerExternalVerification( address user, bytes32 verificationType, bytes calldata proof ) external onlyVerifier { require(_verifyProof(verificationType, proof, user), "Invalid proof"); scores[user].passedChecks.push(verificationType); scores[user].isVerified = true; scores[user].humanityScore = 100; } } Як ZK-proofs забезпечують анонімну верифікацію
Nullifier pattern — основа приватної anti-sybil системи. Користувач доводить, що має унікальний credential (наприклад, iris scan), не розкриваючи його. Nullifier — хеш від credential та секрету. Повторна реєстрація дає той же nullifier, дубль блокується. Це дозволяє економити до 40% газу порівняно зі зберіганням credential в контракті.
ZK Proof: Input (private): iris_scan_hash, secret Input (public): world_tree_root, nullifier_hash Proves: iris_scan_hash in world_tree_root Nullifier = hash(iris_scan_hash, secret) Приклад оцінки gas витрат для on-chain скорингу
Виклик updateActivityScore коштує ~100k gas (~$0.20 при 20 gwei). Це прийнятно для більшості сценаріїв.Процес роботи
- Аналіз вимог — визначаємо які сценарії захищати (airdrop, voting, gating)
- Проектування архітектури — обираємо комбінацію сигналів та зовнішніх інтеграцій
- Розробка — пишемо смарт-контракти (Solidity), фронтенд, тести
- Аудит безпеки — використовуємо Slither, Mythril, Echidna для fuzzing
- Розгортання та моніторинг — деплой в mainnet, налаштування Tenderly
Терміни та що входить
Розробка production системи — від 6 до 12 тижнів. Вартість розраховується індивідуально, але економія від запобігнутих Sybil-атак в 10-50 разів перевищує інвестиції. Запобігання одній Sybil-атаці може зекономити сотні тисяч доларів.
В роботу входить:
- Архітектура та дизайн-документ
- Смарт-контракти Solidity (ERC стандарти, скоринг)
- Інтеграція з Gitcoin Passport, PoH, BrightID або Worldcoin
- Фронтенд для користувацького скорингу
- Юніт-тести та інтеграційні тести
- Документація (API, контракти)
- Підтримка 30 днів після деплою
Довірте розробку команді з 10+ роками досвіду в блокчейні. Ми реалізували 50+ проєктів на Ethereum, Polygon, Solana, Arbitrum. Замовте anti-sybil систему під ключ — отримайте консультацію інженера.







