Розробка рішень на Liquid Network (Bitcoin sidechain)

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка рішень на Liquid Network (Bitcoin sidechain)
Складний
від 1 тижня до 3 місяців
Часті запитання

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

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

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

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

Розробка рішень на Liquid Network (Bitcoin sidechain)

Liquid Network — це federated sidechain поверх Bitcoin, розроблена Blockstream. На відміну від Lightning Network (payment channels), Liquid — це повноцінний блокчейн з власними блоками (~1 хвилина), нативним ассетом L-BTC та можливістю випускати кастомні ассети (токени, stablecoin-и, security tokens). Confidential Transactions — вбудована приватність: суми та типи ассетів прихована від посторонніх.

Liquid актуален для: торгових платформ які потребують швидкі Bitcoin-деноміновані розрахунки, випуску tokenized securities з privacy вимогами, обменників з швидким bitcoin settlement. Нішева технологія, але в своїй ніші — без аналогів.

Архітектура Liquid Network

Federation model

Liquid не використовує proof-of-work та не має публічного mining. Блоки створюються functionaries — federants, якими є крупні біржи (Bitfinex, Kraken, OKX тощо) та сервіс-провайдери. Консенсус через threshold multisig: для створення блоку потрібна підпис 2/3 від functionaries.

Це не trustless як Bitcoin mainnet — ви довіряєте федерації. Trade-off: взамен отримуєте швидкі транзакції, finality через 2 блоки (~2 хвилини), низькі комісії та Confidential Transactions.

Peg-in / Peg-out — механізм обміну BTC ↔ L-BTC:

  • Peg-in: відправляєте BTC на federated peg address → отримуєте L-BTC через ~100 Bitcoin блоків (~16 годин) для безпеки
  • Peg-out: сжигаєте L-BTC через federation → отримуєте BTC (~2 години)

Confidential Transactions

Ключова особливість Liquid, ради якої його і використовують фінансові інституції. Суми переводів прихована через Pedersen Commitments, тип ассета прихований через asset surjection proofs. Тільки відправник та одержувач знають реальні числа.

Звичайний Bitcoin UTXO:    value = 1.5 BTC  (видно всім)
Liquid Confidential TX:  value = [commitment]  (тільки для учасників транзакції)

Верифікація коректності (нема створення грошей з нічого) можлива математично без розкриття сум — через властивості homomorphic commitment.

Розробка на Liquid: інструментарій

Elements Core та Liquid daemon

Liquid — форк Elements (open-source проект Blockstream). Для розробки потрібен elementsd (Elements Core daemon) у regtest режимі — локальна нода без підключення до mainnet.

# Запуск Elements у regtest для розробки
elementsd \
  -chain=elementsregtest \
  -validatepegin=0 \
  -initialfreecoins=2100000000000000 \
  -rpcuser=user \
  -rpcpassword=password \
  -rpcport=18884 \
  -daemon

libwally-core: низькорівневева робота з транзакціями

Blockstream розробив libwally-core — C бібліотеку для створення Bitcoin та Liquid транзакцій. Біндинги доступні для Python, JavaScript, Java.

import wallycore as wally

# Ініціалізація libwally
wally.init(0)

# Генерація мастер-ключа з seed
seed = bytes.fromhex('your_seed_hex')
master_key = wally.bip32_key_from_seed(seed, wally.BIP32_VER_MAIN_PRIVATE, 0)

# Деривація ключів для Liquid addresses
child_key = wally.bip32_key_from_parent(master_key, 0, wally.BIP32_FLAG_KEY_PRIVATE)

# Confidential address (з blinding key)
pub_key = wally.bip32_key_get_pub_key(child_key)
blinding_key = wally.asset_blinding_key_from_seed(seed)
conf_address = wally.confidential_addr_from_addr_segwit(
    wally.bech32_from_bytes('ex', pub_key, 0),  # ex = liquid mainnet, ert = regtest
    'lq',  # confidential address prefix
    blinding_key[:32]
)

GDK (Green Development Kit)

Більш високорівневий SDK від Blockstream, використовується у Green wallet. Підходить для кошельківних додатків:

import greenlight from '@blockstream/greenlight-sdk'

// Ініціалізація GDK сесії для Liquid
const session = greenlight.create_session()
await session.connect({ name: 'liquid' })

// Створення гаманця
const mnemonic = greenlight.generate_mnemonic()
await session.register_user({
    mnemonic,
    hw_device: {},
})

// Отримання адреси для приймання L-BTC
const addressDetails = await session.get_receive_address({
    subaccount: 0,
    address_type: 'p2wsh',  // native segwit
    is_internal: false,
})
console.log('Confidential address:', addressDetails.address)
console.log('Blinding key:', addressDetails.blinding_key)

Випуск Liquid Assets

Liquid дозволяє випускати кастомні ассети — аналог ERC-20, але з нативною приватністю. Кожен ассет ідентифікується 32-байтовим asset ID (хеш від issuance transaction).

Issuance через Elements RPC

# Через bitcoind-сумісний RPC інтерфейс elementsd
import requests

def rpc_call(method, params):
    response = requests.post(
        'http://localhost:18884',
        json={'method': method, 'params': params},
        auth=('user', 'password')
    )
    return response.json()['result']

# Випуск нового ассета
# amount: кількість у satoshi-еквіваленті (8 знаків після запятої)
# reissuancetoken_amount: скільки reissuance tokens випустити (для майбутного доп. емісії)
issuance = rpc_call('issueasset', [
    1000000,    # 10.00000000 ассетів
    1,          # 1 reissuance token
    False       # не blind issuance (для демо)
])

asset_id = issuance['asset']
token_id = issuance['token']
print(f"Asset ID: {asset_id}")
print(f"Reissuance token: {token_id}")

Asset Registry

Для того щоб інші користувачі бачили назву та тикер вашого ассета у гаманцях — реєстрація у Liquid Asset Registry:

curl -X POST https://assets.blockstream.info/ \
  -H "Content-Type: application/json" \
  -d '{
    "asset_id": "YOUR_ASSET_ID",
    "contract": {
      "name": "My Security Token",
      "ticker": "MST",
      "precision": 8,
      "issuer_pubkey": "YOUR_ISSUER_PUBKEY",
      "version": 0,
      "entity": {
        "domain": "yourcompany.com"
      }
    }
  }'

Верифікація домену через TXT-запис DNS — стандартна процедура.

Confidential Assets: приватність для токенів

За замовчуванням випущені ассети не confidential — тип ассета видно у транзакції. Для фінансових інструментів потрібна повна конфіденційність: ні тип ассета, ні сума не повинні бути видні посторонім.

Confidential issuance вимагає blind на етапі випуску:

# Blind issuance - приховує тип ассета та суму
issuance = rpc_call('issueasset', [
    1000000,   # кількість
    1,         # reissuance tokens
    True       # blind = True
])
# Тепер тип ассета прихований у транзакції через asset surjection proof

Для передачі ассетів між confidential адресами — транзакції автоматично blind якщо обидві адреси confidential.

Atomic Swaps на Liquid

Liquid підтримує atomic swaps між різними ассетами без посередника — через HTLC (Hash Time Locked Contracts) або через Submarine Swaps з LN.

Практичний use case: DEX на Liquid для обміну tokenized securities без custody. Обидва сторони підписують транзакцію, яка атомарно міняє ассети — либо обидва отримують, либо ні:

# Побудова atomic swap транзакції
# Alice: хочет обміняти 100 USDT-Liquid на 0.001 L-BTC
# Bob:   хочет обміняти 0.001 L-BTC на 100 USDT-Liquid

# 1. Alice створює partial PSBT (Partially Signed Bitcoin Transaction)
alice_psbt = rpc_call('walletcreatefundedpsbt', [
    [{'txid': alice_utxo_txid, 'vout': alice_utxo_vout}],  # inputs (USDT)
    [{bob_address: 100_00000000, 'asset': USDT_ASSET_ID}],  # outputs (L-BTC до Alice)
    0,
    {'add_inputs': False}
])

# 2. Bob додає свої inputs (L-BTC) та outputs (USDT до Bob)
# 3. Обидва підписують → broadcast

Інтеграція з біржею: Liquid як settlement layer

Біржі використовують Liquid для прискорення міжплатформенних розрахунків. L-BTC транзакція оседає за ~2 блоки (~2 хвилини) проти 6 блоків Bitcoin (~60 хвилин) з порівняльними security гарантіями.

Схема для trading platform:

  1. Traders депозитують L-BTC (або pegged-in BTC)
  2. Off-chain matching engine
  3. Settlement через Liquid транзакції — швидко та дешево
  4. Withdrawal через peg-out при необхідності

Розробка Liquid інтеграції: від 2 тижнів (базова випуск/прием ассетів) до 2-3 місяців (повнофункціональний DEX з confidential atomic swaps, asset registry, блокчейн-explorer для кастомних ассетів).