Bitcoin Core 25.0
Bitcoin Core 25.0, vydaný v květnu 2023, přinesl několik významných vylepšení zaměřených na bezpečnost, výkon a uživatelskou přívětivost. Níže naleznete přehled klíčových novinek:
🔐 Síťová bezpečnost a odolnost
- Povolení transakcí s velikostí 65 bajtů a více: Mempool a relay policy nyní umožňují transakce s non-witness velikostí 65 bajtů a více. Toto vylepšení poskytuje lepší ochranu proti zranitelnosti CVE-2017-12842 a umožňuje nové případy použití pro menší transakce. (TronWeekly)
⚙️ Výkon a uživatelská přívětivost
- Nový RPC příkaz
scanblocks
: Tento příkaz umožňuje rychlé přeskakování peněženky pomocí skenování všech blokových filtrů v daném rozsahu. Lze jej použít ve spojení s příkazygetblockheader
arescanblockchain
pro efektivní obnovení peněženky. (bitcoin.org) - Aktualizace RPC rozhraní:
- Všechny JSON-RPC metody nyní přijímají nový pojmenovaný parametr
args
, který umožňuje předávat hodnoty pozičních parametrů pohodlněji. - Příkaz
verifychain
nyní vracífalse
, pokud nelze dokončit kontroly na požadované hloubce a úrovni, což poskytuje přesnější zpětnou vazbu. (Bitcoin Magazine, TronWeekly)
- Všechny JSON-RPC metody nyní přijímají nový pojmenovaný parametr
- Možnost
shutdownnotify
: Uživatelé mohou nyní specifikovat příkaz, který se provede před zahájením vypínací sekvence Bitcoin Core, což umožňuje lepší správu uzlu.
🧰 Vylepšení peněženky
- Nové možnosti pro RPC příkazy peněženky: Přidány možnosti
minconf
amaxconf
pro různé RPC příkazy, což poskytuje větší kontrolu nad potvrzeními UTXO. (Bitcoin Magazine) - Podpora nulových znaků v heslech peněženky: Hesla peněženky nyní mohou obsahovat nulové znaky, což zvyšuje flexibilitu při zabezpečení. (TronWeekly)
- Omezení řetězce účelu adresy: Řetězec účelu adresy je nyní omezen na hodnoty „send“, „receive“ a „refund“, což zjednodušuje správu adres. (TronWeekly)
🖥️ Uživatelské rozhraní (GUI)
- Trvalé maskování hodnot: Možnost „Mask values“ je nyní trvalá a ovlivňuje jak přehled, tak zobrazení transakcí, což zvyšuje soukromí uživatelů. (TronWeekly)
Pro podrobnější informace a stažení nové verze navštivte oficiální stránku vydání: (bitcoin.org).
Přehled: bitcoin_core

Zranitelnost CVE-2017-12842 je bezpečnostní slabina v Bitcoin Core a dalších klientech založených na Bitcoin protokolu, která se týká nesprávného zpracování transakcí s velmi malou velikostí (konkrétně pod 65 bajtů).
🧨 Popis zranitelnosti
- Typ: DoS (Denial-of-Service) zranitelnost
- Zjištěno: v roce 2017, oznámeno jako CVE-2017-12842
- Dotčené verze: Bitcoin Core < 0.15.1 a další deriváty (např. Litecoin, Dash, atd.)
📌 Co se děje:
Bitcoin Core měl chybné předpoklady o minimální velikosti platné transakce:
- Mempool (zásobník nepotvrzených transakcí) odmítal velmi malé transakce (např. < 65 bajtů), protože se domníval, že nemohou být validní.
- Pokud ovšem blok obsahoval takovou malou, ale platnou transakci, uzly, které ji odmítly, blok považovaly za neplatný a odpojily se od sítě.
- Tím mohl útočník vyvolat rozdvojení sítě (chain split) nebo DoS útok na uzly používající daný klient.
🔐 Oprava a prevence
- Opraveno ve verzi Bitcoin Core 0.15.1.
- Pozdější verze (včetně 25.0) upravily politiku mempoolu tak, aby nevalidní velikosti odpovídaly validnímu konsenzu, tzn. pokud je transakce konsenzuálně platná, bude také přijata mempoolem.
🛡️ Důležitost
- CVE-2017-12842 je ukázkový příklad nesouladu mezi pravidly mempoolu a konsenzuálními pravidly, což může vést k síťové fragmentaci.
- I když nedochází ke ztrátě prostředků, útočník by mohl způsobit závažné problémy s dostupností sítě.
Skvěle! Níže ti nabídnu obě části:
🧪 1. Příklad minimální platné transakce (≈ 60–65 bajtů)
Transakce v Bitcoinu má několik základních částí: verzi, vstupy, výstupy a locktime. Tyto části se dají sestavit tak, aby transakce byla extrémně malá, ale stále platná.
Příklad hexadecimálního zápisu velmi krátké, ale platné transakce:
01000000 # verze
01 # počet vstupů
0000000000000000000000000000000000000000000000000000000000000000ffffffff # coinbase prev txid
ffffffff # index (coinbase: 0xffffffff)
00 # scriptSig length
ffffffff # sequence
01 # počet výstupů
00f2052a01000000 # hodnota (např. 0.1 BTC)
00 # scriptPubKey délka
00000000 # locktime
Tato transakce:
- Je coinbase transakce (má právo být menší a nevyžaduje podpisy),
- Nepoužívá žádný skript,
- Je na hranici 60–65 bajtů (v závislosti na konkrétním scriptu).
Poznámka: V běžné síti by musela být začleněna těžařem do bloku (jinak by byla mempoolem odmítnuta, právě kvůli této velikostní politice, která byla dříve chybná).
🔍 2. Jak funguje validace transakcí v Bitcoin Core
Bitcoin Core používá dva odlišné přístupy:
a) Politika mempoolu
- Cílem je efektivita a ochrana proti DoS.
- Uživatelé a uzly mohou mít vlastní pravidla (např. minimální poplatek, velikost transakce, maximální počet vstupů…).
- Např. v minulosti pravidlo: Transakce < 65 bajtů = odmítnout.
b) Konsenzuální pravidla
- Přísně definovaná pravidla, která musí dodržet všechny plné uzly.
- Např. platná struktura transakce, signatury, velikosti bloků, atd.
- Platnost bloku ověřuje transakce podle těchto pravidel – pokud uzel zjistí, že transakce v bloku je platná podle konsenzu, musí ji akceptovat.
🛑 Rozpor mezi politikou mempoolu a konsenzuálními pravidly vedl k chybě CVE-2017-12842: uzel odmítl malou transakci do mempoolu, ale později odmítl celý blok, který ji obsahoval, přestože byl konsenzuálně validní.