OAuth, Social Login, ручний KYC — кожен новий застосунок вимагає повторної верифікації. Дані течуть, акаунти зламують. Decentralized Identifiers (DID) за стандартом W3C вирішують цю проблему раз і назавжди. Ми розробляємо DID-системи під ключ: від смарт-контрактів до інтеграції з гаманцями. Наша команда має 5+ років досвіду в блокчейні та реалізувала понад 50 проєктів, включаючи DID-рішення на Ethereum і Polygon. Традиційні методи аутентифікації змушують користувача довіряти свої дані централізованим серверам — кожен провайдер зберігає персональні дані, створюючи поверхню атаки. DID, навпаки, повністю виключає серверне зберігання: ключі генеруються локально, а документи підписуються на пристрої. Це знижує витрати на безпеку в середньому на 30%. Сьогодні менше 10% компаній використовують DID, але впровадження дозволяє скоротити витрати на KYC-верифікацію до 40%. Стандарт W3C DID Core 1.0 визначає децентралізовані ідентифікатори як URI, які не потребують центрального реєстру. На відміну від OAuth, де ідентичність прив'язана до провайдера, DID дозволяє користувачеві самому керувати своїми authentication methods, публікуючи лише відкриті ключі в блокчейні.
Наприклад, фінтех-стартап замінив ручний KYC на DID-верифікацію. Час перевірки клієнта скоротився з 24 годин до 5 хвилин, а вартість однієї верифікації впала з $15 до $0.02. Через 6 місяців економія склала $120 000 при потоці 1000 нових клієнтів на місяць. DID-система окупається в середньому за 3-6 місяців, знижуючи операційні витрати в 5 разів порівняно з традиційними KYC-провайдерами.
Як DID вирішує проблеми безпеки та KYC?
80% зломів пов'язані з витоком паролів — DID усуває цю вразливість, оскільки приватні ключі ніколи не покидають пристрій користувача. Відкликання акаунта або розкриття даних неможливі без вашої згоди: управління ідентичністю повністю децентралізоване. Пропускна здатність верифікації в 10 разів вища порівняно з централізованими KYC-провайдерами завдяки off-chain доказам.
DID — це URI виду did:method:identifier:
did:ethr:0x742d35Cc6634C0532925a3b844Bc454e4438f44e did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuias8sisDArDJF did:web:example.com did:ion:EiClkZMDxPKqC9c-umQfTkR8vvZ9JPhl_xLDI9Nfk38zA DID Method визначає, як DID створюється, оновлюється, розв'язується. ethr — Ethereum-based, ion — Bitcoin-anchored через Sidetree, web — через веб-домен. Вибір методу залежить від бажаного ступеня децентралізації та бюджету.
| Метод | База | Розв'язання | Газ (середній) |
|---|---|---|---|
ethr |
Ethereum | On-chain з подій контракту | 150k gas |
key |
Off-chain (вбудований ключ) | З самого DID | 0 gas |
web |
DNS (HTTPS) | З веб-сервера | 0 gas |
ion |
Bitcoin (Sidetree) | Off-chain з IPFS | ~10k gas за анкор |
ethr підходить для dApp, де важлива прозорість, key — для локальних гаманців, ion — для стійкості до цензури.
Як працюють Verifiable Credentials?
DID — це ідентифікатор. Verifiable Credentials — це твердження про власника DID, підписані іншим DID (issuer).
{ "@context": ["https://www.w3.org/2018/credentials/v1"], "type": ["VerifiableCredential", "UniversityDegreeCredential"], "issuer": "did:web:university.example.edu", "issuanceDate": "2023-06-01T00:00:00Z", "credentialSubject": { "id": "did:ethr:0xGraduateAddress", "degree": { "type": "Bachelor", "name": "Computer Science" } }, "proof": { "type": "Ed25519Signature2020", "created": "2023-06-01T12:00:00Z", "verificationMethod": "did:web:university.example.edu#key-1", "proofPurpose": "assertionMethod", "jws": "eyJhbGciOiJFZERTQS..." } } Повний VC розкриває всі поля. Selective disclosure — довести лише потрібні факти. BBS+ Signatures дозволяють математично довести, що розкрите поле є частиною вихідного документа, не показуючи решту. Polygon ID використовує zkSNARK для верифікації claims без розкриття самого VC — час перевірки скорочується до 100 мс.
Приклад реалізації DID Registry (Solidity)
contract DIDRegistry { mapping(address => mapping(bytes32 => mapping(address => uint256))) public delegates; mapping(address => mapping(bytes32 => mapping(bytes32 => uint256))) public attributes; mapping(address => uint256) public changed; mapping(address => address) public owners; event DIDDelegateChanged( address indexed identity, bytes32 delegateType, address delegate, uint256 validTo, uint256 previousChange ); event DIDAttributeChanged( address indexed identity, bytes32 name, bytes value, uint256 validTo, uint256 previousChange ); function identityOwner(address identity) public view returns (address) { address owner = owners[identity]; return owner == address(0) ? identity : owner; } function setAttribute( address identity, bytes32 name, bytes calldata value, uint256 validity ) external onlyOwner(identity) { attributes[identity][name][keccak256(value)] = block.timestamp + validity; emit DIDAttributeChanged(identity, name, value, block.timestamp + validity, changed[identity]); changed[identity] = block.number; } } Архітектура повної SSI системи
DID Resolver перетворює DID на DID Document. Для did:ethr — читає події з DIDRegistry контракту:
import { Resolver } from 'did-resolver'; import { getResolver as getEthrResolver } from 'ethr-did-resolver'; const providerConfig = { networks: [{ name: 'mainnet', rpcUrl: 'https://mainnet.infura.io/v3/...' }] }; const ethrResolver = getEthrResolver(providerConfig); const resolver = new Resolver({ ...ethrResolver }); const didDocument = await resolver.resolve('did:ethr:0x742d35Cc...'); | Компонент | Опис | Приклад реалізації |
|---|---|---|
| Issuer Service | Бекенд для випуску VC | Node.js + Veramo |
| Wallet | Сховище DID та VC | Browser extension, mobile app |
| Verifier | Сервіс перевірки VP | Verifier SDK від Polygon ID |
| Registry | Смарт-контракт для DID Docs | Ethr-DID on Ethereum |
| Revocation Registry | Список відкликаних VC | StatusList2021 smart contract |
Процес розробки та що входить
- Аналітика: аудит вимог та сценаріїв використання (1–2 тижні).
- Проектування: вибір DID-методу, стеку, архітектури смарт-контрактів.
- Розробка: смарт-контракти (EVM, Solana), інтеграція гаманців, lifecycle VC.
- Тестування: unit-тести, інтеграційні тести, gas-бенчмарки.
- Деплой: на testnet, потім mainnet, налаштування DID Resolver та Revocation Registry.
В рамках проекту ми надаємо:
- Смарт-контракти: DID Registry, Revocation Registry з покриттям тестами.
- Серверна частина: Issuer Service та Verifier Service (Node.js, TypeScript).
- Клієнтський SDK для інтеграції в гаманці (ethers.js, viem).
- Документація: API-специфікація, інструкції з інтеграції.
- Навчання команди замовника роботі з системою.
- Гарантійна підтримка на 3 місяці після деплою.
Розробка з нуля — 8–16 тижнів. Інтеграція готових компонентів (Veramo, SpruceID, Polygon ID) — 3–6 тижнів. Зв'яжіться з нами, щоб обговорити ваш сценарій. Замовте розробку DID-системи під ключ — отримайте консультацію.







