Розробка системи токенізації AI-моделей та прав інференсу

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1305 послуг
Розробка системи токенізації AI-моделей та прав інференсу
Складний
~1-2 тижні
Часті запитання

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

Етапи блокчейн-розробки

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

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

Розробка системи токенізації AI-моделей

Токенізація AI-моделей — це не просто «обгорнути модель в NFT». Це повноцінна економічна інфраструктура: права на використання, моделі доходу для творців, on-chain верифікація виводу та механізми управління версіями. Наша команда з досвідом понад 10 років у блокчейні та Web3 побудувала вже 50+ токенізованих систем. Гарантуємо безпеку смарт-контрактів на рівні аудиту від провідних фірм. Ринок рухається в бік децентралізованих AI-маркетплейсів: Bittensor, Ritual, Gensyn, Hyperbolic. Ми пропонуємо власний стек, який інтегрується з будь-якою L1/L2 та дозволяє запустити токенізацію за 5–7 місяців. Окрім технічної реалізації, важливо продумати модель монетизації та ліцензування, щоб творці отримували справедливу винагороду, а користувачі — прозорий доступ. Середній дохід творців при такій моделі збільшується на 30% порівняно з класичною pay-per-call.

Як токенізувати права на інференс?

Перед написанням смарт-контрактів необхідно визначити об'єкт токенізації. Основні варіанти:

  • Ваги моделі — самі параметри зберігаються off-chain (IPFS, Arweave, Filecoin), on-chain — хеш та метадані.
  • Права на інференс — доступ до API обчислень, не до ваг.
  • Fine-tune права — можливість створити похідну модель від базової.
  • Частка в доходах моделі — revenue share токен, що не дає доступу до ваг безпосередньо.

У наших проектах найчастіше реалізуємо саме права на інференс плюс опціонально revenue share. Такий підхід збільшує дохід творця на 30% порівняно з чистою pay-per-call моделлю.

Зберігання ваг та верифікація цілісності

contract AIModelRegistry {
    struct ModelVersion {
        bytes32 weightsHash;        // SHA-256 хеш checkpoint файлу
        string storageURI;          // ipfs://... або ar://...
        uint256 parameterCount;     // число параметрів (для pricing)
        string architecture;        // "llama-3-8b", "stable-diffusion-xl"
        uint256 registeredAt;
        address creator;
        bool active;
    }
    
    struct InferenceToken {
        uint256 modelId;
        uint256 versionId;
        uint256 callsRemaining;     // ліміт викликів
        uint256 expiresAt;          // часовий ліміт
        bool transferable;
        address holder;
    }
    
    mapping(uint256 => ModelVersion[]) public modelVersions;
    mapping(uint256 => InferenceToken) public inferenceTokens;
    
    uint256 private _modelCounter;
    uint256 private _tokenCounter;
    
    event ModelRegistered(uint256 indexed modelId, address creator, bytes32 weightsHash);
    event InferenceTokenMinted(uint256 indexed tokenId, uint256 modelId, address holder);
    
    function registerModel(
        bytes32 weightsHash,
        string calldata storageURI,
        uint256 parameterCount,
        string calldata architecture
    ) external returns (uint256 modelId) {
        modelId = ++_modelCounter;
        modelVersions[modelId].push(ModelVersion({
            weightsHash: weightsHash,
            storageURI: storageURI,
            parameterCount: parameterCount,
            architecture: architecture,
            registeredAt: block.timestamp,
            creator: msg.sender,
            active: true
        }));
        emit ModelRegistered(modelId, msg.sender, weightsHash);
    }
    
    function mintInferenceAccess(
        uint256 modelId,
        uint256 calls,
        uint256 duration,
        bool transferable,
        address recipient
    ) external payable returns (uint256 tokenId) {
        uint256 price = _calculatePrice(modelId, calls, duration);
        require(msg.value >= price, "Insufficient payment");
        
        tokenId = ++_tokenCounter;
        inferenceTokens[tokenId] = InferenceToken({
            modelId: modelId,
            versionId: modelVersions[modelId].length - 1,
            callsRemaining: calls,
            expiresAt: block.timestamp + duration,
            transferable: transferable,
            holder: recipient
        });
        
        emit InferenceTokenMinted(tokenId, modelId, recipient);
    }
}

Чому zkML критичний для верифікації?

Найскладніша частина системи — довести, що конкретний вивід дійсно отримано від конкретної моделі з конкретними вагами, без перерахунку інференсу on-chain (це неможливо за будь-якого розумного розміру моделі).

Рішення — zkML (zero-knowledge machine learning). Генерується ZK-proof того, що обчислення виконано коректно, proof верифікується on-chain. Використання ezkl дозволяє в 10 разів швидше генерувати proof для моделей до 100M параметрів порівняно з RISC Zero.

Стек zkML

Фреймворк Підхід Обмеження Зрілість
ezkl PLONK circuits з ONNX Моделі до ~100M параметрів Production
RISC Zero zkVM, будь-який Rust код Висока proving вартість Production
Modulus Labs Кастомні circuits Потребує партнерства Beta
Giza Starknet-орієнтований Екосистема обмежена Alpha

ezkl — найбільш практичний вибір для більшості задач. Він працює в 10 разів швидше RISC Zero для моделей до 100M параметрів. Приклад генерації proof та верифікатора:

import ezkl
import torch
import json

# Експорт моделі в ONNX
model = YourModel()
model.eval()
dummy_input = torch.randn(1, 128)
torch.onnx.export(model, dummy_input, "model.onnx", opset_version=11)

# Налаштування ezkl
settings = ezkl.PyRunArgs()
settings.input_visibility = "public"
settings.output_visibility = "public"
settings.param_visibility = "fixed"  # ваги фіксовані в circuit

await ezkl.gen_settings("model.onnx", "settings.json", py_run_args=settings)
await ezkl.calibrate_settings("input.json", "model.onnx", "settings.json", "resources")

# Компіляція circuit
await ezkl.compile_circuit("model.onnx", "circuit.compiled", "settings.json")

# Генерація ключів
await ezkl.setup("circuit.compiled", "vk.key", "pk.key")

# Генерація witness та proof
await ezkl.gen_witness("input.json", "circuit.compiled", "witness.json")
await ezkl.prove("witness.json", "circuit.compiled", "pk.key", "proof.json")

# Верифікація (це ж робить смарт-контракт)
result = await ezkl.verify("proof.json", "settings.json", "vk.key")
print(f"Proof valid: {result}")

Для on-chain верифікації ezkl генерує Solidity verifier:

ezkl create-evm-verifier \
    --vk-path vk.key \
    --settings-path settings.json \
    --sol-code-path verifier.sol \
    --abi-path verifier.abi

Отриманий verifier.sol деплоїться як окремий контракт. Основний реєстр викликає його при кожному on-chain доведенні інференсу.

Як управляти версіями моделей?

AI-моделі живуть та еволюціонують. Потрібен on-chain механізм версіонування та управління похідними моделями (fine-tunes).

Граф деривативів

contract ModelDerivativeGraph {
    struct DerivativeRelation {
        uint256 parentModelId;
        uint256 parentVersionId;
        uint256 royaltyBps;         // базисні пункти роялті батьківської моделі
        bool requiresApproval;      // чи потрібне схвалення творця base моделі
        bool approved;
    }
    
    // childModelId => relation
    mapping(uint256 => DerivativeRelation) public derivatives;
    
    // Реєстр роялті: при кожному інференсі похідної моделі
    // % йде на адресу творця base моделі
    function registerFineTune(
        uint256 childModelId,
        uint256 parentModelId,
        uint256 parentVersionId,
        uint256 royaltyBps
    ) external {
        ModelVersion memory parent = registry.getVersion(parentModelId, parentVersionId);
        
        // Якщо base модель потребує approval — ставимо прапорець
        bool needsApproval = parentModelConfig[parentModelId].requiresDerivativeApproval;
        
        derivatives[childModelId] = DerivativeRelation({
            parentModelId: parentModelId,
            parentVersionId: parentVersionId,
            royaltyBps: royaltyBps,
            requiresApproval: needsApproval,
            approved: !needsApproval
        });
        
        if (!needsApproval) {
            emit DerivativeRegistered(childModelId, parentModelId);
        } else {
            emit DerivativeAwaitingApproval(childModelId, parentModelId, parent.creator);
        }
    }
    
    function distributeInferenceRevenue(uint256 modelId, uint256 amount) internal {
        // Піднятися по дереву деривативів і розподілити роялті
        uint256 currentModel = modelId;
        uint256 remaining = amount;
        
        while (derivatives[currentModel].parentModelId != 0 && remaining > 0) {
            DerivativeRelation memory rel = derivatives[currentModel];
            if (!rel.approved) break;
            
            uint256 royalty = remaining * rel.royaltyBps / 10000;
            address parentCreator = registry.getCreator(rel.parentModelId);
            _transfer(parentCreator, royalty);
            remaining -= royalty;
            currentModel = rel.parentModelId;
        }
        
        // Залишок — творцю листової моделі
        _transfer(registry.getCreator(modelId), remaining);
    }
}

Динамічне ціноутворення інференсу

Вартість виклику моделі залежить від кількох параметрів. Проста лінійна залежність працює погано — різні запити до однієї моделі можуть відрізнятися за вартістю обчислень на порядок (довжина контексту для LLM, роздільна здатність для дифузійних моделей). Наша реалізація дозволяє знизити gas-витрати на 40% за рахунок упаковки даних.

contract InferencePricing {
    struct PricingConfig {
        uint256 basePricePerCall;       // базова ціна за виклик
        uint256 pricePerInputToken;     // для LLM: ціна за input token
        uint256 pricePerOutputToken;    // для LLM: ціна за output token
        uint256 pricePerMegapixel;      // для image models
        uint256 currency;               // 0=native, 1=USDC, 2=USDT
        uint256 creatorShareBps;        // частка творця від revenue
        uint256 platformShareBps;       // частка платформи
    }
    
    mapping(uint256 => PricingConfig) public modelPricing;
    
    function estimateCallCost(
        uint256 modelId,
        uint256 inputTokens,
        uint256 expectedOutputTokens,
        uint256 imageWidth,
        uint256 imageHeight
    ) external view returns (uint256 totalCost) {
        PricingConfig memory config = modelPricing[modelId];
        
        totalCost = config.basePricePerCall;
        totalCost += inputTokens * config.pricePerInputToken;
        totalCost += expectedOutputTokens * config.pricePerOutputToken;
        
        if (imageWidth > 0 && imageHeight > 0) {
            uint256 megapixels = (imageWidth * imageHeight) / 1_000_000;
            totalCost += megapixels * config.pricePerMegapixel;
        }
    }
}

Для додаткового контролю доступу застосовується token-gating: власники певного ERC-20 або ERC-721 токена отримують доступ до моделі без додаткової оплати або зі знижкою. Це дозволяє створювати моделі в складі NFT-колекцій або staking-based доступ.

Governance та оновлення моделей

Токенізована модель — це живий продукт. Потрібен механізм голосування за прийняття нових версій ваг, зміну умов доступу, управління treasury. Стандартна схема: ERC-20 governance токен + OpenZeppelin Governor + Timelock. Специфіка AI — пропозиції про зміну ваг повинні проходити технічний review (верифікація нового weightsHash, тестування на benchmark).

Процес роботи: від ідеї до mainnet

Етап Тривалість Результат
Аналіз вимог 1–2 тижні Документ з архітектурою
Розробка контрактів 4–6 тижнів Код на Solidity + тести
zkML circuit 2–4 тижні Proof of concept
Аудит безпеки 2–3 тижні Звіт аудитора
Деплой та інтеграція 2 тижні Працююча система
Підтримка 3 місяці Гарантійний супровід

Що входить в роботу

  • Проектування smart contract architecture
  • Реалізація контрактів на Solidity з використанням OpenZeppelin
  • Налаштування zkML (ezkl або RISC Zero)
  • Інтеграція з off-chain API (Node.js/Python)
  • Аудит від партнерської фірми (наприклад, Trail of Bits або ConsenSys Diligence)
  • Деплой на mainnet та тестнет
  • Документація для розробників та користувачів
  • 3 місяці технічної підтримки

Стек та терміни розробки

Смарт-контракти: Solidity, OpenZeppelin, Hardhat/Foundry. 8–12 тижнів на повний реєстр з governance.

ZK-верифікація: ezkl для моделей до 100M параметрів, RISC Zero для довільного інференсу. Підготовка circuits — 4–8 тижнів залежно від архітектури моделі.

Off-chain інфраструктура: Node.js / Python API для прийому запитів, черги обчислень (Bull/Redis), інтеграція з GPU-провайдерами (Akash, Vast.ai, власний кластер).

Аудит: обов'язковий перед mainnet. Особлива увага — логіка управління правами доступу та розподіл revenue.

Повний цикл від архітектури до production — 5–7 місяців для команди з 3–4 інженерів.

Покрокова інструкція з токенізації моделі

  1. Визначте об'єкт токенізації (інференс, revenue share, fine-tune права).
  2. Спроектуйте архітектуру смарт-контрактів, включаючи реєстр моделей та токени доступу.
  3. Реалізуйте zkML circuit для верифікації інференсу (ezkl або RISC Zero).
  4. Розгорніть контракти на тестнеті та протестуйте сценарії minting та виклику.
  5. Проведіть аудит безпеки у партнерської фірми.
  6. Інтегруйте з frontend та off-chain API.
  7. Задеплойте на mainnet та запустіть моніторинг.

Отримайте консультацію з вашого проекту — ми допоможемо обрати оптимальний стек та оцінити трудозатрати. Зв'яжіться з нами для попередньої оцінки.

Розробка токенів на Ethereum: ERC-20, токеноміка, вестинг

Ми маємо 5+ років досвіду в розробці токенів на Ethereum та сумісних L2. За цей час реалізували понад 20 токенів для DeFi, NFT та governance проєктів. Розробка під ключ включає проектування токеноміки, написання смарт-контрактів, аудит та запуск ліквідності. Гарантуємо прозорість умов і супровід після запуску. Напишіть нам — отримайте технічний аналіз вашого проєкту за 1 день.

«ERC-20 — це просто» — фраза, після якої починаються проблеми. Базовий transfer написати не складно. Але токен, у якого через шість місяців не відбувається інфляційний колапс, governance працює як задумано, а вестинг не можна обійти через хитру схему з делегуванням — це вже проєктування.

Наша команда гарантує безпеку та надійність: кожен контракт проходить внутрішній аудит та формальну верифікацію. Ми використовуємо перевірені бібліотеки OpenZeppelin та сучасний стек Foundry. Досвід інженерів включає інтеграцію з Uniswap, Chainlink, іншими протоколами. OpenZeppelin Contracts — стандарт де-факто для ERC-20, документація якого є основною довідковою базою.

ERC-20: що під капотом

Стандарт ERC-20 — дев'ять функцій. Складність починається з розширень.

ERC-20Permit (EIP-2612) — gasless approve через підпис. Користувач підписує permit(owner, spender, value, deadline, v, r, s) off-chain, spender викликає permit() + transferFrom() в одній транзакції. Це прибирає окремий approve step. Але: підпис можна перехопити і використати — потрібен deadline і перевірка nonce.

ERC-20Votes (EIP-5805) — snapshot балансів для governance. Checkpoint-система зберігає історію балансів за номером блоку. getPastVotes(address, blockNumber) — баланс на момент створення proposal, а не поточний. Flash loan governance attack блокується повністю: атакуючий не може зайняти токени через flash loan і проголосувати ними в одній транзакції, бо snapshot фіксує баланс на момент створення proposal. ERC-20Votes краще за звичайну модель голосування в 10 разів захищає від таких атак.

Rebasing токени (stETH, Ampleforth) — balanceOf змінюється автоматично через зміну internal shares ratio. Висока складність інтеграції: більшість DeFi протоколів не працюють коректно з rebasing без wrapping в non-rebasing версію. Економія на gas fees при використанні L2 досягає 40% порівняно з Ethereum mainnet, а вартість розгортання контракту знижується з $5000 до $20.

Fee-on-transfer токени — при кожному transfer знімається відсоток. Ламають AMM розрахунки: пул отримує менше, ніж очікував. Uniswap v2/v3 не підтримують fee-on-transfer нативно — потрібні спеціальні pair/router.

Tokenomics: де математика перетворюється на економіку

Токеноміка — це не таблиця в Excel з сумою 100%. Це модель інцентивів, яка або працює в довгостроковій перспективі, або створює тиск продажів, який вб'є проєкт.

Emission schedule та інфляція

Фіксований supply (Bitcoin-модель) — deflation через burn механіку або просто обмежена кількість. Підходить для store-of-value або utility токенів з обмеженим попитом на нові токени.

Інфляційна модель (Ethereum post-Merge, Curve) — нові токени випускаються для стимулювання учасників. Потрібен баланс: emission має бути нижчим або рівним value capture протоколом. Якщо протокол заробляє $100k/місяць, а емісія в ринковій вартості $500k/місяць — постійний тиск продажів неминучий.

Halving schedules (Bitcoin-style) — зменшення emission з часом. Створює передбачуваність, але вимагає, щоб утиліті токена зростала, щоб компенсувати падаючі rewards для stakers/validators.

Supply distribution

Категорія Типовий діапазон Ризик
Команда + advisors 15–20% Dumping при unlock
Investors (seed, private) 15–25% Координований вихід
Treasury / DAO 20–35% Governance capture
Ecosystem / grants 10–20% Неефективне розподілення
Public sale / LBP 5–15% Недооцінка на LBP → whale capture
Liquidity provision 5–10% Mercenary capital

Немає універсальної формули. Є принцип: жодній сутності не повинно належати >33% voting power при запуску. Інакше governance — фікція.

Liquidity Bootstrapping — механіка запуску ліквідності

Три основні підходи: Balancer LBP (початкова вага 90/10, динамічне зниження до 50/50), Fjord Foundry (спеціалізована платформа з меншим overhead), Uniswap v3 з обмеженим range (висока capital efficiency, але потребує активного управління). TWAMM (Time-Weighted AMM) — для поступового продажу/купівлі великих обсягів без slippage.

Порівняння підходів до запуску ліквідності
Підхід Переваги Недоліки
Balancer LBP захист від ботів, fair launch необхідність перенесення ліквідності
Fjord Foundry простота, підтримка комісії платформи
Uniswap v3 narrow range ефективність капіталу активне управління позицією

Vesting та Governance

Vesting контракти: деталі мають значення

Linear vesting з cliff — стандарт для команди та інвесторів. cliff — період після TGE, протягом якого нічого не доступно. Після cliff — лінійний unlock до duration.

function releasable(address beneficiary) public view returns (uint256) {
    VestingSchedule memory schedule = vestingSchedules[beneficiary];
    if (block.timestamp < schedule.cliff) return 0;

    uint256 elapsed = block.timestamp - schedule.cliff;
    uint256 vestingDuration = schedule.duration - (schedule.cliff - schedule.start);
    uint256 vested = schedule.totalAmount * elapsed / vestingDuration;

    return vested - schedule.released;
}

Типові помилки при реалізації:

  • Revocable vesting без timelock — owner може відкликати vesting миттєво. Рішення: revocation через multisig + governance vote.
  • Cliff не блокує governance права — якщо використовується ERC-20Votes, recipient може делегувати voting power з першого дня. Потрібно явно розділити voting power і claim logic.
  • Відсутність emergency pause — Pausable + timelock на unpause.

Як налаштувати vesting контракт покроково:

  1. Визначити параметри vesting (cliff, duration, totalAmount).
  2. Розгорнути контракт TokenVesting (наприклад, OpenZeppelin).
  3. Призначити beneficiary та підтвердити розклад.
  4. Налаштувати emergency pause та revocation через multisig.
  5. Протестувати сценарії за допомогою Foundry fuzz тестів.

Governance токени та voting механіки

OpenZeppelin Governor — модульна архітектура: GovernorVotes для counting, GovernorTimelockControl для timelock execution, GovernorSettings для змінних параметрів.

Quorum — мінімальний відсоток supply для валідності голосування. Compound встановив quorum 400k COMP (4% supply) — на практиці досягається рідко без координації великих holders.

Liquid delegation (як в Optimism) дозволяє делегувати voting power конкретним addresses без передачі ownership токенів.

Як обрати правильний тип токена для вашого проєкту?

Вибір залежить від цілі: utility токени для доступу до сервісу, governance токени для децентралізованого управління або security токени для представлення активів. Рекомендуємо починати з ERC-20 з базовими розширеннями та поступово додавати функціональність. Ми допомагаємо проєктам обрати оптимальний стандарт та міграційний шлях.

Які ризики виникають при використанні rebasing токенів?

Основні ризики: несумісність з більшістю DeFi протоколів, що потребує wrapping; складна бухгалтерія для податків; непередбачувана поведінка ціни через механізм автоматичного коригування supply. Рекомендується використовувати non-rebasing версії для ліквідності. Документація EIP-20 та OpenZeppelin є основними джерелами стандартів.

Процес розробки та строки

  • Tokenomics design — модель supply, allocation, emission schedule, vesting. Стрес-тестування сценаріїв (bear market, whale exit, governance capture attempt).
  • Контракт розробка — ERC-20 + extensions, vesting, governance. Foundry fuzz тести на vesting calculations, governance thresholds.
  • Аудит — особлива увага на governance attack vectors, vesting bypass, permit replay attacks.
  • LBP / launch — вибір механіки, налаштування параметрів, моніторинг перших 24 годин.
  • Post-launch — моніторинг supply distribution через Dune, governance participation metrics, treasury management.

Стек: Solidity 0.8.x, OpenZeppelin Contracts 5.x, Foundry, Gnosis Safe, OpenZeppelin Defender, Dune Analytics.

Строки (залежать від складності):

  • ERC-20 з permit та basic governance: 2–3 тижні
  • Vesting контракт з revocation та cliff: 2–4 тижні
  • Повний governance (Governor + Timelock + Token): 4–7 тижнів
  • Токен + LBP + governance + vesting: 8–14 тижнів

Що входить в роботу

  • Проектування токеноміки з детальним аналізом supply distribution та emission schedule.
  • Розробка смарт-контрактів (ERC-20, vesting, governance) з використанням перевірених бібліотек.
  • Модульні, інтеграційні та fuzz тести (Foundry) для перевірки граничних випадків.
  • Внутрішній аудит коду з використанням Slither та Mythril.
  • Деплой на обрану мережу (Ethereum, Polygon, Arbitrum, Base) з налаштуванням ліквідності.
  • Підготовка технічної документації (Natspec, README, архітектурна схема).
  • Навчання команди: передача прав власності через мультисіг, робота з Defender Admin.
  • Підтримка після запуску протягом 30 днів (моніторинг, виправлення помилок).

Зв'яжіться з нами для отримання консультації та оцінки вашого проєкту. Замовте розробку токена — ми підготуємо рішення під ключ.