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-системы под ключ — получите консультацию.







