Розробка системи верифікації дипломів на блокчейні

Верифікація дипломів на блокчейні: як позбутися підробок за 2 секунди Паперовий диплом можна підробити: достатньо хорошого принтера та пари годин. Навіть PDF з підписом — не гарантія, адже файл редагується. Роботодавці витрачають дні на перевірку: запит до вишу, очікування відповіді, бюрократія.

Напрямки блокчейн-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    998
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1267
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1003

Верифікація дипломів на блокчейні: як позбутися підробок за 2 секунди

Паперовий диплом можна підробити: достатньо хорошого принтера та пари годин. Навіть PDF з підписом — не гарантія, адже файл редагується. Роботодавці витрачають дні на перевірку: запит до вишу, очікування відповіді, бюрократія. Наша команда вирішує це завдання за допомогою смарт-контрактів: хеш документа зберігається в блокчейні, і будь-хто може перевірити автентичність за секунди. За 5 років ми реалізували 20+ проєктів верифікації для університетів і бізнесу, і ось як це працює.

Які проблеми вирішуємо?

Підробка дипломів — бич багатьох галузей. Паперовий диплом легко скопіювати або змінити. Навіть PDF з підписом можна сфабрикувати. Блокчейн робить підробку економічно невигідною: хеш документа зберігається в мережі, і будь-яка розбіжність з оригіналом одразу помітна. Ризик підробки знижується на 90%.

Довга перевірка — запит до університету, очікування відповіді днями або тижнями. Наша система видає результат за 2 секунди: достатньо відсканувати QR-код на дипломі.

Відкликання застарілих дипломів — якщо студента позбавлено ступеня, виш може анулювати запис у контракті. При верифікації буде показано статус revoked.

Як ми це робимо: реальний кейс

Один із клієнтів — регіональний університет із 50 000 студентів. Щороку вони випускають 8 000 дипломів. Раніше перевірка автентичності займала до 10 днів. Ми розгорнули систему на Polygon (газ ~$0.01 за видачу) з batch-функцією та Merkle tree. Тепер усі дипломи випускаються за одну транзакцію, а кожна верифікація коштує копійки. Впровадження зайняло 4 тижні, включно з інтеграцією з їхньою CRM.

Мінімальна архітектура:

contract DiplomaVerification { struct DiplomaRecord { bytes32 documentHash; // SHA-256 hash PDF документа address institution; string recipientName; // ім'я — НЕ адреса, студенти часто без wallets string degree; uint256 issuedAt; bool revoked; } mapping(bytes32 => DiplomaRecord) public diplomas; mapping(address => bool) public authorizedInstitutions; mapping(address => string) public institutionNames; event DiplomaIssued(bytes32 indexed documentHash, address indexed institution, string recipientName); event DiplomaRevoked(bytes32 indexed documentHash, string reason); function issueDiploma( bytes32 documentHash, string calldata recipientName, string calldata degree ) external onlyAuthorized { require(diplomas[documentHash].issuedAt == 0, "Already issued"); diplomas[documentHash] = DiplomaRecord({ documentHash: documentHash, institution: msg.sender, recipientName: recipientName, degree: degree, issuedAt: block.timestamp, revoked: false }); emit DiplomaIssued(documentHash, msg.sender, recipientName); } function verifyDiploma(bytes32 documentHash) external view returns ( bool isValid, string memory institution, string memory recipientName, string memory degree, uint256 issuedAt ) { DiplomaRecord memory record = diplomas[documentHash]; return ( record.issuedAt != 0 && !record.revoked, institutionNames[record.institution], record.recipientName, record.degree, record.issuedAt ); } } 

QR-код верифікація

Зручний UX для роботодавців: диплом містить QR-код, при скануванні відкривається сторінка верифікації.

function generateDiplomaQR(documentHash: string, chainId: number): string { const verificationUrl = `https://verify.university.edu/diploma?hash=${documentHash}&chain=${chainId}`; return QRCode.toDataURL(verificationUrl); } async function verifyDiploma(documentHash: string): Promise<VerificationResult> { const provider = new ethers.JsonRpcProvider(RPC_URL); const contract = new ethers.Contract(DIPLOMA_CONTRACT, ABI, provider); const [isValid, institution, recipientName, degree, issuedAt] = await contract.verifyDiploma(documentHash); return { isValid, institution, recipientName, degree, issuedAt: new Date(issuedAt * 1000) }; } 

Як працює batch-видача дипломів?

Для університетів — видача сотень дипломів після graduation. Навіщо платити газ за кожен диплом окремо? Ми реалізуємо пакетну видачу:

function issueDiplomaBatch( bytes32[] calldata documentHashes, string[] calldata recipientNames, string[] calldata degrees ) external onlyAuthorized { require(documentHashes.length == recipientNames.length, "Length mismatch"); for (uint i = 0; i < documentHashes.length; i++) { diplomas[documentHashes[i]] = DiplomaRecord({ documentHash: documentHashes[i], institution: msg.sender, recipientName: recipientNames[i], degree: degrees[i], issuedAt: block.timestamp, revoked: false }); } emit BatchDiplomasIssued(msg.sender, documentHashes.length, block.timestamp); } 

Або більш економний варіант — Merkle tree: зберігати лише root hash усього batch, верифікація через Merkle proof. Це знижує газ на видачу на 80% порівняно з індивідуальним зберіганням кожного диплома.

Яку мережу обрати?

Якщо бюджет обмежений, Polygon — оптимальний вибір для MVP: газ $0.01 за видачу, швидкість висока. Для production із максимальною надійністю — Arbitrum: використовує безпеку Ethereum, але газ дешевший ($0.10). Ethereum mainnet дає найвищий захист, але газ може бути суттєво дорожчим. Ми деплоїмо контракти в кілька мереж для резервування і рекомендуємо комбінацію Polygon + Arbitrum.

Мережа Газ за видачу Швидкість Надійність
Polygon ~$0.01 2 сек Середня (ZK rollup)
Arbitrum ~$0.10 5 сек Висока (Optimistic rollup)
Ethereum mainnet ~$0.50–$5 12 сек Максимальна

Процес роботи

  1. Аналітика — обговорюємо вимоги: обсяг випуску, інтеграція з CRM вишу, терміни.
  2. Проєктування — обираємо мережу, архітектуру (Merkle або прямий storage), дизайн QR-сторінки.
  3. Розробка смарт-контракту — Solidity 0.8.x з тестами на Foundry (fuzz, unit). Аудит за допомогою Slither і Mythril.
  4. Backend і frontend — admin-панель для вишу (випуск, відкликання, перегляд) + публічна сторінка верифікації з QR.
  5. Деплой — deploy на обрані мережі, налаштування DNS, випуск тестового диплома.
  6. Підтримка — передаємо доступи, документацію, навчаємо адміністраторів.

Що входить у розробку?

Компонент Опис
Смарт-контракт DiplomaVerification з тестами, verified на Etherscan
Admin-портал React + ethers.js для випуску/відкликання дипломів
Сторінка верифікації Публічна з QR-кодом і перевіркою за 2 секунди
Batch-видача Опціонально з Merkle tree (економія газу до 80%)
Deploy-скрипти Міграції на кілька мереж
Документація Технічна інструкція для адміністраторів
Гарантійна підтримка 1 місяць після запуску

Типові помилки при впровадженні

  • Зберігати в контракті весь PDF, а не хеш — дорого й небезпечно. Використовуйте лише хеш.
  • Використовувати лише одну мережу — при форку або проблемах верифікація зупиниться. Дублюйте дані мінімум на 2 мережі.
  • Не відкликати застарілі дипломи — функція revoke обов'язкова.
  • Ігнорувати oracle для перевірки статусу вишу — при зміні ключів адміністрації можна втратити доступ.

Терміни реалізації

Типовий проєкт (контракт + admin portal + сторінка верифікації) — від 3 до 5 тижнів залежно від складності інтеграції. При використанні Merkle tree — +1 тиждень.

Замовте консультацію — ми проаналізуємо ваші вимоги та запропонуємо оптимальне рішення. Оцінимо ваш проєкт безкоштовно. Напишіть нам — розкажемо, як впровадити блокчейн-верифікацію у вашому університеті без зайвих витрат. Гарантуємо прозорість і повну документацію.