Dnes je oficiální vydání Bitcoinové jádro 0.17.0, 17. generace původního softwarového klienta bitcoinů, kterou zahájil Satoshi Nakamoto před téměř 10 lety, a stále dominantní implementace bitcoinů v dnešní síti. Dohlíží Bitcoinové jádro vedoucí údržby Wladimir van der Laan, toto poslední hlavní vydání vyvinulo přibližně 135 přispěvatelů po dobu přibližně sedmi měsíců.

Výsledek více než 700 sloučených požadavků na vytažení zahrnuje Bitcoin Core 0.17.0 řadu vylepšení výkonu a oprav chyb, jakož i další změny.

Zde je přehled některých z těchto změn.

Vylepšený výběr mincí

Mince v peněžence jsou efektivně ukládány jako samostatné bloky („transakční výstupy“). Za každou přijatou platbu je obvykle jeden blok; proto většina kusů představuje různé částky. Když je platba provedena z peněženky, přidají se různé bloky, aby se vytvořila částka, která je dostatečně velká na provedení platby, plus poplatek. Různé bloky často nepřesahují potřebnou přesnou částku, v takovém případě se však do transakce přidá „adresa změny“, která odešle zbývající prostředky zpět do stejné peněženky.

Až dosud peněženka Bitcoin Core přidávala dohromady různé kousky. Teprve potom vypočítá a přičte poplatek požadovaný k úhradě transakce. V některých případech však přidání poplatku k transakci znamenalo, že přidané bloky již nevytvářely dostatečně velkou částku, v takovém případě musel být zahrnut další blok.

Bitcoin Core 0.17.0 zavádí algoritmus „Branch and Bound“ navržený uživatelem BitGo inženýr Mark Erhardt. To nabízí dvě konkrétní vylepšení. Nejprve se poplatek za každý blok vypočítá před tím, než se vybere jako součást transakce, aby se zabránilo tomu, že bude nutné přidat nové bloky později. Zadruhé, algoritmus se pokouší porovnat různé bloky, takže přidávají přesnou částku, která je potřebná, a vyhýbá se nutnosti „změnit adresy“ (kam se odešle „změna“ zbytku), kde je to možné. (Velké peněženky se spoustou kusů, jako jsou ty, které provozují burzy nebo jiné subjekty s vysokým provozem, méně pravděpodobně potřebují změnit adresy než jiné peněženky.)

Algoritmus výběru mincí v Bitcoin Core 0.17.0 navíc obsahuje volitelné vylepšení ochrany osobních údajů.

I když je to proti osvědčeným postupům, je možné přijímat více plateb na stejnou bitcoinovou adresu. (To se například často stává u darovacích adres.) Opakované použití adres je samo o sobě špatné pro soukromí, protože je zřejmé, že všechny mince na této adrese a všechny platby provedené z této adresy pocházejí od stejného uživatele. Ale je to ještě horší, když se různé bloky vázané na stejnou adresu používají v různých transakcích a spojují je s bloky, které původně nebyly spojeny s touto adresou.

Chcete-li vyřešit tento poslední problém, Bitcoin Core 0.17.0 dává uživatelům možnost upřednostnit přidávání bloků vázaných na stejnou adresu společně v transakci a ponechat jakékoli další bloky mimo transakci, kde je to možné.

Snadno vytvářejte a používejte nové peněženky

Od bitcoinového jádra 0.15.0 je možné vytvořit několik peněženek, které fungují nezávisle na sobě. Všechny tyto peněženky mají své vlastní samostatné bitcoinové adresy, soukromé klíče a tedy i finanční prostředky. Uživatelé mohou různé peněženky využívat k různým účelům; například jednu peněženku lze použít pro osobní každodenní nákupy, další pro obchodní transakce a třetí pouze pro obchodování. Díky tomu může být účetnictví jednodušší a pohodlnější a uživatelé mohou snadněji těžit ze zvýšeného soukromí, protože různé peněženky nelze vzájemně propojit analýzou blockchainu.

Až dosud však bylo možné vytvářet nové peněženky pouze při spuštění uzlu a pro uživatele peněženky Bitcoin Core (GUI) to nebylo k dispozici. Obě tato omezení jsou nyní vyřešena. Bitcoin Core 0.17.0 umožňuje uživatelům vytvářet nové peněženky, kdykoli chtějí, a nabízí tuto funkci v grafickém uživatelském rozhraní.

Jako další výhodu představuje Bitcoin Core 0.17.0 funkci nazvanou „Scantxoutset“. To umožňuje uživatelům rychle ověřit, zda jejich nová peněženka již obsahuje coiny (například proto, že soukromé klíče jsou importovány z jiné peněženky), a to kontrolou sady nevyčerpaných transakcí (UTXO), namísto opětovného skenování celé historie transakcí..

Upgrade peněženky z jiného formátu než na HD

Zatímco verze bitcoinového jádra starší než 0.13.0 stále vyžadovaly, aby si uživatelé zálohovali všechny své soukromé klíče, všechny verze bitcoinového jádra od té doby místo toho nabízejí hierarchické deterministické (HD) peněženky. Uživatelům peněženky HD stačí uložit jednu počáteční frázi (seznam slov) jako zálohu.

Uživatelé Bitcoin Core však, kteří upgradováno jejich systém na Bitcoin Core 0.13.0 a novější nebyli schopni vytvořit nové HD peněženky. Nekompatibilita mezi peněženkami jinými než HD a peněženkami HD znamenala, že tito uživatelé stále uvízli zálohováním všech svých soukromých klíčů.

Bitcoin Core 0.17.0 nyní umožňuje těmto uživatelům upgradovat také na formát HD. Uživatelé peněženky Bitcoin Core, kteří již HD peněženky měli, se nyní mohou rozhodnout vygenerovat nebo importovat nové HD seed.

Sledovat pouze – pouze peněženky

Bitcoinové peněženky obvykle ukládají soukromé klíče, které uživatelům umožňují utrácet své coiny. Bitcoin Core však již nějakou dobu podporuje také adresy „Watch Only“. Soukromé klíče k těmto adresám nejsou uloženy v peněžence, ale mince připojené k těmto adresám jsou v peněžence stále viditelné. Uživatelé tak mohou snadno přijímat platby a sledovat své prostředky, například když si ukládají své soukromé klíče offline.

Bitcoin Core 0.17.0 posouvá tento koncept o krok dále a umožňuje uživatelům vytvářet konkrétní peněženky Watch Only, ve kterých je každá adresa adresou Watch Only. Jako konkrétní příklad to usnadní používání bitcoinového jádra ke sledování finančních prostředků v hardwarové peněžence nebo na papírové peněžence ve formě HD seed.

Částečně podepsané bitcoinové transakce

Zatímco mnoho transakcí je přímých – jeden uživatel platí druhému – bitcoin umožňuje i složitější typy transakcí. Patří mezi ně například multisignature (multisig) transakce, kde se několik uživatelů musí odhlásit při odesílání prostředků, nebo transakce CoinJoin zvyšující soukromí, kde různí uživatelé spojují své nezávislé transakce do jedné velké transakce.

Pro lepší usnadnění těchto typů transakcí zavádí Bitcoin Core 0.17.0 BIP 174 Rámec částečně podepsaných bitcoinových transakcí (PSBT), který navrhl Andrew Chow. Tento rámec umožňuje uživatelům Bitcoin Core podepsat transakci částečně, ale také přidává metadata k takové částečně podepsané transakci. Tato metadata může k dokončení transakce použít někdo jiný.

PSBT bude obzvláště užitečné, pokud je standard přijat jinými peněženkami. Jako jeden případ možného použití by to mohlo například umožnit uživateli chránit své prostředky tím, že je zamkne na multisig účet, ve kterém by transakce vyžadovala podpis vytvořený z peněženky Bitcoin Core, stejně jako podpis z hardwarové peněženky. Nebo by to mohlo umožnit uživatelům Bitcoin Core účastnit se schémat CoinJoin s (jinými) uživateli peněženky zachovávajícími soukromí.

Funkce pro částečně podepsanou transakci je zatím pouze pro uživatele, kteří obsluhují bitcoinové jádro z příkazového řádku nebo prostřednictvím připojených aplikací.

Prořezávání z uživatelského rozhraní

Bitcoinový blockchain, který ukládá všechny bitcoinové transakce (on-chain), k nimž kdy došlo, má v současné době více než 180 gigabajtů a každý den roste. Noví uživatelé bitcoinového jádra si musí všechna tato data stáhnout a ověřit.

Díky triku nazvanému „prořezávání blockchainu“ však tito uživatelé nemusí nutně ukládat všechna tato data. V režimu prořezávání uzly automaticky zapomenou na starší údaje o transakcích a ponechají si pouze to, co je nezbytné pro bezpečný provoz. Až dosud bylo možné režim prořezávání aktivovat pouze prostřednictvím příkazového řádku.

Poprvé nabízí Bitcoin Core 0.17.0 pohodlné přepínání grafického uživatelského rozhraní umožňující prořezávání z peněženky, čímž je přístupnější pro příležitostné, netechnické uživatele bitcoinů, kteří chtějí provozovat celý uzel pro optimální zabezpečení.

Další podrobnosti o novinkách v této nejnovější verzi Bitcoin Core najdete na Poznámky k verzi Bitcoin Core 0.17.0 nebo sledovat Chaincode Labs inženýr a přispěvatel bitcoinového jádra John Newberry’s prezentace na London Bitcoin Devs Meetup.