Om du kommer från en icke-teknisk bakgrund och du läser bitcoin whitepaper för första gången, tror jag att du håller med mig om att det hela är mumbo jumbo fylld med teknisk jargong. Bara en minut senare skulle du förmodligen vara 80 % vilsen och förvirrad på sidan 2.
Jag har varit med om det och jag förstår kampen.
Därför är den här artikeln skriven för att förklara i enkla termer vad bitcoin är och hur det fungerar. Eftersom jag är en icke-teknisk person kanske det inte är helt korrekt och komplett. Men jag ska göra mitt bästa för att förklara det utifrån min egen förståelse. Formatet för den här artikeln kommer att följa det ursprungliga vitboken. För att få ut så mycket som möjligt av din läsupplevelse är det bäst att läsa den ursprungliga vitboken innan du hänvisar till den här guiden. Länken hittar du här.
I inledningen beskriver Satoshi Nakomoto hur elektroniska betalningar över gränserna mellan olika parter underlättas genom användning av finansiella mellanhänder. Detta är inget nytt för oss eftersom vi alla är bekanta med det traditionella banksystemet, remitteringsmarknader, PayPal, etc. Poängen är:Om vi vill skicka elektroniska pengar från en person till en annan måste det göras genom finansiella mellanhänder.
Den nuvarande traditionella modellen bygger på förtroende. Förtroende för banksystemet och förtroende för de finansiella institutionerna. Allt är bra, men det finns några svagheter i en sådan förtroendemodell.
För det första är irreversibla transaktioner inte möjliga. Eller ett annat sätt att se på det, transaktioner är faktiskt reversibla. Detta beror på att dessa finansiella mellanhänder hålls ansvariga för att medla i tvister och lösa eventuella fel. Föreställ dig följande scenarier:
Eftersom finansiella transaktioner faktiskt är reversibla, medför detta olika transaktions- och driftskostnader genom medling. Som ett resultat är det opraktiskt att göra mikrobetalningar. Vanligtvis skulle kreditkortsföretag införa någon form av minimiavgifter för att täcka de olika transaktionskostnaderna från utfärdande bank, betalningsbearbetningsföretag och etc. Föreställ dig dessutom att lösa eventuella tvister för mikrotransaktioner, dina vinster kommer att förvandlas till förluster på grund av alla transaktionskostnaderna.
För det andra eftersom betalningar faktiskt är reversibla. Tjänsteleverantören riskerar att tillhandahålla en oåterkallelig tjänst men inte få betalt i gengäld. Detta kan hända när köparen, som redan har förbrukat fördelarna med tjänsterna, bestämt sig för att göra något och återföra betalningen till sig själv.
För det tredje, eftersom det finns en möjlighet att betalningen inte går igenom, kanske på grund av otillräckliga KYC/AML-kontroller av kunder, skulle tjänsteleverantören tendera att krångla med mer information än vad som krävs, vilket gör intrång i datasekretess.
Alla dessa problem med avseende på en pålitlig tredje part avskräcker elektroniska transaktioner i viss utsträckning. Den föreslagna lösningen av Satoshi Nakomoto är ett peer-to-peer-system som är baserat på kryptografiska bevis snarare än på förtroendet från en centraliserad tredje part. I detta system är transaktioner oåterkalleliga. Detta kan göras genom att göra alla försök att vända transaktioner beräkningsmässigt opraktiska. Genom att göra det kan vi hjälpa till att förhindra säljare från bedrägeri eftersom betalningar inte kan återställas nu. I scenariot att köpare gjorde en betalning och säljare inte uppfyllde sina skyldigheter, kan en deposition implementeras för att skydda dem.
Det är den delen som gör mig mest förvirrad. Den fördjupar sig i det tekniska hur bitcoin-transaktioner fungerar. Det började med att definiera ett elektroniskt mynt (bitcoin) som en kedja av digitala signaturer.
Denna kedja av digitala signaturer är i grunden en reskontradatabas som är fylld med alla transaktioner från människor som skickar bitcoins till varandra. Det är i princip vad bitcoin är. Det finns inget begrepp om kroppslighet, till skillnad från guldtackor eller fiat-valutor.
Du kan inte hålla den och du kan inte se den.
När jag säger att jag har några bitcoins har jag faktiskt ingenting att visa dig. Det är bara en rad koder på reskontran som hela världen kan bevisa och verifiera att jag är den rättmätige ägaren till dessa bitcoins.
Denna reskontradatabas är distribuerad över bitcoinnoder eller datorer över hela världen. Varje gång Alice skickar Bob 5 BTC, sänds redovisningen över alla noder och alla redovisningar uppdateras samtidigt. När Bob skickar Charlie 3 BTC uppdateras den igen.
Det är därför Satoshi beskriver ett elektroniskt mynt som en kedja av digitala signaturer. För det är i princip bara signering av transaktioner på huvudboken som skickar bitcoins från en part till en annan och en annan och en annan och en annan.
Det här är en kort översikt över hur bitcointransaktioner fungerar. Bitcoin består av ingångar och utgångar. När folk skickar bitcoins till mig (det är utdata till dem och input för mig). När jag skickar bitcoins till andra (Det är input till mig och utdata för dem). Om jag vill skicka 10 BTC till dig, här är följande saker som kommer att hända.
Men det finns ett problem som kallas dubbla utgifter. Hur säkerställer vi att samma 10 BTC inte spenderas två gånger? Utan min tillåtelse kan någon bara kopiera och klistra in den digitala signaturen som jag signerade med min privata nyckel och sända den till bitcoinnoderna.
Lösningen för att lösa problemet med dubbla utgifter är genom en tidsstämpel och hash.
Den kryptografiska SHA256-hash är som en unik signatur av skrattbokstäver och siffror för en text- eller datafil. Alla minutändringar som en stor bokstav eller ett kommatecken skulle helt ändra utdatakoden. Du kan testa hur hashing fungerar här. Tidsstämpeln är datum och tid vid en viss tidpunkt.
Så hur löser tidsstämpel och hash dubbla utgifter? Föreställ dig att jag skickar 2 BTC till Alice och samma 2 BTC till min egen bitcoin-adress. Till höger ska endast den första transaktionen räknas. Varje försök att spendera samma BTC efteråt bör göras ogiltigt.
När båda transaktionerna sänds till bitcoin-nätverket, skulle det först stanna under poolen av obekräftade transaktioner och vänta på att gruvarbetarna ska komma och verifiera det. När gruvarbetare verifierade BTC-transaktionen till Alice, skulle blocket, tillsammans med alla andra transaktioner, tidsstämplas och hashas. Denna hash-utdata skulle sändas offentligt och när en blockhash genereras betyder det att alla transaktioner i blocket inte kan hända två gånger.
Denna hash-utdata skulle sändas offentligt och samma hash-utdata skulle inkluderas i nästa block. Det är här begreppet blockchain introduceras. Det betyder att om jag vill hasha block 1, skulle det inkludera poolen av transaktioner inuti block 1 OCH den tidigare hashutgången.
Utmatningshashkoden för mitt nuvarande block inkluderar den föregående hashen som en ingång. Varje block är länkat till föregående block i kronologisk ordning. När fler block tidsstämplas, hashas och länkas upp, blir nätverket mer motståndskraftigt mot alla slags skadliga attacker.
Detta beror på att för att manipulera data i ett block, kommer hela utmatningshashkoden att ändras och varje enskilt block som kommer efter det skulle bli förstört. Eftersom varje block innehåller den tidigare hashen, betyder det att om min tidigare hash har ändrats, skulle allt efteråt påverkas eftersom hash-utdatan skulle vara helt annorlunda.
Kommer du ihåg hur vi pratade om att hash fungerar? Alla ändringar av inmatningen skulle helt ändra hash-utgången.
Proof of work är ett beräkningsarbete som försöker hitta ett magiskt nonce-tal så att hela utdata-hashen uppfyller det erforderliga antalet nollor. Detta är kärnan i vad bitcoin-gruvdrift är. Varje gruvarbetare runt om i världen tävlar om att vara den första att hitta det magiska nonce-numret. Till exempel:
00000000000000000000 8e367ecc0a8c6455aa0b6e67c9fa760077b8aebed373
Gruvarbetaren måste börja med nonce 1, SHA256-hash och se om utdata-hashen matchar det nödvändiga antalet nollor framför. Om det inte gör det, skulle datorn försöka nonce 2, nonce 3 och så vidare. Det är som en brute-force-sökning för att hitta vad numret är så att när jag hash det, returnerar utdata det nödvändiga antalet nollor framför. Antalet nollor som krävs framför hashutgången representerar svårighetsgraden. Om det behövs fler nollor betyder det att det är svårare.
När hårdvaruhastigheten ökar och fler parter är intresserade av att bli en bitcoin-nod, skulle bitcoin-koden automatiskt anpassa sin svårighetsgrad så att inte för många block genereras per timme.
Om för många block genereras betyder det att det tar kortare tid att hitta det magiska nonce-numret. När det händer skulle protokollet kräva fler nollor framför för att göra pusslet svårare. Vice versa, om för få block genereras betyder det att pusslet är för svårt och antalet inledande nollor skulle minska för att göra det lättare.
I genomsnitt bör det ta cirka 10 minuter för ett block att brytas. Svårighetsgraden (antal nollor framför) skulle justeras automatiskt efter varje block 2016 (vilket är ungefär 14 dagar) . Om ett block tar 10 minuter betyder 2016 block 20 160 minuter eller 14 dagar.
Det borde bara finnas en enda blockkedja på bitcoin-nätverket och den ärliga kedjan skulle vara den längsta kedjan. Detta beror på att det är exponentiellt omöjligt och opraktiskt för en illvillig angripare att modifiera kedjan och ändå bygga den längsta kedjan.
För att illustrera, föreställ dig att det finns två kedjor nu:
Angriparen försöker redigera blockdata t.ex. genom att dubbla spendera några bitcoins. Han spenderade 10 BTC för att köpa en ny BMW. Transaktionen sänds till bitcoin-nätverket och verifieras av gruvarbetare, blocket är tidsstämplat, kedjat och så vidare.
Men på sin egen privata kedja (rödskuggad) han beslutar att inte inkludera och bekräfta transaktionerna. Därför spenderas INTE 10 BTC i den skadliga kedjan. Så dubbla utgifter uppstår när han tar emot BMW:n men ändå inte spenderade 10 BTC i sin egen privata kedja.
Lösningen på detta är att göra bitcoinprotokollet så att den längsta kedjan är den mest sanningsenliga och ärliga kedjan. Om han vill att hans egen privata kedja ska vara sanningen måste han bryta blocken mycket snabbare än den kombinerade gruvkraften från hela världen. Det är som att slåss 1 mot 100 000. Vilka är chanserna att vinna?
Därför gör detta det omöjligt för honom att dubbla spendera mynten OM han inte har fått 51% kontroll över gruvarbetarna. Detta är anledningen till att en bitcoin-transaktion tar 6 blockbekräftelser för att den ska bekräftas och verifieras. Skälet är att en angripare aldrig skulle vinna gruvracet eftersom det blir exponentiellt svårare för varje nytt block.
I det här avsnittet ger det liksom en sammanfattning av hela processen för hur en bitcoin-transaktion fungerar. Många saker som diskuteras i de tidigare avsnitten skulle vara användbara för att hjälpa en att koppla ihop punkterna och bilda en tydligare bild av stegen för att driva ett bitcoin-nätverk.
När vi skickar några bitcoins från en person till en annan kallas det en transaktion. Det finns flera transaktioner som äger rum varje sekund runt om i världen. Alla dessa transaktioner skulle sändas till noderna och slås samman till ett block. Dessa kallas obekräftade transaktioner. Så varje block innehåller flera transaktioner.
När alla transaktioner redan har fyllt upp storleksgränsen för blocket, skulle gruvarbetare börja hitta det magiska nonce-numret (Proof-of-Work) så att blockets hash ger det erforderliga antalet nollor framför. Den första gruvarbetaren som lyckades hitta den siffran har visat att tillräckliga bevis på arbete har utförts.
Den sänder den sedan till alla andra noder. Nu när alla vet vad svaret är, skulle alla noder uppdatera sin reskontra så att den representerar den senaste kedjan av poster. Hash för det aktuella blocket skulle användas som en del av ingångarna för nästa block. Så hashen för nästa block skulle innehålla den föregående hashen och alla andra transaktioner i det blocket.
Den längsta kedjan av block representerar den mest sanningsenliga kedjan. Det är möjligt att två kedjor kan uppstå samtidigt. Till exempel, en gruvarbetare i öst och en annan gruvarbetare i väst hittade det magiska noncenumret tillsammans och fortsatte att sända det. Det är bra eftersom nästa block skulle återställa tävlingen. Så småningom skulle den ena bli längre än den andra. Den kedja som är kortare skulle då ersättas av den längsta kedjan.
I det här avsnittet jämför Satoshi processen för bitcoin-brytning med guld. Tidigare måste du köpa gruvutrustning, borrar och hyra arbetskraft för att gräva och bryta guld under. Det är kostnaden. Belöningen, om du träffade en guldådra, skulle naturligtvis vara det guld som du bröt.
På samma sätt är processen för bitcoin-brytning processorkraften och elkostnaden som förbrukas. Kom ihåg att mining-CPU använder en brute-force-metod för att hitta det magiska nonce-numret? Detta tar upp enorm processorkraft och det förbrukar mycket elektricitet. Alla dessa kommer med en kostnad.
Det måste finnas en belöning för kostnaderna för att bryta bitcoins. Belöningen till guldgruvarbetare skulle vara själva guldet. Belöningarna för bitcoin-brytning skulle vara bitcoins och transaktionsavgifter. Det kommer bara att finnas 21 miljoner bitcoins i omlopp. Takgränsen förhindrar inflation och det tillåter bitcoin att behålla sitt värdeförråd.
Gruvarbetaren som lyckades hitta det magiska nonce-numret skulle belönas med bitcoins. Antalet bitcoins skulle halveras vart fjärde år. Från början var det 50, sedan 25, sedan 12,5. Från och med 2020 skulle bitcoin gå igenom ytterligare en halvering och gruvbelöningar skulle därefter minskas från 12,5 till 6,25.
Alla bitcoins skulle gradvis släppas ut i omlopp varje gång en segrande gruvarbetare hittar det magiska nonce-numret. Det beror på att det inte finns någon central myndighet för att fördela pengarna. Att använda bitcoins som belöning skulle uppmuntra gruvarbetare att driva, styra och stärka bitcoin-nätverket.
Dessutom skulle incitamenten från att tjäna bitcoins uppmuntra en angripare att spela spelet ärligt. Detta beror på att det skulle kosta massor av beräkningskraft och miljarder investeringar i CPU-gruvmaskiner att bygga en privat kedja som är längst. Dessutom skulle ett framgångsrikt genomförande av det senare få priset på bitcoin att rasa avsevärt.
Därför skulle angriparen vara bättre att använda den mängden investerad CPU-kraft för att bryta och tjäna bitcoins snarare än att orkestrera en attack med dubbla utgifter. Detta beror på att ju högre hans CPU-kraft är, desto högre är hans chanser att hitta det magiska nonce-numret och tjäna bitcoin-belöningar.
Eftersom det finns flera transaktioner i ett block skulle det ta upp mycket utrymme och begränsa antalet data som ett block kan hålla. Lösningen för detta är känd som Merkel Tree. Så istället för att lagra flera transaktioner i ett block, kan vi bara lagra en enda rothash som innehåller ett spår av alla tidigare transaktionsposter.
Kärnan i hur detta fungerar är bara hash av hash. Du kan se att Tx0 och Tx1 hashas till Hash01. Tx2 och Tx3 hashas till Hash23. Både Hash01 och Hash23 kombineras och hashas för att bilda rothash. På så sätt är förbrukade transaktioner som grenar av träden som stuvas av.
Förenklad betalningsverifiering eller SPV-noder är lättviktsklienter som inte kräver att användaren laddar ner en hel historia av bitcointransaktioner från Genesis. Det finns miljontals transaktioner som har inträffat i reskontran och det skulle ta väldigt lång tid om vi skulle ladda ner allt.
Lösningen är bara att behålla en kopia av blockhuvudena för den längsta kedjan. Denna blockrubrik är hash-utgången för ett visst block. Det är en 80-byte lång sträng som innehåller bitcoinversionsnumret, Merkle-trädets rot, tidigare blockhash, svårighetsmål och det magiska nonce-numret. Detta är saker som har diskuterats tidigare i den här artikeln. Denna blockrubrik är som en unik identifierare för ett visst block i blockkedjan.
Begreppet förenklad betalningsverifiering innebär att en viss transaktion kan verifieras utan att man behöver känna till alla andra transaktioner som inträffat i blocket.
För att illustrera:
Anta att vi vill veta om transaktion K är giltig. Hashen för transaktion K är HK (grönt skuggat) som visas i diagrammet på nedre raden.
Om vi fortsätter att hasha HK med alla andra hashar (blå skugga) och det leder så småningom till rothash (HABCDEFGHIJKLMNOP) under Merkle-trädet, då kan vi vara säkra på att transaktion K verkligen är inkluderad och verifierad i detta block. Så om transaktionshashen pekar på Merkles rothash och huvudblocket ingår i blockkedjan, kan transaktionen sägas vara verifierad och bekräftad.
Detta är en annan viktig del av hur en bitcoin-transaktion fungerar. I grund och botten säger det att det skulle vara besvärligt att göra flera transaktioner. Låt oss säga att priset på en fastighet är 10 BTC. Det skulle vara besvärligt att skicka flera separata transaktioner.
Föreställ dig att det krävs tre transaktioner för att göra en betalning. Den första transaktionen på 4 BTC, den andra transaktionen på 5 BTC och den tredje transaktionen på 1 BTC. Detta skulle sända tre separata transaktioner och gruvarbetare måste ta tid att beräkna och lösa det magiska nonce-numret.
Lösningen på detta är att tillåta flera ingångar och en eller maximalt två utgångar. Så i ovanstående fall skulle det finnas tre ingångar (4 BTC, 5 BTC och 1 BTC) och en utgång 10 BTC till fastighetssäljaren.
Men vad händer om jag har udda nummer som 3 BTC, 9 BTC och 5 BTC? Det är här två utgångar kommer in. En till säljaren och en annan utdata som byte tillbaka till dig själv. Så ingångarna skulle vara 9 BTC och 3 BTC. Utgångarna skulle vara 10 BTC till fastighetssäljaren och 2 BTC tillbaka till din egen bitcoin-adress.
Därför kan det finnas flera ingångar i bitcoin men bara en eller maximalt två utgångar för att ändra tillbaka till dig själv. Närhelst du vill skicka bitcoins till någon annan, skulle det samla alla utdata av bitcoin som andra har skickat till dig. Kom ihåg att när andra skickar bitcoin till dig, skickas det till dem och inmatas till dig. När du skickar bitcoin till andra blir dessa utdata indata och mina utdata till den andra personen blir hans eller hennes input.
Den traditionella bankmodellen skyddar användarnas integritet genom att begränsa informationen till motparten. Men vi vet att det inte alltid är fallet i modern tid. Det har varit frekventa nyheter om stora multinationella företag som blivit hackade och kunddata läckt ut.
Även om bitcoin-transaktioner är offentliga för alla. En viss grad av integritet upprätthålls fortfarande på individnivå eftersom det hela bara är skrattkoder och siffror. Låt oss till exempel ta de senaste transaktionerna som inträffade på bitcoin-nätverket den 4 september.
Det är en transaktion på 53 bitcoins eller 563 625 USD som precis hände klockan 19.39. Vad vet vi om den här personen? Den enda information som är tillgänglig för oss är hans offentliga bitcoin-adress. Identiteten är okänd och denna persons integritet bibehålls även om alla bitcoin-transaktioner är offentligt tillgängliga.
Det finns dock fortfarande en möjlighet att koppla samma offentliga adress till en viss person. Satoshi råder en att använda olika nyckelpar för varje transaktion. Föreställ dig denna bitcoin-adress:38vjCt6KppEHhQcU6cY8fzxEWYJZwQwpwR är mitt konto.
Jag använder denna bitcoin-adress för att skicka flera transaktioner till parten Alice, Bob, Charlie och så vidare. Om regeringen startar en KYC-kontroll och avslöjar identiteten på personen bakom 38vjCt6KppEHhQcU6cY8fzxEWYJZwQwpwR, så kan alla andra transaktioner jag har gjort spåras tillbaka till mig.
Det här är den statistiska matematikens del som jag inte förstår. Om du frågar mig vad ekvationerna och formlerna betyder så har jag noll ledtrådar om det. Det finns dock bara två huvudpunkter i detta avsnitt.
Den första är att vad en angripare kan göra är begränsat. Han kan inte skapa nya bitcoins ur tomma intet och inte heller kan han göra bitcoinbetalningar från någon till sig själv. Detta är bortom bitcoin-protokollstandarderna. Det enda han kan göra är att redigera sin egen transaktion genom att exkludera den i ett block för att återföra betalningen. Detta kallas problemet med dubbla utgifter.
Det andra är att det är omöjligt för en angripare att vinna loppet att bryta bitcoin snabbare än de kollektiva ärliga noderna. Chanserna att vinna blir exponentiellt små när antalet bekräftade block ökade och kedjades ihop en efter en.
För att ge ett sammanhang av oddsen för att lösa det magiska nonce-numret i bitcoin-nätverket, låt oss ta den totala hashhastigheten för bitcoin.
Den totala hashhastigheten är cirka 88 000 TH/s den 19 september. Kommer du ihåg att varje block hashas efter att det magiska nonce-numret har hittats? Hashhastigheten är ett mått på den allmänna bearbetningshastigheten för att hitta det magiska nonce-numret. Hashhastighet är antalet beräkningar som en given hårdvara eller nätverk kan utföra.
Låt oss säga att vi köpte 100 av dessa ASIC bitcoin gruvmaskiner för $30 000. Min mini bitcoin gruvfarm skulle generera en hash-kraft på 140 TH/s. Om vi tar den totala bitcoin-hashhastigheten delat med min minibitcoin-gruvfarm (88 000 / 140) skulle det vara cirka 630.
Det betyder att chansen att jag hittar det magiska nonce-numret för ett block är 1/630 eller 0,001. 630 block måste komma efter mig innan jag framgångsrikt kan bryta mitt första block. Låt oss säga att jag är en angripare och jag vill bygga en kedja som är längre än den ärliga kedjan, jag måste länka ihop 6 blockbekräftelser snabbare än dem. Så min sannolikhet skulle vara 0,001 i makten 6. Det är statistiskt, matematiskt och astronomiskt omöjligt.
Sammanfattningsvis är bitcoin en föreslagen lösning för digitala pengar utan att behöva lita på en tredje part eller central myndighet. Den är baserad på kryptografiskt bevis, gruvdrift, distribuerat nätverk av ärliga noder och en gemensam redovisning som uppdateras samtidigt för varje bekräftat block.
Vi började med konceptet digitala signaturer. En digital signatur genereras när jag signerar med min privata nyckel för att bevisa att jag äger bitcoins och jag initierade transaktionen för att skicka bitcoins till en annan person. Detta ger äganderätt till vem som äger bitcoins vid en viss tidpunkt. Det finns dock ett problem med dubbla utgifter. Om jag undertecknar transaktionen och skickar bitcoins för att köpa en fastighet, men ändå bestämde jag mig för att utesluta transaktionen i min privata blockchain.
Lösningen för att förhindra en sådan händelse är genom tidsstämpling, hashning av blocken och inkludering av den tidigare hashen av ett block som indata. Detta gör det praktiskt taget omöjligt för en angripare att genomföra en sådan attack eftersom han måste vinna gruvracet mot alla ärliga noder.
Bitcoin-nätverket drivs inte av någon. Det finns inget servicestöd och inget politiskt parti bakom bitcoin. Vem som helst kan gå med och lämna när som helst. Den längsta kedjan skulle tas som sanningens singularitet för hela historien om transaktioner som har ägt rum.
Det markerar slutet på bitcoin-vitboken. Det är med förhoppningar som denna kommenterade version hjälper dig att bättre förstå vad bitcoin är och hur bitcointransaktioner fungerar.
Redaktörens anteckningar :Ja det var en stor bit! Materiellt sett borde förståelsen av detta whitepaper ge dig en viss förmåga att gå vidare om hur du investerar och skördar fördelarna med bitcoin.
Om du förblir osäker, kör Christopher Long en masterclass, gratis. Om du vill ha en guide, eller till och med bara prata med en expert inom bitcoin/alternativa tillgångsinvesteringsvärlden, kan du börja härifrån. Jag råder dig starkt att ta chansen och välja hans hjärna.
Artikel bidragit av De antika babylonierna
Facebook: https://www.facebook.com/thebabylonianss/
Webbplats: https://www.theancientbabylonians.com/