Zpravodaj tento týden odkazuje na studii o sítích platebních kanálů. Též obsahuje naše pravidelné rubriky s popisem nedávných změn ve službách a klientském software, oznámeními nových vydání a souhrnem významných změn v populárním bitcoinovém páteřním software.

Novinky

  • Matematická teorie sítí platebních kanálů: René Pickhardt zaslal do fóra Delving Bitcoin příspěvek o zveřejnění svého nového článku nazvaného „Matematická teorie sítí platebních kanálů“ (A Mathematical Theory of Payment Channel Networks). V článku Pickhardt sdružuje několik pozorování, která posbíral během let zkoumání, do jediného geometrického rámce. Konkrétně si jeho studie klade za cíl analyzovat běžné jevy, jako jsou vyčerpání kanálu (viz zpravodaj č. 333) či neefektivní využití kapitálu v kanálech s dvěma účastníky. Vyhodnocuje, proč se dějí a jak jsou spolu provázané.

    Mezi hlavní přínosy článku patří:

    • Model pro možná rozdělení bohatství uživatelů v lightningové síti pro daný graf kanálů.

    • Vzorec pro odhad horní meze platební šířky pásma pro platby.

    • Metoda pro odhad pravděpodobnosti, že je platba uskutečnitelná (viz zpravodaj č. 309).

    • Analýza rozličných strategií pro zabránění vyčerpání kanálu.

    • Závěr, že kanály se dvěma účastníky kladou silné překážky pohybu likvidity mezi účastníky sítě.

    Dle Pickhardta stály poznatky ze zkoumání za jeho nedávným příspěvkem o používání Arku jako továrny kanálů (viz zpravodaj č. 387). Pickhardt též poskytl sadu poznámek, notebooků, kódu a článků, na kterých svůj výzkum stavěl.

    Závěrem Pickhardt otevřel diskusi o své práci a vyzval vývojářskou komunitu LN k dotazům a zpětné vazbě ohledně toho, jak by jeho výzkum mohl ovlivnit návrh protokolu a jak nejlépe využít kanály s více účastníky.

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.

  • Experimentální Electrum server pro testování tichých plateb: Frigate Electrum Server implementuje službu vzdáleného skenování (remote scanning) tichých plateb z BIP352, kterou mohou klientské aplikace používat. Ověřovací prototyp používá pro urychlení skenování moderní výpočetní operace na GPU. To umožní provozovat instance pro mnoho uživatelů a vyřizovat současně mnoho požadavků na skenování.

  • BDK WASM knihovna: Knihovna bdk-wasm, kterou původně vyvinula a používala organizace MetaMask, poskytuje přístup k funkcím BDK v prostředích, která podporují WebAssembly (WASM).

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.

  • Core Lightning 25.12.1 je údržbovým vydáním, které opravuje vážnou chybu, kvůli které nemohly uzly vytvořené ve verzi 25.12 utratit prostředky zaslané na ne-P2TR adresy (viz níže). Dále opravuje problémy s kompatibilitou v obnovování záloh a hsmtool s novým formátem hsm_secret založeným na mnemonické frázi představeným ve verzi 25.12 (viz zpravodaj č. 388).

  • LND 0.20.1-beta.rc1 je kandidátem na menší vydání, které přidává zotavení po panice během zpracování gossip zpráv, zlepšuje ochranu před reorganizacemi řetězce, implementuje heuristiku detekce LSP a opravuje několik chyb a souběhů. Podrobnosti lze nalézt v poznámkách k vydání.

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 #32471 opravuje chybu způsobující, že volání RPC příkazu listdescriptors s parametrem private=true (viz zpravodaje č. 134 a č. 162, oba angl.) selhalo, pokud peněženka obsahovala nějaký deskriptor, pro který neměla všechny soukromé klíče. Toto PR vrací ve výsledku RPC volání deskriptor s množinou dostupných soukromých klíčů a umožňuje tak uživatelům pořídit řádné zálohy. Volání listdescriptors private=true na čistě watch-only peněženkách i nadále selhává.

  • Bitcoin Core #34146 posílá první sebeoznámení uzlu ve vlastní P2P zprávě, čímž vylepšuje propagaci adresy. Dříve byla tato oznámení posílána ve skupině dalších adres v odpovědi na požadavek getaddr. To mohlo způsobit zahození adresy nebo její nahrazení jinou adresou.

  • Core Lightning #8831 opravuje vážnou chybu, kvůli které nemohly uzly vytvořené ve verzi 25.12 utratit prostředky zaslané na ne-P2TR adresy. I když byly všechny druhy adres odvozené dle BIP86, kód podepisování používal BIP86 pouze pro P2TR adresy. Toto PR zajišťuje, že podepisování používá BIP86 derivace pro všechny typy adres.

  • LDK #4261 přidává podporu pro smíšený splicing, který umožňuje v jedné transakci provést zároveň splice-in i splice-out. Stejně jako v prostém splice-inu, i zde platí poplatek vstup pocházející z otevírací transakce. Celková suma může být negativní, pokud odcházející hodnota převyšuje přicházející.

  • LDK #4152 přidává podporu pro falešné skoky v zaslepené platební cestě. Již dříve byla podobná funkce přidána pro zaslepené cesty pro posílání zpráv (viz zpravodaj č. 370, angl.). Přidání skoků výrazně ztěžuje odhadování vzdálenosti k cíli nebo identity příjemce. Zpravodaj č. 381 (angl.) popisuje další související změny.

  • LND #10488 opravuje chybu, kvůli které byly kanály otevřené s volbou fundMax (viz zpravodaj č. 246) omezené na velikosti uživatelským nastavením maxChanSize (viz zpravodaj č. 116, angl.). Toto nastavení bylo zamýšleno pouze pro omezení počtu přicházejících žádostí o kanál. Tato změna zajišťuje, že volba fundMax bude používat maximální velikost kanálu dle protokolu v závislosti na tom, zda strany podporují velké kanály.

  • LND #10331 se lépe vyrovnává s reorganizacemi řetězce během zavírání kanálu. Nově vyžaduje počet potvrzení od jednoho do šesti v závislosti na velikosti kanálu. Démon sledující blockchain obdržel nový stavový automat, který lépe detekuje reorganizace a sleduje soupeřící zavírací transakce. PR dále přidává monitorování záporných potvrzení (v případě, že potvrzená transakce kvůli reorganizaci potvrzení ztratí), avšak zatím není vyřešeno, jak s nimi bude nakládat. Změna řeší nejstarší otevřený tiket LND z roku 2016.

  • Rust Bitcoin #5402 přidává validaci během dekódování, aby vyloučila transakce s duplikovanými vstupy (problém souvisí s CVE-2018-17144). Transakce, které obsahují více vstupů utrácejících stejný výstup, jsou dle konsenzu nevalidní.

  • BIPs #1820 mění stav BIP3 na Deployed, čímž nahrazuje BIP2 jako soubor směrnic pro přijímání BIPů (návrhů na vylepšení bitcoinu). Zpravodaj č. 388 obsahuje další podrobnosti.

  • BOLTs #1306 upřesňuje ve specifikaci BOLT12, že nabídky s prázdným polem offer_chains musí být odmítnuty. Pro nabídku, ve které je toto pole přítomné, ale neobsahuje žádný haš řetězce, nelze vytvořit fakturu, jelikož plátce nemůže uspokojit požadavek na nastavení invreq_chain na jeden z hašů z offer_chains.

  • BLIPs #59 přidává do BLIP51, známého též jako LSPS1, podporu pro BOLT12 nabídky jako jednu z možností pro placení poskytovatelům lightningových služeb (LSP). Stávajícími možnostmi jsou BOLT11 a onchain platby. Toto bylo již dříve implementováno v LDK (viz zpravodaj č. 347).