Bitcoin är ett mycket speciellt projekt. Det är inte bara unikt såtillvida att det är världens första decentraliserade valuta utan är även ett projekt där utvecklarna måste förhålla sig till diverse problem och avvägningar som är unika för just bitcoin. Det beror dels på att bitcoin är finansiell infrastruktur som skyddar enorma värden, där ett misstag kan vara förödande och oåterkalleligt, vilket gör att man måste ha ett försiktighetstänk som mer liknar hur NASA arbetar när de bygger en raket än hur en vanlig apputvecklare kan tänka. Men inte nog med det, Bitcoin är också ett decentraliserat system där den s.k. konsensusalgoritmen står i centrum och är fundamental för att systemet ska fungera. Att alla deltagare i nätverket är överens om exakt vilka regler som gäller och vad som är en giltig transaktion eller ett giltigt block är absolut nödvändigt, och mycket svårare än det kan låta. En ytterligare aspekt är att bitcoin är open source, vilket ibland kan leda till knepiga situationer kring hur kritiska buggar som upptäcks ska hanteras.
Att förstå bitcoins historia, vilka problem som redan tacklats och resonemangen bakom de lösningar som tagits fram är viktigt för den som vill börja hjälpa till med utvecklingen och det är inte lätt att hitta alla dessa lärdomar samlade så boken "Bitcoin Development Philosophy" av Kalle och Linnéa Rosenbaum är ett mycket välkommet bidrag.
Än så länge finns denna bok bara i digital form i ett GitHub repository och för att få den i ett enkelt och läsbart format kan man följa instruktionerna för hur man "bygger" boken med programmet asciidoctor. För den som vill slippa det steget finns en version publicerad på rosenbaum.se. Vi hoppas också på att boken snart kommer ut i tryckt form.
Innehållet är uppdelat i nio olika delar där varje del innehåller konkreta exempel, citat från välkända bitcoinutvecklare och egna resonemang från författarna. De första kapitlen motsvarar flera av de egenskaper man förknippar med bitcoin (Decentralization, Trustlessness, Finite supply m.fl.) och bland de senare kapitlen finns diskussioner kring uppgraderingar, skalning och vad som händer när saker trots allt går fel. Det sista är viktigt — den här boken innehåller raka och tydliga beskrivningar av bitcoins historia, vilket inkluderar såväl lyckade som mindre lyckade episoder. Att kunna lära av sina misstag är av stor betydelse för bitcoins framtid.
Låt oss titta kort på de olika kapitlen:
- Kapitlet Decentralization förklarar hur decentraliseringen har ett tydligt syfte, nämligen att säkerställa censurresistens. Två huvudsakliga aspekter presenteras; decentralisering av miners och decentralisering av fullnoder.
- I Trustlessness förklaras att det inte går att ha ett decentraliserat system baserat på tillit, och på vilka olika sätt man kan minska sitt behov av att lita på olika aktörer.
- Att Privacy kan vara värt att eftersträva för egen personlig del är lätt att förstå men faktum är att det också är nödvändigt för systemet som helhet. I det här kapitlet förklaras bl.a. kopplingen mellan privacy och fungibility.
- Finite Supply. Att det bara kommer att finnas knappt 21 miljoner ser många som den allra viktigaste egenskapen hos bitcoin. Men hur säkra är vi på att det kommer att förbli så och hur förändras incitamenten i takt med att miners mer och mer måste förlita sig på transaktionsavgifter?
- Upgrading. Exakt hur uppgraderingar av bitcoin bör gå till är något som det fortfarande inte finns något tydligt svar på. Många olika sätt har prövats och lärdomarna i det här kapitlet är nog bland de viktigaste i boken.
- Vad bedyder Adversarial thinking? Det handlar bl.a. om att eftersom bitcoin är ett av de mest attraktiva målen i världen för hackare så måste man ständigt ha ett förhållningssätt där man sätter sig in i angriparens perspektiv och tar minsta antydan till säkerhetsbrist på allvar.
- Bitcoin är Open Source och möjliggör såväl permissionless development (du behöver inte be någon om lov för att delta) som pseudonymous development (ingen behöver få veta din verkliga identitet).
- Scaling. Bitcoins skalning har varit ett hett ämne genom åren och detta kapitel har tydliga kopplingar till kapitlet om uppgraderingar. Här presenteras fyra olika varianter av skalning (Vertical, Horizontal, Inward och Layered) samt deras för- och nackdelar.
- I det sista kapitlet som fått namnet When shit hits the fan får vi en genomgång av några av de värsta buggarna som bitcoin råkat ut för och hur de hanterades. Det resoneras också en del kring vad som var bra och mindre bra med hanteringen och hur det bör göras annorlunda i framtiden.
För att sammanfatta så är det här utmärkt läsning, framförallt för den som på något sätt vill delta i bitcoinutvecklingen, men även för den som bara vill få en djupare förståelse för bitcoins historia ur ett tekniskt perspektiv.
Boken hittar du på GitHub samt på rosenbaum.se.