Varför faller bitcoin?

Ok, efter veckor med uppgång händer det nu saker. Varför faller bitcoin…

btcusd
BTC/USD

Jag ska försöka reda ut det…


 

Halveringen

Inom kort, kanske imorgon eller övermorgon, sker nästa halvering för bitcoin. Det innebär att den belöning miners får för att verifiera block halveras.

Kort repetition: Alla transaktioner inom bitcoinnätverket samlas i block. Ett block är alltså ett antal transaktioner som klumpas ihop och exekveras cirka var tionde minut.
Varje block med transaktioner som skapas verifierar samtidigt att tidigare block är korrekta. De som tillverkar/verifierar block kallas miners.
För att kunna vara med och tillverka nya block måste en miner med datorkraft och energiförbrukning lösa matematiska problem (se inlägg om bysantinska problemet)
Som belöning för detta får den miner som först lyckas lösa uppgiften bitcoin i belöning.

I bitcoins protokoll finns inbyggt att denna belöning halveras var 210000:e block (ungefär var fjärde år).
Det innebär helt enkelt att den inkomst miners har fått minskar med 50%. Konsekvensen av detta blir att alla miners inte kommer ha råd att fortsätta skapa block på grund av sina utgifter för datorkomponenter och energi.

Så konsekvensen för en miner på kort sikt är negativ. För bitcoin i helhet är halveringen positiv eftersom tillgången av nya bitcoin reduceras. Vi har alltså en situation där, om man tittar på utbud och efterfrågan, utbudet stryps. Om efterfrågan är densamma borde priset på tillgången öka…

Miners i ekonomiska problem

I bitcoins algoritm finns en svårighetsfaktor inbyggd. Det fungerar på så sätt att när många miners vill skapa block höjs svårigheten i de matematiska problemen som måste lösas. Det går åt mer processorkraft och energi för att lösa problemen vilket leder till ökade kostnader för miners. Det omvända gäller också, skulle få miners skapa block minskas svårigheten vilket gör det attraktivare att vara med i blockskapandet.

Den här svårighetsfaktorn regleras var 2016:e block (cirka en gång i veckan).

Ok, tillbaka till de ekonomiska problemen. De miners som inte har råd att fortsätta skapa block efter att deras belöning (blockreward) halveras kommer förmodligen sälja sina ihoptjänade bitcoin på marknaden. De måste betala löner, utrustning och energiräkningar. Därför måste de omvandla bitcoin till någon annan valuta (dollar, euro, yuan or whatever) för att betala sina räkningar. Om tillräckligt många miners gör detta kommer priset på bitcoin under en tid att pressas ner eftersom marknaden översvämmas av miners som vill sälja bitcoin.

pain

Är prisfallet temporärt?

Skulle det scenario som beskrivs ovan inträffa , och det är inte omöjligt att fallet i pris vi sett nu beror på det, vad kommer hända då?
Till att börja med kommer tillverkningen av nya block ske långsammare eftersom en del miners kastat in handduken och slutat. Detta märker bitcoins algoritm av och efter 2016 block kommer svårigheten att minskas. Plötsligt blir det återigen mer lönsamt för miners att delta i skapandet av nya block eftersom kostnaderna blir lägre.

Egentligen har miners väldigt liten påverkan på priset av bitcoin. Det enda sättet de kan påverka är genom att sälja en stor mängd på kort tid.

Sammanfattning

En halvering ska på sikt innebära att bitcoin blir dyrare enligt utbud/efterfrågan. Dock kan halveringen göra att olönsamma miners får ekonomiska problem och måste sälja sitt innehav av bitcoin. Drabbas många samtidigt kan detta resultera i temporärt prisfall. Efter en tid har passerat bör svårigheten för att skapa block justerats så det återigen blir mer lönsamt för miners att delta i blockskapandet. Därför menar jag att prisfallet är temporärt.

Bysantinska problemet – finalen

general

Det här inlägget slutför serien om de bysantinska generalernas problem. Problemet ligger i hur de kan säkerställa att meddelandena de skickar till varandra är äkta i en miljö där kommunikationen är osäker.

 

Du kan läsa de första delarna i serien här: Del 1 och Del 2.

I förra inlägget gick jag igenom hur generalerna använde kryptografi för att säkerställa meddelandena var äkta. I korthet såg metoden ut så här:

Meddelandet + Nounce => Hash

Genom ett oerhört tids- och mannskapskrävande arbete (Proof of work) kombineras meddelandet med ett nounce som ger en hash som i vårt fall börjar med fem nollor.
Om det här verkar ofattbart rekommenderar jag verkligen att läsa del 1 och 2 i serien (länkar ovan).

 

messenger

Meddelandet sänds…

Vi har kommit till den tidpunkt i händelsekedjan där General 1 skickar en budbärare till General 2 med följande meddelande:

“Vi vill attackera på måndag. Är ni med på attacken?” 8632309354

Om du följt de tidigare inlägget vet du att kombinationen av denna text plus sifferserie kommer ge ett referensnummer som börjar med fem nollor. Detta garanterar äktheten i meddelandet. Budbäraren börjar nu sin färd som tar honom genom den fientliga staden…

Vi kan här tänka oss två alternativ. I det första alternativet är inte stadens försvarare medvetna om att meddelandet är kodat. I det andra alternativet är de fullt medvetna om att texten plus sifferserien måste generera en hash som börjar med fem nollor för att meddelandet ska uppfattas som äkta.

crossway

Alternativ 1

I det här scenariot vet som sagt staden inte om att meddelandet är kodat. De lyckas tillfångata budbäraren och ser att General 1 vill attackera på måndag. Eftersom staden bedömer att de kan vinna striden om endast en av de bysantinska generalerna anfaller, mutar/hotar de budbäraren att föra fram ett förfalskat meddelande till General 2..

Det försvararna gör (eftersom de inte vet att meddelandet är kodat) är att ändra textdelen i meddelandet till “Vi vill attackera på lördag. Är ni med på attacken?” 8632309354

Det vill säga, de ändrar texten men låter samma sifferserie (nounce) stå kvar. Försvararna vet inte om att när meddelandet hashas kommer referensnumret bli helt annorlunda på grund av att textdelen ändrats.

När budbäraren når General 2 med sitt falska meddelande är det första som händer att när generalen hashar meddelandet (vilket sker tämligen omedelbart) får han en hash som i det här exemplet ser ut så här: 9234534536

Eftersom hashen inte börjar med fem nollor vet generalen omedelbart att meddelandet inte är äkta och därefter vidtas åtgärder som inte är intressanta för det här exemplet. Det viktiga är att generalen vet att meddelandet är falskt. Ingen av de bysantiska generalerna luras till att attackera ensam vilket skulle innebära en säker död.

Alternativ 2

I det här scenariot vet staden om att det förekommer kodning samt att referensnumret som genereras måste börja med fem nollor. Även den här gången tillfångatas budbäraren med sitt meddelande. Försvararna vet att om de ändrar texten i meddelandet måste de också gissa fram en ny nounce som genererar en hash som börjar på fem nollor. De måste alltså avsätta oerhört mycket tid och arbetskraft för att gissa en nounce som passar. Det kommer ta mycket lång tid men det är alltså möjligt för försvararna att skicka vidare ett falskt meddelande.

Försvararna sätter igång omedelbart med arbetet och efter en (lång) tid hittar de en nounce som passar med texten. Följaktligen skickas budbäraren (som mutats/hotats) vidare till General 2 med följande meddelande:

“Vi vill attackera på lördag. Är ni med på attacken?” 3375939767

General 2 hashar meddelandet vilket genererar ett referensnummer som börjar med fem nollor. General 2 som bedömer att det nog ska gå bra svarar att de är med på attacken. Staden låter budbäraren passera mot General 1 utan att ändra innehållet i meddelandet. De är fullt medvetna om att de kommer vinna eftersom General 1 attackerar på måndag och general 2 på lördag.

Kontentan av detta exempel är att trots att meddelandet är kodat KAN innehållet förfalskas OM staden lyckas uppbåda så mycket tankearbete att de hinner gissa rätt nounce inom rimlig tid.

Är då denna metod oanvändbar på grund av detta faktum? Låt oss ta en titt…

useless
Är Proof of work värdelöst?

Kraften hos Proof of work

Som exemplen visar ligger styrkan hos Proof of work i att det kostar så mycket energi (tid och tankekraft) att det inte är möjligt för den som vill knäcka koden att inom rimliga tidsgränser klara av det. I alternativ 2 ovan kan staden klara av att förfalska meddelandet. För att göra det i princip omöjligt för försvararna att förfalska meddelandet väljer generalerna följande metod:

De låter varje division i sin armé skriva var sitt textmeddelande. Sedan låter generalen sätta ihop dessa texter till ett, låt oss kalla det, block av texter. Detta textblock kan teoretiskt bli flera hundra rader långt. Säg att vi har tio divisioner i varje armé, de skulle var för sig skriva ihop en text, som när den slås ihop i ett block, består av hundra rader.

Vi kan också tänka oss att man, innan kriget med staden, bestämde sig inom det bysantinska riket för att alla meddelanden ska skickas som block av textmeddelanden och att hashen ska börja med sju nollor. Det här gör det väldigt svårt för de egna generalerna att hitta en nounce som genererar rätt hash. Det gör det också i princip omöjligt för försvararna att kunna hitta rätt nounce till sin förfalskning eftersom. det kräver så många gissningar.

Eftersom det handlar om gissningar (det går inte att räkna ut vilken nounce som är rätt) KAN fortfarande staden ha turen att gissa rätt. Men då pratar vi om en chans på flera miljarder. Eller en på tusentals miljarder beroende på hur komplicerad kryptografi man använder.

Det är nedlagt arbete som gör att kommunikation är säker och kan hållas äkta. Hela Proof of workkonceptet bygger på detta. Det kostar så mycket arbete att säkra upp att meddelandena är oförfalskade att det måste vara värt det. Endast värdefulla meddelanden kan skickas så här. Obetydliga meddelanden är helt enkelt inte värt det som du förstår…


bitcoin

Och kopplingen till Bitcoin slutligen

Hela den här serien som beskriver de bysantinska generalernas problem är egentligen en analogi till Bitcoin! Det är nämligen Proof of work och den höga eneriåtgången i form av el som gör Bitcoinnätverket säkert. Det kommer jag skriva mer om i ett senare inlägg!

De bysantiska generalernas problem

För att förstå hur unikt Bitcoin är tänker jag berätta om de bysantinska generalernas problem. Det är en fiktiv konflikt som synliggör problem med tillit. 

 

Situationen

Två allierade bysantinska arméer står på var sin sida om en stad som tillhör fienden.

City

Förutsättningen är att de två arméernas generaler inte kan kommunicera med varandra utan att skicka budbärare mellan sig och den enda vägen för budbärarna är att gå via den fientliga staden.  
Stadens försvar är ganska starkt och det krävs att båda två arméer attackerar samtidigt för att staden ska kunna erövras. Om bara en general attackerar kommer den ensamt anfallande armén tillintetgöras. Det är alltså otroligt viktigt att båda generalerna är överens vilket också kallas konsensus.

Vi för resonemanget vidare…

För att synkronisera sin attack skickar en av generalerna (general 1) budbärare till den andra generalen. I meddelandet står:

“Vi vill attackera på måndag. Är ni med på attacken?”

General nummer två behöver dock mer tid för att förbereda och skickar tillbaka ett meddelande där det står:

“Vi behöver mer tid. Vi kan attackera på onsdag istället för på måndag. Är ni med på attacken på onsdag istället?”

I den bästa av världar svarar general nummer ett att de kan och vill attackera tillsammans på onsdag. Men…

knight


Försvararna i staden känner till sin situation och letar aktivt efter generalernas budbärare för att ta dem tillfånga. Målet är att försvararna vill ersätta dem med sina egna spioner som då skulle utge sig för att vara budbärare. Dessa spioner skulle bära med sig falska meddelanden för att lura de bysantinska styrkorna.

Vi antar att budbäraren som bar det andra meddelandet fångas när han passerar genom staden. Meddelandet löd som sagt:

“Vi behöver mer tid. Vi kan attackera på onsdag istället för på måndag. Är ni med på attacken?”

Försvararna ser här en möjlighet att splittra de bysantinska styrkorna och ersätter meddelandet med följande text:

“Vi deltar i attacken på måndag!”

Meningen med detta meddelande är att lura general 1 att general 2 är redo och tänker delta i måndagsattacken. Detta är som vi vet inte sant…

En spion från staden utger sig att vara budbärare och bär med sig det falsifierade meddelande som mottas av general 1. Denne går till attack på måndagen och besegras eftersom han anfaller utan general 2 som fortfarande väntar på svar på sin fråga…

besegrad

Problemet

De bysantinska generalernas problem ligger i att de inte vet om de kan lita på att de meddelandena de får från den andre generalen är äkta.
De är dessutom tvungna att nå ett konsensusbeslut för att lyckas.

Med tanke på risken för spioner och falsifierade meddelanden måste generalerna anta att alla meddelanden de tar emot kan vara falska. Så hur ska de säkerställa att meddelandena de erhåller är äkta? Vi kan också föreställa oss att budbärarna blir mutade av stadens försvarare vilket gör att generalerna inte heller kan lita på att deras egna budbärare bär med sig äkta meddelanden.

Detta är tiotusenkronorsfrågan som kommer besvaras i nästa bloggpost…