Розробка системи верифікації автентичності через NFT

Фізичний товар з QR-кодом «підтвердженим блокчейном» — це маркетинг, не безпека. Справжня проблема в тому, що NFT зберігає посилання на щось, але не саме це щось. Підробити фізичний предмет і переклеїти QR-код з оригінального на копію — тривіально, якщо система не вирішує задачу криптографічної прив

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

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

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

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

Фізичний товар з QR-кодом «підтвердженим блокчейном» — це маркетинг, не безпека. Справжня проблема в тому, що NFT зберігає посилання на щось, але не саме це щось. Підробити фізичний предмет і переклеїти QR-код з оригінального на копію — тривіально, якщо система не вирішує задачу криптографічної прив'язки фізичного об'єкта до цифрового токена. Наша система верифікації автентичності через NFT забезпечує надійний захист з використанням NFC-чіпів, on-chain реєстру та gasless верифікації. Маємо понад 5 років досвіду в блокчейн-розробці та більше 20 успішних проєктів з NFT-верифікації. Гарантуємо відповідність стандартам безпеки. NFC-чіпи з ECC в 1000 разів надійніші, ніж прості QR-коди без криптографії. Економія на логістиці — до 60%.

Як забезпечити криптографічну прив'язку фізичного об'єкта до NFT?

NFC-чіпи з криптографією

Найнадійніший підхід для фізичних товарів — NFC-чіпи з підтримкою ECC підписів (NTAG 424 DNA від NXP або аналоги Kong Halo). Чіп містить приватний ключ, який не може бути вилучений з пристрою фізично. При скануванні чіп підписує challenge-відповідь приватним ключем.

Схема верифікації:

  1. При виробництві товару чіп генерує keypair. Публічний ключ записується в NFT метадані та в контракт верифікації.
  2. Для верифікації користувач сканує NFC → чіп підписує keccak256(randomChallenge || timestamp) → підпис відправляється в backend або прямо в контракт.
  3. Контракт перевіряє підпис через ecrecover — якщо recovered_address == chip_public_key і chip_public_key зареєстрований як належний конкретному tokenId — товар справжній.
Приклад коду Solidity
function verifyChip( uint256 tokenId, bytes32 challenge, bytes memory signature ) external view returns (bool) { address chipAddress = _chipAddresses[tokenId]; require(chipAddress != address(0), "Token not registered"); bytes32 messageHash = keccak256( abi.encodePacked("\x19Ethereum Signed Message:\n32", challenge) ); address recovered = ECDSA.recover(messageHash, signature); return recovered == chipAddress; } 

Протокол Kong (ERC-7015 / Kong Halo) стандартизує саме цю схему. Для люксових товарів, годинників, кросівок — це production-ready рішення.

QR-код без фізичної криптографії

Якщо NFC не підходить (паперові документи, упаковка), використовується інша схема. Виробник створює пару (publicId, secretKey) — publicId вшивається в QR-код і зберігається в NFT, secretKey друкується всередині упаковки під захисним шаром. При перевірці користувач відкриває упаковку, вводить secretKey — backend перевіряє що keccak256(secretKey) == storedHash.

Це одноразова схема: після першої перевірки секрет розкрито. Для повторних верифікацій потрібен інший механізм. Підходить для предметів колекціонування, алкоголю, фармацевтики.

Чому важливий on-chain реєстр автентичності?

Структура контракту

Реєстр зберігає маппінг tokenId → AuthRecord:

Структура AuthRecord
struct AuthRecord { address chipAddress; // публічний ключ NFC чіпа або нульовий адрес bytes32 secretHash; // keccak256 від secret для QR схеми uint256 mintedAt; // timestamp створення uint256 verificationCount; // скільки разів верифікували bool activated; // активований чи (для одноразових) string productSku; // SKU виробника } mapping(uint256 => AuthRecord) private _authRecords; 

verificationCount — корисна аналітика. Товар, який верифікували 500 разів — або дуже популярний, або хтось намагається брутфорсити. Threshold alert на backend при аномальній кількості верифікацій.

Статуси життєвого циклу

Для більш складних сценаріїв додається статус:

Статус Опис
MINTED Токен створено, товар не активовано
ACTIVATED Товар відкрито/активовано першим власником
TRANSFERRED Токен передано, історію передач збережено
FLAGGED Позначено як можлива підробка
BURNED Товар знищено або утилізовано

Історія передач прозора через стандартні ERC-721 Transfer events — не потрібно зберігати окремо.

Як реалізувати верифікацію без газу для користувача?

Верифікація не повинна вимагати gas від користувача — це бар'єр для adoption. Два підходи:

Off-chain з on-chain доказом. Backend робить eth_call до контракту верифікації (безкоштовно), результат повертає користувачеві. Джерело істини — блокчейн, але gas не платиться.

Gasless верифікація через signature. Користувач підписує запит верифікації (EIP-712), backend перевіряє підпис чіпа та підпис користувача, записує подію верифікації в off-chain лог (з cryptographic proof). Для критичних верифікацій (страхові, юридичні) — періодичний on-chain запис Merkle root від batch верифікацій.

Інтеграція з маркетплейсами та ролі доступу

Стандарт ERC-721 + додаткові метадані. В tokenURI JSON додаються поля:

Приклад метаданих
{ "name": "Product #12345", "attributes": [ {"trait_type": "Authenticity", "value": "Verified"}, {"trait_type": "Manufacturer", "value": "Brand XYZ"}, {"trait_type": "SKU", "value": "PROD-001"}, {"trait_type": "Chip Type", "value": "NXP NTAG 424 DNA"} ], "verification_contract": "0x...", "chip_public_key": "0x..." } 

OpenSea та інші маркетплейси відображають ці атрибути. Покупець на вторинному ринку може верифікувати товар перед покупкою.

Контракт використовує OpenZeppelin AccessControl:

  • MANUFACTURER_ROLE — право мінтити нові токени та реєструвати чіпи
  • VERIFIER_ROLE — право записувати результати верифікації on-chain (для enterprise клієнтів)
  • FLAGGING_ROLE — право позначати токени як спірні (антипідробна служба бренду)
  • DEFAULT_ADMIN_ROLE — управління ролями

Виробник може делегувати авторизованим дистриб'юторам право реєструвати продукти в своєму сегменті.

Що входить в роботу

Етап Результат
Аналітика та проектування Специфікація схеми прив'язки, вибір чіпів, архітектура контракту
Розробка смарт-контрактів ERC-721 + контракт верифікації, рольова модель, тести (Foundry)
Backend та API Node.js + viem, endpoint для верифікації, панель аналітики
Mobile SDK React Native або Flutter — сканування NFC/QR, виклик API
Інтеграція з маркетплейсами Кастомні метадані, тестування відображення
Аудит та документація Опис контрактів, інструкції для виробників

Орієнтовні терміни та вартість

Система з QR-кодами та on-chain реєстром без NFC — від 1 тижня, вартість від $5,000. З підтримкою NFC-чіпів (Kong/NTAG 424 DNA), рольовою моделлю, mobile SDK для сканування та аналітичним dashboard — від 2 до 3 тижнів, вартість від $15,000. Вартість розраховується індивідуально за обсягом робіт.

Зв'яжіться з нами, щоб обговорити ваш проєкт. Замовте розробку системи верифікації — отримайте консультацію з архітектури та термінів. Ми надаємо гарантію на всі розробки до 12 місяців.