Разработка системы инференса AI на блокчейне

**On-chain AI inference** — это не маркетинговый термин, а конкретная инженерная проблема с несколькими частичными решениями, каждое из которых имеет собственный trade-off. Клиент обычно приходит с запросом «мы хотим, чтобы результаты нашей модели были верифицируемы и нельзя было подделать». Это раз

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

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

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

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

On-chain AI inference — это не маркетинговый термин, а конкретная инженерная проблема с несколькими частичными решениями, каждое из которых имеет собственный trade-off. Клиент обычно приходит с запросом «мы хотим, чтобы результаты нашей модели были верифицируемы и нельзя было подделать». Это разумное требование. Вопрос в том, как его реализовать, не сжигая 50 000 долларов в газе на один инференс.

Прямое исполнение нейронной сети в EVM-контракте — не вариант. GPT-2 tiny (117M параметров) при наивной реализации потребовал бы ~10^9 операций умножения с плавающей точкой. EVM не имеет float, каждая арифметическая операция стоит gas, 30M gas limit блока Ethereum — это физический потолок. Реальные подходы идут другим путём. На практике клиенты сталкиваются с выбором между математической гарантией ZK-proof, экономической безопасностью оптимистичных схем и аппаратным доверием TEE. Наша команда имеет 7+ лет опыта в блокчейн-разработке и 5+ проектов в области on-chain AI.

Как работает on-chain AI inference?

Основная сложность — объединение вычислительных ресурсов вне сети с верификацией в сети. Ни один подход не даёт одновременно низкой стоимости, высокой скорости и математической гарантии для моделей любого размера. Выбор зависит от приоритетов: критична ли математическая точность (финансовые модели) или допустима экономическая безопасность (гейминг, NFT).

Три архитектурных подхода

ZK-proof of inference (zkML) — разработка системы инференса

Модель исполняется off-chain, on-chain верифицируется zero-knowledge proof корректности исполнения. Это наиболее перспективный и наиболее технически сложный подход.

Основные фреймворки:

EZKL — самый зрелый zkML тулкит на сегодня. Принимает ONNX-модели, генерирует Halo2 circuits, верифицирует on-chain через Solidity-верификатор.

# Экспорт модели в ONNX python -c " import torch, ezkl model = MyModel() x = torch.randn(1, 784) # пример MNIST torch.onnx.export(model, x, 'model.onnx', opset_version=11 ) # Компиляция в circuit ezkl gen-settings -M model.onnx -O settings.json ezkl calibrate-settings -M model.onnx -D input.json -O settings.json ezkl compile-circuit -M model.onnx -S settings.json --compiled-circuit model.compiled # Генерация SRS и ключей ezkl get-srs --settings-path settings.json ezkl setup -M model.compiled --vk-path vk.key --pk-path pk.key # Proof generation (это медленно) ezkl gen-witness -M model.compiled -D input.json -O witness.json ezkl prove --witness witness.json --compiled-circuit model.compiled --pk-path pk.key --proof-path proof.json # Деплой верификатора on-chain ezkl create-evm-verifier --vk-path vk.key --sol-code-path verifier.sol 

Документация EZKL подтверждает: «Proof generation для модели с 1M параметров занимает около минуты на современном GPU».

Верификация одного ZK-proof на Ethereum требует 200–500k газа (в зависимости от алгоритма), что при цене 50 gwei составляет $10–25 за инференс.

Risc Zero — альтернативный подход через zkVM. Модель компилируется в RISC-V, исполняется в Risc Zero zkVM, proof верифицируется on-chain. Менее эффективен для ML-специфичных операций, но позволяет использовать произвольный Rust/C++ код.

// Гость (guest) программа в Risc Zero use risc0_zkvm::guest::env; fn main() { let input: Vec<f32> = env::read(); let result = run_inference(&input); // ваша модель env::commit(&result); } 

Модели, подходящие для zkML сейчас: логистическая регрессия и SVM — без ограничений; небольшие MLP (< 100k параметров) — proof за секунды; CNN для классификации изображений (< 1M параметров) — proof за минуты; LLM, diffusion models — нереально в ближайшие годы без специализированного железа.

Оптимистичный подход (fraud proofs)

Inference происходит off-chain, результат публикуется on-chain. Любой желающий может повторить вычисление и оспорить (challenge) некорректный результат.

Этот подход используют Giza Tech и Modulus Labs. Экономика: challenge period = N блоков, challenger должен предоставить fraud proof (partial execution trace). Работает при наличии достаточного числа верификаторов — это economic game theory, а не математическая гарантия.

// Упрощённая схема оптимистичного AI оракула contract OptimisticAIOracle { struct InferenceResult { bytes32 inputHash; int256[] outputs; address submitter; uint256 submittedAt; bool challenged; bool resolved; } uint256 public constant CHALLENGE_PERIOD = 7200; uint256 public constant SUBMITTER_BOND = 1 ether; mapping(uint256 => InferenceResult) public results; function submitResult( uint256 requestId, bytes32 inputHash, int256[] calldata outputs ) external payable { require(msg.value >= SUBMITTER_BOND, "Insufficient bond"); results[requestId] = InferenceResult({ inputHash: inputHash, outputs: outputs, submitter: msg.sender, submittedAt: block.number, challenged: false, resolved: false }); } function challenge(uint256 requestId, bytes calldata fraudProof) external { InferenceResult storage result = results[requestId]; require(block.number < result.submittedAt + CHALLENGE_PERIOD, "Challenge period expired"); bool isFraud = verifyFraudProof(result.inputHash, result.outputs, fraudProof); if (isFraud) { result.challenged = true; } } } 

Challenger должен внести bond в 1 ETH (≈2 500$ на момент написания), что обеспечивает экономическую безопасность. ZK-proof обеспечивает математическую гарантию, что делает его в 100 раз надёжнее оптимистичного подхода с экономической безопасностью.

Decentralized inference networks (TEE + economic security)

Galadriel — EVM-совместимый L1, специально заточенный под AI. Смарт-контракты могут делать системные вызовы к LLM-провайдерам прямо из Solidity. Стоимость инференса через Galadriel составляет около $0.01-0.10 за запрос.

Ritual — децентрализованная сеть инференса. Nodes используют TEE (Trusted Execution Environment) для верификации инференса без раскрытия весов модели. Eigen Layer restaking для economic security.

Opaque Labs — специализируется на конфиденциальном инференсе через SGX/TDX.

Какой подход выбрать для вашей модели?

Подход Верификация Latency Стоимость Размер модели
EZKL (zkML) Математическая Минуты Высокая < 1M param
Оптимистичный Экономическая Секунды Средняя Любой
Galadriel Доверие к сети < 30s Низкая LLM-класс
Ritual TEE Аппаратная Секунды Средняя Любой
Risc Zero Математическая Минуты Высокая < 10M param

Свяжитесь с нами для анализа вашего проекта — мы поможем выбрать оптимальный подход.

Практическая архитектура production system

Большинство реальных проектов используют гибридный подход: zkML для небольших, критически важных моделей (например, fraud detection на транзакции) и оптимистичный или TEE-based для LLM-функций.

[User/Contract] ↓ inference request + deposit [Inference Request Queue (on-chain)] ↓ event [Off-chain inference node cluster] ↓ runs model, generates proof [Proof submission + result] ↓ [On-chain verifier contract] ↓ verify ZK proof [Callback to requesting contract] 

On-chain интерфейс

Стандартный паттерн — Oracle-style с callback:

interface IInferenceOracle { struct InferenceRequest { bytes model_id; // хеш или CID модели bytes input; // ABI-encoded или raw bytes address callback; // контракт для callback bytes4 callbackSig; // сигнатура callback функции uint256 maxFee; // максимальная плата за inference } function requestInference(InferenceRequest calldata req) external payable returns (uint256 requestId); function fulfillInference( uint256 requestId, bytes calldata result, bytes calldata proof ) external; } 

Работа с фиксированной точкой

EVM не поддерживает float. Все ML-вычисления on-chain или в proof inputs требуют quantization. Для EZKL квантизация происходит автоматически при calibrate-settings — важно проверить accuracy после квантизации, потери > 1% обычно недопустимы для финансовых моделей.

Хранение модели и verifiability

Ключевой вопрос: как on-chain контракт знает, что inference выполнен на правильной модели, а не подменённой? Решения:

  • Model commitment — хеш модельных весов хранится on-chain. Inference node доказывает (через ZK или подпись TEE), что использовала модель с этим хешем.
  • IPFS/Filecoin для весов — CID модели фиксируется on-chain. Любой может скачать и верифицировать.

Где это применяется сейчас

  • DeFi risk scoring — on-chain кредитный скоринг по on-chain активности. Небольшие модели (логрег, XGBoost) хорошо ложатся в zkML.
  • Генеративные NFT — атрибуты NFT определяются ML-моделью, результат верифицируем. Модели в диапазоне 1–10M параметров, tolerable proof time.
  • Автономные агенты — AI агент управляет on-chain позициями. Здесь zkML пока нереален для LLM-агентов, используется TEE или оптимистичный подход.
  • On-chain fraud detection — каждый swap проходит через fraud scoring, результат влияет на fee tier или доступность. Логрег — ideal candidate для zkML.

Что входит в разработку системы инференса?

  • Анализ требований и выбор подхода (zkML/оптимистичный/TEE)
  • Адаптация и квантизация модели под выбранный фреймворк
  • Разработка и деплой on-chain верификатора
  • Настройка инфраструктуры для off-chain вычислений (GPU nodes, proof generation)
  • Интеграция с целевым смарт-контрактом
  • Документация, обучение команды, поддержка после запуска

Получите консультацию по вашему проекту — оценим техническую сложность и сроки.

Этапы разработки

Фаза Длительность Результат
Model selection & quantization 2–3 нед Адаптированная модель с loss <1%
Circuit compilation 1–2 нед Готовый ZK-circuit (если zkML)
On-chain verifier 1–2 нед Деплой Solidity-верификатора
Infrastructure 2–3 нед Inference nodes + pipeline
Integration & testing 1–2 нед Рабочая система на testnet

Итого: 7–12 недель до production. Основной неизвестный фактор — насколько конкретная модель поддаётся квантизации без потери качества. Оценим ваш проект бесплатно — отправьте техническое задание или описание задачи.