Bitcoin Core är vidareutvecklingen av den ursprungliga mjukvara som Satoshi Nakamoto släppte när Bitcoin lanserades 2009. Under åren har massor av människor samarbetat med att vidareutveckla och förbättra mjukvaran, fixa buggar och lägga till en del nytt. Versionen som släpptes nu i veckan är resultatet av över 100 människors frivilliga, och för många obetalda, bidrag till källkoden under 6 månader och ungefär likadant ser det ut vid varje ny release. Detta jobb är förstås värt att uppmärksamma och applådera så här följer en kort genomgång av de viktigaste ändringarna i den nya versionen.
Hårdvaruplånböcker
Det har funnits visst stöd för hårdvaruplånböcker sedan version 0.18 men bara för de mer tekniskt kunniga som är OK med att skriva kommandon istället för att klicka i ett grafiskt gränssnitt. Nu har ett första steg tagits mot att göra detta tillgängligt för alla i och med att man i det grafiska gränssnittet kan skapa en partiellt signerad bitcointransaktion (PBST) och sedan flytta över till sin hårdvaruplånbok för signering. Detta är dock ännu inte automatiserat och man behöver fortfarande använda kommandoraden för att till slut skicka iväg transaktionen, men vi kan säkert räkna med att detta stöd utökas framöver så att det blir enklare.
Payment protocol tas bort
För mer än sex år sedan skrev jag om att att Bitcoin Payment Protocol hade lagts till. Det var tänkt att underlätta betalningar med bitcoin, både fysiskt och online, med tydlig information om vem man betalade (istället för långa bitcoinadresser), digitala kvitton kopplade till transaktioner mm. Den här standarden fick aldrig genomslag och har dessutom visat sig lida av brister i säkerhet och privacy vilket alltså lett till att den nu helt tas bort från Bitcoin Core. Det här gör också att beroendet på OpenSSL (vilket också ställt till med olika problem under åren) helt kan tas bort.
Ett steg mot snabbare uppstart
Att starta upp en ny bitcoinnod tar lång tid eftersom hela blockkedjan måste verifieras. Det finns kompromisser och en sådan, kallad assumevalid, är standardinställning i Bitcoin Core redan idag och innebär att mjukvaran inte validerar alla script bakåt i tiden utan börjar först från ett förutbestämt block. En annan, lite större, kompromiss kallas assumeutxo och innebär att en nystartad nod kan få ett snapshot av nuvarande UTXO-set ("unspent transaction outputs") från en annan nod och därmed kan börja användas direkt, medan hela blockkedjan kontrolleras i bakgrunden. Det innebär som sagt vissa tradeoffs gällande säkerhet som man måste ha i åtanke men kan sannolikt vara användbart i vissa fall. Steg ett på vägen dit är en funktion för att generera detta snapshot och det är en sådan funktion som nu finns i Bitcoin Core 0.20.0.
Övrigt
Fler ändringar har gjorts, alldeles för många för att gå igenom här faktiskt, vilket säger en del om vilket arbete som läggs ned på att utveckla Bitcoin Core. Förbättringar har bl.a. gjorts för att få bitcoinnoder att ansluta till en mer diversifierad grupp av noder, för att minska risken för problem t.ex. med att meddelanden stoppas eller att en del av internet ligger nere. Förutom payment-protokollet är det också andra saker som har tagits bort ur Bitcoin Core, något som är vanligt i nya versioner för att säkerställa att inte mjukvaran växer till något som med tiden blir svårt att underhålla. Ofta är det saker som inte används längre eller inte fyller den funktion som från början var tanken. Ett exempel är ett s.k. reject-meddelande som en nod kunde returnera till en annan nod för att berätta att den inte accepterar transaktionen som just togs emot.
En lista över alla ändringar hittar du här.
Vill du hjälpa till?
I den här versionen var det 117 olika personer som bidrog med ändringar, och vem som helst som vill kan bidra. Processen för hur det går till hittar du på Bitcoin Cores GitHub-sida, och du behöver inte vara utvecklare för att kunna bidra, det behövs även hjälp med t.ex. testning och översättning. Kom ihåg att Bitcoin inte är finansierat av ett företag eller en stat utan i stor grad är beroende av att människor frivilligt ställer upp. Vissa av de som bidragit är förvisso anställda av företag som låter dem jobba med utveckling av Bitcoin Core för en vanlig lön, men det är en lyx som är få förunnat.
- Här laddar du ned senaste versionen av Bitcoin Core: https://bitcoincore.org/en/download