Modul 8 av 10

Hur Bitcoin fungerar

8.0 Introduktion

Bitcoin är inte "oreglerat"; det regleras av algoritmer istället för av statliga byråkratier. Omutligt.Andreas M. Antonopoulos

I det här avsnittet tittar vi närmare på den tekniska sidan av Bitcoin. Vi förklarar på ett enkelt sätt den kryptografi som skyddar protokollet och hur transaktioner fungerar. Vissa begrepp kan verka tekniska, men oroa dig inte. Många använder internet varje dag utan att helt förstå hur det fungerar.

Att lära sig Bitcoins tekniska sida är en lång resa som inte alla behöver göra. Även om vi uppmuntrar till fortsatt lärande, fokuserar det här avsnittet på de viktigaste grunderna.

Bitcoin-nätverket är en gemensam transaktionshistorik som lagras på många datorer, så kallade noder. Denna historik, känd som Bitcoin-ledgern, är pseudonym. Den innehåller inte personliga uppgifter som namn eller ålder, bara transaktionsdata och Bitcoin-adresser. Ledgern spårar varje transaktion sedan blockkedjan startade.

Bitcoins protokollmekanik
  • Proof-of-Work
  • Kryptografiska tidsstämplar
  • Svårighetsjustering
  • Peer-to-peer-nätverksarkitektur
  • Hashfunktioner & Merkle-träd
  • Publik nyckelkryptografi
  • Halvering av blocksubvention

8.1 Säkerhet genom kryptografi

Vad Bitcoin ger oss är ett hårt löfte: programmet kommer att köras exakt som specificerat.
Andreas M. Antonopoulos

Kryptering med offentlig/privat nyckel

Kryptografi är konsten att göra information till en hemlighet som bara rätt personer kan läsa.

  • Kryptering är processen att omvandla information till en kodad form så att bara någon med rätt nyckel kan läsa den.
  • Dekryptering är processen att omvandla den kodade informationen tillbaka till något läsbart.

I traditionell kryptografi måste två personer som vill kommunicera privat först dela samma hemliga nyckel, ungefär som ett gemensamt lösenord. En person använder denna nyckel för att kryptera meddelandet innan det skickas, och den andra personen använder samma nyckel för att dekryptera och läsa det.

Problemet med detta system är att båda personerna redan måste dela den hemliga nyckeln. Om någon annan får tillgång till nyckeln kan de läsa alla avlyssnade meddelanden.

Bitcoin löser detta problem med en annan metod som kallas offentlig-nyckel-kryptografi, där användare inte behöver dela hemliga nycklar i förväg.

Kryptering med offentlig/privat nyckel löser problemet med att dela hemligheter. Istället för att dela ett lösenord har varje person två nycklar: en offentlig nyckel och en privat nyckel.

  • offentliga nyckeln kan delas med vem som helst.
  • privata nyckeln måste alltid hållas hemlig.

Om Johan vill skicka något till Arvid kan han använda Arvids offentliga nyckel. Bara Arvid kan låsa upp det med sin privata nyckel. Även om någon avlyssnar meddelandet kan de inte läsa eller använda det utan den privata nyckeln.

I Bitcoin används detta system för att skapa digitala signaturer. En digital signatur bevisar att ägaren av en privat nyckel har godkänt en transaktion, ungefär som att skriva sin namnteckning på ett dokument. Det är detta som gör att Bitcoin-transaktioner kan vara säkra och verifierbara utan att man behöver lita på en tredje part.

Bitcoin-transaktioner innebär att ägandet av bitcoin överförs från en adress till en annan.

Kryptering används för att säkerställa att endast den verkliga innehavaren av bitcoinen har rätt att skicka sina pengar till någon annan. Det skyddar deras egendom mot illvilliga aktörer.

Som ett extra skydd får varje Bitcoin-transaktion automatiskt en UNIK digital signatur. Denna unika digitala signatur drivs av manipuleringssäker teknik som hjälper nätverket att verifiera att det är den verkliga ägaren av bitcoinen, och inte någon annan, som har skickat dem.

Varje användare har två nycklar: en privat nyckel, som hålls hemlig, och en offentlig nyckel som kan delas med andra. Den privata nyckeln fungerar som en form av identifikation och ägarbevis, och bekräftar: ”Den här adressen tillhör mig och jag har kontroll över den.”

Hur en Bitcoin-transaktion fungerar
  1. Skapa transaktionen: En användare initierar en Bitcoin-transaktion genom att ange detaljer som mottagarens adress och mängden bitcoin som ska skickas.
  2. Generering av digital signatur: Avsändaren skapar en unik digital signatur med sin privata nyckel. Denna signatur är en unik kod som verifierar transaktionens äkthet.
  3. Sända transaktionen: Den signerade transaktionen sänds ut till Bitcoin-nätverket och visar avsikten att överföra ägandet av bitcoin från avsändaren till mottagaren.
  4. Verifiering i nätverket: Noder i Bitcoin-nätverket tar emot transaktionen och använder mottagarens offentliga nyckel för att verifiera signaturens äkthet. av transaktionen. Samtidigt använder de avsändarens offentliga nyckel för att verifiera digitala signatur.
  5. Bekräftelse på Bitcoin-nätverket: Om verifieringen lyckas kommer transaktionen att läggas till i huvudboken, som fungerar som en säker och transparent redovisning av alla transaktioner. När den är bekräftad överförs ägandet av bitcoin officiellt från avsändaren till mottagaren.

Den digitala signaturen, skapad med avsändarens privata nyckel, bevisar att transaktionen har godkänts av ägaren till bitcoin. Bitcoin-nätverket kan sedan verifiera detta bevis och registrera transaktionen.

Förklaring av hashning

Bli inte avskräckt av de tekniska termerna och matematiska begreppen som kommer. Vi förstår att inte alla älskar matte, men du kanske överraskar dig själv och ser att även de mest komplexa idéerna kan förstås med lite ansträngning.

En funktion är som en maskin som tar emot viss information och omvandlar den till något nytt. Informationen du ger funktionen är inmatningen. Den nya informationen som funktionen skapar är utmatningen. Funktioner hjälper datorer att utföra uppgifter och lösa problem.

Vad är en funktion?

En funktion är en uppsättning instruktioner som tar en inmatning och producerar en utmatning. Du kan tänka på det som ett recept: du följer stegen med vissa ingredienser och får alltid ett förutsägbart resultat.

I Bitcoin används funktioner för att behandla och verifiera transaktioner. När någon skickar bitcoin hjälper kryptografiska funktioner till att kontrollera att transaktionen är giltig, bekräfta att avsändaren har tillräckligt med medel och uppdatera saldon i Bitcoin-huvudboken. När den har verifierats och lagts till i ett block blir transaktionen en del av det permanenta registret på blockkedjan.

Vad är en envägsfunktion?

En envägsfunktion är en speciell typ av funktion som är lätt att beräkna i ena riktningen men extremt svår att vända. Till exempel är det enkelt att mixa ingredienser till en smoothie, men du kan inte separera smoothien tillbaka till de ursprungliga ingredienserna.

Bitcoins säkerhet bygger på envägsfunktioner. De används i kryptografi med offentliga och privata nycklar, vilket gör det möjligt för människor att dela en offentlig nyckel samtidigt som de håller sin privata nyckel hemlig. Även om den offentliga nyckeln är synlig är det omöjligt att härleda den privata nyckeln från den. Det är detta som gör Bitcoin-transaktioner säkra.

Vad är en hashfunktion?

En hashfunktion är som en hemlig kodmaskin. Den tar emot ett meddelande och omvandlar det till en kod.

Hur hashning fungerar i Bitcoin-transaktioner

I Bitcoin omvandlas varje transaktion till en hash innan den läggs till i blockkedjan. En hash är ett unikt digitalt fingeravtryck av transaktionen. Om någon försöker ändra ens en liten del av transaktionen kommer hashen att förändras helt. Detta gör det enkelt för nätverket att upptäcka manipulation.

Hashningens roll i Bitcoins säkerhet

Hashning hjälper till att skydda Bitcoin-nätverket genom att göra transaktioner enkla att verifiera och omöjliga att tyst ändra. Eftersom varje transaktion har sin egen unika hash kan nätverket snabbt upptäcka om något har ändrats.

En hashfunktion tar data och omvandlar den till en fast sträng av siffror och bokstäver som kallas en hash. Samma inmatning ger alltid samma hash, men även en liten förändring i inmatningen skapar ett helt annat resultat. Denna egenskap gör det möjligt för datorer att kontrollera att data inte har ändrats.

Hashning är som att skapa ett fingeravtryck för digital data. Det är processen att ta ett digitalt meddelande och omvandla det till en kod med fast längd, som fungerar som en unik identifierare. Precis som ett fingeravtryck kan identifiera en person kan en hash identifiera ett digitalt meddelande.

Utmatningen, utmatningen, eller hash, är alltid lika lång, oavsett hur lång den ursprungliga informationen var. Bitcoin använder några specifika typer av hashfunktioner som kallas SHA-256 och RIPEMD160.

Några exempel visas nedan:

  • SHA256-hash av strängen hej världen
    • b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
  • SHA256-hash av strängen hej världen.
    • 7ddb227315f423250fc67f3be69c544628dffe41752af91c50ae0a9c49faeb87
    • Observera att en liten förändring i indata förändrar utdata helt jämfört med den första
  • SHA256-hash av den nedladdningsbara iso-filen Ubuntu 18.10
    • 7b9f670c749f797a0f7481d619ce8807edac052c97e1a0df3b130c95efae4765
    • Den här inmatningen är en enorm fil men utdata är ändå av samma fasta längd

Du kan också tänka på hashing som ett partitur som fångar essensen av ett musikstycke. Precis som ett partitur är en unik representation av en melodi, är ett hashvärde en unik representation av data.

Genom att jämföra partituret för ett musikstycke med själva framförandet kan en musiker avgöra om framförandet är korrekt. På samma sätt kan man, genom att jämföra hashvärdet för mottagen data med det ursprungliga hashvärdet, avgöra om datan har ändrats under överföringen.

Precis som en liten avvikelse i ett musikframförande kan få det att låta annorlunda, kommer även den minsta förändringen av ursprungsdatan att resultera i ett annat hashvärde. Detta gör hashing till ett kraftfullt verktyg för att säkerställa integriteten och äktheten i en Bitcoin-transaktion.

Processen att koda publik nyckel genom hashing används för att förbättra säkerheten för information genom att omvandla den till ett oläsligt format med fast längd. Bitcoin använder algoritmerna SHA-256 och RIPEMD160 för att skapa publika adresser. Den resulterande utdata fungerar som en unik identifierare för publik nyckel och hjälper till att säkerställa integriteten och säkerheten för transaktioner som lagras i huvudboken. Genom att kryptera informationen på detta sätt blir det svårare för obehöriga att komma åt och manipulera datan.

Egenskaper hos en hashfunktion
  • Deterministisk: Samma ingredienser ger alltid samma smoothie. På samma sätt kommer samma data alltid att ge samma hash.
  • Pre-image-resistens: Om du bara har smoothien kan du inte lista ut exakt vilka frukter som användes. På samma sätt kan du inte avgöra ursprungsdatan om du bara har en hash.
  • Avalanche-effekt: Att ändra även en liten del av ingredienserna skapar en helt annan smoothie. Vid hashing ger en mycket liten förändring i datan ett helt annat hashvärde.
  • Kollisionsresistens: Det är extremt svårt att hitta två olika uppsättningar ingredienser som ger exakt samma smoothie. På samma sätt är det extremt osannolikt att två olika datamängder ger samma hash.
  • Snabb att verifiera: Att göra smoothien går snabbt, och det är lätt att kontrollera att resultatet är en smoothie. Hashfunktioner är snabba att beräkna och enkla för vem som helst att verifiera.

Aktivitet: Generera SHA 256-hash

Nyfiken på hur hashing fungerar? Skanna QR-koden för att direkt generera en SHA256-hash från vilket ord, mening eller indata du vill. Hashfunktioner är som digitala fingeravtryck: de är envägs, vilket betyder att när något har hashats kan det inte återskapas. Prova själv och se!

8.2 UTXO-modellen

Vad är UTXO:er?

Låt dig inte skrämmas av det konstiga namnet. Du kan tänka på UTXO:er som bitar av bitcoin, liknande sedlar och mynt i din plånbok. Till exempel, om du betalar för en vara som kostar 60 kr med en 100-kronorssedel, får du 40 kr i växel. Bitcoin fungerar på ett liknande sätt.

Alla bitcoin du äger består av olika UTXO:er. När du skickar bitcoin använder din plånbok en eller flera av dessa delar för att genomföra betalningen.

Om den del du spenderar är större än beloppet du skickar, kommer det återstående värdet tillbaka till dig som växel i form av en ny UTXO. Samtidigt får mottagaren en ny UTXO som representerar de bitcoin du skickade.

Din plånboks saldo är helt enkelt det totala värdet av alla UTXO:er du kontrollerar.

Du bör inte låta andra känna till dina UTXO:er, eftersom om någon känner till dem kan de spåra dina transaktioner och till slut veta hur mycket pengar du äger.

Exempel
  1. Anna vill skicka 5 BTC till Erik.
  2. Hennes plånbok använder två av hennes UTXO:er som tillsammans är värda 6 BTC.
  3. Transaktionen skickar 5 BTC till Erik, vilket skapar en ny UTXO i Eriks plånbok.
  4. De återstående 0,99 BTC går tillbaka till Anna som växel, efter att ha betalat en 0,01 BTC transaktionsavgift.
  5. När transaktionen är bekräftad läggs den till i Bitcoins huvudbok och de UTXO:er som användes av Anna markeras som spenderade, så de inte kan användas igen.
Resurser
How Bitcoin Works Under the Hood
Titta på “How Bitcoin Works under the Hood”

↑ Tillbaka till innehåll