Hur fungerar Bitcoin?

För ungefär ett år sedan när Bitcointåget just började samla ånga vände en vän till mig och frågade: Så varför kan du inte bara kopiera ett Bitcoin?

För ungefär ett år sedan när Bitcointåget just började samla ånga vände en vän till mig och frågade: Så varför kan du inte bara kopiera ett Bitcoin?
Annons

För ungefär ett år sedan när Bitcointåget just började samla ånga vände en vän till mig och frågade: "Så varför kan du inte bara kopiera ett Bitcoin?"

Det här är en förvirring som många människor har och en rättvis: begreppet digital enhet som inte enkelt kan kopieras är helt ointuitivt. Faktum är att Bitcoin-nätverket är en av de coolaste och minst förstådda teknologierna i det populära medvetandet just nu. Det är synd, för Bitcoins bakomliggande mekanik är väldigt enkelt. Du behöver inte ens särskilt hård matta, om du är villig att ta några saker på tro.

Vi har tidigare täckt vad Bitcoin är Hur man förklarar Bitcoin till någon Hur man förklarar Bitcoin till någon Konceptet cryptocurrency är inte lätt att förstå. Hur kan man använda sin dator för att "mina" mynt? Var kommer pengarna ifrån? Vem styr det? Läs mer, hur man använder det säkert Hur man spenderar och lagrar bitcoins säkert, enkelt och gratis Hur man spenderar och lagrar bitcoins säkert, enkelt och gratis Läs mer, och till och med skrivit en manual om ämnet, men vi har har aldrig riktigt förstått hur det fungerar . Idag kommer vi att dyka in i det "hur" och prata om de verktyg som behövs för att hålla "magiska Internetpengarna" köra bakom kulisserna.

Bitcoin för Poker

Så varför kan du inte kopiera Bitcoin? Svaret, för att göra en lång historia kort, är att en Bitcoin inte verkligen är en sträng data som ska kopieras: det är en post i en distribuerad huvudbok som berättar hur mycket pengar varje person har. Anledningen till att du inte kan ändra storleken beror på Bitcoins nätverksklima. Det finns många kopior av storleken, och huvudboken är så utformad att det är svårt att manipulera.

För att förstå problemet bättre, föreställ dig att du skulle försöka implementera en penna och papper Bitcoin ( WritCoin ) för ett spel poker med dina vänner. Du är alltför billig för att köpa chips, men du vill ändå hålla reda på hur mycket spelpengar alla har och låta folk flytta det med varandra.

dogsplayingbitcoinpoker

En lösning är att välja någon som är trovärdig för att vara rekordhållare för spelet: de noterar varje transaktion som det händer, låt dig veta om transaktionen lyckades (det vill säga inte ta någon till en negativ balans) och kan lägga till Alla framgångsrika transaktioner för att räkna ut hur mycket pengar alla har när som helst. Detta liknar hur PayPal och andra centraliserade betalningssystem fungerar. Som du kan se är inte tanken på att kopiera en valutaenhet meningsfullt i det här systemet - rekordhållaren skulle inte tillåta det. Observera att rekordhållaren befinner sig i maktsituation i detta scenario och kan välja att ge sig mycket pengar, stjäla en liten del av alla pengar, eller på annat sätt missbruka sin position.

Nu, föreställ dig att istället för att spela poker med dina vänner, är du fast i ett högpokers mobp-pokerspel där ingen på bordet litar på att någon annan är recordkeeper (men du är fortfarande alltför billig för att köpa chips).

Detta är en metafor för internet.

Nu har du ett problem: eftersom det inte finns något förtroende, kommer den centraliserade myndigheten inte att fungera längre. Så, du kommer med den kloka idén att låta någon vid bordet bli en oberoende rekordhållare om de vill. Var och en av dem kommer att notera alla transaktioner. På det sättet, när det är dags att ta reda på hur mycket pengar någon har, om någon minoritetsgrupp av dem bestämmer sig för att ljuga om sina rekord, kommer majoriteten att få dem ut. För att hålla saker rättvis, håller du med om att betala en liten belöning till rekordbehållarna i utbyte mot deras tjänster. Det här devalverar alla dina pengar lite, men uppmuntrar människor att bli rekordhållare och förhindra bedrägeri - och till skillnad från en enda rekordhållare kan devalveringen av pengar styras till en hanterbar nivå. Detta är, i ett nötskal, kärnpunkten i Bitcoin-nätverket. Ett nätverk av oberoende datorer som kör speciell programvara (Bitcoin miners 5 sätt du kan göra och min Bitcoin Valuta 5 sätt du kan göra och min Bitcoin Valuta Den revolutionerande och kontroversiella betalningsmetoden har gjort rubriker. Det finns många anledningar till varför du kanske vill för att börja göra transaktioner med Bitcoins. Men först måste du tjäna lite för dig själv. Läs mer) Håll dig självständigt reda på varje transaktion som någonsin har inträffat i nätverket. I gengäld har de en chans att bli belönad varje gång de bekräftar en grupp av transaktioner. För att spendera pengar, pratar du bara med nätverket och informerar dem om viljan att göra det. De noterar transaktionen i sina loggar (om du har tillräckligt med pengar för att lyckas göra det) och fortsätt.

Bitcoin och kryptografi

Det är självklart inte så enkelt i praktiken. Föreställ dig problemen med att försöka flytta WritCoin till Internet. Nu behöver du plötsligt ett sätt att bevisa att det verkligen är att du gör en transaktion (i verkligheten kan du se vem som gör transaktionsförfrågningar - inte så på Internet). Också på Internet, med ett stort nätverk är det svårt att samråda med varje Bitcoin-gruvarbetare som finns för att ta reda på hur mycket pengar alla har. Det vore trevligt om du bara kunde prata med några av dem och fortfarande kunna berätta vilka av dem var ärliga. Det finns två kryptografiska verktyg som gör det möjligt att göra dessa saker online: digitala signaturer och bevis på arbete .

Undertecknade transaktioner

En kryptografisk signatur är en smart tillämpning av asymmetrisk kryptering, och det fungerar så här: från en enda hemlig information kan du göra en uppsättning matematiska operationer som producerar två delar av information (kallad offentlig och privat nyckel) att allting krypterat (krypterat i gibberish) av den privata nyckeln kan endast dekrypteras (okrypteras) av den offentliga nyckeln. Dessutom, när dessa nycklar produceras på rätt sätt, finns det ingen möjlighet att ta reda på vad den privata nyckeln är, även om du känner till den allmänna nyckeln. Förklara hur dessa verkligen fungerar, matematiskt kräver abstrakt algebra och ligger långt bortom denna artikels räckvidd. Om du vill lära dig mer, kolla in Wikipedia-artikeln om elliptisk kurvkryptografi, kryptosystemet som används av Bitcoin.

Tänk dig, för ett ögonblick, att du har en privat nyckel och en offentlig nyckel som du regelbundet använder. Du kan publicera den offentliga nyckeln (som ser ut som en slumpmässig sträng av gibberish) och ansluter den till din identitet. Sedan kan du, när du postat något online, ta ditt meddelande, kryptera det med din hemliga privata nyckel och publicera både den krypterade versionen och det ursprungliga meddelandet sida vid sida. Då, om någon ville se om du faktiskt skrev det, kunde de helt enkelt använda din allmänna nyckel för att dekryptera den krypterade versionen och jämföra den med meddelandet. Om de inte matchade skulle läsaren veta att ditt meddelande hade manipulerats. Med andra ord, om en skadlig part vill ersätta ditt meddelande med sig själv, skulle de inte kunna skapa en matchande krypterad version av texten eftersom de inte känner till din privata nyckel. Den krypterade versionen av meddelandet (eller, mer typiskt, en krypterad hash av meddelandet, som vi kommer att diskutera om ett ögonblick), som bifogas meddelandet själv kallas en digital signatur .

asyymetricencryption

Digitala signaturer är hur transaktioner verifieras i Bitcoin. Du kanske har hört talas om en "Bitcoin plånbok." En Bitcoin plånbok är helt enkelt ett särskilt offentligt / privat nyckelpar. Om du vill ha en Bitcoin plånbok väljer du bara en hemlig informationstycke (du kan använda ett lösenordsfras eller få din dator att göra en rad nonsens) och sedan använda den för att generera din offentliga och privata nyckel. Ditt offentliga / privata nyckelpar är din plånbok - om folk vill skicka pengar, ger du dem din offentliga nyckel och de berättar för nätverket att de vill skicka pengar till plånboken som motsvarar den offentliga nyckeln. Om du vill skicka pengar från din plånbok, berätta du bara för nätverket som - och logga in med din motsvarande privata nyckel. Således, om ingen får avskräcka från din privata nyckel eller din ursprungliga hemlighet, så är det inte möjligt för dem att förfalska transaktioner från dig.

Proof-of-Work

I kryptografi finns också ett verktyg som kallas hash-funktion. En hash-funktion tar helt enkelt en stor mängd information som en inmatning och förvränger den till en kort sträng av nonsens (längden på utmatningen är alltid densamma och beror på vilken funktion du använder). Hash-funktioner är känsliga, eftersom en liten förändring av originaldata helt och oändligt förändrar strängen av nonsens ("hash"). Som ett resultat av detta har hashfunktioner den unika egenskapen att vara enkelriktad. Med tanke på information, kan du enkelt ha det, men med tanke på en viss hash finns det ingen möjlighet att arbeta bakåt för att ta reda på vilken bit av information som var hashed att skapa det, förutom att gissa slumpmässigt. För att lära dig mer, kolla in Wikipedia-artikeln om hash-funktioner.

hash_function

Hash funktioner är mycket användbara! Applikationen som är mest relevant för Bitcoin kallas "proof of work", vilket är ett sätt att bevisa någon annan att en viss mängd beräkningsarbete utgjordes. Om någon väljer ett ord slumpmässigt (säger "doppelganger"), och du svarar med en bit av information vars hash råkar vara "doppelganger" (eller en sträng som liknar det) så vet de att du spenderat mycket av tid gissar innan du äntligen hittade en bit av information som fungerade. Således har de bevis på att du utförde en viss mängd beräkningsarbete. Detta kan användas för att förhindra e-postspam, genom att tvinga någon att försöka skicka dig ett mail för att slutföra ett litet bevis på arbete baserat på deras e-postadress, din e-postadress och tiden. Detta bevis på arbete kan vara väldigt enkelt, så att det inte är några besvär alls för vanliga människor som skickar några e-postmeddelanden om dagen, men blir opraktiskt dyra för bulkmailare.

I Bitcoin används proof-of-work för att förhindra att människor ljuger. Det fungerar så här: när en gruvarbetare vill lägga till ett block av transaktioner till deras huvudbok tar de hela blockkedjan (en lista över alla transaktioner som har inträffat hittills som gruvan kunde verifiera var giltig) och lägga till det senaste grupp av transaktioner till den. De har sedan allt ihop och börjar göra bevis på arbetet för det värdet - gissar värden till hash för att försöka hitta ett nytt värde som ligger tillräckligt nära målvärdet. Samtidigt som de gör det gör minare över hela världen exakt samma sak, tävlar om att vara den första som hittar ett bevis som är "tillräckligt bra" (en standard som ökar automatiskt för att följa Moores lag och den nätverkets tillväxt). Den första som kommer dit kommer att få ett fallfall (för närvarande 25 Bitcoins eller cirka 15 600 kronor vid skrivningstid) i utbyte mot deras service och deras framgångsrika block distribueras till alla andra gruvarbetare och blir ett permanent tillägg till blockkedjan.

Konsekvensen av detta är att om du vill skapa en falsk Blockchain måste du reproducera alla de arbetssökningar som görs av nätverket, vilket är dyrt. Ju längre tillbaka du vill redigera något, desto mer proofs-of-work baserat på den informationen du måste göra om. Det är mycket osannolikt att vem som helst kan producera bättre och snabbare bevis på arbete än hela det legitima Bitcoin-gruvnätet, vilket innebär att den blockkedja som har haft det mest bevisade arbetet i allmänhet är den legitima. Ett annat sätt att säga detta är att det ligger svårt att ligga i Bitcoin-nätverket eftersom det tar mycket beräkningskraft att skapa en välstrukturerad lögn. Det betyder att om du vill ha en exakt blockchain behöver du inte prata med varje Bitcoin miner och låt dem rösta - du kan helt enkelt prata med några slumpmässiga gruvarbetare, få sina blockkedjor och, om det finns konflikter, acceptera version med de mest starka bevisen på arbetet, och det finns en mycket bra chans att det blir den riktiga.

Bitcoin i ett nötskal

Sammanfattningsvis: Bitcoin plånböcker är offentliga / privata nyckelpar. Vilken offentlig nyckel som helst kan skicka pengar till någon annan offentlig nyckel genom att göra ett uttalande till nätverket, signerat med motsvarande privata nyckel. Det uttalandet sänds i jämlikhet, bland alla minare, som alla försöker generera bevis på arbetet för alla transaktioner de hittills har spelat in. Varje gång en av dem genererar ett tillräckligt bra bevis på arbete, delas de ut med några Bitcoins, och deras block blir en del av den officiella, distribuerade huvudboken. Genom att lägga till transaktionerna i alla blocken kan du räkna ut hur mycket pengar du har - eller någon annan. Skivan är svår att manipulera på grund av svårigheten att producera proof-of-work snabbare än resten av nätverket.

Det är (ganska mycket) det. När du förstår de kryptografiska primitiverna i spel är idén ganska enkel. Det borde dock inte anses innebära att det inte är anmärkningsvärt. Att bygga ett protokoll som tvingar tusentals människor över hela världen att hantera varandra ärligt, trots deras bästa ansträngningar mot det motsatta, är en enorm seger för kryptografi och en av de mest kraftfulla idéerna de senaste åren.

Bildkrediter: Waterloo Hundar Spelar Poker, Asymmetrisk Kryptografi, Hash Funktion, Med tillstånd av Wikimedia, Reservoir Dogs, från EW.com

In this article