При розробці системи верифікації credentials для DeFi-протоколу ми зіткнулися з необхідністю перевіряти KYC-статус користувачів без розкриття їхніх персональних даних. Стандартна верифікація на блокчейні розкриває всі атрибути credential, що порушує конфіденційність. Рішення — verifiable credentials з використанням ZK-proof (Groth16 або PLONK), які дозволяють довести лише потрібний факт. Така інфраструктура стандартизована W3C (Стандарт W3C Verifiable Credentials) і підтримується гаманцями (Metamask, WalletConnect) та протоколами. Ми реалізуємо повний цикл: випуск, зберігання, верифікацію та відкликання цифрових credentials на основі стандартів W3C Verifiable Credentials. Система може інтегруватися з існуючими KYC-провайдерами (Persona, Jumio) і працювати на Ethereum, Polygon або Arbitrum. Економія на газі при використанні ZK-proof на L2 становить до 70% — при 1000 верифікацій на день це дозволяє заощадити понад $500 на місяць.
Архітектура верифікації на блокчейні
Система будується з трьох ключових компонентів:
- Issuer — довірена організація (KYC-провайдер, навчальний заклад, DAO), яка випускає підписані credentials через свій DID.
- Holder — користувач, що зберігає credentials (наприклад, у гаманці або за допомогою Polygon ID).
- Verifier — протокол або dApp, який перевіряє credentials перед наданням доступу.
Верифікатор генерує унікальний challenge (nonce), holder включає його в Verifiable Presentation і підписує. Це запобігає replay attacks: презентація дійсна тільки для даного запиту.
// Користувач створює presentation const presentation = { "@context": ["https://www.w3.org/2018/credentials/v1"], "type": ["VerifiablePresentation"], "verifiableCredential": [kycCredential], "proof": { "type": "Ed25519Signature2020", "challenge": nonce, "domain": "app.example.com", "created": new Date().toISOString(), "verificationMethod": `did:ethr:${userAddress}#controller`, "proofPurpose": "authentication", "jws": await signPresentation(nonce) } }; Необхідність ZK-верифікації
Стандартна верифікація розкриває весь credential: протокол бачить емітента, дату видачі та всі атрибути. ZK-proof (Groth16 або PLONK) змінює це: користувач доводить факт («я маю дійсний KYC credential») без розкриття вмісту. Такий підхід потрібен для:
- DeFi lending — перевірити, що позичальник пройшов KYC, але не розкриваючи його особистість.
- DAO governance — надати право голосу лише власникам Contributor SBT, не показуючи, хто саме.
- Compliant DEX — дозволити торгівлю тільки для верифікованих адрес із дозволених юрисдикцій.
ZK-proof прискорює перевірку в 3–5 разів порівняно з повною верифікацією (при використанні Plookup-фреймворків) і забезпечує конфіденційність, необхідну за GDPR.
Як ZK-proof захищає приватність?
ZK-proof дозволяє верифікатору переконатися в достовірності твердження, не бачачи вихідних даних. Наприклад, користувач доводить, що його вік більший за 18, не пред'являючи паспорт. Це досягається через циркуїти circom і snarkjs. On-chain registry зберігає лише хеш або знімок стану, а повні credentials залишаються у користувача.
Що таке on-chain registry?
On-chain registry — це смарт-контракт, який зберігає посилання на актуальні credentials або їх відбитки. При відкликанні credential емітент оновлює registry, і верифікатор перевіряє статус. Такий підхід забезпечує прозорість та незмінність, але вимагає управління газом. Ми оптимізуємо gas consumption за рахунок зберігання лише даних, необхідних для верифікації.
Наш підхід: що входить у розробку
Ми проектуємо систему під ключ з нуля або інтегруємося з існуючою архітектурою. В рамках розробки ми:
- Обираємо стандарт (W3C VC + DID або Polygon ID для ZK).
- Розгортаємо on-chain Registry смарт-контракт на Ethereum/Polygon/Arbitrum (на ваш вибір).
- Інтегруємо trusted issuers (Persona, Jumio, Onfido або власний).
- Розробляємо Verifier SDK (ethers.js, viem) для використання в протоколі.
- Реалізуємо ZK-циркуїти (circom + snarkjs) та верифікатор на смарт-контракті (за потреби).
- Проводимо аудит безпеки (Slither, Mythril, Echidna fuzzing).
- Передаємо документацію, тести та інструкцію з розгортання.
Порівняння методів верифікації
| Метод | Приватність | Вартість gas (L2) | Час перевірки | Підтримка стандартів |
|---|---|---|---|---|
| Стандартна верифікація VC | Низька (розкриває всі дані) | ~50 000 gas | <1 сек | W3C VC + DID |
| ZK-proof (Groth16) | Висока (тільки факт) | ~300 000 gas | 2–3 сек | Polygon ID, circom |
| ZK-proof (PLONK) | Висока (тільки факт) | ~200 000 gas | 1–2 сек | PLONK, Halo2 |
| On-chain commitment + off-chain verif | Середня (хеш) | ~30 000 gas | <1 сек | Кастомний |
Етапи розробки
| Етап | Тривалість | Результат |
|---|---|---|
| Аналітика | 1–2 тижні | Технічне завдання, вибір стеку |
| Проектування | 1–2 тижні | Архітектура смарт-контрактів і ZK-циркуїтів |
| Реалізація | 4–8 тижнів | Контракти, циркуїти, SDK, тести |
| Аудит | 1–2 тижні | Звіт безпеки |
| Деплой | 1 тиждень | Розгортання на мережі, інтеграція |
| Підтримка | 3 місяці | Документація, навчання, доопрацювання |
Процес роботи
- Аналітика — уточнюємо типи credentials, кількість issuer'ів, вимоги до приватності.
- Проектування — обираємо стек (Foundry/Hardhat, circom/snarkjs), архітектуру смарт-контрактів.
- Реалізація — пишемо контракти, ZK-циркуїти, SDK, тести (unit + integration).
- Аудит — внутрішній та зовнішній аудит безпеки.
- Деплой — розгортаємо на обраній мережі, інтегруємо з вашим протоколом.
- Підтримка — документація, навчання команди, гарантійна підтримка 3 місяці.
Приклад конфігурації circom для KYC
pragma circom 2.0.0; include "../../node_modules/circomlib/circuits/comparators.circom"; template KYCCredential(ageThreshold) { signal input age; signal input country; signal input isKYC; signal output valid; component ageCheck = GreaterThan(32); ageCheck.in[0] <== age; ageCheck.in[1] <== ageThreshold; valid <== ageCheck.out * isKYC; } Терміни та що ви отримаєте
Розробка повної credential verification системи займає 8–16 тижнів залежно від складності. Вартість розраховується індивідуально після аудиту вимог. Оцініть ваш проект — зв'яжіться з нами для консультації.
Відмітимо, що ви отримаєте:
- Деплойовані смарт-контракти (Registry + Verifier) з відкритим кодом.
- Verifier SDK (TypeScript) для інтеграції у ваш протокол.
- ZK-циркуїти (якщо потрібно) з аудитом.
- Документацію з архітектури, деплою та експлуатації.
- Підтримку 3 місяці та доопрацювання за вашим ТЗ.
Досвід нашої команди — 5+ років у блокчейн-розробці, 10+ проектів у DeFi, NFT та identity. Ми гарантуємо працездатність та проходження аудиту безпеки. Замовте розробку — отримайте надійну інфраструктуру верифікації.







