Уявіть: ви наймаєте спеціаліста, але його диплом виданий університетом, який закрився рік тому. Або ви студент, який зібрав сертифікати з десяти платформ, але не можете надати їх в одному місці. Блокчейн вирішує обидві проблеми — ми в цьому переконалися на практиці, розробивши рішення для EdTech-платформ та акредитаційних агентств. Наш досвід у Web3 дозволяє будувати системи, які працюють з реальними стандартами: W3C Verifiable Credentials, Open Badges 3.0 та EIP-4337. Токенізація освіти та lifelong learning — природне застосування цих технологій.
Традиційна верифікація дипломів — це запит до архіву університету, очікування тижнями та ручна звірка. Блокчейн-рішення скорочує цей процес до секунд. Економія часу — до 80%, бюджету — до 70%. При цьому дані залишаються під повним контролем власника. Вартість розробки розраховується індивідуально під проект. Для прикладу: вартість одного запиту верифікації в блокчейні — менше $0.01, тоді як традиційний запит до архіву може коштувати $10–50.
Чому блокчейн вирішує проблему підробки дипломів?
Роботодавець може перевірити диплом без звернення до університету, який може закритися або не відповідати. Це реальна проблема: тисячі навчальних закладів, різні бази даних, міжнародні запити. Блокчейн дає криптографічну гарантію: диплом не підробити, не змінити заднім числом. Більше того, людина навчається в різних навчальних закладах усе життя — єдиний on-chain portfolio агрегує credentials з усіх джерел, включаючи децентралізовані credentials.
Прозорість акредитації — on-chain реєстр акредитованих навчальних закладів, який неможливо підробити. Кожен запис верифікується акредитаційним органом і залишається незмінним.
Як впровадити рішення в існуючу LMS?
Система складається з двох ключових контрактів: Institution Registry та Credential Issuer. Перший зберігає реєстр акредитованих навчальних закладів, другий випускає дипломи у вигляді SBT (non-transferable NFT).
Institution Registry
contract InstitutionRegistry { struct Institution { string name; string country; string accreditationBody; uint256 accreditedUntil; bytes32 metadataHash; bool active; } mapping(address => Institution) public institutions; mapping(address => bool) public accreditationAuthorities; event InstitutionRegistered(address indexed institution, string name); event InstitutionAccredited(address indexed institution, uint256 validUntil); function registerInstitution( address institutionAddress, string calldata name, string calldata country, string calldata accreditationBody, uint256 validUntil ) external onlyAccreditationAuthority { institutions[institutionAddress] = Institution({ name: name, country: country, accreditationBody: accreditationBody, accreditedUntil: validUntil, metadataHash: bytes32(0), active: true }); emit InstitutionRegistered(institutionAddress, name); } function isActiveInstitution(address institution) public view returns (bool) { Institution memory inst = institutions[institution]; return inst.active && block.timestamp <= inst.accreditedUntil; } } Credential Issuer
contract CredentialIssuer { struct Credential { address recipient; address issuer; string credentialType; string program; string institution; uint256 issuedAt; uint256 completedAt; bytes32 metadataHash; bool revoked; } InstitutionRegistry public registry; mapping(uint256 => Credential) public credentials; mapping(address => uint256[]) public recipientCredentials; uint256 private _nextTokenId; function issueCredential( address recipient, string calldata credentialType, string calldata program, uint256 completedAt, bytes32 metadataHash ) external returns (uint256 tokenId) { require(registry.isActiveInstitution(msg.sender), "Not accredited institution"); tokenId = _nextTokenId++; credentials[tokenId] = Credential({ recipient: recipient, issuer: msg.sender, credentialType: credentialType, program: program, institution: registry.institutions(msg.sender).name, issuedAt: block.timestamp, completedAt: completedAt, metadataHash: metadataHash, revoked: false }); recipientCredentials[recipient].push(tokenId); emit CredentialIssued(tokenId, recipient, msg.sender, credentialType); return tokenId; } function revokeCredential(uint256 tokenId, string calldata reason) external { require(credentials[tokenId].issuer == msg.sender, "Not issuer"); credentials[tokenId].revoked = true; emit CredentialRevoked(tokenId, reason); } function verifyCredential(uint256 tokenId) external view returns ( bool valid, address recipient, string memory credentialType, string memory institution, bool issuerAccredited ) { Credential memory cred = credentials[tokenId]; return ( !cred.revoked, cred.recipient, cred.credentialType, cred.institution, registry.isActiveInstitution(cred.issuer) ); } } Порівняння блокчейну та централізованої бази даних
| Критерій | Традиційний підхід | Блокчейн-рішення |
|---|---|---|
| Швидкість перевірки | Дні–тижні | Секунди |
| Вартість транзакції | Запит платний | Газ (частки цента) |
| Доступність | У робочий час | 24/7 |
| Надійність | Залежність від оператора | Криптографічна |
| Захист від змін | Можлива підробка | Незмінність |
Централізована база дешевша в підтримці, але блокчейн на порядок надійніший для верифікації. Рекомендуємо гібридний підхід: on-chain зберігати лише hash і статус, а самі документи — в IPFS.
Порівняння стандартів верифікації
| Стандарт | Формат | Децентралізація | Взаємодія |
|---|---|---|---|
| Open Badges 3.0 | W3C Verifiable Credential | Так (блокчейн) | Висока |
| Традиційні дипломи | PDF/папір | Ні | Низька |
Як ми це робимо: стек, Open Badges, DID
Стандарт IMS Global Open Badges 3.0 заснований на W3C Verifiable Credentials. Це дає interoperability: credentials можна верифікувати будь-яким VC-сумісним інструментом.
Приклад JSON Verifiable Credential (натисніть для розкриття)
{ "@context": [ "https://www.w3.org/2018/credentials/v1", "https://w3id.org/openbadges/v3" ], "type": ["VerifiableCredential", "OpenBadgeCredential"], "issuer": { "id": "did:ethr:0xUniversityAddress", "name": "Technical University" }, "credentialSubject": { "id": "did:ethr:0xStudentAddress", "achievement": { "name": "Bachelor of Computer Science", "type": "Degree", "criteria": "Completion of 240 ECTS credits" } }, "proof": { "type": "EthereumEip712Signature2021", "verificationMethod": "did:ethr:0xUniversityAddress#controller", "proofValue": "0x..." } } On-chain зберігається hash цього документа + статус. Сам документ в IPFS, доступний через CID.
Кожен учасник ідентифікується через DID: did:ethr:0xStudentAddress — студент контролює свої дані, did:web:university.edu — навчальний заклад верифікується в Institution Registry. Це вирішує проблему зміни email або афіліації — identity persistent.
Для EdTech платформ з token economy використовуємо incentives-контракти з оракулами (backend сервер перевіряє проходження тестів і підписує результат). Це запобігає farming без реального навчання. Token-gated навчання — ще один сценарій, коли доступ до курсів відкривається лише за наявності певних NFT.
Процес роботи та терміни
- Аудит вимог та проектування архітектури (1–2 тиж)
- Розробка смарт-контрактів (Solidity, OpenZeppelin) з тестами (Foundry, Slither, Mythril) (3–4 тиж)
- Інтеграція з W3C Verifiable Credentials та Open Badges 3.0 (2–3 тиж)
- Налаштування IPFS, розробка порталів Issuer/Verifier (2–3 тиж)
- Деплой у мережу (Ethereum, Polygon, Arbitrum) та перевірка контрактів (1–2 тиж)
- Документація та навчання команди (1 тиж)
- Технічна підтримка протягом 1 місяця
MVP (Institution Registry + Credential Issuer + верифікація) — 6–8 тижнів. Повна платформа з токен-інцентивами та DID — 3–4 місяці. Терміни залежать від складності інтеграції та вимог до кастомізації.
Що входить у роботу
- Аудит вимог та проектування архітектури блокчейн-рішення
- Розробка смарт-контрактів з тестами (Foundry, fuzz-тести Echidna)
- Інтеграція з W3C Verifiable Credentials та Open Badges 3.0
- Налаштування IPFS для зберігання метаданих (CID pinning)
- Розробка веб-порталів (Issuer + Verifier) на Next.js
- Деплой у вибрану мережу з верифікацією контрактів
- Документація (схеми, API, код-коментарі)
- Навчання команди та передача доступу
- Технічна підтримка протягом 1 місяця
Отримайте консультацію: зв'яжіться з нами, щоб обговорити вашу задачу. Наші інженери мають багаторічний досвід у блокчейн-розробці та десятки успішних проектів в EdTech. Оцінимо проект, підберемо оптимальну архітектуру та терміни. Замовте розробку MVP вже сьогодні. Залиште заявку на попередній аудит вашої системи.







