Уявіть: ви наймаєте спеціаліста, але його диплом виданий університетом, який закрився рік тому. Або ви студент, який зібрав сертифікати з десяти платформ, але не можете надати їх в одному місці. Блокчейн вирішує обидві проблеми — ми в цьому переконалися на практиці, розробивши рішення для 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 вже сьогодні. Залиште заявку на попередній аудит вашої системи.







