Разработка решений на RGB Protocol (Bitcoin)

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Разработка решений на RGB Protocol (Bitcoin)
Сложная
от 2 недель до 3 месяцев
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • 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

Разработка решений на RGB Protocol (Bitcoin)

RGB — это протокол для смарт-контрактов и токенов поверх Bitcoin и Lightning Network, разработанный LNP/BP Standards Association. В отличие от Ethereum, где контракты и их состояние хранятся публично в блокчейне, RGB хранит состояние контрактов off-chain у владельцев активов. Bitcoin используется исключительно как anchor для commitment-ов: хеш состояния прячется в транзакцию через OP_RETURN или taproot output. Это принципиально другая модель — privacy-preserving, scalable, но требующая от разработчика понимания client-side validation.

Client-side validation: ключевая концепция

В RGB правила консенсуса выполняются не нодами сети, а клиентами. Продавец токена доказывает покупателю историю перехода права собственности от genesis контракта, предоставляя chain of consignments. Покупатель самостоятельно валидирует каждый переход по правилам контракта — без доверия третьей стороне и без публикации данных в блокчейне.

Alice → Bob (передача RGB актива):

1. Bob генерирует UTXO "seal" (Bitcoin UTXO, куда привяжется RGB право)
2. Alice создаёт state transition: "перевести N токенов на seal Боба"
3. Alice создаёт Bitcoin tx, содержащий commitment к state transition
4. Alice передаёт Bob'у consignment: state transition + историю до genesis
5. Bob валидирует: проверяет каждый переход, anchoring в Bitcoin
6. Bob подтверждает получение

Ключевой момент: содержимое state transition (сколько токенов, кому) никогда не появляется публично. В Bitcoin блокчейне — только 32-байтный хеш commitment. Внешний наблюдатель видит Bitcoin транзакцию, но не знает, что она содержит RGB transfer.

RGB Protocol v0.11: текущее состояние

RGB прошёл долгий путь через нестабильные ранние версии. Текущая production-ready версия — RGB v0.11 (выпущена в 2024). Основные изменения по сравнению с v0.10:

  • AluVM — новая виртуальная машина для выполнения смарт-контрактов RGB
  • Strict Types — система типов с детерминированной сериализацией
  • RGB Schema — декларативное описание типа контракта
  • Улучшенная интеграция с Lightning (RGB-over-LN)

RGB20: fungible токены

RGB20 — стандарт для fungible токенов (аналог ERC-20). Создание нового токена через rgb-cli или программно через SDK:

use rgb_schemata::rgb20;
use rgbstd::interface::rgb20::Rgb20;
use rgbstd::stl::{Amount, Precision, RicardianContract};

// Определяем genesis контракта
let contract = rgb20::issue(
    ticker: "MYTKN",
    name: "My Token",
    precision: Precision::CentiMicro,  // 8 знаков после запятой
    issued_supply: Amount::from(1_000_000_00000000u64),  // 1M токенов
    seal: genesis_seal,  // Bitcoin UTXO куда идут все токены в genesis
    terms: RicardianContract::new("Token Terms..."),
)?;

// Сериализовать контракт для публикации
let contract_bytes = contract.to_strict_serialized::<{ u24::MAX as usize }>()?;

Для разработки используется RGB Core Library на Rust как основной SDK. Высокоуровневая обёртка RGB Std предоставляет интерфейсы для работы с конкретными стандартами (RGB20, RGB21).

RGB21: NFT и коллекционные активы

RGB21 — стандарт для уникальных активов с опциональными медиа-вложениями. Особенность: медиафайлы не хранятся on-chain и не в Bitcoin — только хеш файла в state. Сам файл — у владельца или в любом хранилище (IPFS, Arweave, centralized).

use rgb_schemata::rgb21;

let nft = rgb21::issue_unique(
    name: "Rare Art #1",
    token_id: TokenId::from_random(),
    media: Some(EmbeddedMedia {
        media_type: MediaType::from("image/png"),
        data: SmallBlob::try_from(image_bytes)?,
    }),
    seal: nft_genesis_seal,
)?;

Кошелёк и управление state

Для работы с RGB активами нужен RGB-aware кошелёк. Стандартный Bitcoin кошелёк не видит RGB балансы — он не знает о RGB протоколе.

Существующие реализации:

  • Bitmask — веб/мобильный кошелёк с RGB поддержкой
  • BitLight — Lightning-first RGB кошелёк
  • MyCitadel — desktop кошелёк от LNP/BP team

Для серверной стороны (custodial сервис, exchange) — интеграция через RGB Node и его RPC API или прямое использование RGB Core Rust библиотеки.

Хранение state

RGB state хранится в stash — локальная база владельца. Stash содержит:

  • Все полученные consignments
  • История state transitions ваших активов
  • Необходимые witness данные для будущих переходов
// Инициализация сташа
let stash = RgbStash::new(stash_path, bitcoin_provider)?;

// Получить баланс RGB20 токена по контракту
let balance = stash.contract_state::<Rgb20>(contract_id)?
    .fungibles()
    .filter(|a| a.owner == my_seal)
    .sum();

RGB поверх Lightning

Одно из ключевых преимуществ RGB — нативная интеграция с Lightning. RGB-over-LN позволяет проводить micropayments в RGB токенах по Lightning каналам. Платёж в USDC по Lightning за миллисекунды — это то, что RGB-LN делает возможным без bridge-ов и wrapped токенов.

Технически: Lightning HTLC расширяется RGB state transition. При routing инвойс в BOLT-11 кодирует не только satoshi amount, но и RGB asset transfer. Routing nodes не видят RGB данные — они маршрутизируют обычные HTLC.

Реализация: LDK (Lightning Development Kit) с RGB расширениями от Bitfinex (proect Iris). Это активно разрабатываемая область, не все edge-кейсы LN совместимы с RGB в v0.11.

Практические ограничения

Нет public mempool visibility: RGB state не виден никому кроме участников. Это privacy feature, но также означает — нет публичного block explorer для RGB. Верификация работает только при наличии полного consignment.

UTXO как seal: RGB права собственности привязаны к Bitcoin UTXO. При трате UTXO нужно явно перенести RGB актив на новый output — забытый перевод RGB = потеря актива навсегда. Это требует RGB-aware кошелька, обычный Bitcoin кошелёк "потеряет" RGB токены при трате UTXO.

Экосистема ещё формируется: RGB v0.11 — стабильная версия, но инструментарий (tooling, IDE support, debugging) значительно менее зрелый чем Ethereum. Документация неполная, большинство примеров — в тестах Rust библиотек.

Нет EVM-эквивалента: RGB смарт-контракты (AluVM) — низкоуровневые и менее выразительные чем Solidity. Сложный DeFi логика на RGB требует значительно больших усилий.

Когда выбирать RGB

RGB оправдан при: hard требованиях к Bitcoin settlement и конфиденциальности; стабильных токенах без сложной контрактной логики (transfer, issuance, burn); Lightning-нативных приложениях; идеологическом требовании работы в Bitcoin без альтернативных L1.

Для большинства DeFi-приложений, NFT маркетплейсов, DAO — Ethereum или его L2 остаются правильным выбором из-за зрелости экосистемы. RGB — правильный выбор для Bitcoin-нативных финансовых инструментов.

Стек

  • Rust — единственный production-ready язык для RGB (официальная библиотека)
  • RGB Core + RGB Std — основные зависимости
  • Bitcoin Core или Electrum Server — как Bitcoin backend
  • LND/CLN с RGB патчами — для Lightning функциональности

Разработка базового RGB20 токена с выпуском, передачей и верификацией через CLI — 2–3 недели. Кастодиальный сервис с RGB wallet, API и Lightning интеграцией — 3–5 месяцев, учитывая необходимость глубокого погружения в протокол.