Dnes je oficiální vydání Bitcoinové jádro 0.20.0, 20. hlavní vydání původního softwarového klienta bitcoinu, které Satoshi Nakamoto uvedl před více než 11 lety.

Dohlíží Bitcoinové jádro vedoucí údržby Wladimir van der Laan, toto poslední hlavní vydání vyvinulo více než 100 přispěvatelů v rozpětí přibližně šesti měsíců. Výsledek více než 500 sloučených požadavků na vytažení, Bitcoin Core 0.20.0 většinou vyčistí a zpevní kódovou základnu Bitcoin Core, zdokonalí integraci hardwarové peněženky, zlepší spolehlivost sítě a obsahuje několik dalších vylepšení.

Zde jsou některé z nejvýznamnějších změn.

Další integrace hardwarové peněženky v grafickém uživatelském rozhraní

Bitcoin Core je kompatibilní s hardwarovými peněženkami od verze 0.18.0. Uživatelé však zatím nemohou provádět transakce s hardwarovou peněženkou z grafického uživatelského rozhraní (GUI) Bitcoin Core; místo toho k tomu musí použít rozhraní příkazového řádku (CLI).

Bitcoin Core 0.20.0 dělá krok směrem k integraci hardwarové peněženky do grafického uživatelského rozhraní. Uživatelé nyní mohou vytvořit transakci bez podpisu v grafickém uživatelském rozhraní Bitcoin Core pomocí formátu částečně podepsané bitcoinové transakce (PSBT) a zkopírovat ji do své schránky. Po zkopírování mohou transakci přenést do své hardwarové peněženky, aby ji podepsali – tento přenos však ještě není automatizovaný a vysílání transakce stále vyžaduje použití rozhraní příkazového řádku.

Budoucí vydání bitcoinového jádra budou i nadále podporovat integraci hardwarové peněženky.

Asmap pro spolehlivější síťové připojení

Bitcoinové jádro se připojuje k několika vrstevníkům (dalším bitcoinovým uzlům) v bitcoinové síti. Bitcoin Core mapuje další uzly na základě jejich IP adres se záměrem navázat spojení s kolegy z různých regionů a poskytovateli internetových služeb (ISP). Pokud uzel přijímá bloky a transakce od vrstevníků z celého světa, snižuje se riziko zadržení určitých dat (například konkrétní transakce).

Bitcoinové jádro aktuálně mapuje IP adresy podle Skupiny provozovatelů sítě. Několik z těchto skupin je však ve skutečnosti součástí stejné skupiny Autonomní systém (AS): klastry skupin provozovatelů sítě, které sdílejí klíčové internetové trasy, a proto potenciálně sdílejí stejná úzká místa směrování, kde by mohla být data potenciálně filtrována.

Bitcoin Core 0.20.0 obsahuje novou možnost konfigurace s názvem Asmap, která mapuje adresy IP podle čísel autonomních systémů (ASN). Tím je zajištěno, že se uzel spojí s vrstevníky z řady různých AS, čímž se sníží potenciální úzká místa v síti, čímž se dále omezí riziko zadržení konkrétních dat. (Mapování IP adres do skupin operátorů sítě však zatím zůstává výchozí konfigurací.)

Odebrání zpráv o odmítnutí BIP61

Odmítnout zprávy (BIP61) jsou oznámení, že uzel se vrací, když je transakce přijatá od partnera odmítnuta, a proč. (Možná proto, že transakce je neplatná, možná proto, že nezahrnuje dostatečný poplatek, je možná další důvod odmítnutí.)

Vývojáři bitcoinového jádra však nepovažují zprávy o odmítnutí za velmi užitečné. A co je nejdůležitější, nemělo by se předpokládat, že kolegové spolehlivě vrátí zprávu o odmítnutí. Jinými slovy, pokud uzel neobdrží zprávu o odmítnutí, nemusí to nutně znamenat, že transakce byla přijata. To omezuje užitečnost zpráv, zatímco existují lepší řešení pro kontrolu platnosti transakce a zahrnuje dostatečné poplatky. Zprávy mezitím dělaly protokol peer-to-peer složitějším a zabíraly šířku pásma.

Zprávy BIP61 Reject Messages proto již byly ve výchozím nastavení v Bitcoin Core 0.18.0 deaktivovány. Bitcoin 0.20.0 nyní tuto funkci zcela odstranil.

Odebrání platebního protokolu BIP70 (a OpenSSL)

Platební protokol (BIP 70) byl navržen před několika lety, aby zlepšil platební zkušenost bitcoinu. Uživatel a obchodník by mohli sdělit další podrobnosti o platbě, například cílovou adresu čitelnou člověkem (jméno obchodníka) a adresu pro vrácení peněz v případě, že se při nákupu něco pokazilo.

Zatímco bitcoinové jádro integrovalo platební protokol, standard nebyl nikdy široce přijat. Místo toho většina peněženek stále používá základní schéma URI (BIP21): Klikatelný odkaz nebo skenovatelný formát QR kódu, který například komunikuje platební adresu a částku.

Možná důležitější než nedostatečné přijetí byl platební protokol BIP70, který utrpěl řada chyb zabezpečení a soukromí v průběhu let. Zejména jeho závislost na softwarové knihovně OpenSSL pro kryptografické funkce vyžadovala řadu krátkodobých nouzových upgradů. Některé bitcoinové peněženky z těchto důvodů mají, zamítnuto implementace BIP70 úplně.

Bitcoin Core 0.19.0 odstranil Platební protokol z grafického uživatelského rozhraní, uživatelé však mohli svůj uzel zkompilovat pomocí speciální konfigurace, aby tuto funkci využili. Bitcoin Core 0.20.0 nyní zcela odstranil Platební protokol.

Když byl BIP70 pryč (a některé další softwarové vylepšení k odstranění závislosti), bitcoinové jádro také dokázalo úplně odstranit OpenSSL ze své kódové sady.

Dumptxoutset jako první krok k Assumeutxo pro rychlé bootstrapping

Nové vzdálené volání procedury (RPC) umožňuje Bitcoin Core 0.20.0 generovat snímek sady UTXO, který odráží stav vlastnictví bitcoinů zaznamenaný na blockchainu v konkrétním časovém okamžiku (výška bloku). Tento snímek lze sdílet.

Budoucí vydání bitcoinového jádra budou sdílet takový snímek, když se kolegové poprvé připojí k síti. To umožňuje novým uzlům okamžitě zahájit účast na síti od okamžiku, kdy byl snímek vytvořen, zatímco celá historie blockchainu je kontrolována na pozadí. (Stejně jako Assumevalid, podobná zkratka, i Assumeutxo přichází s důvěryhodnými kompromisy před kontrolou celého blockchainu a do té doby by měl být používán s ohledem na tyto kompromisy.)

Rozsáhlejší seznam upgradů najdete také v Poznámky k verzi Bitcoin Core 0.20.0.

Děkujeme společnosti Sjors Provoost za informace a zpětnou vazbu.