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

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

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1451
  • 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 blokchain. Мы рекомендуем начинать с 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 — от люкса до фармацевтики.