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

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Разработка системы сертификации происхождения товаров на блокчейне
Средняя
~1-2 недели
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1056
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

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

Классическая проблема supply chain: сертификаты происхождения подделываются, данные о цепочке поставок хранятся в разрозненных ERP-системах разных участников и не верифицируемы третьими сторонами, а потребитель не имеет возможности проверить что "органический продукт" действительно органический. Блокчейн сам по себе не решает эту проблему — данные в смарт-контракт вносит человек, и если человек вносит неверные данные, блокчейн лишь гарантирует их неизменность, но не достоверность. Правильная архитектура системы сертификации — это понимание где blockchain реально помогает, а где нет.

Архитектурные решения

Выбор сети

Для supply chain систем с корпоративными участниками подходят два класса решений:

Публичные сети (Polygon, Avalanche, Base) — прозрачность для конечного потребителя. Любой может верифицировать данные через block explorer. Минус — все данные публичны, что может быть неприемлемо для B2B данных о контрагентах и ценах.

Permissioned сети (Hyperledger Besu, Quorum, Fabric) — приватность участников, высокая производительность, фиксированный набор валидаторов. Подходит для consortium участников. Минус — теряется trustless гарантия, характерная для публичных сетей.

Гибридный подход: приватная сеть для операционных данных + якорение хешей на публичный блокчейн для аудируемости. Оптимальный вариант для большинства enterprise-случаев.

Идентификаторы продуктов

Стандарт — GS1 EPCIS 2.0 для событий в цепочке поставок. Каждый физический объект получает уникальный идентификатор (EPC — Electronic Product Code), привязанный к on-chain записи:

contract ProductRegistry {
    struct ProductBatch {
        bytes32 batchId;          // хэш от GS1 GTIN + lot number + expiry
        address certifiedBy;       // аккаунт сертифицирующего органа
        bytes32 documentHash;      // IPFS CID документов в bytes32
        uint256 certifiedAt;
        CertificationLevel level;
        bool revoked;
    }
    
    enum CertificationLevel { 
        ORIGIN_DECLARED,    // продавец задекларировал происхождение
        AUDITOR_VERIFIED,   // независимый аудитор верифицировал
        LAB_TESTED,         // лабораторные анализы подтверждены
        CERTIFIED           // полная сертификация пройдена
    }
    
    mapping(bytes32 => ProductBatch) public batches;
    mapping(bytes32 => bytes32[]) public batchEvents; // цепочка событий
    
    // только аккредитованные сертификаторы
    mapping(address => bool) public certifiers;
    
    modifier onlyCertifier() {
        require(certifiers[msg.sender], "Not authorized certifier");
        _;
    }
    
    function certifyBatch(
        bytes32 batchId,
        bytes32 documentHash,
        CertificationLevel level
    ) external onlyCertifier {
        batches[batchId] = ProductBatch({
            batchId: batchId,
            certifiedBy: msg.sender,
            documentHash: documentHash,
            certifiedAt: block.timestamp,
            level: level,
            revoked: false
        });
        emit BatchCertified(batchId, msg.sender, level);
    }
    
    function revokeCertification(bytes32 batchId, string calldata reason) 
        external onlyCertifier 
    {
        require(batches[batchId].certifiedBy == msg.sender, "Not your cert");
        batches[batchId].revoked = true;
        emit CertificationRevoked(batchId, reason);
    }
}

NFT vs. SFT vs. fungible token

Для сертификации батчей продуктов:

  • ERC-721 (NFT) — каждый батч уникален. Хорошо для высокоценных товаров (wine, luxury), где каждая партия имеет уникальные характеристики
  • ERC-1155 (Semi-fungible) — оптимален для большинства случаев: внутри батча единицы одинаковы, между батчами — нет. Позволяет передавать часть батча
  • ERC-20 — для сыпучих/жидких товаров без фиксированных партий (зерно, нефть)

Цепочка событий (трансфер custody)

Каждое перемещение товара в цепочке поставок записывается как событие. События образуют auditable trail:

contract SupplyChainEvents {
    struct CustodyEvent {
        bytes32 batchId;
        address from;       // предыдущий владелец / производитель
        address to;         // следующий владелец / дистрибьютор
        bytes32 locationHash; // хэш GPS-координат или адреса склада
        bytes32 conditionsHash; // хэш данных IoT (температура, влажность)
        uint256 timestamp;
        EventType eventType;
    }
    
    enum EventType {
        PRODUCED,
        QUALITY_CHECKED,
        PACKAGED,
        SHIPPED,
        CUSTOMS_CLEARED,
        RECEIVED,
        RETAIL_LISTED,
        SOLD
    }
    
    event CustodyTransferred(
        bytes32 indexed batchId,
        address indexed from,
        address indexed to,
        EventType eventType
    );
}

Хранить сырые данные о местоположении и условиях хранения on-chain дорого. Правильная схема: данные → IPFS/Arweave → хэш данных on-chain. Верификатор скачивает данные с IPFS и проверяет что хэш совпадает с on-chain записью.

Интеграция с IoT

Физические сенсоры (температура при транспортировке, влажность на складе) — важная часть системы для food & pharma. Проблема: IoT-устройство не может самостоятельно подписывать Ethereum транзакции в условиях ограниченных вычислительных ресурсов.

Архитектурное решение — oracle pattern:

IoT Device → Edge Gateway → Oracle Service → Smart Contract

Edge Gateway собирает данные с устройств, агрегирует их и через защищённый канал передаёт в oracle service (Chainlink, API3, или кастомный). Oracle записывает данные on-chain с подписью доверенного оператора.

Для повышения доверия к IoT-данным: TEE (Trusted Execution Environment) на edge gateway — Intel SGX или ARM TrustZone. Данные подписываются внутри изолированной среды, и proof выполнения в TEE может быть верифицирован on-chain.

Верификация потребителем

QR-код на продукте кодирует batchId. Потребитель сканирует QR и видит:

  • Статус сертификации (уровень, орган, дата)
  • Полную цепочку custody от производителя до полки
  • Документы (сертификаты, лабораторные анализы) на IPFS
  • Был ли сертификат отозван

Это реализуется как статический сайт или мобильное приложение, которое читает данные напрямую с блокчейна через JSON-RPC или через The Graph (для более сложных запросов).

Управление доступом и аккредитация

Критически важный компонент — система управления тем, кто имеет право вносить сертификационные записи. Варианты:

Модель Подходит для Риски
Centralized whitelist Пилотные проекты Единая точка доверия
DAO governance Открытые экосистемы Медленное принятие решений
Accreditation body on-chain Regulated industries Требует off-chain legality
Multi-sig committee Consortium Координация участников

Для regulated industries (organic food, pharma) оптимальна модель где национальные органы аккредитации управляют on-chain списком авторизованных сертификаторов. Это создаёт bridge между традиционной regulatory системой и блокчейном.