Idag markeras den officiella lanseringen av Bitcoin Core 0.16.0, den 16: e generationen av Bitcoins ursprungliga programvaruklient som lanserades av Satoshi Nakamoto för drygt nio år sedan. Övervakad av ledaren för Bitcoin Core, Wladimir van der Laan, utvecklades den här senaste stora utgåvan av cirka 100 bidragsgivare under en period av fem månader.
Som vanligt för nya utgåvor inkluderar Bitcoin Core 0.16.0 prestandaförbättringar, buggfixar och andra optimeringar. Denna version innehåller särskilt flera tillagda funktioner i plånbokgränssnittet. Framför allt gör Bitcoin Core 0.16.0 Segregated Witness (SegWit) fullt tillgängligt för plånbokanvändare, vilket är vad det mesta av ansträngningen fokuserade på, och det är också varför denna version ibland kallas en “SegWit special.”
Här är en översikt över några av de mest anmärkningsvärda ändringarna.
Segregated Witness in the Wallet Interface
Segregated Witness var naturligtvis den viktigaste uppgraderingen av Bitcoin-protokollet 2017, om inte den största protokolluppgraderingen någonsin. Det introducerade en helt ny blockdatastruktur för uppgraderade noder – medan icke-uppgraderade noder kan fortsätta att fungera som vanligt. Bland andra fördelar ersatte SegWit Bitcoins blockstorleksgräns med en block “vikt” -gräns, vilket möjliggjorde block med upp till 4 megabyte transaktionsdata och därmed ökad transaktionskapacitet i nätverket.
Segregated Witness själv introducerades först i Bitcoin Core 0.13.1, släpptes i oktober 2016. Uppgraderingen aktiverades i augusti 2017. Bitcoin Core 0.16.0 är dock den första Bitcoin Core-versionen som låter plånbokanvändare generera SegWit-adresser för att ta emot betalningar. Detta innebär att när pengarna som tas emot på dessa adresser spenderas i en betalning senare, använder Bitcoin Core-plånbokanvändarna det extra blockutrymme som SegWit erbjuder. Allt annat lika bör dessa användare kunna betala lägre avgifter jämfört med icke-SegWit-transaktioner.
Bitcoin Core är inte den första plånboken som möjliggör Segregated Witness för användare; flera andra plånböcker hade redan introducerat denna funktion under de senaste sex månaderna. Eftersom Bitcoin Core-utvecklingsgruppen skrev och föreslog uppgraderingen var det anmärkningsvärt att funktionen inte hade varit tillgänglig för Bitcoin Core-plånbokanvändare – tills nu.
Bech32: Bitcoins nya adressformat
Till följd av introduktionen av SegWit i Bitcoin Core-plånboken finns ett nytt adressformat som kallas “bech32.” Detta adressformat, utvecklat av före detta Blockstream CTO Gregory Maxwell och Blockstream-utvecklaren Dr. Pieter Wuille, är igenkännligt eftersom det börjar med “bc1” istället för 1 eller 3 som Bitcoin adresser brukar börja med. Ännu viktigare är att bech32-adresser använder färre tecken än det aktuella adressformatet, eftersom det inte längre skiljs mellan små och stora bokstäver. Detta minskar risken för mänskliga misstag (till exempel när en adress läses upp högt). Bech32-adresser är också utformade för att begränsa andra typer av misstag som dessa orsakade av stavfel.
Dessutom erbjuder bech32 fördelar inom ramen för SegWit-plånbokstöd. Hittills gör de flesta plånböcker som erbjuder SegWit det genom att “slå in” det i P2SH-utgångar (med adresser som börjar med en 3). För att spendera mynt från en sådan adress måste användarna avslöja en kodkod – “lösa in skriptet” – för att visa att mynten verkligen var låsta i en SegWit-utdata. Med de nya bech32-adresserna kan detta steg hoppas över, vilket innebär att utgifter från en SegWit-adress kräver att lite mindre data överförs över Bitcoin-nätverket och ingår i blockchain.
Eftersom inte alla Bitcoin-plånböcker stöder bech32-adresser ännu, kommer Bitcoin Core 0.16.0-användare att kunna välja om de vill generera en bech32-mottagningsadress för betalningar eller en P2SH-adress, där P2SH fortfarande är standard för nu. Bitcoin Core-plånboken stöder naturligtvis att skicka transaktioner till vilken typ av Bitcoin-adress som helst.
Ersätt per avgift som standardsändningsalternativ
Eftersom Bitcoin-block har fyllts på under de senaste åren passar inte alla transaktioner i nätverket i det första tillgängliga blocket som bryts. Istället prioriterar gruvarbetare vanligtvis de transaktioner som innehåller de flesta avgifterna. Om användare vill ha sina transaktioner bekräftade snabbt bör de inkludera en tillräckligt hög avgift. För mindre brådskande transaktioner bör en lägre avgift räcka. Många plånböcker inkluderar avgiftsberäkningsalgoritmer för att beräkna vilken avgiftsnivå som kommer att få en transaktion bekräftad inom olika tidsramar.
Bitcoin-nätverket hanterar dock inneboende oförutsägbarhet när det gäller den hastighet med vilken block hittas och antalet transaktioner som överförs när som helst. Detta kan göra det svårt att inkludera rätt transaktionsavgift, vilket innebär att användare kan behöva vänta längre på en bekräftelse än de hade tänkt sig.
Sedan Bitcoin Core 0.15.0 har plånboksanvändare kunnat lägga till en “byt ut avgift” -tagg till 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 av Bitcoin Core plånbok enkelt att stöta upp sina transaktioner i rad för att få det bekräftat snabbare.
Bitcoin Core 0.16.0 gör ersättningsavgift som standard för sändningsalternativ för första gången. Användare kan fortfarande välja att lägga till en ersättningsavgift i sina transaktioner genom att avmarkera en ruta, men deras transaktioner kan bytas ut om de inte avmarkerar den. Detta bör förhindra att användare oavsiktligt berövar sig sina alternativ och först märker när det är för sent att de lätt kunde ha stött på sina transaktioner.
Mer information om vad som är nytt i Bitcoin Core 0.16.0 finns i release-anteckningar. Du kan ladda ner Bitcoin Core 0.16.0 från bitcoincore.org.