|
| 1 | +--- |
| 2 | +title: 'Zpravodaj „Bitcoin Optech” č. 250' |
| 3 | +permalink: /cs/newsletters/2023/05/10/ |
| 4 | +name: 2023-05-10-newsletter-cs |
| 5 | +slug: 2023-05-10-newsletter-cs |
| 6 | +type: newsletter |
| 7 | +layout: newsletter |
| 8 | +lang: cs |
| 9 | +--- |
| 10 | +Tento týden přinášíme popis článku o protokolu PoWswap a naše pravidelné |
| 11 | +rubriky se souhrnem sezení Bitcoin Core PR Review Club, oznámeními o |
| 12 | +nových verzích a popisem významných změn v populárních páteřních |
| 13 | +bitcoinových projektech. Též nechybí krátká část oslavující pět let |
| 14 | +Bitcoin Optech a naše 250. číslo. |
| 15 | + |
| 16 | +## Novinky |
| 17 | + |
| 18 | +- **Článek o protokolu PoWswap:** Thomas Hartman zaslal do emailové |
| 19 | + skupiny Bitcoin-Dev [příspěvek][hartman powswap] o [článku][hnr powswap], |
| 20 | + který napsal s Glebem Naumenkem a Antoinem Riardem, věnující se protokolu |
| 21 | + [PoWSwap][] poprvé navrženém Jeremy Rubinem. PoWswap umožňuje |
| 22 | + vytvářet onchainové kontrakty vztažené ke změně hash rate. Základní |
| 23 | + myšlenka spočívá ve využití vztahu mezi časem a produkcí bloků, který |
| 24 | + lze ověřovat na úrovni protokolu, spolu s možností vyjádřit časové |
| 25 | + zámky buď formou času nebo počtu bloků. Mějme například následující skript: |
| 26 | + |
| 27 | + ``` |
| 28 | + OP_IF |
| 29 | + <Alicin klíč> OP_CHECKSIGVERIFY <čas> OP_CHECKLOCKTIMEVERIFY |
| 30 | + OP_ELSE |
| 31 | + <Bobův klíč> OP_CHECKSIGVERIFY <výška> OP_CHECKLOCKTIMEVERIFY |
| 32 | + OP_ENDIF |
| 33 | + ``` |
| 34 | + |
| 35 | + Představme si, že aktuální čas je _t_ a aktuální výška bloků je _x_. |
| 36 | + Předpokládejme, že bloky jsou produkovány průměrně v desetiminutových |
| 37 | + intervalech. Nastavíme-li `<čas>` na _t + 1 000 minut_ a `<výška>` na |
| 38 | + _x + 50_, můžeme očekávat, že Bob by byl schopen utratit výstup |
| 39 | + kontrolovaný výše uvedeným skriptem v průměru 500 minut před tím, než |
| 40 | + by ho mohla utratit Alice. Avšak pokud by se produkce bloků zrychlila |
| 41 | + více než dvakrát, mohla by Alice utratit výstup před Bobem. |
| 42 | + |
| 43 | + Lze si představit několik aplikací takového kontraktu: |
| 44 | + |
| 45 | + - *Pojištění proti navýšení hash rate:* těžaři musí zakoupit vybavení |
| 46 | + před tím, než najisto vědí, jaký příjem jim bude generovat. Například |
| 47 | + se může stát, že těžař zakoupí dost vybavení, aby obdržel jedno procento |
| 48 | + současných odměn. Tento těžař by jistě nepřivítal, kdyby ve stejné |
| 49 | + době jiný těžař zakoupil vybavení, kterým by zdvojnásobil celkový |
| 50 | + hash rate a tím by snížil jeho odměny na 0,5 %. Náš těžař by mohl |
| 51 | + pomocí PoWswap uzavřít kontrakt s někým, kdo je ochoten mu zaplatit |
| 52 | + v případě navýšení hash rate před určitým datem, čímž by vyrovnal |
| 53 | + těžařův neočekávaně nízký příjem. Výměnou by tento těžař souhlasil |
| 54 | + zaplatit větší částku, pokud by hash rate zůstal stejný nebo se snížil. |
| 55 | + |
| 56 | + - *Pojištění proti poklesu hash rate:* množství známých problémů |
| 57 | + bitcoinu by vyústilo ve velký pokles celkového hash rate. Hash rate |
| 58 | + by se snížil, pokud by těžaři byli zavírání nějakými mocnými stranami |
| 59 | + nebo pokud by se mezi zavedenými těžaři náhle začal ve velké míře |
| 60 | + objevovat [fee sniping][topic fee sniping] anebo pokud by hodnota |
| 61 | + BTC, který těžaři obdrží, náhle poklesla. Držitelé bitcoinu, kteří |
| 62 | + by se chtěli proti takovým situacím pojistit, by mohli uzavřít |
| 63 | + s těžaři nebo třetími stranami podobný kontrakt. |
| 64 | + |
| 65 | + - *Kurzové kontrakty:* obecně chtějí v případě navýšení kupní síly |
| 66 | + bitcoinu těžaři navýšit jimi poskytovaný hash rate, aby obdrželi |
| 67 | + více na odměnách. V případě poklesu kupní síly potom hash rate |
| 68 | + klesá. Lidé by mohli uzavírat kontrakty navázané na budoucí |
| 69 | + kupní sílu bitcoinu. |
| 70 | + |
| 71 | + I když se o PoWswap hovoří již několik let, tento článek poskytuje |
| 72 | + množství podrobností a analýz, které jsme do této doby neviděli. |
| 73 | + |
| 74 | +## Vydání nových verzí |
| 75 | + |
| 76 | +*Vydání nových verzí oblíbených páteřních bitcoinových projektů. Prosíme, |
| 77 | +zvažte upgrade či pomoc s testováním.* |
| 78 | + |
| 79 | +- [Core Lightning 23.05rc2][] je kandidátem na vydání příští verze |
| 80 | + této implementace LN. |
| 81 | + |
| 82 | +- [Bitcoin Core 24.1rc2][] je kandidátem na údržbové vydání aktuální |
| 83 | + verze Bitcoin Core. |
| 84 | + |
| 85 | +- [Bitcoin Core 25.0rc1][] je kandidátem na vydání příští hlavní verze |
| 86 | + Bitcoin Core. |
| 87 | + |
| 88 | +## Bitcoin Core PR Review Club |
| 89 | + |
| 90 | +*V této měsíční rubrice shrnujeme nedávné sezení [Bitcoin Core PR Review Club][] a |
| 91 | +vyzdvihujeme některé z důležitých otázek a odpovědí. Klikněte na otázku a odpověď se vám odhalí.* |
| 92 | + |
| 93 | +[Přidej getprioritisationmap, odstraň položku z mapDeltas pokud delta==0][review club 27501] |
| 94 | +je PR od Glorie Zhao (glozow) vylepšující funkci Bitcoin Core, |
| 95 | +která těžařům umožňuje upravit efektivní poplatek konkrétní transakce |
| 96 | +v mempoolu (viz RPC volání [`prioritisetransaction`][prioritisetransaction RPC]), |
| 97 | +a tím zvýšit či snížit prioritu její těžby. Hodnota, která navýší poplatek |
| 98 | +(je-li kladná) či sníží poplatek (je-li záporná), se nazývá _fee delta_. |
| 99 | +Hodnoty prioritizace transakcí jsou ukládány na disk do souboru `mempool.dat` |
| 100 | +a jsou v případě restartu obnoveny. |
| 101 | + |
| 102 | +Jednou ze situací, kdy těžař využije prioritizaci transakcí, je obdržení |
| 103 | +externí platby poplatku. Poplatek takové transakce se potom bude během |
| 104 | +těžby považovat za vyšší. |
| 105 | + |
| 106 | +PR přidává nové RPC volání `getprioritisationmap`, které vrací seznam |
| 107 | +prioritizovaných transakcí. PR dále odstraňuje již nepotřebné položky |
| 108 | +prioritizace, je-li jejich delta nastavena na nulu. |
| 109 | + |
| 110 | +{% include functions/details-list.md |
| 111 | + q0="Co je datová struktura [mapDeltas][] a proč ji potřebujeme?" |
| 112 | + a0="Ukládá hodnoty prioritizace transakcí. Tyto hodnoty ovlivňují |
| 113 | + rozhodování o lokální těžbě, zahazování transakcí a také |
| 114 | + kalkulaci poplatků rodičů a potomků." |
| 115 | + a0link="https://bitcoincore.reviews/27501#l-26" |
| 116 | + |
| 117 | + q1="Ovlivňuje prioritizace transakcí algoritmus odhadování poplatků?" |
| 118 | + a1="Ne. Odhad poplatků musí přesně předpovídat očekávaná rozhodnutí |
| 119 | + těžařů (v tomto případě se jedná o _ostatní_ těžaře) a tito |
| 120 | + těžaři nemají stejnou prioritizaci jako my. Prioritizace je |
| 121 | + lokální." |
| 122 | + a1link="https://bitcoincore.reviews/27501#l-31" |
| 123 | + |
| 124 | + q2="Jak jsou do `mapDeltas` položky přidávány? Kdy jsou odstraněny?" |
| 125 | + a2="Jsou přidávány RPC voláním `prioritisetransaction` a také během |
| 126 | + restartu ze souboru `mempool.dat`. Odstraněny jsou v okamžiku |
| 127 | + začlenění bloku s transakcí do blockchainu nebo když je transakce |
| 128 | + [nahrazena (RBF)][topic rbf]." |
| 129 | + a2link="https://bitcoincore.reviews/27501#l-34" |
| 130 | + |
| 131 | + q3="Proč bychom neměli odstranit položku z `mapDeltas`, když je její transakce |
| 132 | + odstraněna z mempoolu (např. protože její čas vypršel nebo byla vyhozena |
| 133 | + kvůli nízkému poplatku)?" |
| 134 | + a3="Transakce se může vrátit zpět do mempoolu. Pokud by byla položka z |
| 135 | + `mapDeltas` ostraněna, musel by uživatel opět nastavit prioritizaci |
| 136 | + této transakce." |
| 137 | + a3link="https://bitcoincore.reviews/27501#l-84" |
| 138 | + |
| 139 | + q4="Je-li transakce odstraněna z `mapDeltas` z důvodu začlenění do bloku |
| 140 | + a tento blok je následně obětí reorganizace, nebude se muset |
| 141 | + znovu nastavit prioritizace transakce?" |
| 142 | + a4="Ano, ale reorganizace by měly nastávat zřídka. Navíc externí platby |
| 143 | + mohou být ve formě bitcoinové transakce a ta také může vyžadovat |
| 144 | + prioritizaci." |
| 145 | + a4link="https://bitcoincore.reviews/27501#l-90" |
| 146 | + |
| 147 | + q5="Proč bychom měli umožnit prioritizaci transakce, která není přítomna |
| 148 | + v mempoolu?" |
| 149 | + a5="Protože tato transakce nemusí být v mempoolu _prozatím_. A nemusí |
| 150 | + se do mempoolu ani dostat kvůli vlastnímu poplatku (bez prioritizace)." |
| 151 | + a5link="https://bitcoincore.reviews/27501#l-89" |
| 152 | + |
| 153 | + q6="Jaký problém nastává, když `mapDeltas` nepročišťujeme?" |
| 154 | + a6="Hlavním problémem je zbytečná alokace paměti." |
| 155 | + a6link="https://bitcoincore.reviews/27501#l-107" |
| 156 | + |
| 157 | + q7="Kdy se `mempool.dat` (včetně `mapDeltas`) zapisuje na disk?" |
| 158 | + a7="V případě řádného ukončení nebo RPC voláním `savemempool`." |
| 159 | + a7link="https://bitcoincore.reviews/27501#l-114" |
| 160 | + |
| 161 | + q8="Jak před tímto PR těžaři pročišťovali `mapDeltas`?" |
| 162 | + a8="Jediným způsobem bylo uzel restartovat, jelikož během restartu |
| 163 | + nejsou nulové prioritizace do `mapDeltas` vkládány. Díky PR |
| 164 | + jsou nulové položky z `mapDeltas` odstraněny okamžitě a nejsou |
| 165 | + tak ani zapisovány na disk." |
| 166 | + a8link="https://bitcoincore.reviews/27501#l-127" |
| 167 | +%} |
| 168 | + |
| 169 | +## Významné změny v kódu a dokumentaci |
| 170 | + |
| 171 | +*Významné změny z tohoto týdne v [Bitcoin Core][bitcoin core repo], [Core |
| 172 | +Lightning][core lightning repo], [Eclair][eclair repo], [LDK][ldk repo], |
| 173 | +[LND][lnd repo], [libsecp256k1][libsecp256k1 repo], [Hardware Wallet |
| 174 | +Interface (HWI)][hwi repo], [Rust Bitcoin][rust bitcoin repo], [BTCPay |
| 175 | +Server][btcpay server repo], [BDK][bdk repo], [Bitcoin Improvement |
| 176 | +Proposals (BIPs)][bips repo], [Lightning BOLTs][bolts repo] a |
| 177 | +[Bitcoin Inquisition][bitcoin inquisition repo].* |
| 178 | + |
| 179 | +- [Bitcoin Core #26094][] přidává do volání `getbalances`, `gettransaction`a |
| 180 | + `getwalletinfo` hash a výšku bloku. Tato volání zamykají chainstate, |
| 181 | + aby garantovala aktuální stav, začlenění validního hashe a výšky bloku |
| 182 | + do odpovědi je pro ně tedy výhodné. |
| 183 | + |
| 184 | +- [Bitcoin Core #27195][] umožňuje odstranit všechny externí příjemce |
| 185 | + transakce, která je [nahrazována][topic rbf] pomocí volání `bumpfee` |
| 186 | + z interní peněženky Bitcoin Core. Uživatel tak učiní tím, že jediný |
| 187 | + výstup nahrazující transakce platí na jeho vlastní adresu. Po potvrzení |
| 188 | + nahrazující transakce nemůže dojít k zaplacení původním příjemcům. |
| 189 | + Této technice se někdy říká „zrušení” bitcoinové platby. |
| 190 | + |
| 191 | +- [Eclair #1783][] přidává API `cpfpbumpfees` pro navýšení poplatku |
| 192 | + jedné nebo více transakcí pomocí [CPFP][topic cpfp]. PR také aktualizuje |
| 193 | + seznam [doporučených parametrů][eclair bitcoin.conf] pro provoz |
| 194 | + Bitcoin Core tak, aby navyšování poplatků bylo možné. |
| 195 | + |
| 196 | +- [LND #7568][] přidává možnost definovat během startu dodatečné feature |
| 197 | + bity. Dále odstraňuje možnost deaktivovat jakékoliv pevně zakódované |
| 198 | + nebo definované feature bity během provozu (ale dodatečné bity |
| 199 | + mohou být přidány a později odstraněny). Navázaný návrh v [BLIPs #24][] |
| 200 | + poznamenává, že uživatelské [BOLT11][] feature bity jsou omezeny |
| 201 | + na maximální hodnotu 5114. |
| 202 | + |
| 203 | +- [LDK #2044][] přináší několik změn v doporučeních tras v rámci |
| 204 | + [BOLT11][] faktur, tedy mechanismu, kterého může příjemce využít |
| 205 | + k návrhu tras, které může odesílatel použít. V rámci této změny |
| 206 | + jsou pro doporučení použity pouze první tři kanály (z důvodu efektivity |
| 207 | + a soukromí) a je vylepšena podpora phantom uzlů (viz [zpravodaj č. |
| 208 | + 188][news188 phantom], *angl.*). Diskuze pod PR obsahuje [několik][carman |
| 209 | + hints] užitečných [komentářů][corallo hints] o dopadech používání |
| 210 | + doporučených tras na soukromí. |
| 211 | + |
| 212 | +## Oslavujeme zpravodaj číslo 250 |
| 213 | + |
| 214 | +Bitcoin Optech byl zčásti založen, aby „pomohl vylepšit vztahy mezi |
| 215 | +byznysem a open source komunitou.” Tento týdenní zpravodaj byl vytvořen, |
| 216 | +aby poskytl vedení a vývojářům v bitcoinových firmách přehled o |
| 217 | +výsledcích snah open source komunity. Proto jsme se v počátcích |
| 218 | +soustředili na dokumentování činnosti, která může mít vliv na byznys. |
| 219 | + |
| 220 | +Brzy jsme zjistili, že o tyto informace měli zájem nejen čtenáři |
| 221 | +z řad byznysu. Mnoho přispěvatelů do bitcoinových projektů nemělo čas |
| 222 | +na čtení všech diskuzí v emailových skupinách nebo na monitorování |
| 223 | +významných změn jiných projektů. Rádi by, kdyby je někdo informoval |
| 224 | +o změnách, které by je mohli zajímat či mít dopad na jejich práci. |
| 225 | + |
| 226 | +Je nám potěšením již téměř pět let poskytovat tuto službu. Snažíme se |
| 227 | +tuto jednoduchou misi rozšiřovat a proto také poskytujeme průvodce |
| 228 | +[kompatibilitou peněženek][compatibility matrix], rejstřík více než |
| 229 | +100 [témat][topics] a týdenní diskuzní [podcast][podcast] s hosty, |
| 230 | +mezi kterými nechyběli mnozí z těch, o kterých máme tu čest psát. |
| 231 | + |
| 232 | +Nic z toho by nebylo možné bez našich přispěvatelů, mezi kterými byli |
| 233 | +za poslední rok: |
| 234 | +<!-- alphabetical --> |
| 235 | +Adam Jonas, |
| 236 | +Copinmalin, |
| 237 | +David A. Harding, |
| 238 | +Gloria Zhao, |
| 239 | +Jiri Jakes, |
| 240 | +Jon Atack, |
| 241 | +Larry Ruane, |
| 242 | +Mark „Murch” Erhardt, |
| 243 | +Mike Schmidt, |
| 244 | +nechteme, |
| 245 | +Patrick Schwegler, |
| 246 | +Shashwat Vangani, |
| 247 | +Shigeyuki Azuchi, |
| 248 | +Vojtěch Strnad, |
| 249 | +Zhiwei „Jeffrey” Hu |
| 250 | +a několik dalších, kteří přispěli k jednotlivým tématům. |
| 251 | + |
| 252 | +Též zůstáváme navždy vděčni našim [zakládajícím sponzorům][founding |
| 253 | +sponsors] Wencesovi Casaserovi, Johnovi Pfefferovi, Alexovi Morcosovi |
| 254 | +a mnoha těm, kteří [přispěli finančně][financial supporters]. |
| 255 | + |
| 256 | +Děkujeme vám za čtení. Doufáme, že v tom budete během následujících 250 |
| 257 | +zpravodajů pokračovat. |
| 258 | + |
| 259 | +{% include references.md %} |
| 260 | +{% include linkers/issues.md v=2 issues="26094,27195,1783,7568,24,2044" %} |
| 261 | +[Core Lightning 23.05rc2]: https://github.com/ElementsProject/lightning/releases/tag/v23.05rc2 |
| 262 | +[bitcoin core 24.1rc2]: https://bitcoincore.org/bin/bitcoin-core-24.1/ |
| 263 | +[bitcoin core 25.0rc1]: https://bitcoincore.org/bin/bitcoin-core-25.0/ |
| 264 | +[eclair bitcoin.conf]: https://github.com/ACINQ/eclair/pull/1783/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5 |
| 265 | +[carman hints]: https://github.com/lightningdevkit/rust-lightning/pull/2044#issuecomment-1448840896 |
| 266 | +[corallo hints]: https://github.com/lightningdevkit/rust-lightning/pull/2044#issuecomment-1461049958 |
| 267 | +[hartman powswap]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-May/021605.html |
| 268 | +[hnr powswap]: https://raw.githubusercontent.com/blockrate-binaries/paper/master/blockrate-binaries-paper.pdf |
| 269 | +[powswap]: https://powswap.com/ |
| 270 | +[news188 phantom]: /en/newsletters/2022/02/23/#ldk-1199 |
| 271 | +[founding sponsors]: /about/#founding-sponsors |
| 272 | +[financial supporters]: /#members |
| 273 | +[review club 27501]: https://bitcoincore.reviews/27501 |
| 274 | +[prioritisetransaction rpc]: https://developer.bitcoin.org/reference/rpc/prioritisetransaction.html |
| 275 | +[mapDeltas]: https://github.com/bitcoin/bitcoin/blob/fc06881f13495154c888a64a38c7d538baf00435/src/txmempool.h#L450 |
0 commit comments