Idag, den 2 maj 2019, markeras det officiella släppet av Bitcoin Core 0.18.0, den 18: e generationen av Bitcoins ursprungliga mjukvaruklient som lanserades av Satoshi Nakomoto för nästan 10 år sedan, och fortfarande den dominerande Bitcoin-implementeringen i nätverket idag. Övervakad av Bitcoin Core-huvudansvarig Wladimir van der Laan, den senaste stora utgåvan utvecklades under cirka sex månader av över hundra bidragsgivare.
Bitcoin Core 0.18.0 innehåller det typiska utbudet av prestandaförbättringar och buggfixar, samt några nya funktioner.
Här är en översikt över några av de viktigaste förändringarna.
Kompatibilitet med hårdvaruplånbok
En av de mest efterlängtade förändringarna i Bitcoin Core 0.18.0 gör det möjligt för användare att ansluta sin hårdvaruplånbok (Ledger, Trezor, Digital BitBox, KeepKey och Coldcard) via verktyget Hardware Wallet Interaction (HWI). Detta kombinerar ett av de säkraste sätten att lagra dina privata nycklar med det säkraste sättet att interagera med blockchain.
Hårdvaruplånböcker anses vara säkra eftersom användarens privata nycklar aldrig lämnar enheten. Nycklarna exponeras aldrig för internet eller datorn som de är anslutna till, vilket gör hårdvaruplånböcker immun mot fjärrhackning.
Även om det redan är möjligt att ansluta en hårdvaruplånbok till en Electrum-plånbok som är ansluten till din fulla nod med hjälp av Electrum Personal Server, kommer HWI att vara det första inbyggda alternativet maskinvara till nod som en del av Bitcoin Core-projektet. För närvarande är HWI-skripten fortfarande endast kommandorad och en manuell process krävs för att ansluta hårdvaruplånboken.
GUI-stöd för Multiwallet-funktion
Ett annat framsteg från den senaste uppdateringen ger användarna möjlighet att para ihop med flera plånböcker. Detta bygger på en del av arbetet som gjorts i Bitcoin Core 0.17.0, där användarna inte längre begränsades av att bara skapa plånböcker när de startade sin nod och istället kunde skapa och använda nya plånböcker när de vill. I Bitcoin Core 0.18.0 kan användare para ihop dessa flera plånböcker som de har skapat och ansluta funktionen till det grafiska användargränssnittet (GUI).
Denna funktion kommer att förfinas med senare uppdateringar, eftersom det fortfarande finns några kända problem med att använda GUI för att komma åt kommandot “multiwallet”. Det mest anmärkningsvärda är att du inte kan använda myntkontrollfunktioner med flera plånböcker laddade, annars kommer du sannolikt att behålla fel plånbok när du försöker byta plånbok.
Med myntkontrollfunktionen kan användaren kontrollera vilka mynt i plånboken som ska användas när du skickar en transaktion. Den här funktionen är en viktig aspekt för att upprätthålla användarnas integritet eftersom vissa outnyttjade transaktionsutgångar (UTXO) kan avslöja mer än andra, antingen genom adressen de skickas från eller det belopp de är värda. (Om du till exempel har en UTXO som är värd 1000 BTC och en som är värd 0,1 BTC, kanske du föredrar att använda 0,1 UTXO för att förhindra att den person du betalar lär dig att du äger minst 1000 BTC.)
Förfiningar till Output Script Descriptors Language
Föreslagen av Blockstream-ingenjör och Bitcoin Core-bidragsgivare Pieter Wuille, utskriftsskriptbeskrivningsspråket debuterade i Bitcoin 0.17.0. Huvudanvändningen av detta språk är att tillåta användare att namnge sina olika typer av offentliga och privata nycklar som är kopplade till deras plånböcker och göra det lättare att flytta dessa nycklar från en plånbok till en annan. Enligt hans ursprungliga förslagsdokument är Wuilles ultimata mål att en dag ”ta bort behovet av att importera skript och nycklar helt, och istället göra plånboken bara till en lista med dessa beskrivare och deras tillhörande metadata.”
Eftersom Wuille och andra utvecklare fortsätter att arbeta för att växa den här listan över deskriptorer, förfinar den senaste uppdateringen några av det befintliga språket genom att tillhandahålla nya kommandon så att användarna kan börja importera mänskliga läsbara deskriptorer för varje skript som Bitcoin Core kan underteckna..
Bitcoin Mining främjar adopterad segregerad vittne
Getblocktemplate (GBT) var det första försöket på ett decentraliserat Bitcoin-gruvpoolsprotokoll med öppen källkod och utvecklades av Bitcoin-samhället 2012. Några av de poolspecifika gruvprotokollen vid den tiden utfärdade helt enkelt blockrubriker för en gruvarbetare att lösa, utan kunskap om vad som faktiskt fanns i blocket, och gav i huvudsak kontroll blindt till pooloperatören. Liksom det mycket nyare BetterHash-protokollet decentraliserade GBT denna process genom att återföra kraften till gruvarbetaren (“hasher”), genom att flytta blockskapande (transaktionsval) till honom.
Om du är en gruvarbetare som vill gå med i en pool som stöds, för att börja använda protokollet, kontaktar gruvarbetaren poolservern och begär en inledande mall, som kommer att innehålla de regler som anges för deltagande i poolen. Dessa regler anpassas av gruvpoolen och kan sträcka sig från myntbas- och nonce-parametrar till min / max gånger hashning. Men i den senaste uppdateringen misslyckas samtal för att ta emot den här mallen som inte aktiverar SegWit och gruvarbetaren kommer att få ett felmeddelande. ((En gruvarbetare som ringer till getblocktemplate utan SegWit specificerad är dock troligtvis ett användarfel under alla omständigheter, eftersom detta skulle resultera i lägre belöningar för gruvarbetaren.)
SegWit, implementerat 2017, anses vara den största protokolluppdatering som någonsin gjorts för Bitcoin-programvaran. Den största förändringen till följd av SegWit var att fixa smidighetsfel och ersätta blockstorleksgränsen med en “vikt” -gräns, vilket möjliggjorde upp till 4 megabyte transaktionsdata och gav en väsentlig ökning av nätverkets transaktionskapacitet.