blockchain

Bitcoin Basics: Blockchain, Hashing & Mining ... oh my!

Vi fortsätter att damma av arkiven med den här biten från Daz Bea, publicerades först på Medium i juli 2021. Vissa mindre redigeringar har gjorts för att underlätta tydligheten...njut.

Kanske är du ny på bitcoin, eller så har du varit nere i kaninhålet ett tag men aldrig riktigt förstått exakt vad som händer bakom kulisserna, på blockkedjan. Jag hoppas kunna avslöja mysteriet bakom blockchain, hashing, bitcoin mining och distribuerade ledgers allt i en enkel artikel. Spänn fast dig, vi har mycket att ta oss igenom.

SHA256 Hashing

Bitcoin-nätverket använder SHA256-algoritmen för att utföra hashfunktioner. Redan förvirrad? Oroa dig inte, det här kan vara mycket komplicerat och långt över min lönegrad, men jag ska förklara grunderna så gott jag kan.

Tänk på hash som att skapa ett digitalt fingeravtryck av en uppsättning data. Data går in i algoritmen (inmatningen), algoritmen gör sin magi och spottar ut en serie alfanumeriska tecken (utgången). Det som är riktigt coolt med hashing är att det inte spelar någon roll hur mycket data du kör genom algoritmen, utdata är alltid lika långa, 64 hexadecimala tecken för SHA256-algoritmen.

Figur 1 visar SHA256-hashfunktionen (vi kommer att hänvisa till detta som hash härifrån) med namnet "Daz". "Daz" är ingången och 3445748836aa04e53fd5de81c41c4a370f0cf52004659abf87920abc0da1bbaf är utgången...
Enkelt, eller hur?

figur 1
Figur 1. Hash för namnet "Daz"

Nu ska jag ändra versalet "D" till ett gement "d" (Figur 2) för att visa att en enkel, liten ändring av inmatningen resulterar i en helt ny utgång. Input=daz, output = ae5e9de1ed5510933a86705cb253b3cbd0b0891e70217c7a64603869aeaac093. Som du kan se från vår nya produktion, jämfört med originalet, är karaktärerna helt annorlunda. Det finns inget märkbart mönster mellan de två.

skärmdump 2023 07 15 kl. 10.22.51
Figur 2. Hash för namnet "daz" med liten bokstav "d"

Som nämnts tidigare är den resulterande hashen 64 tecken lång. Så är det alltid, oavsett storleken på data som vi placerar i algoritmen. I figur 3 klistrar jag in en hel Wikipedia-artikel om Fender Stratocasters i ingången, utgången förblir 64 tecken lång. Denna funktion skulle förbli sann om du skulle lägga hela innehållet på internet genom algoritmen, 64 tecken varje gång.

fenderhash
Figur 3. Hash av en Wikipedia-artikel om Fender Stratocasters (källa: https://en.wikipedia.org/wiki/Fender_Stratocaster)

En funktion med SHA256-hashfunktionen är att om vi skulle hasha om exakt samma datauppsättning, skulle vi få samma hash av den datan varje gång. Detta är något som används ofta över hela världen för att jämföra ett antal stora datamängder för att säkerställa deras noggrannhet. Att jämföra hash-output är lättare än att jämföra hela innehållet tecken för tecken. Denna funktion är det som ligger till grund för bitcoin blockchain. Låt oss dyka in i nästa pusselbit... Blocks.

Block och gruvdrift

Vi kan använda SHA256-hashfunktionen för att börja bygga block av data. För varje block har vi ingången (uppsättningen av data), och vi lägger till några särskiljande egenskaper till den datan som ett blocknummer, som ett exempel. Och vi kör det genom hashfunktionen.

I figur 4 kan vi se att vi har några datafält som block #, en nonce (vi kommer att prata om detta snart), och för tillfället är vårt datafält tomt. Hash för dessa inkluderande datafält är: 0000f727854b50bb95c054b39c1fe5c92e5ebcfa4bcb5dc279f56aa96a365e5a

block 1 hash
Figur 4. Blockexempel 1

Du kommer att märka en utmärkande egenskap hos denna hash, lägg märke till att de fyra ledande karaktärerna alla är 4:or. Det här är ingen tillfällighet. Du förstår, utdata-hash för SHA0-algoritmen är faktiskt ett mycket stort antal. I vardagen är vi vana vid att använda ett talsystem som kallas bas256. Det betyder att vårt nummersystem är ett system baserat på siffrorna från 10 till 0.

Det finns flera olika nummersystem, särskilt inom datavetenskap. Base2 är ett annat vanligt numreringssystem, du kanske är mer bekant med termen binär. Bas 2 eller binärt är ett talsystem som vanligtvis används för basstrukturen för datorsystem som består av siffrorna 0 och 1.

Bitcoin SHA256-algoritmens utdata är i Base16, även känd som hexadecimal. Bas 16 använder helt enkelt talsystemet base10 från 0 till 9, och utökar detta talsystem med bokstäverna a genom att f med små bokstäver för att skapa ett ekvivalent talsystem med värden från 0 till 15 som illustreras i tabell 1.

figure2.26
Tabell 1: Bas 16 (hexadecimalt) numreringssystem.

Varför använda base16? Vi använder helt enkelt bas 16 för korthetens skull. Ett sätt att representera extremt stora siffror och samtidigt minska den totala mängden tecken.

Låt oss nu introducera 2 nya termer relaterade till bitcoin mining. Svårighet och mål. Svårighetsgrad och mål är sätt som bitcoinprotokollet styr hur svårt det är att hitta block. Jag berör detta till viss del i en av mina tidigare artiklar om Svårighetsjustering, det kan du läsa här..

För nu, helt enkelt förstå att programmet vi använder för denna demonstration har en fix "mål" för att få utdata-hashen att fungera under ett visst målnummer, vilket gör det svårare att hitta. För bitcoin-protokollet mål justeras varannan vecka för att reglera en genomsnittlig blockeringshastighet på 2 x block var 1:e minut, eftersom mer beräkningskraft kastas på Bitcoin-nätverket, blocken löses snabbare, protokollet ser bakåt till de tidigare 10-blocken och justerar svårigheten att bryta block genom att sänka målvärdet, vilket gör det svårare att hitta.

Vi kommer inte att fördjupa oss i detta i den här artikeln, vi kommer att spara det till en annan gång. Idag kommer vi att fokusera mer på nonce och hur man bygger en blockchain.

Tillbaka till vårt exempel i Figur 4. Låt oss nu lägga till lite data till detta block. Jag lägger till frasen "Hej världen". När jag har lagt till dessa data kommer du att märka att bakgrunden har blivit röd (Figur 5), programmet är inte nöjd med vårt block nu. Kom ihåg från figur 4 att hashen för denna uppsättning data började med 4 x ledande nollor. Det här programmet som jag kör kräver att hashen alltid måste vara under ett målvärde med utgångshashen som börjar med 0 ledande 4 -talet, det numret i sin fulla bas0 -form är: 16ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

hej världen block 1
Figur 5. En förändring i data har ogiltigförklarat blocket.

När jag ändrade data genom att lägga till "Hello World" gav SHA256-algoritmen en ny hash, och som vi kan se börjar min nya hash inte med 4 inledande nollor, utmatningshashen ligger över vårt målvärde och är således ogiltig.

Det finns en grundläggande sanning för SHA256-algoritmer, i det där existerar en uppsättning data, som en gång inkluderades i kombination med mina andra data i blocket, som skulle resultera i en utdata-hash under mitt målnummer. Det kan verkligen finnas mer än ett svar, i själva verket kommer det sannolikt att finnas många. Svårigheten (pun intended) är dock vilken data kan det vara för att tillfredsställa problemet?

Det är där den nonce spelar in. Om vi ​​bryter ner min datamängd inom blocket har vi blocknumret (1) och data (Hello World) och ett extra fält som kallas nonce (för närvarande med ett värde på: 72608). Tänk om det fanns en uppsättning data som jag skulle kunna inkludera som nonce-värde, som en gång lagts till resten av datan skulle resultera i en hash som uppfyllde mitt programs krav på att utdatahashen skulle resultera i ett tal mindre än 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Det vackra med krytografi är att detta inte kan beräknas manuellt. Mitt enda alternativ är att försöka godtyckligt gissa vad den informationen kan vara. Jag kan ändra nonce-värdet till 1? Eller ändra till 2? eller jag kan prova 2456395697 eller 45628496902074?…….. Jag kanske är här ett tag.

Eller så kan vi använda kraften i min dator. Vi kan använda datorns förmåga att snabbt bearbeta information för att börja gissa vilka data vi kan inkludera i fältet "nonce", som en gång körs genom hash -funktionen, skulle resultera i en utgångshash under 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff.

Om jag trycker på "Min" i mitt program kommer min dator att börja gissa värden för nonce, det finns inget annat sätt att beräkna detta värde förutom att gissa och kontrollera, gissa och kontrollera, tills vi hittar ett nonce-värde som ger en utdata nedan vårt målvärde.

När en lösning har hittats kontrollerar programmet resultatet och blocket blir grönt igen. Det är lyckligt. Denna process kan ta lite tid beroende på hur svårt det är att hitta en datamängd som matchar. Detta kallas i enkla termer brytning. Vi "gräver" genom kombinationer av data för att hitta en lösning på ett matematiskt problem. Vi försöker hitta ett värde på nonce, att när de är tillsammans med våra data producerar ett förutbestämt krav (i vårt fall en utgång hash under det bas16 numeriska värdet på 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff). Figur 6 visar hur det här ser ut för vårt exempel, det tog cirka 3 sekunder att slutföra på min stationära dator. Nonce var numret 24894.

hej världen minerade
Figur 6. Mining en ny nonce för att uppfylla en hashfunktion med 4 x inledande nollor.

grattis! Vi har brutit vårt första block.

Blockchain

En blockkedja är…….vänta på den…….en kedja av block. Det är en kedja av block, precis som det första blocket vi bröt ovan, men med vissa skillnader.

En uppsättning data läggs in i block 1, vi bryter det blocket för att upptäcka det som inte uppfyller svårighetskravet (en utdata-hash under målvärdet). Detta producerar en hash och vår blockering är klar. Vi skapar sedan ett nytt block. Vi kommer att inkludera ett nytt datafält i detta nya block. Ett datafält där vi inkluderar output hash av förfarandeblocket som indata in i det nya blocket.

Vi kan se in Figur 7, att vi har en kedja av 2 block. Det första blocket är en kopia av våra exempel ovan, men vi har ett nytt fält märkt "Föregående" innehåller nya uppgifter. Block 1 är vårt genesisblock, det innehåller godtycklig information i föregående fält. Blocket mineras och vår hash av denna data erhålls.

I block 2 inkluderar vi utdata-hash från block 1 som indata till vårt nya block. Vi placerar dessa uppgifter i fältet "Föregående". Vi lägger till de nya data som vi vill ska inkluderas i det andra blocket och vi bryter det blocket. Båda våra block är nöjda.

blockchain x2 block
Figur 7. Att bygga en blockkedja. Utdata-hash från block 1 läggs till i fältet "Prev" i Block 2.

Låt oss nu gå tillbaka och ändra något i block 1. Jag kommer att lägga till ett punkt "." till datan. Vi kan se nu i figur 8 att hela blockkedjan inte är nöjd. Båda blocken är röda. Jag har ändrat data och brutit kedjan. Block 1:s hash är inte längre under målvärdet. Lägger till punkten "." till uppgifterna har resulterat i en ny hash med ett värde över vårt målvärde på 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, och är därför inte kompatibelt med programmets krav. Men utgången från block 1 är också en ingång till block 2, vilket också ogiltigförklarar hashen i block 2. Vi har brutit kedjan.

blockchain lägga till punkt
Figur 8. En förändring i Block 1 har brutit kedjan.

Återutvinning av block 1 har löst programmet för block 1, men återigen, data har ändrats i block 2 på grund av förändringen i den nya utmatningshash från block 1, den är fortfarande inte nöjd (Figur 9).

lägg till punkt min 1
Figur 9. Vi gruvade om block 1, men block 2 är fortfarande inte nöjd.

Vi måste nu också bryta om block 2 för att säkerställa att det uppfyller svårighetskravet. Figur 10 visar att vi återigen har 2 x glada block när vi väl har gjort om arbete för de 2 blocken. "Arbete" är en term för att beskriva den beräkningskraft vi utövade genom gruvprocessen. Du kanske har hört termen Bevis på arbete innan som hänför sig till detta koncept att säkra bitcoin blockchain genom processen med energiförbrukning ... arbetet.

lägg till punkt min 2
Figur 10. Återminera block 1 och sedan 2. Programmet är nöjd igen.

Notera behovet av att bryta blocken i ordning. Att återbryta block 2 innan vi uppfyllde det arbete som krävs för block 1 skulle resultera i att vi skulle behöva bryta om block 2 igen.

Vi har nu grunden för vår blockkedja, ett 3:e sedan 4:e block kan läggas till, mining varje block med de nya indata, med utdata-hash från block 2 som leder till ingången av block 3, och utdata från block 3 leder till ingången av block 4 och så vidare och så vidare.

Om vår blockkedja är 4 block lång nu, och vi igen försöker ändra data i block 1. Det kommer att ogiltigförklara hela kedjan. Vi skulle då behöva bryta om block 1, sedan block 2, sedan block 3... ser du vart jag är på väg med detta?

Vi har nu en god förståelse för en blockkedja och de delar som måste gå ihop för att skapa kedjan. Låt oss nu utöka detta tänkande och titta på en distribuerad blockkedja.

Distribuerad Blockchain och Consensus

En av de vackra sakerna med bitcoin blockchain är den distribuerade huvudboken. Vi kommer snart till "reskontra"-sidan, för nu, låt oss helt enkelt titta på en distribuerad blockkedja för att förstå konceptet.

Låt oss säga att jag hade en blockchain, som innehöll en serie block, där varje block innehöll lite data. Denna data har hashas och kedjats samman som vi har sett ovan för att bilda en blockkedja. Jag har en kopia av denna blockchain på min dator. Tänk om det fanns ett behov av att jämföra anteckningar med någon annan? Tänk om integriteten hos denna data var väldigt viktig för mig och jag ville säkerställa att den inte hade manipulerats? Tänk om jag ville vara säker på att den information jag hade var en sann och korrekt version av den dataserien? Det skulle vara praktiskt om det fanns en exakt kopia av denna blockchain för mig att jämföra min version med…. Höger?

Det är här skönheten med den distribuerade blockkedjan kommer in i bilden. Tänk om jag gav någon annan en kopia av min blockchain så att jag kunde gå och jämföra anteckningar när som helst. Tänk om jag skrev ett program som skulle göra det åt mig automatiskt. Den kunde kontinuerligt jämföra min uppsättning data med mina vänner och flagga eventuella avvikelser.

För att ge ett nedskalat exempel. Säg att jag hade en blockchain, bara 3 block lång som innehöll några riktigt viktiga data som jag arbetade med. Jag skulle kunna säkra denna data i en distribuerad blockkedja genom att hålla en kopia hemma (Figur 11 — Peer A) och ge någon annan en kopia av den eller helt enkelt behålla en kopia på min dator på kontoret (Figur 11 — Peer B).

fördelade 1.
Figur 11. Exempel på distribuerad blockkedja — Peer A är hemmet och Peer B är kontoret.

Om jag lämnade min dator på och olåst, och någon ondsint skådespelare (de finns överallt) kommer och ändrar data i block 2 (kan du se skillnaderna?). De skulle kunna bryta om varje block från 2 till 4 så min kopia av blockkedjan ser OK ut när det gäller kedjan och hashfunktionerna för varje block. Men när jag kommer tillbaka till mitt distribuerade blockchain-program flaggar det att min version av sanningen skiljer sig från den på min kontorsdator? En snabb jämförelse visar att hashningen verkligen har ändrats hela vägen tillbaka från block 2 till block 4. (Figur 12). Båda kedjorna ser ok ut på egen hand, de är båda gröna, men mitt datorprogram som jämför varje distribuerad version, flaggade för avvikelsen mellan hasharna och gjorde mig uppmärksam på att de inte stämmer överens.

fördelade 2
Figur 12. Data har ändrats i block 2 i Peer A:s blockkedja, blocken gruvor på nytt. Hasharna från block 2 är nu annorlunda.

Men vilken version är korrekt? Det är omöjligt att säga om jag inte visste vilken specifik version angriparen hade ändrat.

Då vore det självklart att det skulle vara praktiskt om jag hade ännu en version att jämföra med. Jag kommer att ha en kopia hemma (Figur 13a — Peer A), en kopia på kontoret (Figur 13b — Peer B) och en annan kopia hemma hos min svärmors (Figur 13c — Peer C).

konsensus peer a
Figur 13a — Peer A:s version av blockkedjan

konsensus peer b
Figur 13b — Peer B:s version av blockkedjan

konsensus peer c
Figur 13c — Peer C:s version av blockkedjan

Nu slår den skändliga skådespelaren till igen, de ändrar data på min hem-PC-version igen och bryter om alla block hemma. Men nu har jag en konsensusmekanism för att jämföra versioner. Jag har ett röstsystem. Jag har 3 kopior av sanningen. Peer A (Figur 14a) säger en sak för mig och de andra 2 (Figur 14b) är överens om en annan version av sanningen.

ingen konsensus peer a
Figur 14a — Peer A:s version (ändring gjord till block 2)

ingen konsensus peer b&c
Figur 14b — Peer B och Peer C är i samförstånd.

Jag kan sätta en nivå av förtroende för denna konsensus genom att anta att den skändliga skådespelaren inte skulle ha kunnat:

  1. Känna till den fysiska platsen för mina blockkedjor
  2. Kunna bryta sig in, ändra data och bryta om 2 av de 3 uppsättningarna i denna blockkedja.

Även om scenariot ovan är möjligt, är det inte särskilt troligt.

Jag kan alltså bortse från min hemversion, säkerhetskopiera denna version med versionerna från mitt kontor och svärmors version, och vara säker på att jag har återställt DEN KORRETA versionen av sanningen. Tack gode gud för svärmor och blockchain-teknik.

Föreställ dig nu att jag hade 10-tals tusentals datorer (noder), slumpmässigt fördelade över hela världen, som körde denna blockkedja (den data är trots allt ganska speciell för mig). Den dåliga skådespelaren skulle behöva spåra upp mer än 50 % av dessa noder och ändra varje version av dem för att tvivla på vilken version av kedjan som var sanningen. Detta är högst osannolikt, för att inte säga omöjligt. Det är precis så här bitcoin blockchain fungerar. Ett nätverk av slumpmässigt fördelade noder, som drivs av vanliga människor, på mjukvara på sina datorer eller små billiga dedikerade hårdvaruenheter, som lagrar en version av sanningen och håller varandra ärliga. Det är detta som gör bitcoin decentraliserad och förtroendelös. Det finns ingen part som kontrollerar blockkedjan, den drivs av deltagarnas community.

Men Daz, hur är det med bitcoin själv? Hur är det med mynten? Hur är det med Ledger?

Bitcoins och Ledger

Från den kunskap vi byggt upp om blockchain hittills är det lika enkelt att förstå redovisningen som att kunna formatera datamängden vi har lekt med. Hittills har vi lekt med ett textfält. Och lika viktig som informationen är att "Daz är ganska rad", visar det sig att ingen annan bryr sig.

Men vad som skulle vara användbart är om vi använde "datafältet" för att börja registrera något användbart som transaktioner. Låt oss föreställa oss att vi nu har en blockkedja fördelad på många noder, men vi kommer bara att titta på Peers A & B för att få idén, men i verkligheten finns det tusentals noder som kör samma blockchain. I vårt exempel har vi ersatt datafritextfältet med en serie transaktionsfält. Figur 15 visar block 4 & 5 från Peer A och Peer B och vi kan se att det finns en serie transaktionsdata nu inom varje block.

huvudbok 1
Figur 15 — Peer A och Peer B med transaktionsdata inom en blockkedja.

I block 4 kan vi se att ett belopp på $62.19 skickades från någon som heter Rick till någon som heter Isla. Detta var en transaktion bland 5 totala transaktioner som ingick i det blocket. Datablocket hashas och mineras precis som vi har sett tidigare.

Vår skändliga skådespelare slår till igen, han heter Sam och han fick 97.13 dollar av Rick. Sam kan lite kodning och bestämmer sig för att han vill stjäla några $$ från Rick, han bestämmer sig för att ändra sin version av sanningen och ändrar transaktionsbeloppet till $97,000.13 16. Han minar om sin version (Figur XNUMX), men den är värdelös. Den stora mängden noder på nätverket ser att detta är en version av sanningen som inte är överens med majoriteten, denna version förkastas av nätverket. Bra försök Sam.

sam vs rick
Figur 16. Sam försöker lura Rick genom att ändra transaktionsbeloppet. Detta avvisas av konsensusnätverket.

Vi kan se en hel hög av transaktioner mellan parter, men hur vet vi att Rick hade 97.13 dollar att spendera från första början?

Coinbase — The Genesis Block

Om du har varit bland bitcoin-gemenskapen ett tag har du utan tvekan hört talas om det ökända genesis-blocket. Satoshi Nakamoto, (Bitcoins ökända, pseudonyma skapare), bröt det första blocket som innehöll en blockbelöning på 50 Bitcoin. Blockbelöningar utgör myntbasen för bitcoin, med andra ord, för att spendera mynt måste de först sättas i omlopp. Bitcoin Genesis-blocket räknades faktiskt som block "0" och de första 50 bitcoin var faktiskt icke-utgiftsbara, men från block 1 och framåt bildade de myntbasen.

Mynt introduceras med varje block på ett hårt kontrollerat releaseschema. Detta releaseschema är 1 block ungefär var 10:e minut. För varje 210,000 2021:e block halveras blockbelöningen. När detta skrivs i juli 6.25 är blockbelöningen 10 BTC var 18.7:e minut. Det finns för närvarande 21 miljoner dollar bitcoin i omlopp, med den sista 2140 miljonte bitcoin som beräknas utvinnas år XNUMX.

Blocket 1 etablerade den initiala myntbasen, efterföljande brytning av ytterligare block expanderar på myntbasen genom blockbelöningarna. När jag tittar på vårt exempel börjar jag med block nummer 1, detta bildar min myntbas.

Om vi ​​tittar på vårt blockchain-exempel (Figur 17) kan vi se att jag belönade mig själv 100 $ i vårt första block. Dels för att jag är en bra kille och dels för att jag råkar vara den som bröt det första blocket. När vi flyttar till Block 2 börjar jag spendera mina mynt.

Programmet kommer alltid att kontrollera att mina transaktionsutdata (mynten jag spenderar) inte överstiger mitt saldo i myntbasen. Jag inkluderar transaktionsdata i block 2 och jag bryter det blocket också, jag belönas med fler mynt som blockbelöning för Block 2.

Härifrån fortsätter blockkedjan att bygga och behåller en distribuerad kopia av huvudboken bland noderna och dessa noder upprätthåller reglerna som bestäms av programmet. Block 3 ingår med fler transaktioner när andra användare börjar handla. Lucas bryter också, löser svårighetspusslet för block 3 och han belönas med blockbelöningen för det blocket. Och på och på kedjan växer.

myntbas 1
Figur 17. En myntbas läggs nu till blockkedjan

Som är konsekvent, om data ändras, till och med min enkla karaktär, oavsett om det är i själva hash-utgångarna eller transaktionsdata, om någons kedja inte är konsensus med majoriteten, avvisas den helt enkelt.

När det gäller saldo, om jag försöker spendera mer än mitt saldo, kommer nätverket att avvisa transaktionen. I vårt tidigare exempel där Sam försökte ändra hur mycket Rick skickade honom, finns det ett annat säkerhetslager inbyggt som kallas offentlig och privat nyckelkryptering, vilket kommer att bli föremål för nästa artikel. Det är faktiskt omöjligt för Sam att redigera det här inlägget om han inte också har Ricks privata nyckel.

Om jag försöker ändra historiken kommer nätverket att avvisa historiken genom att jämföra hasharna för varje block. Noderna är källan till sanningen och håller alla ärliga.

Gruvarbetarna kastar beräkningskraft på att lösa kryptografiska pussel för varje block, de belönas med blockbelöningen för sina ansträngningar. Gruvdrift är en nödvändig funktion av bitcoin blockchain, utan gruvdrift finns det inget värde och ingen säkerhet.

Gruvarbetare måste spendera energi för att lösa blocken, detta är ett riktigt underskattat inslag i Bitcoins säkerhet. Genom hela den här artikeln har vi pratat utförligt om gruvdrift och remining block där förändringar görs. Det som verkligen är viktigt att notera är den enorma mängden beräkningskraft som kastas på Bitcoin-protokollet varje minut varje dag. Om detta enormt enorma nätverk tog 10 minuter att hitta det sista blocket, hur lång tid skulle det ta för en dålig skådespelare, som agerar ensam, att hitta en alternativ nonce för att bryta ett block på egen hand, för att ändra data inom. Hur mycket energi skulle en nationalstat behöva fånga för att förändra historien om Bitcoin-blockkedjan? Och, i kombination med den tidigare punkten om offentliga och privata nycklar som skyddar huvudboken, är det enda som den dåliga skådespelaren skulle kunna uppnå en dubbel konsumtion av mynten de redan har i besittning, och de måste ha mer beräkningskraft med den tillgängliga energin för att konkurrera ut hela resten av nätverket. Detta är praktiskt taget omöjligt.

Detta hjälper också till att förklara varför Bitcoin är den enda digitala tillgången värd att ge din tid till, den vinner bara när det gäller nätverkseffekter. Jämför hashhastigheten för Bitcoin vs alla andra protokoll och de bleknar i jämförelse.

För ytterligare exempel på alla dessa funktioner rekommenderar vi starkt att du läser vår bok B är för Bitcoin, tillgängligt via Amazon. Vi tar dig igenom allt detta och mycket, mycket mer, för en djupgående men lättillgänglig introduktion till allt du behöver veta om Bitcoin.

Slutsats

Vad vi har täckt här är en förenklad version av exakt hur bitcoin-nätverket fungerar. Distribuerade ledger, hashing, blockchains, noder och gruvarbetare som arbetar i harmoni för att tillhandahålla ett helt tillitslöst, censurmotstånd, öppen källkod, öppen ledger, öppet monetärt nätverk. Ingen kan ändra huvudboken, ingen kan stoppa transaktioner, ingen kan vända transaktioner och ingen kan dubbelspendera sina mynt. Det är inget mindre än briljant och revolutionerar fullständigt den globala finansen.

Den fullständiga historiken för transaktioner är tillgänglig för alla att förhöra och verifiera. Uppenbarligen, till skillnad från våra exempel här idag, visar bitcoin blockchain inte identiteten på de personer som gör transaktioner, bara deras adresser. Adresser kommer att bli föremål för nästa artikel, det är ett för stort ämne för att ta upp idag.

I den här artikeln använde jag den otroligt interaktiva plattformen byggd av Anders Brownworth som undervisade i blockchain på MIT. Besök här., gå och spela en pjäs och få en djupare förståelse för begreppen vi behandlade i den här artikeln, du kommer att få en mycket djupare förståelse om du leker med det hela. Anders har också en mycket bra videohandledning med detta innehåll också för att hjälpa till att cementera inlärningen.

När det gäller bitcoin-adoption, om du läser detta, är du redan före flocken när det gäller bitcoin-adoption. Institutionell adoption kommer och kommer snabbt, vi har fortfarande tid att gå i front för de stora pojkarna. Från mina artiklar försöker jag hjälpa Average Joe att utbilda sig om denna teknik så att vi kan dra nytta av den. Vi kommer att gynnas mest, killarna i skyttegravarna, som kämpar för lönerna. Börja dollar-kostnadsgenomsnittliga till bitcoin, köp lite varje dag/varje vecka. Behandla bitcoin som ditt sparkonto och rid vågen upp, det är de svåraste pengarna som någonsin funnits och de växer exponentiellt varje dag. (Inte endast ekonomisk rådgivning, utbildning och underhållning)

Happy Stacking, tack för att du läser

Daz Bea
Twitter @dazbea

Rekommenderad läsning:
B är för Bitcoin
"Bemästra Bitcoin"– Andreas M. Antonopoulos
Blockchain-demo – Anders Brownworth

Lämna en kommentar

E-postadressen publiceras inte. Obligatoriska fält är markerade *

bildredigering 3 4203740775
Medgrundare, Chief Operations Officer