/ home / newsletters /
Zpravodaj „Bitcoin Optech” č. 390
Zpravodaj tento týden shrnuje efektivnější přístup ke garbled obvodům a odkazuje na aktualizaci LN-Symmetry. Též nechybí naše pravidelné rubriky s vybranými otázkami a odpověďmi z Bitcoin Stack Exchange, 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
-
● Argo: schéma pro garbled obvody s 1000× efektivnějšími offchain výpočty: Robin Linus zaslal do fóra Delving Bitcoin příspěvek o novém článku, který napsali Liam Eagen a Ying Tong Lai. Článek popisuje techniku, která zefektivňuje garbled zámky (garbled locks) více než tisíckrát. Tento nový přístup používá autentizační kódy zprávy (MAC), které kódují spojení garbled obvodů (garbled circuits) jako body na eliptické křivce. Tyto autentizační kódy jsou navrženy jako homomorfní, a tudíž umožňují reprezentovat operace v rámci garbled obvodu přímo jako operace nad body eliptické křivky. Hlavním vylepšením je, že Argo funguje nad aritmetickými obvody, a nikoliv s binárními obvody. V případě binárních obvodů jsou pro reprezentaci násobení bodů na křivce potřebné miliony binárních hradel. S aritmetickými obvody je potřeba mít pouze jedno aritmetické hradlo. Článek je prvním z několika střípků, které budou potřebné pro používání této techniky nad bitcoinovými konstrukty typu BitVM.
-
● Aktualizace LN-Symmetry: Gregory Sanders zaslal do fóra Delving Bitcoin příspěvek o novém vývoji jeho práce na LN-Symmetry (viz zpravodaj č. 284).
Sanders aktualizoval verze BOLT specifikace a CLN, ze kterých odvádí svůj pilotní projekt. Nově funguje na Bitcoin Inquisition 29.x na signetu s TRUC, dočasným prachem (P2A) a 1p1c přeposíláním balíčků. Podporuje kooperativní zavírání kanálů, opravuje pád, kvůli kterému uzly správně nerestartovaly, a rozšiřuje pokrytí testy. Sanders požádal ostatní vývojáře o testování jeho nového prototypu na signetu s Bitcoin Inquisition.
Sanders využil schopností LLM k migraci své práce z APO na OP_TEMPLATEHASH+OP_CSFS+IK (viz zpravodaj č. 365, angl.), upravil návrh BOLTu a vytvořil implementaci nad CLN. Dodal však, že jelikož OP_TEMPLATEHASH ještě není nasazen v Bitcoin Inquisition, může být tato druhá změna otestována pouze na regtestu.
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ů.
-
● Co se ukládá v dbcache a s jakou prioritou? Murch popisuje účel datové struktury
dbcachejako mezipaměť pro podmnožinu množiny UTXO a detailně vypisuje její chování. -
● Lze provést coinjoin v Shielded CSV? Jonas Nick vysvětluje, že protokol Shielded CSV aktuálně coinjoin nepodporuje, ale že protokoly s validací na straně klienta obecně tuto funkcionalitu nevylučují.
-
● Jak v Bitcoin Core používat Tor pouze pro rozesílání nových transakcí? Vasil Dimov dodává v reakci na tuto starší otázku, že s novou volbou
privatebroadcast(viz zpravodaj č. 388) může Bitcoin Core zveřejnit transakce přes krátkodobá spojení do sítí zachovávajících soukromí. -
● Brassardův–Høyerův–Tappův (BHT) algoritmus a bitcoin (BIP360) Uživatel bca-0353f40e vysvětluje, že možnost provést kolizní útok na multisig adresy použitím Brassardova–Høyerova–Tappova (BHT) kvantového algoritmu znehodnocujícího bezpečnost SHA256 by se netýkala adres vytvořených před touto schopností.
-
● Proč BitHash střídá sha256 a ripmed160? Sjors Provoost vypisuje odůvodnění kolem funkce BitHash v BitVM3. Tato hašovací funkce je vytvořená pro bitcoinový jazyk Script.
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.
- ● Libsecp256k1 0.7.1 je údržbovým vydáním této knihovny pro bitcoinové kryptografické operace, které přináší bezpečnostní vylepšení zvyšující počet případů, ve kterých se knihovna pokusí vymazat tajné kódy ze zásobníku. Dále přináší nový testovací framework a několik změn v systému sestavová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 #33822 přidává do API
libbitcoinkernel(viz zpravodaj č. 380, angl.) podporu pro hlavičky bloků. Nový typbtck_BlockHeadera jeho metody umožňují vytvářet, kopírovat a uvolňovat hlavičky a načítat jejich pole jako haš, předchozí haš, časová razítka, cíl složitosti, verze a nonce. Nová metodabtck_chainstate_manager_process_block_header()validuje a zpracovává hlavičky bloků bez potřeby mít kompletní blok.btck_chainstate_manager_get_best_entry()vrací záznam ze stromu bloků, který nashromáždil nejvíce proof of work. -
● Bitcoin Core #34269 znemožňuje vytváření nebo obnovu nepojmenovaných peněženek během používání RPC volání
createwalletarestorewallet(viz zpravodaje č. 45 a č. 130, oba angl.). I když GUI tato omezení již vynucovalo, RPC a kód nikoliv. Migrace peněženky může i nadále obnovit nepojmenované peněženky. Zpravodaj č. 387 popisuje chybu související s nepojmenovanými peněženkami. -
● Core Lightning #8850 odstraňuje několik zastaralých funkcí:
option_anchors_zero_fee_htlc_tx, přejmenovanou naoption_anchorskvůli změnám v anchor výstupech, RPCdecodepay(nahrazenou volánímdecode), poletxatxidv odpovědi na příkazclose(nahrazena politxsatxids) aestimatefeesv1, původní formát odpovědí používaný pluginembclipro získání odhadu poplatků. -
● LDK #4349 přidává do parsování BOLT12 nabídek validaci zarovnání (padding) bech32 dle specifikace v BIP173. Dříve LDK akceptovalo nabídky s nevalidním zarovnáním, avšak ostatní implementace jako Lightning-KMP a Eclair je korektně odmítly. Do výčtového seznamu
Bolt12ParseErrorbyla přidána nová položkaInvalidPadding. -
● Rust Bitcoin #5470 přidává do dekodéru validaci odmítající transakce bez výstupů. Platné bitcoinové transakce musí mít alespoň jeden výstup.
-
● Rust Bitcoin #5443 přidává do dekodéru validaci odmítající transakce, jejichž výstupy mají částky dohromady přesahující
MAX_MONEY(21 milionů bitcoinů). Tato kontrola souvisí s CVE-2010-5139, historickou zranitelností, kdy mohl útočník vytvořit transakce s extrémně vysokými výstupními hodnotami. -
● BDK #2037 přidává do struktury
CheckPointmetodumedian_time_past(), která spočítá medián času posledních 11 bloků (Median Time Past, MTP) definovaný v BIP113. Ten je používán pro validaci časových zámků. Zpravodaj č. 372 (angl.) popisuje další související práci. -
● BIPs #2076 přidává BIP434, který definuje P2P zprávu, která by peer spojením umožnila oznamovat a vyjednávat o podpoře nové funkcionality. Myšlenka zobecňuje mechanismus BIP339 (viz zpravodaj č. 87, angl.), ale namísto nutnosti definovat novou zprávu pro každou funkci poskytuje BIP434 jednu univerzální zprávu pro různé upgrady P2P protokolu. Tento mechanismus je užitečný pro některé návrhy na změnu v P2P protokolu jako sdílení šablon. Viz též zpravodaj č. 386, který popisuje diskuzi v emailové skupině.
-
● BIPs #1500 přidává BIP346, který definuje opkód
OP_TXHASHpro tapscript. Tato instrukce přidá do zásobníku hašový otisk určitých částí utrácející transakce. Toho lze využít pro vytváření koventantů a snížení interaktivity v protokolech s více stranami. Opkód zobecňuje OP_CHECKTEMPLATEVERIFY a může v kombinaci s OP_CHECKSIGFROMSTACK emulovat SIGHASH_ANYPREVOUT. Viz zpravodaje č. 185 (angl.) a č. 272 pro související diskuze.