Фізичний товар з 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-відповідь приватним ключем.
Схема верифікації:
- При виробництві товару чіп генерує keypair. Публічний ключ записується в NFT метадані та в контракт верифікації.
- Для верифікації користувач сканує NFC → чіп підписує
keccak256(randomChallenge || timestamp)→ підпис відправляється в backend або прямо в контракт. - Контракт перевіряє підпис через
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 місяців.







