Розробка системи верифікації credentials на блокчейні

При розробці системи верифікації credentials для DeFi-протоколу ми зіткнулися з необхідністю перевіряти KYC-статус користувачів без розкриття їхніх персональних даних. Стандартна верифікація на блокчейні розкриває всі атрибути credential, що порушує конфіденційність. Рішення — verifiable credentials

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

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

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

  • 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

При розробці системи верифікації 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 за рахунок зберігання лише даних, необхідних для верифікації.

Наш підхід: що входить у розробку

Ми проектуємо систему під ключ з нуля або інтегруємося з існуючою архітектурою. В рамках розробки ми:

  1. Обираємо стандарт (W3C VC + DID або Polygon ID для ZK).
  2. Розгортаємо on-chain Registry смарт-контракт на Ethereum/Polygon/Arbitrum (на ваш вибір).
  3. Інтегруємо trusted issuers (Persona, Jumio, Onfido або власний).
  4. Розробляємо Verifier SDK (ethers.js, viem) для використання в протоколі.
  5. Реалізуємо ZK-циркуїти (circom + snarkjs) та верифікатор на смарт-контракті (за потреби).
  6. Проводимо аудит безпеки (Slither, Mythril, Echidna fuzzing).
  7. Передаємо документацію, тести та інструкцію з розгортання.

Порівняння методів верифікації

Метод Приватність Вартість 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 місяці Документація, навчання, доопрацювання

Процес роботи

  1. Аналітика — уточнюємо типи credentials, кількість issuer'ів, вимоги до приватності.
  2. Проектування — обираємо стек (Foundry/Hardhat, circom/snarkjs), архітектуру смарт-контрактів.
  3. Реалізація — пишемо контракти, ZK-циркуїти, SDK, тести (unit + integration).
  4. Аудит — внутрішній та зовнішній аудит безпеки.
  5. Деплой — розгортаємо на обраній мережі, інтегруємо з вашим протоколом.
  6. Підтримка — документація, навчання команди, гарантійна підтримка 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. Ми гарантуємо працездатність та проходження аудиту безпеки. Замовте розробку — отримайте надійну інфраструктуру верифікації.