Zpravodaj tento týden shrnuje návrh změn LN specifikace umožňující používání pluginů pro továrny kanálů, odkazuje na zprávu a novou webovou stránku zkoumající signetové transakce používající navrhované soft forky, popisuje aktualizaci návrhu soft forku LNHANCE a představuje článek o kovenantech založených na obrušování namísto změn konsenzu. Též nechybí naše pravidelné rubriky se souhrnem změn ve službách, klientském software a populárním bitcoinovém páteřním software.

Novinky

  • Plugin pro továrny kanálů: ZmnSCPxj zaslal do fóra Delving Bitcoin příspěvek s návrhem na několik změn specifikace BOLT, které by pomocí pluginu umožnily existujícímu software spravovat LN-Penalty platební kanály v rámci továrny kanálů. Díky těmto změnám by mohl správce továrny (např. LSP, poskytovatel lightningových služeb) posílat LN uzlu zprávy, které by byly předány pluginu továrny. Mnoho operací továrny by bylo podobných splicingovým operacím, díky čemuž by mohl plugin použít významné množství existujícího kódu. Operace LN-Penalty kanálu v rámci továrny by byly také podobné 0-conf kanálům, i jejich kód by tedy mohl být použit.

    ZmnSCPxjův návrh se soustředí na továrny ve stylu SuperScalar (viz zpravodaj č. 327), avšak byl by pravděpodobně použitelný i jinými druhy (a možná i jinými kontraktovými protokoly s více stranami). René Pickhardt se zeptal na další změny, které by umožnily oznamovat kanály v rámci továren. ZmnSCPxj odpověděl, že záměrně ve svém návrhu oznamování nezvažoval, aby bylo možné změny specifikace implementovat co nejrychleji.

  • Zpráva o aktivitě na signetu: Anthony Towns zaslal do fóra Delving Bitcoin příspěvek se souhrnem aktivity na výchozím signetu ve vztahu k navrhovaným soft forkům dostupným prostřednictvím Bitcoin Inquisition. Příspěvek nahlíží na používání SIGHASH_ANYPREVOUT včetně testování LN-Symmetry a emulace OP_CHECKTEMPLATEVERIFY. Dále zkoumá přímé používání OP_CHECKTEMPLATEVERIFY včetně některých pravděpodobných konstrukcí úschoven a několika transakcí šířících data. Nakonec se příspěvek dívá na používání OP_CAT pro zdroje mincí založeného na dokladech o provedení práce (proof-of-work faucet, viz zpravodaj č. 306), pro možné úschovny i jiné kovenanty a pro ověřování dokladů s nulovou znalostí STARK.

    Vojtěch Strnad odpověděl, že ho Townsův příspěvek inspiroval k vytvoření webové stránky, která vypisuje „každou transakci z bitcoinového signetu, která používá některý z nasazených soft forků.”

  • Aktualizace návrhu LNHANCE: Moonsettler zaslal do fóra Delving Bitcoin příspěvek (který též poslal do emailové skupiny Bitcoin-Dev) s návrhem na přidání nového opkódu OP_PAIRCOMMIT do návrhu soft forku LNHANCE, který již obsahuje OP_CHECKTEMPLATEVERIFY a OP_CHECKSIGFROMSTACK. Nový opkód umožňuje vytvářet závazek k haši dvou prvků. To je podobné možnostem navrhovaného opkódu pro spojování prvků OP_CAT nebo opkódům pro streamování SHA, které jsou dostupné např. v sidechainech založených na Elements, avšak záměrně s ním není možné vytvářet rekurzivní kovenanty.

    Moonsettler dále v emailové skupině diskutoval i jiná drobná vylepšení LNHANCE.

  • Kovenanty založené na obrušování místo změn konsenzu: Ethan Heilman zaslal do emailové skupiny Bitcoin-Dev příspěvek se souhrnem článku, jehož je autorem spolu s Victorem Kolobovem, Avihu Levym a Andrew Poelstrou. Článek popisuje, jak by mohly být kovenanty snadno vytvářené bez změn konsenzu, avšak utrácení z nich by vyžadovalo nestandardní transakce a specializovaný hardware a elektřinu v hodnotě milionů (či miliard) dolarů. Heilman poznamenává, že jednou aplikací této práce je umožnit dnes uživatelům snadno přidat do taprootu záložní způsob utracení, který může být bezpečně použit, pokud by byla náhle potřebná kvantová odolnost a operace s podpisy nad eliptickými křivkami by byly v bitcoinu deaktivované.

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.

  • Ohlášen protokol na druhé vrstvě Spark: Spark je offchainový protokol ve stylu statechainů podporující Lightning Network.

  • Ohlášena peněženka Unify: Unify je payjoinovou peněženkou kompatibilní s BIP78, která používá Bitcoin Core a koordinuje výměnu PSBT po nostru.

  • Spuštěn bitcoinutils.dev: Webová stránka bitcoinutils.dev poskytuje rozličné bitcoinové nástroje včetně debugování skriptů a různých kódovacích a hašovacích funkcí.

  • Great Restored Script Interpreter je dostupný: Great Restored Script Interpreter je experimentální interpreter návrhu Great Script Restoration.

Významné změny kódu a dokumentace

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), Lightning BOLTs, Bitcoin Inquisition a repozitáři BINANA.

  • Bitcoin Core #30666 přidává funkci RecalculateBestHeader(), která přepočítá nejlepší hlavičku iterováním nad indexem bloků. Je automaticky zavolána při použití RPC příkazů invalidateblock a reconsiderblock nebo pokud jsou validní hlavičky v indexu bloků později během plné validace označeny za nevalidní. Odstraňuje tím problém nastavení nesprávných hodnot v těchto případech. PR dále označuje hlavičky, které vychází z nevalidního bloku, jako BLOCK_FAILED_CHILD, díky čemuž nebudou zvažovány pro m_best_header.

  • Bitcoin Core #30239 standardizuje výstupy s dočasným prachem, což umožní transakcím s nulovým poplatkem a neekonomickým výstupem přijetí do mempoolu za podmínky, že jsou v balíčku okamžitě utracené. Tato změna vylepšuje použitelnost pokročilých konstruktů jako connector výstupy nebo anchory s klíči i bez (P2A). Přinese to výhody protokolům, jako jsou Ark, expirační stromy, BitVM2 i dalším. Změna staví nad existující funkcionalitou jako 1P1C přeposílání, TRUC transakce či vylučování sourozenců. Viz též zpravodaj č. 328.

  • Core Lightning #7833 aktivuje ve výchozím nastavení protokol nabídek, čímž odstraňuje předchozí experimentální status. Změna následuje po začlenění specifikace do repozitáře BOLTů (viz zpravodaj č. 323).

  • Core Lightning #7799 přináší plugin xpay pro konstrukci a posílání optimálních plateb s více cestami. Používá plugin askrene (viz zpravodaj č. 316) a RPC příkaz injectpaymentonion. Podporuje placení BOLT11 i BOLT12 faktur, nastavení doby mezi opakovanými pokusy, nastavení lhůt, přidání routovacích dat a částečné platby pro skládání příspěvků více stran v rámci jedné faktury. Plugin je jednodušší a pokročilejší než starší plugin pay, ale neobsahuje všechny jeho vlastnosti.

  • Core Lightning #7800 přidává nový RPC příkaz listaddresses, který vrátí seznam všech bitcoinových adres, které uzel vygeneroval. PR dále používá P2TR jako výchozí skript pro utrácení anchor výstupů a pro adresu pro drobné při jednostranném zavření kanálu.

  • Core Lightning #7102 rozšiřuje příkaz generatehsm o možnost jej spustit v neinteraktivním režimu. Dříve bylo možné generovat tajná data z HSM (Hardware Security Module) pouze interaktivně v terminálu. Změna přinese výhody pro automatické instalace.

  • Core Lightning #7604 přidává do účetnického pluginu nové RPC příkazy bkpr-editdescriptionbypaymentid a bkpr-editdescriptionbyoutpoint . Umožní nastavit a změnit popisek událostí.

  • Core Lightning #6980 přidává nový příkaz splice, kterému lze předat JSON nebo skript definující komplexní splicingové akce. Všechny tyto operace nad více kanály jsou zkombinovány do jediné transakce. PR dále přidává RPC příkazy addpsbtinput (pro přímé přidání vstupů do PSBT), stfu_channels (pro pozastavení aktivity v kanálech) a abort_channels (pro ukončení kanálů za účelem jejich upgradu). Tyto příkazy jsou pro komplexní splicingové operace nezbytné.