Dnes si připomínáme oficiální vydání Bitcoin Core 0.16.0, 16. generace původního softwarového klienta Bitcoinu, kterou spustil Satoshi Nakamoto před něco před devíti lety. Pod dohledem vedoucího bitcoinového jádra Wladimira van der Laana toto nejnovější hlavní vydání vyvinulo přibližně 100 přispěvatelů po dobu pěti měsíců.
Jak je u nových verzí obvyklé, bitcoinové jádro 0.16.0 obsahuje vylepšení výkonu, opravy chyb a další optimalizace. Toto vydání zejména obsahuje několik přidaných funkcí v rozhraní peněženky. Bitcoinové jádro 0.16.0 především umožňuje uživatelům peněženek plně k dispozici Segregated Witness (SegWit), na co se zaměřila většina úsilí, a proto je toto vydání někdy označováno jako „SegWit special“.
Zde je přehled některých z nejvýznamnějších změn.
Segregated Witness in the Wallet Interface
Segregated Witness byl samozřejmě hlavním upgradem bitcoinového protokolu v roce 2017, ne-li vůbec největším upgradem protokolu vůbec. Zavedla zcela novou strukturu dat bloku pro upgradované uzly – zatímco neinovované uzly mohly i nadále fungovat jako obvykle. Mezi další výhody SegWit nahradil limit velikosti bloku bitcoinu limitem „váhy“ bloku, což umožnilo bloky s až 4 megabajty transakčních dat, a proto zvýšilo kapacitu transakcí v síti.
Samotný nástroj Segregated Witness byl poprvé představen v bitcoinovém jádru 0.13.1, vydaném v říjnu 2016. Upgrade byl aktivován v srpnu 2017. Bitcoin Core 0.16.0 je však první verzí bitcoinového jádra, která uživatelům peněženky umožňuje generovat adresy SegWit pro příjem plateb. To znamená, že když jsou prostředky přijaté na těchto adresách utraceny v platbě později, uživatelé peněženky Bitcoin Core využijí přidaný blokový prostor, který nabízí SegWit. Všichni ostatní by si měli být rovni, tito uživatelé by měli být schopni platit nižší poplatky ve srovnání s transakcemi jinými než SegWit.
Bitcoin Core není první peněženka, která uživatelům umožňuje Segregated Witness; několik dalších peněženek již tuto funkci představilo za posledních šest měsíců. Vzhledem k tomu, že vývojový tým Bitcoin Core napsal a navrhl upgrade, bylo pozoruhodné, že tato funkce nebyla pro uživatele peněženky Bitcoin Core k dispozici – až dosud.
Bech32: Nový formát adresy bitcoinu
Spolu se zavedením SegWit v peněžence Bitcoin Core je nový formát adresy známý jako „bech32“. Tento formát adresy, který vyvinuli bývalý technický ředitel Blockstream Gregory Maxwell a vývojář Blockstream Dr. Pieter Wuille, je rozpoznatelný, protože začíná řetězcem „bc1“ namísto 1 nebo 3, které adresy bitcoinů obvykle začínají. Ještě důležitější je, že adresy bech32 používají méně znaků než aktuální formát adresy, protože již není rozdíl mezi malými a velkými písmeny. To snižuje možnost lidských chyb (například když je adresa nahlas přečtena). Adresy Bech32 jsou také navrženy tak, aby omezovaly jiné typy chyb, jako jsou tyto způsobené překlepy.
Bech32 navíc nabízí výhody v kontextu podpory peněženky SegWit. Zatím většina peněženek, které nabízejí SegWit, tak činí „zabalením“ do P2SH výstupů (s adresami začínajícími na 3). Aby uživatelé mohli utratit coiny z takové adresy, musí odhalit část kódu – „skript pro uplatnění“ – aby ukázali, že coiny byly skutečně uzamčeny ve výstupu SegWit. S novými adresami bech32 lze tento krok přeskočit, což znamená, že výdaje z adresy SegWit budou vyžadovat o něco méně dat, které se budou přenášet přes bitcoinovou síť a zahrnout do blockchainu.
Jelikož ne všechny bitcoinové peněženky zatím podporují adresy bech32, uživatelé bitcoinového jádra 0.16.0 si budou moci vybrat, zda chtějí vygenerovat přijímací adresu bech32 pro platby nebo adresu P2SH, přičemž P2SH je prozatím stále výchozí. Peněženka Bitcoin Core samozřejmě podporuje odesílání transakcí na jakýkoli typ adresy bitcoinu.
Replace-by-Fee jako výchozí možnost odesílání
Vzhledem k tomu, že se bitcoinové bloky za posledních pár let zaplňovaly, ne všechny transakce v síti se vešly do prvního dostupného bloku, který se těží. Místo toho těžaři obvykle upřednostňují transakce, které zahrnují nejvíce poplatků. Pokud si uživatelé chtějí nechat své transakce rychle potvrdit, měli by zahrnout dostatečně vysoký poplatek. U méně urgentních transakcí by měl stačit nižší poplatek. Mnoho peněženek obsahuje algoritmy pro odhad poplatků, které umožňují vypočítat, na jaké úrovni poplatku bude transakce potvrzena v různých časových rámcích.
Síť bitcoinů se však zabývá inherentní nepředvídatelností, pokud jde o rychlost, jakou jsou bloky nalezeny, a počet transakcí, které jsou přenášeny kdykoli. To může ztěžovat zahrnutí správného poplatku za transakci, což znamená, že uživatelé možná budou muset čekat na potvrzení déle, než si přáli.
Od verze Bitcoin Core 0.15.0 mohou uživatelé peněženky přidat ke svým transakcím značku „nahradit za poplatek“. S takovou značkou uzly a těžaři v síti vědí, že odesílatel může chtít tuto transakci nahradit novější transakcí, která zahrnuje vyšší poplatek. To účinně umožňuje uživatelům peněženky Bitcoin Core snadno hromadit své transakce v souladu, aby to bylo potvrzeno rychleji.
Díky bitcoinovému jádru 0.16.0 je poprvé možnost výměny za poplatek výchozí možnost odesílání. Uživatelé se stále mohou odhlásit z přidání značky nahrazení poplatkem do svých transakcí odškrtnutím políčka, ale jejich transakce budou vyměnitelné, pokud to neodškrtnou. To by mělo uživatelům zabránit v tom, aby se nevědomky zbavili svých možností a všimli si, až když je příliš pozdě, že mohli snadno narazit na své transakce.
Další podrobnosti o novinkách v bitcoinovém jádru 0.16.0 najdete na Poznámky k vydání. Bitcoin Core 0.16.0 si můžete stáhnout z bitcoincore.org.