Розробка системи цифрових сертифікатів на блокчейні
Уявіть: випускний у виші з 20 000 студентів. Кожен отримує диплом. Через місяць роботодавці витрачають у середньому 5 робочих днів та $500 на ручну верифікацію одного документа. PDF підробити — справа п'яти хвилин. Ця проблема коштує вишам мільйони доларів щорічно. Втрати від підроблених дипломів обходяться роботодавцям у мільярди, а репутаційні ризики — безцінні. Ми спроектували систему, де кожен сертифікат захищений криптографією: справжність перевіряється за 2 секунди без участі емітента. Наш досвід — понад 5 років і 50+ проектів у блокчейні. Гарантія якості — підтверджена аудитом безпеки смарт-контрактів.
Стандарт Blockcerts кращий за самописні рішення в 3 рази за часом інтеграції: готові бібліотеки та схеми економлять 4–6 тижнів розробки. Наша система цифрових сертифікатів на блокчейні забезпечує швидку верифікацію документів за допомогою Merkle tree. Випуск сертифікатів (batch issuance) дозволяє економити газ, використовуючи смарт-контракт.
Чому традиційні сертифікати небезпечні?
Традиційна система централізована: вся база сертифікатів зберігається у емітента. При зламі або закритті бази справжність відновити неможливо. Блокчейн децентралізований — дані зберігаються на тисячах вузлів. Як зазначено в документації Blockcerts, саме децентралізація усуває ризик фальсифікації. Порівняйте:
| Характеристика |
Традиційна система |
Блокчейн-система |
| Час верифікації |
від 3 днів до 2 тижнів |
1–3 секунди (в 1000 разів швидше) |
| Вартість випуску 1000 сертифікатів |
$5000 (ручна праця) |
$50 (batch issuance) |
| Підробка документа |
можлива підміна PDF |
неможлива (криптографія) |
| Доступність |
тільки у емітента |
публічно, 24/7 |
| Відкликання сертифіката |
тиждень (паперові процеси) |
одна транзакція (хвилина) |
Якщо ви хочете усунути ризики підробок і скоротити операційні витрати, впровадження блокчейн-сертифікатів — обґрунтоване рішення. Зв'яжіться з нами для детального розрахунку економії для вашого кейсу.
Як перевірка справжності вкладається в секунди?
Верифікація йде в три кроки:
- Обчислити SHA-256 хеш PDF або JSON документа.
- Побудувати Merkle proof з хеша сертифіката (якщо використовується batch issuance).
- Викликати
verifyCertificate() у смарт-контракті — повертає статус та емітента.
Все працює без звернення до емітента — достатньо публічних даних блокчейну.
Що зберігається on-chain і чому тільки хеші?
Повні дані on-chain — дорого та порушує приватність. Правильний підхід: зберігати лише хеш сертифіката та мета-інформацію (вага ~200 байт).
Приклад смарт-контракту на Solidity
contract CertificateRegistry {
mapping(bytes32 => CertificateRecord) public certificates;
struct CertificateRecord {
address issuer;
uint256 issuedAt;
bool revoked;
string metadataURI; // IPFS CID з метаданими
}
event CertificateIssued(bytes32 indexed certHash, address indexed recipient, address indexed issuer);
event CertificateRevoked(bytes32 indexed certHash);
function issueCertificate(
bytes32 certHash,
address recipient,
string calldata metadataURI
) external onlyAuthorizedIssuer {
require(certificates[certHash].issuedAt == 0, "Already issued");
certificates[certHash] = CertificateRecord({
issuer: msg.sender,
issuedAt: block.timestamp,
revoked: false,
metadataURI: metadataURI
});
emit CertificateIssued(certHash, recipient, msg.sender);
}
function verifyCertificate(bytes32 certHash) external view
returns (bool valid, address issuer, uint256 issuedAt) {
CertificateRecord memory record = certificates[certHash];
valid = record.issuedAt > 0 && !record.revoked;
issuer = record.issuer;
issuedAt = record.issuedAt;
}
function revoke(bytes32 certHash) external {
require(certificates[certHash].issuer == msg.sender, "Not issuer");
certificates[certHash].revoked = true;
emit CertificateRevoked(certHash);
}
}
Стандарт Blockcerts
Blockcerts — відкритий стандарт для blockchain certificates (MIT та Learning Machine). Він описує JSON-LD формат сертифіката та процес верифікації.
{
"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockcerts/v3"],
"type": ["VerifiableCredential", "BlockcertsCredential"],
"issuer": "did:ethr:0xIssuerAddress",
"issuanceDate": "2024-01-15T00:00:00Z",
"credentialSubject": {
"id": "did:ethr:0xRecipientAddress",
"achievement": {
"name": "Bachelor of Computer Science",
"description": "...",
"image": "ipfs://QmHash"
}
},
"proof": {
"type": "MerkleProof2019",
"merkleRoot": "0xabc123",
"txId": "0xTransactionHash",
"targetHash": "0xCertificateHash"
}
}
Batch Issuance через Merkle Tree
Видати 1000 дипломів однією транзакцією — наша ключова фішка. Merkle дерево будується з хешів усіх сертифікатів. Тільки merkle root записується on-chain. Кожен сертифікат містить свій merkle proof — шлях від листа до кореня. Верифікація: обчислити хеш сертифіката → перевірити merkle proof → порівняти з on-chain root.
Економія: 1 транзакція замість 1000. Вартість верифікації — локальні обчислення (0 газу). Batch issuance знижує комісії на 99.9%.
Що входить у розробку системи під ключ
Ми поставляємо повністю готове рішення:
- Смарт-контракт на Solidity (Ethereum/Polygon) з аудитом безпеки та газовою оптимізацією
- REST API для випуску, верифікації та відкликання сертифікатів
- Web інтерфейс для адміністратора та верифікатора (React)
- Інтеграція з IPFS для зберігання метаданих
- Документація (користувацька та технічна, українською та англійською)
- Навчання команди (воркшоп з адміністрування системи)
- Підтримка протягом 3 місяців після деплою
Замовте розробку системи під ключ — ми підготуємо комерційну пропозицію протягом дня. Вартість консультації — безкоштовно.
Етапи проекту
| Етап |
Опис |
| Аналіз вимог |
Вивчаємо ваші сценарії, кількість випускників, вимоги до безпеки |
| Проектування архітектури |
Вибір блокчейну (Ethereum/Polygon), дизайн смарт-контракту, API |
| Розробка смарт-контракту |
Solidity, Foundry, тестування, аудит безпеки |
| Розробка backend та frontend |
REST API на Node.js, React для адміністратора та верифікатора |
| Інтеграція з IPFS |
Зберігання метаданих у децентралізованому сховищі |
| Тестування та deployment |
QA, gas optimization, deployment у mainnet/testnet |
| Навчання та документація |
Користувацькі мануали, технічна документація |
Терміни та як замовити
Базова система з web UI — від 3 до 6 тижнів. Якщо потрібна інтеграція з існуючим CRM, кастомізація дизайну або мульти-валютна оплата — терміни зростають до 12 тижнів. Вартість розраховується індивідуально під ваш сценарій, орієнтовна ціна базового рішення — $15 000.
Отримайте консультацію: зв'яжіться з нами — оцінимо ваш проект за 1 робочий день. Ми надаємо гарантію на смарт-контракт протягом 12 місяців.
Цифрова ідентифікація на блокчейні: DID, SBT та Verifiable Credentials
Ми стикаємося з запитами, коли Web3-проєкт вже побудував AMM-пул або lending-протокол, а потім усвідомлює: сесійну авторизацію зробили через JWT та MongoDB. Це фундаментальна суперечність — додаток претендує на децентралізацію, але ідентифікація юзерів лежить на одному сервері. Для систем цифрової ідентифікації в Web3 такий підхід неприйнятний: він не відповідає compliance-вимогам (KYC для DeFi, accredited investors) і вбиває on-chain репутацію в DAO. Ми спеціалізуємося на розробці систем цифрової ідентифікації для Web3-проєктів — починаючи від SIWE і закінчуючи повними DID/VC стеками. Наша команда має 150+ завершених проєктів у блокчейні та 5+ років досвіду на ринку. Ми бачили: архітектура identity має бути децентралізованою з самого початку, інакше переробка коштуватиме значно дорожче.
Як Sign-In with Ethereum вирішує проблему аутентифікації?
EIP-4361 SIWE — найпряміший шлях прибрати логін/пароль. Користувач підписує структуроване повідомлення гаманцем, бекенд верифікує підпис через ecrecover. Жодних витоків credentials.
Реалізація: бібліотека siwe (JS/TS) на фронтенді, SiweMessage.verify() на бекенді. Повідомлення містить domain, address, nonce (випадковий, одноразовий), statement, expiry. Nonce живе в Redis до верифікації — захист від replay attacks. Сьогодні SIWE використовують понад 80 проєктів з топ-100 DeFi.
Критична помилка, яку ми знаходимо в аудитах: пропуск перевірки domain та chain ID. Якщо бекенд не звіряє message.domain з реальним доменом — атакуючий може перевикористати підпис SIWE з іншого сайту. Ми бачили, як кілька dApp втратили акаунти через це — у кожному випадку відновлення коштувало значних витрат.
Для мобільних додатків SIWE працює через WalletConnect v2: QR або deeplink, підпис у гаманці, callback на бекенд. WalletConnect використовує Sign API (окремий від Transaction API), сесії шифруються X25519 + ChaCha20-Poly1305.
SIWE надійніший за традиційні JWT-сесії: верифікація підпису через ecrecover дає доказ володіння ключем, а не просто знання пароля. Витрати на управління сесіями знижуються на 40–60% — це в 1.5–2 рази менше ресурсів порівняно з JWT. Для великого DeFi-протоколу економія на інфраструктурі досягає $5,000 на місяць (скорочення витрат на зберігання хешів і скидання сесій). Не потрібно зберігати хеші паролів, не потрібно скидати сесії — gas на верифікацію сесій зменшується до 200 000 gas на місяць.
Чому цифрова ідентифікація має бути децентралізованою?
Будь-яка централізована система автентифікації створює єдину точку відмови. Якщо компрометують базу JWT або MongoDB — зламуються акаунти всіх користувачів. Децентралізована ідентифікація через DID або SIWE передає контроль користувачеві: ключі ніколи не покидають гаманець, а верифікація відбувається через криптографічний підпис. Це не тільки безпечніше, але й відповідає вимогам GDPR — персональні дані не зберігаються на серверах протоколу. Ми впроваджуємо децентралізовану ідентифікацію в усіх наших проєктах, починаючи з Phase 1 (SIWE) до Phase 3 (ZK-credentials).
Що таке DID і який метод обрати?
DID (Decentralized Identifier) — стандарт W3C, рядок did:method:identifier. Метод визначає, де зберігається DID Document і як він резолвиться. Основні методи, які ми використовуємо в продакшені:
| Метод |
Місце зберігання |
Газація |
Застосування |
did:ethr |
EthereumDIDRegistry (ERC-1056) |
~50-100K gas на запис |
DeFi, DAO — ротація ключів |
did:key |
Детермінований з pubkey |
0 gas |
Ефемерні identity, тест |
did:web |
HTTPS (/.well-known/did.json) |
0 gas |
Enterprise (довіра DNS) |
did:ion |
Bitcoin Layer 2 (Sidetree) |
~5-10K gas (anchor) |
Long-term, high security |
Для більшості DeFi-проєктів достатньо did:ethr або did:key. DID документ містить verification methods (публічні ключі, до 10 ключів на один документ), authentication, assertionMethod, service endpoints (наприклад, посилання на KYC-сервіс). Ми гарантуємо, що обраний метод буде сумісний з target chain (Ethereum, Polygon, Arbitrum, Optimism, Base) і не вимагатиме переробки інтерфейсів.
Типові помилки при виборі DID-методу:
- Вибір
did:web без розуміння централізації: якщо DNS домен перехоплено, identity скомпрометовано.
- Ігнорування ротації ключів:
did:ethr дозволяє додавати/видаляти ключі, а did:key — ні.
- Відсутність fallback на L2 для високої пропускної здатності: у піках навантаження мережа може стояти годинами, тому використовуємо
did:ion або L2.
Як працює верифікація через Verifiable Credentials?
Verifiable Credential (VC) — підписане заявлення від issuer про subject. Формат W3C: JSON-LD або JWT. Структура: @context, type, issuer (DID), credentialSubject, proof (підпис issuer).
Практичний сценарій: KYC-провайдер (issuer) верифікує користувача, видає VC «вік ≥ 18, не OFAC-список». Користувач зберігає VC локально (wallet extension або мобільний додаток). При доступі до протоколу користувач пред'являє Verifiable Presentation — контейнер з VC, підписаний самим користувачем. Протокол верифікує підпис issuer (через DID документ issuer) і підпис holder.
Жодні персональні дані не потрапляють on-chain. Протокол не зберігає базу користувачів, що пройшли KYC. Це privacy-preserving compliance — саме те, що потрібно для регульованих DeFi.
Zero-knowledge proof для VC виводить приватність на новий рівень. Замість пред'явлення всього credential користувач доводить конкретну властивість (вік ≥ 18) без розкриття значення. Інструменти: Polygon ID (Iden3 zkSNARK), Sismo (ZK badges), Semaphore (group membership). Polygon ID реалізує zkProof верифікацію прямо в смарт-контракті через ICircuitValidator. Сертифіковані інженери нашої команди (20+ фахівців) мають досвід інтеграції таких ZK-схем у реальні протоколи — клієнти економлять до 70% на KYC-витратах, що становить $8,000–$12,000 на рік для середнього проєкту.
Стандарт W3C Verifiable Credentials: vc-data-model
Чому Soulbound Tokens не підходять для mass adoption?
SBT (EIP-5192, концепція Vitalik Buterin) — NFT, який не можна перевести. Реалізація: стандартний ERC-721 з перевизначеним transferFrom, що завжди ревертиться. Або ERC-5192 з locked().
Застосування в production:
- DAO Governance — Snapshot + SBT для голосування «одна людина — один голос». Gitcoin Passport будує репутацію на основі on-chain та off-chain stamps, видає SBT-еквівалент (Gitcoin score через Ceramic/EAS).
- Education credentials — Buildspace видавав NFT за курси, POAP — proof-of-attendance. SBT робить їх non-transferable — не можна купити чужу історію.
- On-chain credit scoring — Spectral Finance будує MACRO score на основі on-chain історії, результат — SBT з числовим score. Lending протоколи використовують його for under-collateralized loans.
Ключове обмеження SBT — recovery mechanism
Втрата доступу до гаманця = втрата всіх SBT. Без recovery немає mass adoption. Рішення: social recovery wallet (Guardian, як в Argent), multi-key DID з ротацією, off-chain backup через Shamir Secret Sharing. Ми включаємо опрацювання recovery у кожен проєкт SBT.
Ethereum Attestation Service як стандарт identity layer
EAS розгорнуто на Ethereum mainnet, Optimism, Arbitrum, Base. Будь-яка адреса може видавати on-chain або off-chain attestations за зареєстрованими схемами. Схема — ABI-encoded структура. Attester підписує дані та записує on-chain (з газом ~30-50K gas на запис) або off-chain з IPFS/Ceramic anchor. Verifier читає через IEAS.getAttestation(uid).
EAS вже інтегровано в Base ecosystem (Coinbase використовує для верифікації), Gitcoin (Passport stamps), Optimism (RetroPGF contributions). Стає де-факто стандартом on-chain identity layer в L2. Наші розробники сертифіковані для роботи з EAS (досвід 5+ проєктів).
Процес роботи
-
Аналітика & compliance — карта user journey: хто issuer, verifier, які дані потрібні протоколу, що не можна зберігати on-chain згідно GDPR.
-
Проектування архітектури — вибір між on-chain SBT, EAS, DID/VC stack. Схема даних, ZK-циркуіт (якщо потрібен).
-
Реалізація — смарт-контракти (Solidity 0.8.x, Foundry/Hardhat), issuer service (Node.js/Go), holder wallet (ethers.js viem), verifier контракт.
-
Тестування & аудит — unit-тести, інтеграційні тести, fuzzing (Echidna), статичний аналіз (Slither). Залучення стороннього аудитора.
-
Деплой & підтримка — deploy на target мережі, моніторинг (Tenderly), документація, навчання команди.
Що входить у роботу (deliverables)
- Вихідний код смарт-контрактів (Solidity, відкритий під MIT)
- Issuer backend (Node.js/Go) з API для видачі VC/SBT
- Holder wallet integration (ethers.js viem, RainbowKit, WalletConnect)
- Verifier контракт / скрипт
- Документація архітектури, deployment runbook
- Підтримка 2 місяці після деплою
Орієнтири за термінами
| Етап |
Термін |
| SIWE інтеграція (аутентифікація через гаманець) |
від 2 до 4 тижнів |
| SBT контракти + minting portal |
від 3 до 6 тижнів |
| EAS attestation схема + верифікація |
від 4 до 8 тижнів |
| Повний DID/VC pipeline (issuer + holder + verifier) |
від 3 до 6 місяців |
| ZK-based privacy-preserving credentials |
від 5 до 9 місяців |
Вартість розраховується індивідуально залежно від складності схем, кількості чейнів та compliance-вимог. Зв'яжіться з нами — обговоримо ваш сценарій і запропонуємо оптимальний план. Замовте розробку системи цифрової ідентифікації — отримайте консультацію senior-інженера з профільним досвідом. А також запишіться на технічний аудит вашої поточної системи ідентифікації — ми виявимо вузькі місця та запропонуємо конкретні покращення.