Idag markeras den officiella utgåvan av Bitcoin Core 0.15.0, den femtonde generationen av Bitcoins ursprungliga programvaruklient som lanserades av Satoshi Nakamoto för nästan nio år sedan. Övervakad av Bitcoin Core ledande underhållare Wladimir van der Laan, den senaste stora utgåvan utvecklades av nästan 100 bidragsgivare under en sexmånadersperiod, med stora bidrag genom Chaincode Labs, Blockstream och MIT: s Digital Currency Initiative.

Bitcoin Core 0.15.0 erbjuder betydande förbättringar av prestanda och användbarhet jämfört med tidigare versioner av programvaruimplementeringen. Det introducerar också flera nya funktioner för att bättre hantera nätverkets nuvarande status.

Det här är några av de mer anmärkningsvärda förändringarna.

Chainstate Database Restrukturure

En av de största förändringarna jämfört med tidigare versioner av programvaran handlar om hur Bitcoins blockchain lagras. Denna “chainstate” eller “UTXO-set” sparas i en dedikerad databas, medan den tidigare kategoriserades per transaktion. Om en transaktion skickade bitcoins till flera utgångar (“adresser”) lagrades dessa olika utdata som en enda databaspost, med hänvisning till den ena transaktionen.

Med Bitcoin Core 0.15.0 lagras dessa utdata istället i en enda databaspost vardera. Om en enda transaktion skickar bitcoins till olika utdata lagras varje utdata separat. Även om den här metoden kräver mer skivutrymme, kräver den mindre beräkningsresurser om en av dessa utgångar spenderas senare.

Den mest konkreta fördelen med den här nya datastrukturen är att den initiala synkroniseringstiden för nya noder minskar med cirka 40 procent. Det introducerar också enklare kod, minskar minnesanvändningen och mer. Dessutom fixar det ett fel som teoretiskt kan krascha Bitcoin Core-noder, vilket kontroversiellt avslöjades vid förra helgens Breaking Bitcoin-konferens i Paris.

Förbättrad avgiftsberäkning

Eftersom Bitcoin-block har fyllts under det senaste året eller två passar inte alla transaktioner i det första blocket som bryts. Istället prioriterar gruvarbetare vanligtvis de transaktioner som innehåller de flesta avgifterna. Om en användare vill ha sin transaktion snabbt bekräftad, bör han inkludera en tillräckligt hög avgift. Om han inte bråttom bör en lägre avgift räcka.

Bitcoin-nätverket hanterar dock inneboende oförutsägbarhet när det gäller den hastighet med vilken block hittas eller antalet transaktioner som överförs när som helst. Detta gör det svårt att inkludera rätt transaktionsavgift.

Bitcoin Core 0.15.0 sänker denna avgiftsosäkerhet: Den senaste versionen av programvaran innehåller betydligt bättre algoritmer för skattning av avgifter. Detta beror främst på att programvaran tar hänsyn till mer data när man gör uppskattningarna, såsom avgifter som ingår i äldre bekräftade transaktioner, samt avgifter i obekräftade transaktioner – avgifterna som visade sig vara otillräckliga.

Dessutom kan användarna ha mer flexibilitet. För det första tillåter Bitcoin Core 0.15.0 för första gången användare att ta med avgifter som kan ta sina transaktioner upp till en vecka att bekräfta. Och även nyligen införda användare kan välja att acceptera mer eller mindre risk för att deras transaktion kan försenas på grund av en plötslig tillströmning av transaktioner.

Ersätt per avgift i användargränssnittet

Även med förbättrad avgiftsuppskattning är det möjligt att användare fortfarande kommer att behöva vänta längre än vad de vill för att deras transaktioner ska bekräftas, kanske för att det plötsligt brister i transaktioner i nätverket, eller kanske för att en användare ändrade sig och föredrar få en transaktion bekräfta snabbare än vad som ursprungligen betalats för eller av andra skäl.

I dessa fall låter vissa plånböcker användarna lägga till en “byt ut avgift” -tagg i sina transaktioner. Med en sådan tagg vet noder och gruvarbetare i nätverket att avsändaren kanske vill ersätta den transaktionen med en nyare transaktion som inkluderar en högre avgift. Detta gör det möjligt för användare att stöta transaktionen i rad för att få den bekräftad snabbare.

Bitcoin Core-noder har stött ersättningsavgift i mer än ett år nu: De ersätter redan ersättningsavgiftsmärkta transaktioner om den nya transaktionen innehåller fler avgifter. Men det var aldrig lätt att använda för användare av Bitcoin Core-plånbok.

Tills nu.

Bitcoin Core 0.15.0-plånboken introducerar en byte av avgift i sitt användargränssnitt. Detta låter användare inkludera lämplig tagg, så att de enkelt kan höja avgifterna på sina transaktioner senare.

Stöd för flera plånböcker (endast klient och RPC)

Bitcoin Core 0.15.0 låter användare skapa flera plånböcker för första gången. Dessa plånböcker har alla sina egna separata Bitcoin-adresser, privata nycklar och därför pengar. Användare kan använda de olika plånböckerna för olika ändamål; en plånbok kan till exempel användas för personliga dagliga köp, en annan för affärsrelaterade transaktioner och en tredje bara för handel.

Att använda flera plånböcker kan erbjuda ett antal fördelar. Det gör till exempel redovisning enklare och bekvämare. Dessutom kan användare lättare dra nytta av ökad integritet eftersom de olika plånböckerna inte kan länkas till varandra genom blockchain-analys. Det är också möjligt att använda olika plånböcker för specifika applikationer och mer.

För tillfället är stöd för flera plånböcker ännu inte tillgängligt för vanliga plånbokanvändare. endast avancerade användare som arbetar från kommandoraden eller via anslutna applikationer kan använda funktionen.

Andra förbättringar

Förutom de ovan nämnda anmärkningsvärda förändringarna innehåller Bitcoin Core 0.15.0 ett antal ytterligare prestandaförbättringar, som de flesta nya större Bitcoin Core-utgåvor gör. Konkret, dessa förändringar påskyndar hur snabbt block laddas ned från nätverket, de låter noder starta snabbare och uppdaterade noder kommer att kunna validera nya block snabbare, vilket i sin tur gynnar nätverksförökningstid.

Slutligen är det värt att nämna att Bitcoin Core 0.15.0 kommer att kopplas bort från BTC1-kamrater i nätverket. Detta innebär att Bitcoin-nätverket kommer att uppleva mindre störningar om SegWit2x hårda gaffel delar upp nätverket, eftersom båda typer av noder lättare hittar kompatibla kamrater. Även om denna förändring har fått viss medieuppmärksamhet, bör denna förändring inte riktigt märkas.

Tack till Chaincode Labs-utvecklaren John Newbery för feedback och förslag. För mer information om vad som är nytt i Bitcoin Core 0.15.0, se release-anteckningar, eller titta på Bitcoin Core-bidragsgivaren Gregory Maxwells “djupa dyk” presentation vid mötet i San Francisco Bitcoin-utvecklare.