Tento týden přinášíme zveřejnění opraveného selhání konsenzu ve starších verzích btcd, ohlášení nového repozitáře bitcoinových specifikací a popis navrhovaných změn LN pro dočasné anchory a přeposílání transakcí verze 3. Též nechybí naše pravidelné rubriky s popisem aktualizací služeb a klientského 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

  • Zveřejnění opraveného selhání konsenzu v btcd: Niklas Gögge oznámil ve fóru Delving Bitcoin selhání konsenzu starších verzí btcd, které předtím zodpovědně nahlásil. Relativní časové zámky byly do bitcoinu přidány v soft forku přiřazením významu sekvenčním číslům vstupů a jeho vynucování konsenzem. Aby bylo zajištěno, že žádné podepsané transakce vytvořené před soft forkem nebudou považovány za neplatné, jsou relativní časové zámky aplikovány pouze na transakce verze 2 či vyšší. To umožňuje transakcím s původním číslem verze 1 zachovat platnost s jakýmikoliv vstupy. Avšak v původním bitcoinovém programu jsou čísla verzí celými čísly se znaménkem, což znamená, že záporná čísla verzí jsou možná. Část referenční implementace BIPu 68 poznamenává, že „verze 2 a vyšší” se týká čísla verze přetypované z celého čísla se znaménkem na celé číslo bez znaménka, z čeho vyplývá, že se pravidla aplikují na jakoukoliv verzi, která není 0 či 1.

    Gögge zjistil, že btcd toto přetypování neimplementovalo. Bylo tedy možné zkonstruovat transakci se záporným číslem verze, dle které by Bitcoin Core musel následovat pravidla BIP68, ale btcd by nemuselo. V tom případě by jeden uzel transakci odmítl (a každý blok, který by ji obsahoval), zatímco jiný uzel by ji přijal (spolu s blokem). To by vedlo ke štěpení blockchainu. Útočník by toho mohl zneužít k oklamání provozovatele btcd uzlu (nebo software na něj připojeného) k přijetí nevalidních bitcoinů.

    Chyba bylo diskrétně nahlášena vývojářům btcd, kteří ji opravili ve vydání v0.24.0. Všichni, kteří používají btcd pro vynucování konsenzu by měli vážně zvážit upgrade. Dále Chris Stewart zaslal do fóra patch s opravou stejné chyby obsažené v knihovně bitcoin-s. Autoři kódu, který by mohl být použit k validaci relativních časových zámků dle BIP68, jsou vyzýváni, aby svůj kód též ověřili.

  • Nový repozitář dokumentace: Anthony Towns zaslal do emailové skupiny Bitcoin-Dev příspěvek oznamující nový repozitář specifikací protokolů Bitcoin Inquisition Numbers And Names Authority (BINANA). V době psaní obsahuje repozitář čtyři specifikace:

    Bitcoin Optech přidal repozitář BINANA na seznam zdrojů, které monitorujeme. Mezi další zdroje patří BIPy, BOLTy a BLIPy. Budoucí aktualizace budou popsány v rubrice s významnými změnami kódu a dokumentace.

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.

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.

  • LDK 0.0.120 je bezpečnostní vydání této knihovny pro budování aplikací s LN. „Opravuje DoS zranitelnost, kterou lze vyvolat nedůvěryhodným vstupem od spojení, je-li aktivována volba UserConfig::manually_accept_inbound_channels.” Vydání dále obsahuje drobná vylepšení a opravy několika dalších chyb.

  • HWI 2.4.0-rc1 je kandidátem na vydání příští verze toho balíčku poskytujícího jednotné rozhraní k několika různým hardwarovým podpisovým zařízením.

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 a Bitcoin Inquisition.