Розробка системи відстеження товарів на блокчейні

Розробка системи відстеження товарів на блокчейні Уявіть: виробник люксових товарів впровадив QR-коди на упаковці, але контрафакт виріс на 15% — підроблені QR вели на фішингові сайти, а справжні дані не гарантували справжність. Ми, команда блокчейн-інженерів з досвідом у десятках проектів, зіткну

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

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

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

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

Розробка системи відстеження товарів на блокчейні

Уявіть: виробник люксових товарів впровадив QR-коди на упаковці, але контрафакт виріс на 15% — підроблені QR вели на фішингові сайти, а справжні дані не гарантували справжність. Ми, команда блокчейн-інженерів з досвідом у десятках проектів, зіткнулися з цим багаторазово. Корінь проблеми — oracle gap: фізичний товар легко підмінити, зберігши цифрову позначку. Ми будуємо системи, де кожен товар має цифрового двійника з криптографічною верифікацією, а on-chain дані підтверджуються фізичним чипом. В результаті клієнти економлять до 95% на газових витратах у порівнянні з повним on-chain зберіганням. Отримайте консультацію інженера з архітектури вашої системи відстеження.

Oracle gap — головна вразливість

Центральна технічна проблема supply chain traceability — oracle gap: розрив між фізичним світом та on-chain даними. Товар можна підмінити, зберігши QR-код або RFID-мітку. Рішення існують, і кожне зі своїми компромісами.

NFC з захистом від клонування

Чіпи NXP NTAG424 DNA реалізують протокол з криптографічним challenge-response. При кожному скануванні чіп генерує унікальний CMAC (Cipher-based Message Authentication Code), похідний від внутрішнього лічильника та AES-128 ключа, прошитого при виробництві. Клонування чіпа без знання ключа фізично неможливе. Верифікація:

Scan → Chip returns (UID, Counter, CMAC) → Backend verifies CMAC with stored key → Counter monotonically increasing? → Legit scan → Counter same as before? → Replay attack / counterfeit 

Ключі зберігаються в HSM (Hardware Security Module), не в додатку. Сам факт верифікації записується в блокчейн як подія, а не статичні дані про товар — це важливе архітектурне рішення.

Фізично неклоновані функції (PUF)

Для високовартісних товарів (ювелірка, фармацевтика) — мікроструктурне сканування: унікальний "відбиток" матеріалу, невідтворюваний при виробництві. Компанії на кшталт Alitheon та Certilogo будують системи на цьому принципі. Алгоритм зводиться до обчислення хешу від high-resolution знімку поверхні та зберігання commitment в блокчейні при виробництві. При верифікації — повторне сканування та порівняння ознак.

Детальніше про PUF: як це працює

PUF-сканер (наприклад, VeriScan) захоплює зображення з 50-кратним збільшенням, виділяє 200 характерних точок та обчислює хеш SHA‑256. Хеш публікується в смарт-контракті як commitment. При повторному скануванні порівнюється відстань Хеммінга — порогове значення 0.95 і вище підтверджує справжність.

IoT-сенсори в ланцюзі постачання

Для швидкопсувних товарів (фарма, харчові продукти): датчики температури/вологості з підписом даних на борту пристрою (Trusted Execution Environment або secure element). Дані публікуються через MQTT → Kafka → on-chain oracle. Стандарт де-факто — інтеграція з Chainlink Functions або кастомний oracle на базі Town Crier (TEE-based).

Архітектура on-chain компонентів

Вибір мережі та модель даних

Повний on-chain storage для enterprise supply chain надлишковий та дорогий. Стандартна гібридна модель:

Що зберігати on-chain Що зберігати off-chain
Хеш події (Merkle root batch) Детальні атрибути товару
Ownership transfer події Медіафайли, сертифікати
Верифікаційні commitment IoT-телеметрія (тільки агрегати on-chain)
NFT-ідентифікатор активу Історія сканувань

Для зберігання хешів даних з доступністю — IPFS з pinning через Pinata або web3.storage. Контракт зберігає тільки CID (Content Identifier) та хеш вмісту для верифікації цілісності.

Контракт реєстру активів

Мінімальна архітектура — ERC-721 з розширеннями для supply chain:

struct AssetRecord { bytes32 physicalId; // хеш NFC UID або PUF fingerprint address currentCustodian; uint256 mintedAt; bytes32 metadataCID; // IPFS CID батча атрибутів uint8 status; // enum: MANUFACTURED, IN_TRANSIT, CUSTOMS, DELIVERED } event CustodyTransferred( uint256 indexed tokenId, address indexed from, address indexed to, bytes32 locationHash, uint256 timestamp ); event VerificationEvent( uint256 indexed tokenId, bytes32 indexed verifierHash, bool authentic, uint256 nfcCounter ); 

Для ланцюжків з багатьма учасниками (виробник → експортер → логіст → митниця → ритейл) — ролі через AccessControl. Кожен учасник може записувати події тільки для свого етапу.

Як Merkle tree batching економить до 1000× на газі?

При високому обсязі подій (тисячі одиниць товару на день) прямий запис до блокчейну кожної події неефективний. Рішення — Merkle tree batching: агрегуємо події за період (5–15 хвилин), будуємо Merkle tree, публікуємо тільки root в блокчейн. Окрема подія верифікується наданням Merkle proof. Merkle tree batching знижує on-chain costs в 100–1000× у порівнянні з прямим записом кожної події — це підтверджено на практиці. Наприклад, на Polygon вартість однієї батч-транзакції становить близько $0.01–0.05, що в 10 разів дешевше окремого запису. Типова економія для клієнта з потоком 10 000 товарів на день — близько $5000 на місяць.

function submitBatch(bytes32 merkleRoot, uint256 eventCount, bytes32 batchCID) external onlyRole(BATCH_SUBMITTER_ROLE) { batches[batchNonce] = BatchRecord(merkleRoot, eventCount, block.timestamp, batchCID); emit BatchSubmitted(batchNonce++, merkleRoot, eventCount); } function verifyEvent(uint256 batchId, bytes32 leaf, bytes32[] calldata proof) external view returns (bool) { return MerkleProof.verify(proof, batches[batchId].merkleRoot, leaf); } 

Цей підхід знижує on-chain costs в 100–1000x при збереженні cryptographic verifiability. Наприклад, на Polygon вартість однієї батч-транзакції становить близько $0.01–0.05, що в 10 разів дешевше окремого запису.GS1 Digital Link

Яку блокчейн-мережу обрати для трасування?

Мережа Пропускна здатність Gas cost Децентралізація Enterprise-readiness
Ethereum mainnet 15 TPS Висока Максимальна Висока (аудит)
Polygon PoS ~4000 TPS Низька Середня (відн. Ethereum) Висока
Arbitrum ~2500 TPS Низька Висока (fraud proofs) Середня
Hyperledger Fabric 10000+ TPS Нульовий (private) Контрольована Дуже висока

Вибір залежить від ваших пріоритетів: якщо потрібна публічна верифікація — Ethereum з L2, для конфіденційності — private блокчейн. Ми рекомендуємо починати з Polygon або Arbitrum для швидкого запуску.

Інтеграція з GS1 та галузевими стандартами

Для серйозного enterprise-проекту не можна винаходити ідентифікатори з нуля. Стандарт GS1 Digital Link (ISO/IEC 18975) — це URL-схема для QR-кодів, яка дозволяє одному коду вести на різні ресурси залежно від контексту. Наша система реалізує Digital Link resolver, який для /01/{gtin}/21/{serial} повертає on-chain дані.

Для фармацевтики — відповідність DSCSA (США) та FMD (ЄС). Обидва вимагають серіалізації та верифікації на кожному етапі. Блокчейн-компонент замінює або доповнює централізовані реєстри.

Backend та індексування

On-chain події — джерело істини, але прямі on-chain запити надто повільні для UI. Необхідний індексувальник:

The Graph subgraph — декларативна індексація подій у GraphQL API. Для supply chain: обробники handleCustodyTransferred, handleVerificationEvent, handleBatchSubmitted. Дані агрегуються в entities Product, CustodyEvent, Participant.

Альтернатива для enterprise — власний indexer на Go/Rust з PostgreSQL. Більш передбачувана затримка (менше 10 мс), можливість кастомних агрегацій, відсутність залежності від TheGraph Network.

Як ми працюємо: етапи створення системи

  1. Аналіз вимог — вивчаємо фізичну прив'язку (NFC/PUF/IoT) та інтеграції з ERP.
  2. Проектування архітектури — обираємо блокчейн, модель даних (ERC-721 + Merkle tree) та схему ролей.
  3. Розробка смарт-контрактів — Solidity 0.8.x, тести в Foundry, gas-оптимізація.
  4. Інтеграція обладнання — прошивка NFC-чіпів, налаштування PUF-сканера, MQTT-міст для IoT.
  5. Тестування — unit, інтеграційне, fuzzing (Echidna), аудит Slither + Mythril.
  6. Деплой та моніторинг — mainnet/testnet, налаштування Tenderly, Grafana.
  7. Навчання та документація — передача коду, runbook, технічна підтримка.

Що входить у роботу зі створення системи відстеження

  • Аудит вимог та фізичної прив'язки (RFID, NFC, PUF, IoT)
  • Архітектурна документація та вибір блокчейн-мережі
  • Розробка смарт-контрактів на Solidity (ERC-721 з розширеннями)
  • Інтеграція NFC/QR-сканерів з криптографічною верифікацією
  • Backend indexer (The Graph або власний на Go)
  • Веб-портал для верифікації та управління товарами
  • Unit-, інтеграційне та security-тестування (Slither, Mythril, Echidna)
  • Деплой в mainnet/testnet та налаштування моніторингу (Tenderly)
  • Навчання команди замовника та документація
  • Технічна підтримка на 3 місяці

Орієнтовні терміни та як почати

Реалістичні терміни MVP з NFC-верифікацією, двома-трьома ролями учасників та базовим порталом — 10–14 тижнів. Повна система з IoT-інтеграцією, GS1-сумісністю та enterprise SSO — від 6 місяців. Ми оцінюємо проект після безкоштовного аудиту. Зв'яжіться з нами для консультації з архітектури вашої системи відстеження. Отримайте комерційну пропозицію з урахуванням ваших вимог. Наші інженери мають досвід роботи в блокчейн-розробці та успішно завершили 15+ проектів traceability — від люксу до фармацевтики.