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. Основной неизвестный фактор — насколько конкретная модель поддаётся квантизации без потери качества. Оценим ваш проект бесплатно — отправьте техническое задание или описание задачи.







