Tento týden přinášíme souhrn návrhu na změnu protokolu LN, která může zlepšit kompatibilitu s továrnami kanálů, popisujeme program na zamezení některých důsledků útoků zahlcení kanálu bez nutnosti měnit LN protokol a nabízíme odkaz na webovou stránku monitorující nahrazené transakce bez signalizace. Též nechybí naše pravidelné rubriky s oznámeními o vydání software, souhrnem oblíbených otázek a odpovědí Bitcoin Stack Exchange a popisem významných změn populárních páteřních bitcoinových projektů.

Novinky

  • Lokální zahlcení k zamezení vzdáleného zahlcení: Joost Jager zaslal do emailové skupiny Lightning-Dev odkaz a vysvětlení svého projektu CircuitBreaker. Tento program, navržený tak, aby byl kompatibilní s LND, hlídá maximální počet nevyřízených plateb (HTLC), které uzel přeposílá jménem svých spojení. Uvažme například nejhorší možných scénář útoku zahlcením HTLC:

    Ilustrace dvou různých utoků zahlcením

    V současném LN protokolu má Alice principiální omezení 483 nevyřízených HTLC, které může současně přeposílat. Pokud by však používala CircuitBreaker k omezení kanálu s Mallorym na 10 současných nevyřízených HTLC, její kanál s Bobem (není na obrázku) a všechny další kanály v tomto okruhu by byly chráněny před všemi kromě prvních deseti HTLC, které Mallory udržuje v nevyřízeném stavu. To by významně snížilo efektivitu Malloryho útoku, protože by to po něm vyžadovalo otevření mnohem většího počtu kanálů (a tedy zvýšení nákladů), aby zasáhl stejný počet HTLC slotů.

    I když byl původně CircuitBreaker navržen tak, aby jednoduše odmítl přijmout HTLC nad rámec svého omezení, Jager poznamenal, že nedávno přidal volitelnou možnost přidání jakéhokoliv HTLC do fronty namísto okamžitého odmítnutí nebo přeposlání. Jakmile spadne počet nevyřízených HTLC v kanálu pod jeho limit, CircuitBreaker přepošle nejstarší neexpirovaný HTLC ve frontě. Jager popisuje dvě výhody tohoto přístupu:

    • Backpressure: odmítne-li uzel uprostřed okruhu HTLC, všechny uzly v okruhu (ne jen ty následující) mohou použít tento HTLC slot a prostředky na přeposlání další platby. To znamená, že motivace Alice odmítnout více než 10 HTLC od Malloryho je omezená: může jednoduše doufat, že jiný uzel dále v okruhu používá CircuitBreaker či podobný software.

      Pokud však následující uzel (řekněme Bob) používá CircuiBreaker k uložení přebytečných HTLC do fronty, mohl by Mallory i tak vyčerpat sloty a prostředky Alice, i když by si Bob a následující uzly zachovaly stejné výhody jako nyní (s výjimkou možného navýšení nákladů na uzavření kanálu v určitých případech; pro více podrobností viz Jagerův email nebo dokumentace CircuitBreakeru). To vyvíjí drobný tlak na Alici, aby CircuitBreaker nebo podobný program používala.

    • Původce selhání: současný LN protokol dává v mnoha případech odesílateli možnost identifikovat kanál, který odmítl přeposlat platbu. Některé implementace se snaží takovému kanálu v budoucnu vyhnout. V případě odmítnutí HTLC od zlomyslníků jako Mallory to ze zřejmých důvodů nevadí, odmítne-li však uzel s CircuitBreakerem HTLC od čestných plátců, mohlo by to snížit jejich výdělek nejen z odmítnuté platby, ale i z plateb následujících.

      LN protokol však v současnosti nemá široce používaný způsob určení, který kanál zpozdil HTLC. Zpoždění HTLC tak nese méně vážné důsledky než prosté odmítnutí. Jager poznamenává, že tato výhoda může brzy zmizet, neboť mnoho LN implementací pracuje na podpoře podrobnějších chybových zpráv (viz zpravodaj č. 224, angl.).

    Jager nazývá CircuitBreaker „jednoduchý, ale nedokonalý nástroj na ochranu před zahlcením kanálu a spamem.” Práce pokračují na nalezení a nasazení změn na úrovni protokolu, které by lépe zamezovaly těmto útokům, ale CircuitBreaker se vyjímá jako slušné řešení, které je kompatibilní se současným LN protokolem a které může kterýkoliv uživatel LND hned nasadit. CircuitBreaker je licencovaný pod MIT a je konceptuálně jednoduchý, mělo by tedy být možné jej přizpůsobit či portovat i na jiné LN implementace.

  • Monitorování full-RBF nahrazování: vývojář 0xB10C oznámil v emailové skupině Bitcoin-Dev, že začal poskytovat veřejně přístupný monitoring nahrazených transakcí bez signalizace BIP125 v mempoolu jeho uzlu. Jeho uzel umožňuje full-RBF nahrazování pomocí konfigurační volby mempoolfullrbf (viz zpravodaj č. 208, angl.).

    Uživatelé a služby mohou používat stránku jako indikátor, nakolik velcí těžaři potvrzují nahrazené transakce bez signalizace. Připomínáme však čtenářům, že nepotvrzené transakce jsou zcela bez záruky, i když těžaři, zdá se, zatím nahrazené transakce bez signalizace netěží.

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.

Vybrané otázky a odpovědi z Bitcoin Stack Exchange

Bitcoin Stack Exchange je jedním z prvních míst, kde hledají přispěvatelé Optechu odpovědi na své otázky a kde – najdou-li volnou chvíli – pomáhají zvědavým či zmateným uživatelům. V této měsíční rubrice nabízíme některé z otázek a odpovědí, které obdržely vysoký počet hlasů.

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 24.0.1 je hlavním vydáním nejpoužívanější implementace plného uzlu. Přináší volbu pro konfiguraci RBF (Replace-By-Fee) pravidel uzlu, nové RPC volání sendall pro snadné utracení všech prostředků v peněžence v jediné transakci (nebo pro vytváření transakcí bez zbytku), volání simulaterawtransaction, které ověří efekty transakce na peněženku (např. se lze ujistit, že coinjoinová transakce pouze sníží celkovou hodnotu peněženky o poplatky), možnost vytvářet deskriptory pouze pro sledování, které obsahují miniscriptové výrazy s vylepšenou kompatibilitou s jiným software, a automatickou aplikaci změn některých nastavení RPC volání provedených v GUI. Viz poznámky k vydání s úplným výčtem novinek a oprav chyb.

    Poznámka: verze 24.0 byla označena a binárky byly vydané, avšak správci projektu nikdy tuto verzi neoznámili. Namísto toho pracovali s ostatními přispěvateli na řešení nenadálých chyb. Verze 24.0.1 tak byla první oznámenou verzí větve 24.x.

  • libsecp256k1 0.2.0 je prvním tagovaným vydáním této široce používané knihovny pro bitcoinové kryptografické operace. Oznámení o vydání uvádí: „Po dlouhou dobu probíhal vývoj libsecp256k1 pouze v master větvi, což vytvářelo nejistotu ohledně kompatibility API a stability. Od této doby budeme vytvářet tagovaná vydání po vzoru sémantického verzování, kdykoliv budou začleněna relevantní zlepšení. […] Přeskakujeme verzi 0.1.0, protože toto číslo bylo po léta nastaveno v našich skriptech a nepoukazuje na žádnou jedinečnou množinu zdrojových kódů. Nebudeme vytvářet binární vydání, ale budeme v poznámkách o vydání a číslech verzí zohledňovat očekávané problémy s kompatibilitou ABI.”

  • Core Lightning 22.11.1 je menší vydání, které dle požadavku vývojářů dočasně vrací některé funkce odstraněné ve verzi 22.11.

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 #25934 přidává do RPC volání listsinceblock volitelný argument label. Je-li specifikován, volání vrátí pouze transakce odpovídající tomuto štítku.

  • LND #7159 upravuje RPC volání ListInvoiceRequest a ListPaymentsRequest přidáním parametrů creation_date_start a creation_date_end, které umožňují filtrovat faktury a platby podle data a času.

  • LDK #1835 přidává zachyceným HTLC jmenný prostor falešných krátkých identifikátorů kanálu („short channel identifier”, SCID), což umožní poskytovatelům lightningových služeb („lightning service providers”, LSP) vytvářet koncovým uživatelům just-in-time (JIT) kanály pro přijímání lightningových plateb. To lze učinit přidáním falešných doporučených tras do faktury, které LDK rozpozná podobně jako phantom platby (viz zpravodaj č.188, angl.). LDK poté generuje událost, která dává LSP možnost otevřít JIT kanál. LSP potom může přeposlat platbu přes právě otevřený kanál či ji stornovat.

  • BOLTs #1021 umožňuje chybovým zprávám routování připojit TLV stream, který může v budoucích verzích obsahovat dodatečné informace o chybě. Jedná se o první krok v cestě za detailními chybovými hláškami podle návrhu BOLTs #1044.

Krásné svátky!

Toto je letošní poslední pravidelné číslo našeho zpravodaje. Ve středu 21. prosince uveřejníme páté vydání roku ve zkratce. Pravidelná vydání budou pokračovat ve středu 4. ledna.