Zpravodaj tento týden popisuje nápad na lightningové uzly používající vnořený MuSig2 a shrnuje projekt formálně ověřující skalární násobení modulo v secp256k1. Též nechybí naše pravidelné rubriky s popisem nedávných změn ve službách a klientském software, s oznámeními nových vydání a se souhrnem významných změn v populárním bitcoinovém páteřním software.

Novinky

  • Diskuze o používání vnořeného MuSig2 v Lightning Network: ZmnSCPxj zaslal do fóra Delving Bitcoin příspěvek o nápadu na vytvoření lightningových uzlů v podobě k z n vícenásobného podpisu s použitím vnořeného Musig2 protokolu z nedávno zveřejněného článku. Začal vysvětlením důležitosti této vlastnosti, poté vyjmenoval současná technická omezení lightningového protokolu a nakonec poskytl návrh na úpravy BOLT specifikací.

    ZmnSCPxj tvrdí, že potřeba pro k z n podpisové schéma v lightningu vychází z žádosti mnoha držitelů poskytovat síti svou likviditu výměnou za poplatky. Tito velcí držitelé mohou vyžadovat silné záruky zabezpečení prostředků, které jediný klíč nemůže poskytnout. Schéma s k z n podpisy by takové zabezpečení garantovat mohlo, dokud by bylo kompromitováno méně než k klíčů.

    BOLT specifikace by v dnešní podobě neumožnily poskytnout bezpečný způsob přidání k z n multisig schématu. Hlavní překážkou je revokační klíč. Dle BOLT je revokační klíč vytvořen pomocí tzv. shachainu, který je ze své povahy nevhodný pro použití s k z n multisigem.

    ZmnSCPxj proto navrhuje upravit BOLT specifikace tak, aby validace revokačních klíčů účastníků kanálu pomocí shachainu byla volitelná. K tomu by měl sloužit nový pár feature bitů nazvaný no_more_shachains a přítomný v globalfeatures i localfeatures. Lichý bit by signalizoval, že uzel nebude provádět shachain validaci klíčů protistrany, avšak validní revokační klíče by pro zachování kompatibility nadále poskytoval. Sudý bit by signalizoval, že uzel nebude ani validovat, ani poskytovat validní revokační klíče. Lichý bit by byl používán hraničními uzly (ZmnSCPxj je definuje jako gateway nodes), které by propojovaly uzly schopné k z n podpisů (sudý bit) a zbytek sítě.

    Nakonec ZmnSCPxj zdůrazňuje, jak by tento návrh představoval vážný kompromis, totiž v požadavcích na ukládání revokačních klíčů. Uzly by musely ukládat jednotlivé revokační klíče namísto kompaktní shachain reprezentace. V důsledku by tak tyto klíče vyžadovaly na disku třikrát více místa.

  • Formální ověření skalárního násobení modulo v secp256k1: Remix7531 zaslal do emailové skupiny Bitcoin-Dev příspěvek o vytvoření formální verifikace skalárního násobení modulo v secp256k1. Projekt ukazuje, že formální verifikace části bitcoin-core/secp256k1 je praktická.

    V rámci secp256k1-scalar-fv-test codebase vzal Remix7531 skutečný céčkový kód z knihovny a dokázal jeho správnost vzhledem k formální matematické specifikaci. Použil Rocq a Verified Software Toolchain (VST). Remix7531 vysvětlil, proč je tato snaha důležitá. Paměťově bezpečné jazyky, testování a fuzz testování mohou najít mnoho chyb, ale nemohou zaručit jejich absenci. Formalizace v jazyce Rocq může dokázat absenci chyb ve správě paměti, správnost implementace specifikace a konečnost algoritmu.

    Jako další kroky plánuje převést důkaz skalárního násobení do RefinedC. Tím by dosáhl možnosti napřímo porovnat oba nástroje nad stejným kódem. Co se týče verifikace, dalším cílem je Pippengerův algoritmus násobení více skalárů, který se používá pro dávkové ověřování podpisů.

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.

  • Coldcard 6.5.0 přidává MuSig2 a miniscript: Coldcard 6.5.0 přidává podporu pro MuSig2, schopnost doložit dostupné prostředky dle BIP322 a nové funkce pro miniscript a taproot, např. podporu až pro osm listů v tapscriptu.

  • Vydán Frigate 1.4.0: Frigate v1.4.0, experimentální Electrum server pro skenování tichých plateb (viz zpravodaj č. 389), nově používá knihovnu UltrafastSecp256k1 ve spojení s výpočty na moderním GPU. Doba skenování několika měsíců bloků se snížila z hodiny na půl sekundy.

  • Aktualizace Bitcoin Backbone: Bitcoin Backbone vydal několik aktualizací přidávajících podporu kompaktních bloků dle BIP152, vylepšujících správu transakcí a adres a pokládajících základy víceprocesového rozhraní (viz zpravodaj č. 368, angl.). Oznámení dále navrhuje rozšířit Bitcoin Kernel API o nezávislé ověřování hlaviček a transakcí.

  • Vydán Utreexod 0.5: Utreexod v0.5 přidává úvodní stahování bloků přes SwiftSync, který nemusí díky kryptografické agregaci během úvodního stahovaní stahovat a ověřovat doklady o začlenění do akumulátoru a který snižuje stahování dodatečných dat uzly během úvodního stahování z 1,4 TB na zhruba 200 GB (s možností další redukce díky kešování).

  • Vydána Floresta 0.9.0: Floresta v0.9.0 přináší soulad P2P síťového protokolu s BIP183 pro výměnu UTXO dokladů a vyměňuje libbitcoinconsensus ze Bitcoin Kernel. Dosahuje tím zhruba 15× rychlejší validace skriptu.

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.

  • Bitcoin Core 31.0rc4 je kandidátem na vydání příští hlavní verze této převládající implementace plného uzlu. K dispozici je průvodce testováním.

  • Core Lightning 26.04rc3 je kandidátem na vydání příští hlavní verze této populární implementace LN uzlu. Pokračuje v aktualizacích splicingu a opravuje chyby předchozích kandidátů.

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

  • Bitcoin Core #34401 přidává do btck_BlockHeader v libbitcoinkernel C API (viz zpravodaj č. 380, angl., a zpravodaj č. 390) metodu pro serializaci hlavičky bloku ve standardním kódování. To umožňuje externím programům používajícím C API ukládat, posílat či porovnávat serializované hlavičky bez potřeby dalšího serializačního kódu.

  • Bitcoin Core #35032 přestává ukládat síťové adresy, které se dozvěděl z RPC volání sendrawtransaction s aktivní volbou privatebroadcast (viz zpravodaj č. 388). Volba privatebroadcast umožňuje uživatelům zveřejnit transakce přes krátkodobé Tor nebo I2P spojení nebo přes Tor proxy.

  • Core Lightning #9021 činí splicing aktivním ve výchozím nastavení. Po zveřejnění specifikace protokolu splicingu (viz zpravodaj č. 398) již není splicing považován za experimentální.

  • Core Lightning #9046 navyšuje předpokládaný final_cltv_expiry (CLTV expiry delta posledního skoku) u keysend plateb z 22 na 42 bloků pro lepší spolupráci s LDK.

  • LDK #4515 přepíná feature bit kanálů s commitmenty s nulovými poplatky ( viz zpravodaj č. 371, angl.) z experimentálního na produkční. Kanály s commitmenty s nulovými poplatky nahrazují dva anchor výstupy jedním sdíleným Pay-to-Anchor (P2A) výstupem zastropovaným na hodnotě 240 sat.

  • LDK #4558 aplikuje stávající vypršení časového limitu u nekompletních plateb s více cestami (MPP) také na keysend platby. Dříve mohl nekompletní keysend MPP zůstat nevyřízen až do vypršení CLTV, čímž držel HTLC sloty.

  • LND #9985 přidává kompletní podporu pro produkční jednoduché taprootové kanály s produkčními feature bity 80/81 a speciálním typem commitmentu SIMPLE_TAPROOT_FINAL. Používá optimalizované tapscripty, které upřednostňují OP_CHECKSIGVERIFY před OP_CHECKSIG+OP_DROP, a přidává zpracovávání noncí založené na mapě s txid klíčem v reakci na revoke_and_ack. Jedná se o základy pro budoucí splicing.

  • BTCPay Server #7250 přidává podporu pro LUD-21. Přináší volitelný neautentizovaný vstupní bod verify, který umožňuje externím službám ověřit, zda již byla BOLT11 faktura vytvořená přes LNURL-pay urovnána.

  • BIPs #2089 zveřejňuje BIP376, který definuje nová PSBTv2 pole na úrovni vstupů pro data potřebná pro podepisování a utrácení výstupů tichých plateb a volitelné pole pro BIP32 derivaci kompatibilní s 33bajtovými klíči pro utrácení dle BIP352. Tato změna doplňuje BIP375, který specifikuje, jak vytvářet výstupy tichých plateb pomocí PSBT (viz zpravodaj č. 309).

Chcete víc?

Další diskuze o tématech zmíněných v tomto zpravodaji proběhnou v týdenním Bitcoin Optech Recap na Riverside.fm dne 21. 4. v 16:30 UTC. Diskuze jsou nahrávány a zpřístupněny na stránce našeho podcastu.