Розробка рішень на 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:
- Traders депозитують L-BTC (або pegged-in BTC)
- Off-chain matching engine
- Settlement через Liquid транзакції — швидко та дешево
- Withdrawal через peg-out при необхідності
Розробка Liquid інтеграції: від 2 тижнів (базова випуск/прием ассетів) до 2-3 місяців (повнофункціональний DEX з confidential atomic swaps, asset registry, блокчейн-explorer для кастомних ассетів).







