/ home / newsletters /
Zpravodaj „Bitcoin Optech” č. 239
Tento týden představujeme návrh BIP pro opkód OP_VAULT
, přinášíme
souhrn diskuze o umožnění LN uzlům nastavit na svých kanálech příznak
vysoké dostupnosti, přeposíláme žádost o zpětnou vazbu k ohodnocování
sousedů LN uzlů a popisujeme návrh BIP pro zálohu a obnovu seedů bez
nutnosti používat jakoukoliv elektroniku. Též nechybí naše pravidelné
rubriky se souhrnem oblíbených otázek a odpovědí z Bitcoin StackExchange,
oznámeními o nových verzích a popisem významných změn oblíbených
páteřních bitcoinových projektů.
Novinky
-
● Příznak vysoké dostupnosti pro LN: Joost Jager zaslal do emailové skupiny Lightning-Dev návrh na umožnění uzlům signalizovat, že je kanál „vysoce dostupný,” tedy že operátor věří v jeho schopnost přeposílat platby bez selhání. Pokud však k selhání dojde, odesílatel by mohl přestat tento uzel používat na dobu mnohem delší, než v případě uzlů, které by tento příznak nastaven neměly. Odesílatelé plateb cílící na maximální rychlost (spíše než na nízké poplatky) by mohli dávat přednost trasám obsahující uzly s příznakem.
Christian Decker odpověděl výtečným shrnutím problémů reputačních systémů, včetně případů samozvané reputace. Jednou z jeho obav je, že běžný odesílatel nebude zdaleka posílat tolik plateb, aby v rámci rozsáhlé sítě kanálů opakovaně použil stejné uzly. Hrozba dočasného odmítnutí poskytnutí dalších služeb není příliš vážná v případě, kdy se jen zřídka vyžadují další služby.
Antoine Riard připomněl účastníkům alternativní přístup k urychlení plateb: přeplácení s vrácením, dříve zvané bumerangové platby („boomerang payments,” viz zpravodaj č. 86, angl.) či vratné přeplatky („refundable overpayments,” viz zpravodaj č. 92, angl.). V tomto schématu by odesílatel vzal svou platbu, přidal peníze navíc, rozdělil na několik částí a odeslal je po několika trasách. Když příjemce obdrží dostatečné množství částí, které fakturu zaplatí, nárokuje si pouze tyto části a ostatní odmítne. Vyžaduje to, aby měl odesílatel ve svém kanálu prostředky navíc, avšak funguje to, i když některé trasy vybrané odesílatelem selžou. Snižuje to také nutnost, aby byl odesílatel schopen snadno vyhledat vysoce dostupné kanály. Složitost přístupu tkví ve vytvoření mechanismu, který by příjemcům zabránil nárokovat i přeplatky.
-
● Žádost o zpětnou vazbu k hodnocení dobrých sousedů v LN: Carla Kirk-Cohen a Clara Shikhelman zaslaly do emailové skupiny Lightning-Dev žádost o komentáře k doporučeným parametrům, které by umožnily uzlům posoudit, zda jsou druhé strany jejich kanálů dobrými zdroji přeposlaných plateb. Navrhují několik kritérií a pro každé z nich uvádí doporučené výchozí parametry. Rády by obdržely zpětnou vazbu ke zvoleným nastavením.
Usoudí-li uzel, že jedno z jeho spojení je dobrým sousedem, a tento soused označí přeposlané platby za jím schválené, může tento uzel poskytnout platbě přístup k více zdrojům než platbám nekvalifikovaným. Mohl by platbu během přeposílání dalším uzlům také sám schválit. Tento mechanismus je součástí návrhu na zabránění útoků zahlcením kanálu, jak bylo popsáno v předchozím článku, jehož spoluautorkou byla Shikhelman (viz zpravodaj č. 226, angl.).
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ů.
-
● Proč se během úvodního stahování v ořezaném režimu stahují witnessy? Pieter Wuille píše o případu uzlů běžících v ořezaném režimu: „jsou-li witnessy (a) před ‚assumevalid’ bodem a (b) dostatečně hluboko za bodem ořezávání, skutečně nedává smysl je mít uložené.” Existuje otevřený návrh změny, která tuto situaci adresuje, a PR Review Club o této navrhované změně.
-
● Může bitcoinová P2P síť posílat komprimovaná data? Pieter Wuille odkazuje na dvě emailové diskuze o kompresi (jedna je o kompresi pro výměnu hlaviček, druhá o obecné kompresi založené na LZO) a poznamenává, že satelity Blockstreamu používají pro transakce svá vlastní kompresní schémata.
-
● Jak se stát DNS seedem pro Bitcoin Core? Uživatel Paro vysvětluje požadavky pro DNS seed, které poskytuje novým uzlům prvotní spojení.
-
● Kde mohu nalézt otevřená témata výzkumu bitcoinu? Michael Folkson poskytuje množství zdrojů, mimo jiné Chaincode Labs Research a Bitcoin Problems.
-
● Jaká největší transakce bude přeposlána bitcoinovým uzlem ve výchozím nastavení? Pieter Wuille poukazuje na pravidlo standardnosti, které uvádí 400 000 váhových jednotek, nastavení však není konfigurovatelné. Dále vysvětluje důvody limitu včetně ochrany proti zahlcení.
-
● Jak fungují Ordinals v bitcoinu? Co přesně se v blockchainu ukládá? Vojtěch Strnad vysvětluje, že Ordinals Inscriptions nepoužívají
OP_RETURN
, ale vkládají data do nespuštěné větve skriptu pomocíOP_PUSHDATAx
opkódů:OP_0 OP_IF <tady jsou data> OP_ENDIF
-
● Proč protokol neumožňuje expiraci nepotvrzených transakcí v dané výšce? Larry Ruane odkazuje na Satoshiho, proč by nebylo moudré, aby transakce měly zdánlivě užitečnou schopnost stanovit expirační výšku, tj. výšku, po které nebude transakci nadále platná.
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.
-
● BDK 0.27.1 je bezpečnostní aktualizací opravující zranitelnost, která „někdy způsobuje přetečení, když se do SQLite funkce printf strčí velký řetězec.” Pouze software, který používá BDK s volitelnou SQLite databází, musí být aktualizován. Detaily jsou obsaženy ve zprávě o zranitelnosti.
-
● Core Lightning 23.02rc3 je kandidátem na vydání nové údržbové verze této oblíbené implementace LN.
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 #24149 přidává podporu pro podepisování deskriptorů výstupů založených na miniscriptech založených na P2WSH. Bitcoin Core bude schopen podepisovat vstup jakéhokoliv miniscriptového deskriptoru, jsou-li přístupné všechny předobrazy a klíče a jsou-li časové zámky platné. Některé možnosti pro úplnou podporu zatím chybí: peněženka zatím neumí odhadnout váhu vstupu v případě některých deskriptorů a neumí v některých případech podepsat PSBT. Na podpoře miniscriptu pro P2TR výstupy se též pracuje.
-
● Bitcoin Core #25344 aktualizuje RPC volání
bumpfee
apsbtbumpfee
pro navyšování poplatků pomocí Replace By Fee (RBF). Aktualizace umožňuje specifikovat výstupy nahrazující transakce. Nahrazující transakce může obsahovat jinou sadu výstupů než transakce nahrazovaná. Lze takto přidat nové výstupy (např. v případě iterativního dávkování) nebo výstupy odebrat (např. chceme-li zrušit nepotvrzenou platbu). -
● Eclair #2596 omezuje, kolikrát se může spojení pokusit navýšit poplatek pomocí RBF během otevírání kanálu s oboustranným vkladem. Je-li počet překročen, žádné další pokusy o změnu nebudou přijaty. Důvodem této změny je, že uzel musí ukládat data o každé verzi otevírací transakce, mohl by tedy být problém, pokud by bylo možné navýšit poplatek bez omezení. Běžně je počet navýšení poplatku prakticky omezen potřebou za každý pokus platit poplatky. V případě oboustranného vkladu se však očekává, že budou uzly ukládat všechny pokusy, i takové, které nemohou validovat. Útočník by tak mohl vytvořit neomezené množství nevalidních transakcí navyšujících poplatek bez nutnosti za ně platit jakékoliv poplatky.
-
● Eclair #2595 pokračuje v práci na přidání podpory splicingu, v tomto případě aktualizací konstruktorů transakcí.
-
● Eclair #2479 přidává podporu platby nabídek následujícím způsobem: uživatel obdrží nabídku, řekne Eclairu, aby ji zaplatil, Eclair pomocí nabídky stáhne od příjemce fakturu, ověří parametry faktury a zaplatí ji.
-
● LND #5988 přidává novou volitelnou funkci odhadu pravděpodobnosti pro hledání platebních cest. Je částečně založen na dřívějším výzkumu (viz zpravodaj č. 192, angl.) s použitím závěrů jiných přístupů.
-
● Rust Bitcoin #1636 přidává funkci
predict_weight()
pro odhad váhy. Vstupem funkce je vzor transakce, výstupem její očekávaná váha. To je obzvláště užitečné pro správu poplatků: aby bylo možné určit, které vstupy mají být přidány do transakce, musí být známa výše poplatku, ale aby byla známa výše poplatku, musí být známa velikost transakce. Funkce poskytuje odhad velikosti, aniž by se transakci pokusila sestavit.