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

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

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

Часто задаваемые вопросы

Последние работы

  • 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. Мы гарантируем работоспособность и прохождение аудита безопасности. Закажите разработку — получите надёжную инфраструктуру верификации.