Naast de al bekende crash kon een miner met CVE-2018-17144 in versies 0.15.X tot en met 0.16.2 de bitcoinvoorraad opblazen door binnen één transactie twee keer dezelfde output te besteden. Ontwikkelaars hielden dat deel achter om systemen tijd te geven over te stappen op 0.16.3 of 0.17.0rc4. Vermoedelijk is meer dan de helft van de hashrate gepatcht, er zijn geen aanvalspogingen bekend, en getroffen gebruikers krijgen het dringende advies te upgraden.
Door CVE-2018-17144 crasht Bitcoin Core 0.14.0 tot en met 0.16.2 op een blok met een transactie die dezelfde input twee keer besteedt; gebruikers moeten meteen upgraden naar 0.16.3. Alleen een miner die minstens 12,5 BTC aan toegestane inkomsten wil laten schieten, kan zo'n blok maken.
De RPC verifytxoutproof in Bitcoin Core 0.16.2 is niet langer vatbaar voor een dure aanval op SPV-bewijzen die begin juni bekend werd, al blijven echte SPV-clients kwetsbaar. Een aparte fix zorgt dat abandontransaction alle afstammelingen van een transactie laat vallen in plaats van te stoppen bij de kinderen.
OP_CODESEPARATOR in legacy signature scripts wordt door Bitcoin Core 0.16.1 niet meer doorgegeven, een beleidswijziging die het makkelijker maakt om later fixes voor traag te valideren blokken door te voeren. Miners raken de optie -blockmaxsize kwijt ten gunste van -blockmaxweight en krijgen een fix voor een bug die hun inkomsten kon kosten als ze twee blokken vlak na elkaar produceerden.
Segwit wordt de standaard in de wallet van Bitcoin Core 0.16.0: nieuwe adressen zijn p2sh-segwit tenzij -addresstype iets anders zegt, en native bc1-adressen volgens BIP173 kunnen worden aangemaakt en betaald. Nieuwe wallets zijn uitsluitend HD en oudere versies weigeren ze, terwijl het verzendscherm in de GUI BIP125 RBF nu standaard aanzet.
Uit voorzorg tegen toekomstige netwerkforks verbreekt Bitcoin Core 0.15.1 tijdens de eerste synchronisatie de verbinding met peers die een keten onder de minimum-chain-work aanbieden, en ook met uitgaande peers die bekende ongeldige headers leveren. Staat de tip 30 minuten stil, dan volgt een extra uitgaande verbinding. Miners kunnen blockmaxsize niet meer rechtstreeks gebruiken: de optie is uitgefaseerd en impliceert alleen nog een gewichtslimiet.
Een crash van de GUI bij het opstarten was de aanleiding voor Bitcoin Core 0.15.0.1: sommige clients die naar 0.15.0 upgradeden, struikelden over een aangepaste fee-instelling die de interface niet meer aanbiedt. Een minimale patch, #11332, vangt de ongeldige waarde af.
Feeschattingen kijken in Bitcoin Core 0.15.0 tot 1008 blokken vooruit, tegen 25 eerder, en GUI-gebruikers kunnen de fee van een onbevestigde transactie verhogen via Replace-By-Fee. Een chainstate-database per output maakt de initial block download 30 tot 40% sneller. De omzetting gebeurt automatisch bij de eerste start en duurt ongeveer 5 tot 30 minuten.
Vaste bijdragers aan Bitcoin Core hebben geen banden met btc1, de implementatie van Segwit2x, en het project verwerpt de bewering dat het een noodzakelijke update is: het spreekt van een omstreden breuk met de netwerkregels. Segwit, de soft fork die binnen enkele dagen wordt verwacht, staat los van die hard fork en vraagt niets van de meeste gebruikers. Ook is bij Segwit2x geen sterke replay-bescherming gepland, waarschuwt de verklaring.
Wie UPnP heeft ingeschakeld, moet zonder uitstel Bitcoin Core 0.14.2 installeren: door een signedness-fout met integers in de meegeleverde miniupnpc, CVE-2017-8798, kunnen aanvallers op het lokale netwerk een denial of service veroorzaken of mogelijk andere schade aanrichten. UPnP staat standaard uit, dus nodes die het nooit hebben aangezet, hebben er geen last van.
Miners zonder segwit kunnen getblocktemplate na de activering blijven gebruiken, omdat Bitcoin Core 0.14.1 segwit-transacties uit de template haalt. De standaardwaarde van -dbcache gaat naar 450 MiB en de limiet houdt nu ook stand tijdens flush-pieken. Hernoemde argumenten in createrawtransaction en disconnectnode breken aanroepen die named arguments uit 0.14.0 gebruiken.
De wallet van een nieuwe node zou al voor het einde van de synchronisatie kunnen verzenden en ontvangen met de hybride full block SPV-modus op de roadmap van Bitcoin Core. Die haalt blokken op vanaf de oudste sleutel van de wallet, terwijl de volledige validatie op de achtergrond doorloopt. De privacylekken van Bloom-filters verdwijnen tegen de prijs van meer bandbreedte, en betalingen kunnen beter wachten op 6 of meer bevestigingen.
Zouden Schnorr-handtekeningen ECDSA vervangen, dan krimpt een 50-of-50-multisig tot het formaat van een uitgave met één sleutel en blijft het beleid ervan verborgen voor buitenstaanders. Als grootste obstakel noemt de roadmap van Bitcoin Core cancellation, waarbij een kwaadwillende ondertekenaar de sleutel van een andere gebruiker aftrekt. Delinearisatie pareert die aanval, al zit het veiligheidsbewijs daarvan nog in peer review.
Signature caching in Bitcoin-Qt 0.7.0, Ultraprune met LevelDB in 0.8.0 en headers-first sync in Bitcoin Core 0.10 staan centraal in deel 1 van een terugblik op de versnellingen in de referentiesoftware. Parallelle scriptverificatie alleen al leverde in benchmarks van de ontwikkelaars 35% tot 100% op.
Nieuwe nodes rondden de initial block download in een test op Amazon EC2 met standaardinstellingen 5,7 keer sneller af op Bitcoin Core 0.14.0 dan op 0.13.2: 6 uur en 24 minuten tegenover 1 dag, 12 uur en 40 minuten. Die winst komt van assumed valid blocks en geheugen dat de mempool en de UTXO-cache delen. Wallets krijgen ook optionele fee bumping, die standaard uitstaat.
Verzendingen uit de wallet die tegen de limiet op onbevestigde ketens aanlopen, geven in Bitcoin Core 0.13.2 geen RPC-fout meer. Ze melden succes, en bij het opnieuw uitzenden wordt de plaatsing in de mempool nogmaals geprobeerd, zonder herstart. Feeschattingen voor een doel van 1 blok zijn uitgeschakeld, en de afhandeling van ongeldige compact blocks is gerepareerd.
Segwit verpakken in P2SH kost de meeste bytes: 19% extra voor P2WSH/P2SH en 11% voor P2WPKH/P2SH op een transactie van 180 bytes, zo rekent Bitcoin Core voor bij wat BIP141 met zich meebrengt. Validatie vraagt per transactie ongeveer vijf extra SHA256-hashes. Bugs, grotere blokken en lagere fees worden als risico's gewogen, en de auteurs nemen geen standpunt in over activering.
Miners krijgen in Bitcoin Core 0.13.1 code om voor de soft fork segwit te signaleren; dat kan vanaf 15 november 2016, aan het begin van de volgende retarget-periode. Lock-in vereist 95% van de blokken in een periode van 2016 blokken, activering volgt een periode later. Wallets blijven compatibel, dus alleen miners hoeven mogelijk iets te doen.
Segwit heeft twee groepen nodig: miners die in 95% van de blokken over een retarget-periode bit 1 signaleren, en genoeg full nodes met Bitcoin Core 0.13.1 of een compatibele implementatie. Signaleren kan vanaf de eerste retarget op of na 15 november 2016. Aparte stappen gelden voor miners, nodebeheerders, walletgebruikers en ontwikkelaars, ook voor wie niet wil upgraden.
Segwit-code zit in Bitcoin Core 0.13.0, maar blijft op mainnet inactief; daar is een latere versie voor nodig, naar verwachting 0.13.1. Compact block relay (BIP152) dempt pieken in de bandbreedte, en nieuwe wallets gebruiken BIP32-HD-sleutels, zodat één back-up elke toekomstige privésleutel dekt. Ook Linux ARM-builds horen nu bij de officiële downloads.