Utöver kraschen som redan var känd gjorde CVE-2018-17144 det möjligt för en miner att blåsa upp den totala mängden bitcoin i versionerna 0.15.X till 0.16.2 genom att spendera en output två gånger i samma transaktion. Utvecklarna höll inne den delen för att ge system tid att gå över till 0.16.3 eller 0.17.0rc4. Över hälften av hashraten tros vara patchad, inga angreppsförsök är kända och drabbade användare uppmanas att uppgradera.
CVE-2018-17144 får Bitcoin Core 0.14.0 till och med 0.16.2 att krascha på ett block med en transaktion som spenderar samma input två gånger, och användare uppmanas att genast uppgradera till 0.16.3. Bara en miner som är beredd att avstå från minst 12,5 BTC i tillåten intäkt kan skapa ett sådant block.
RPC:n verifytxoutproof i Bitcoin Core 0.16.2 faller inte längre offer för en kostsam attack mot SPV-bevis som offentliggjordes i början av juni, men riktiga SPV-klienter är fortfarande utsatta. En separat fix gör att abandontransaction släpper alla ättlingar till en transaktion i stället för att stanna vid barnen.
OP_CODESEPARATOR i legacy-signaturskript vidarebefordras inte längre av Bitcoin Core 0.16.1, en policyändring som gör framtida fixar för block som är långsamma att validera lättare att rulla ut. Miners förlorar alternativet -blockmaxsize till förmån för -blockmaxweight och får en fix av en bugg som kunde ha kostat dem intäkter när de producerade två block tätt efter varandra.
Segwit blir plånbokens standard i Bitcoin Core 0.16.0: nya adresser är p2sh-segwit om inte -addresstype säger annat, och nativa bc1-adresser enligt BIP173 går att generera och betala till. Nya plånböcker är enbart HD och avvisas av tidigare versioner, och sändfönstret i GUI:t slår nu på BIP125 RBF som standard.
Som en försiktighetsåtgärd inför framtida nätverksforkar kopplar Bitcoin Core 0.15.1 bort peers som erbjuder en kedja under minimum-chain-work under den initiala synkningen, liksom utgående peers som skickar headers som är kända för att vara ogiltiga. En topp som står still i 30 minuter utlöser nu en extra utgående anslutning. Miners kan inte längre använda blockmaxsize direkt; det är utfasat och innebär bara en viktgräns.
En startkrasch i GUI:t ligger bakom Bitcoin Core 0.15.0.1: vissa klienter som uppgraderade till 0.15.0 föll på en anpassad avgiftsinställning som gränssnittet inte längre erbjuder. En minimal patch, #11332, hanterar det ogiltiga värdet.
Avgiftsuppskattningarna i Bitcoin Core 0.15.0 sträcker sig 1 008 block framåt, upp från 25, och GUI-användare kan höja avgiften på en obekräftad transaktion via Replace-By-Fee. En chainstate-databas per output snabbar upp den initiala blocknedladdningen med 30–40 %. Konverteringen sker automatiskt vid första starten och tar ungefär 5 till 30 minuter.
De som regelbundet bidrar till Bitcoin Core har inga band till btc1, Segwit2x-implementationen, och projektet tillbakavisar påståenden om att det skulle vara en nödvändig uppdatering och kallar det ett omstritt brott mot nätverkets regler. Segwit, den soft fork som väntas inom några dagar, har inget med den hard forken att göra och kräver inget av de flesta användare. Segwit2x planerar dessutom inget starkt replay-skydd, varnar uttalandet.
Den som har aktiverat UPnP uppmanas installera Bitcoin Core 0.14.2 utan dröjsmål: ett heltalsfel med förtecken i medföljande miniupnpc, CVE-2017-8798, låter angripare på det lokala nätverket orsaka överbelastning eller möjligen annan skada. UPnP är fortsatt avstängt som standard, så noder som aldrig slagit på det berörs inte.
Miners utan segwit kan fortsätta använda getblocktemplate efter aktiveringen, eftersom Bitcoin Core 0.14.1 tar bort segwit-transaktioner ur mallen. Standardvärdet för -dbcache blir 450 MiB och gränsen håller nu även vid minnestoppar under flush. Omdöpta argument i createrawtransaction och disconnectnode bryter anrop som använder namngivna argument från 0.14.0.
En ny nods plånbok skulle kunna skicka och ta emot innan synkningen är klar med det hybrida full block SPV-läget på Bitcoin Cores färdplan, där block hämtas utifrån plånbokens äldsta nyckel först medan full validering fortsätter i bakgrunden. Integritetsläckorna från Bloom-filter försvinner till priset av mer bandbredd, och betalningar bör vänta på 6 eller fler bekräftelser.
Att byta ECDSA mot Schnorr-signaturer skulle krympa en 50-of-50-multisig till samma storlek som en spendering med en nyckel och dölja dess policy för utomstående. Bitcoin Cores färdplan pekar ut cancellation som det största hindret, där en illvillig signerare subtraherar en annan användares nyckel. Delinearisering är svaret på attacken, men dess säkerhetsbevis är fortfarande under kollegial granskning.
Signaturcachning i Bitcoin-Qt 0.7.0, Ultraprune med LevelDB i 0.8.0 och headers-first-synk i Bitcoin Core 0.10 tas upp i första delen av en tillbakablick på hur referensprogramvaran blivit snabbare. Enbart parallell skriptverifiering gav 35 till 100 % i utvecklarnas benchmarktester.
Nya noder blev klara med den initiala blocknedladdningen 5,7 gånger snabbare på Bitcoin Core 0.14.0 än på 0.13.2 i ett test på Amazon EC2 med standardinställningar: 6 timmar 24 minuter mot 1 dygn 12 timmar 40 minuter. Bakom vinsten ligger assumed valid-block och minne som delas mellan mempoolen och UTXO-cachen. Plånböcker får också valfri avgiftshöjning, avstängd som standard.
Betalningar från plånboken som slår i gränsen för obekräftade kedjor ger inte längre ett RPC-fel i Bitcoin Core 0.13.2. De rapporteras som lyckade, och insättning i mempoolen görs på nytt vid omsändning utan att omstart behövs. Avgiftsuppskattningar för ett mål på 1 block är avstängda, och hanteringen av ogiltiga compact blocks är rättad.
Att paketera segwit i P2SH kostar mest i byte: 19 % extra för P2WSH/P2SH och 11 % för P2WPKH/P2SH på en transaktion på 180 byte, enligt Bitcoin Cores genomgång av vad BIP141 skulle föra med sig. Valideringen kräver ungefär fem SHA256-hashar till per transaktion. Buggar, större block och lägre avgifter vägs in som risker, och författarna tar inte ställning till aktiveringen.
Miners får kod för att signalera för segwit-soft-forken i Bitcoin Core 0.13.1, och signaleringen öppnar vid starten av nästa omräkningsperiod från och med 15 november 2016. Inlåsning kräver 95 % av blocken i en period på 2 016 block, och aktivering följer en period senare. Plånböcker förblir kompatibla, så det är bara miners som kan behöva göra något.
Segwit behöver två grupper med sig: miners som signalerar bit 1 i 95 % av blocken under en omräkningsperiod, och tillräckligt många fullnoder med Bitcoin Core 0.13.1 eller en kompatibel implementation. Signaleringen öppnar vid den första omräkningen på eller efter 15 november 2016. Separata steg finns för miners, nodoperatörer, plånboksanvändare och utvecklare, även för dem som väljer att inte uppgradera.
Segwit-koden landar i Bitcoin Core 0.13.0 men förblir inaktiv på mainnet; för att använda den där krävs en senare version, som väntas bli 0.13.1. Compact block relay (BIP152) jämnar ut bandbreddstopparna, och nya plånböcker använder BIP32 HD-nycklar, så en enda säkerhetskopia täcker alla framtida privata nycklar. Linux-byggen för ARM läggs också till bland de officiella nedladdningarna.