Tento týden přinášíme novinky o vývoji protokolu RGB a naše pravidelné rubriky se souhrnem změn v klientech a službách, oznámeními o nových vydáních a popisem významných změn v populárních páteřních bitcoinových projektech.

Novinky

  • Aktualizace RGB: Maxim Orlovsky zaslal do emailové skupiny Bitcoin-Dev příspěvek s aktualizací stavu vývoje RGB. RGB je protokol, který používá bitcoinové transakce k provádění změn stavu offchainových kontraktů. Jednoduchým příkladem je vytváření a přenos tokenů, avšak RGB bylo navrženo k širšímu spektru využití, než je transfer tokenů.

    • Alice offchain vytvoří kontrakt, jehož výchozí stav přiřazuje 1 000 tokenů určitému UTXO, který kontroluje.

    • Bob chce 400 z těchto tokenů. Alice mu dá kopii původního kontraktu spolu s transakcí, která utrácí její UTXO na nový výstup. Tento výstup obsahuje neveřejný závazek (commitment) nového stavu kontraktu. Nový stav kontraktu určuje distribuci prostředků (400 Bobovi, 600 zpět Alici) a identifikátory dvou výstupů, které budou kontrolovat tyto prostředky. Alice transakci zveřejní. Bezpečnost tohoto přenosu tokenů proti dvojímu utracení je nyní shodná s bezpečností Alicina přenosu bitcoinů, např. má-li její transakce šest konfirmací, je přenos tokenů zabezpečený proti forku až šesti bloků.

      Výstupy, které kontrolují prostředky, nemusí být výstupy transakce, která obsahuje commitment (ale mohou být). To narušuje schopnost použít analýzu transakcí k vystopování přenosů založených na RGB. Tokeny mohly být přeneseny na existující UTXO, nebo na jakékoliv UTXO, které bude v budoucnosti existovat (např. předem podepsané utracení ze studené peněženky, které se ještě roky nemusí na blockchainu objevit). Hodnota bitcoinů na těchto výstupech a další jejich vlastnosti jsou pro RGB protokol irelevantní, avšak Alice a Bob se budou chtít ujistit o jejich snadné utratitelnosti.

    • Později by chtěla Carol koupit 100 tokenů od Boba v rámci atomické výměny za použití jediné onchainové transakce. Vygeneruje nepodepsané PSBT, které čerpá prostředky z jejích vstupů, posílá Bobovi bitcoin v jednom výstupu a vrací jí zbytek ve výstupu druhém. Jeden z těchto výstupů také zavazuje k příslušným částkám a identifikátorům UTXO, na které Carol obdrží tokeny a Bob zbytek po přenosu.

      Bob Carol poskytne původní kontrakt a závazek, který předtím Alice vytvořila, který dokazuje, že Bob vlastní 400 tokenů. Bob nemusí vědět, jak Alice naložila se zbývajícími 600 tokeny a Alice se výměny mezi Bobem a Carol vůbec neúčastní, což poskytuje soukromí a škálovatelnost. Bob přidá do PSBT podpepsaný vstup UTXO, které tokeny kontroluje.

      Carol ověří původní kontrakt a historii předchozích aktualizací stavu. Též se ujistí, že vše v PSBT je správné. Podepíše a transakci zveřejní.

    I když každý z uvedených transferů byl učiněn na blokchchainu, je jednoduché protokol upravit pro fungování offchain. Carol poskytne Danovi kopii kontraktu spolu s historií změn stavu, které ukazují, že obdržela 100 tokenů. Ve spolupráci s Danem poté vytvoří výstup, který obdrží 100 tokenů a který k utracení vyžaduje podpisy jich obou. Poté si offchain mohou posílat tokeny tam a zpět; učiní tak generováním množství rozličných verzí transakce utrácející onen výstup s vícenásobným podpisem. Každé offchain utracení se zaváže k distribuci tokenů a identifikátorům výstupů, které tyto tokeny obdrží. Nakonec jeden z nich zveřejní jednu z utrácejících transakcí, čímž potvrdí stav na blockchainu.

    Výstupy, kterým byly tokeny přiřazeny, mohou být zatížené bitcoinovým skriptem, který určí, kdo bude nakonec tokeny kontrolovat. Například mohou platit HTLC skriptu, který dá Carol možnost utratit tokeny, kdykoliv poskytne předobraz a podpis. Nebo umožní Danovi utratit tokeny po určité době pouhým podpisem. Díky tomu mohou být tokeny použity v přeposílaných offchain platbách, například v LN.

    Ve své odpovědi poukázal Federico Tenga na LN uzel založený na RGB a forku LDK a jeho příkladu LN uzlu. Zkoumáním tohoto projektu jsme našli další užitečné informace o kompatibilitě s LN. Více informací o RGB protokolu lze nalézt na webové stránce provozované LNP/BP Association.

    Tento týden oznámil Orlovsky vydání RGB v0.10. Tato nová verze není kompatibilní s kontrakty vytvořenými v předešlých verzích; není však známa existence žádných RGB kontraktů na mainnetu. Nový design umožní v případě změn upgrade všech nově vytvořených kontraktů. Vydání obsahuje množství dalších vylepšení a nastiňuje budoucí vývoj.

    V době psaní tohoto zpravodaje obdrželo oznámení v emailové skupině jen malé množství reakcí.

Změny ve službách a klientech

V této měsíční rubrice upozorňujeme na zajímavé aktualizace bitcoinových peněženek a služeb.

  • Descriptor wallet library přidává prohlížeč bloků: Descriptor wallet library je rustová knihovna postavená na rust-bitcoin pro peněženky založené na deskriptorech. Podporuje miniscript, deskriptory, PSBT a díky předchozímu vydání též textový prohlížeč bloků, který zobrazuje informace o taprootových control blocích z witnessů a deskriptory a miniscripty odpovídající skriptům v transakci.

  • Aktualizace referenční implementace protokolu Stratum v2: Projekt zveřejnil detaily o změnách, mezi které patří možnost pro těžaře v poolu zvolit transakce pro kandidáta na blok. Autoři vyzývají těžaře, pooly a vývojáře firmware k testování a poskytnutí zpětné vazby.

  • Vydána Liana 0.4: Vydání Liany verze 0.4 přináší podporu pro obnovu s více možnostmi a dodatečné deskriptory umožňující větší kvora.

  • Firmware Coldcardu podporuje další sighash příznaky: Verze 5.1.2 firmware Coldcardu nyní vedle SIGHASH_ALL podporuje všechny ostatní sighashe, což rozšíří možnosti transakcí.

  • Zeus přidává navýšení poplatku: Zeus v0.7.4 přidává navýšení poplatku pomocí RBF a CPFP. Navýšit poplatky lze onchainovým transakcím včetně otevíracích a zavíracích transakcí LN kanálů. Navýšení poplatků lze zatím využít jen s LND backendem.

  • Oznámen Electrum Server založený na utreexo: Floresta je server kompatibilní s Electrum protokolem, který využívá utreexo ke snížení požadavků na zdroje serveru. Software v současnosti podporuje testovací síť signet.

Vydání nových verzí

Vydání nových verzí oblíbených páteřních bitcoinových projektů. Prosíme, zvažte upgrade či pomoc s testováním.

Významné změny v kódu a dokumentaci

Významné změny z tohoto týdne v Bitcoin Core, Core Lightning, Eclair, LDK, LND, libsecp256k1, Hardware Wallet Interface (HWI), Rust Bitcoin, BTCPay Server, BDK, Bitcoin Improvement Proposals (BIPs) a Lightning BOLTs.

  • Bitcoin Core #27358 upravuje skript verify.py automatizující ověřování souborů vydání Bitcoin Core. Uživatel importuje PGP klíče lidí, kterým věří. Skript stáhne seznam souborů vydání spolu s jejich kontrolními součty a podpisy lidí, kteří stvrdili tyto kontrolní součty. Skript poté ověří minimálně k z těchto důvěryhodných lidí (uživatel si k zvolí sám podle potřeby). Je-li nalezeno dostatečné množství validních podpisů, stáhne skript soubory pro instalaci této verze Bitcoin Core. Dokumentace nabízí dodatečné informace. Skript není pro používání Bitcoin Core vyžadován a nabízí jen automatizaci procesu, který by uživatelé měli sami provádět před každým používáním citlivých souborů stažených z internetu.

  • Core Lightning #6120 vylepšuje logiku nahrazování transakcí včetně implementace pravidel pro automatické navýšení poplatků transakce pomocí RBF a opakované zveřejňování nepotvrzených transakcí (viz zpravodaj č. 243).

  • Eclair #2584 přidává podporu splicingu: pro splice-in přidávající prostředky na existující kanál i splice-out posílající prostředky z kanálu na blockchain. PR poznamenává, že obsahuje několik odlišností od aktuálního návrhu specifikace.