Blockchain förklaras

blockchain-101

En blockchain är en offentlig, distribuerad huvudbok för alla transaktioner som någonsin kommer att äga rum på den blockchain. Även om Bitcoin verkar vara synonymt med blockchain, är blockchain -teknik inte bara Bitcoin. Bitcoin är den största och mest kända implementeringen av tekniken, men några av de andra stora open source-implementeringarna är det Ethereum och Litecoin.

Mycket enkelt är blockchain programvara som körs på miljontals datorer. Dessa datorer (eller noder) kommunicerar med varandra för att säkerställa att data förblir synkroniserade.

Men hur fungerar det, och varför uppfanns det?

Problemet med dubbla utgifter

Ett av huvuduppgifterna för en central, betrodd myndighet i en finansiell transaktion, till exempel en bank, är att förhindra det som kallas ”dubbla utgifter”Problem. Bankerna fungerar som de pålitliga mellanhänderna för att säkerställa att pengar inte används digitalt två gånger. Bankerna ser till att denna utbyte av pengar sker inom ett transaktion.

En transaktion, per definition, är atomisk, det vill säga antingen det händer eller så gör det inte, det finns inget tillstånd däremellan. Transaktioner är också sekventiella. Vilket innebär att en transaktion alltid följer och/eller föregår en annan transaktion. Transaktioner sker inte samtidigt.

Som ett exempel, låt oss säga att Hannah har $ 10, och hon måste betala Alice $ 3 och Liam $ 5. Det logiska och framgångsrika slutet på dessa transaktioner skulle resultera i att Hannah har $ 2, Alice med $ 3 och Liam med $ 5. Hannah kan inte skicka samma pengar till både Alice och Liam samtidigt. Om hon gjorde det skulle Hannah sluta med $ 5, Alice skulle få henne $ 3 och Liam skulle få hans $ 5. Hannah skulle ha magiskt skapat $ 3 extra. Hon skulle ha spenderat sina pengar två gånger.

Utan en betrodd, central myndighet som en bank som håller register över var och en av dessa transaktioner skulle det finansiella systemet snabbt falla sönder.

Även om idén om en decentraliserad huvudbok och digital valuta har funnits sedan 1990 -talet var problemet med dubbla utgifter en stor stötesten för dess praktiska genomförande.

Hur Bitcoin/Blockchain löser det

År 2009 publicerade Satoshi Nakamoto, en person som ännu inte ska identifieras, en vitt papper där han hävdade att han hade löst det dubbla utgiftsproblemet utan att en central byrå fungerade som skiljeman, via digital kryptografi, spelteori och datavetenskap.

Nick Szabo hade introducerat Bitgold 2005. Bitcoin liknar Bitgold så mycket och delar så många av sina koncept att vissa misstänker att Szabo är Satoshi Nakamoto.

Offentlig nyckelkryptografi

För att förstå hur blockchain-tekniken fungerar måste man förstå kryptografi med allmän nyckel. De fullständiga tekniska detaljerna för detta ämne ligger utanför denna artikel. Mer information finns här.

På en mycket hög nivå förlitar sig public key-kryptografi på två nycklar: en offentlig nyckel och en privat nyckel. Dessa två nycklar är länkade men separerade enligt nedan:

  • Endast den offentliga nyckeln kan dekryptera data som krypterades av motsvarande privata nyckel
  • Den offentliga nyckeln kan verifiera data signerad med motsvarande privata nyckel

Den offentliga nyckeln kan säkert delas med andra, därav “offentlig”. Den privata nyckeln måste hållas hemlig av säkerhetsskäl. Den offentliga nyckeln kan härledas från den privata nyckeln men inte tvärtom.

Anta som ett exempel att Bob vill överföra ett hemligt meddelande till Alice. Bob måste känna till Alices offentliga nyckel för att kryptera meddelandet innan han skickar det till henne. Eftersom den offentliga nyckeln inte är en hemlighet kan Alice skicka den till Bob. När Alice tar emot det krypterade meddelandet kan hon dekryptera det med sin privata nyckel. Alla i mitten som fångar upp meddelandet kan inte dekryptera det utan Alices privata nyckel.

Så här ser den offentliga nyckeln ut som referens:

305C300D06092A864886F70D01010105 00034B003048024100A251C92CCA3E7B 6599146DDB10044807B3AA1EFA8BE627 4D329765E0CC5A0EA03CA8F010524A89 2484A7C96498660

Ett krypterat meddelande kan se ut så här:

—–BEGIN PGP MESSAGE —– hIwCMavvb4t6z90BA / 42UOAdWvnzfhRG2xXyYe203CISLsn2O39vM / y640hNbSl7 U29aNGZFfLMRGn7eLZG43SWwBz4cHjphG6iAzeLftRgHkLggxXA9VpGki5PyNID9 B0rk4TpRVE3qzgTbdio69aMlK6BdAQ4zWkyxSCi0oR3Vpnh + VVZyOVyaX8etlYRM AvUTsuDYCkr1AQH + OlA4ntqhxoPP / SJpKm5ugMLYiiij8ak8V90a8IYMkYB0CzMr liOJ6ZZxQm1x8orgjL / 6Bm5EoSvN4eCCeA / xXKYAAAHXLhG47kVhJkjlPrI / U / sr 2aQEm6r + aU1s0ziU1LxF2c5DAW6cD5b4xH + EbvYrnQQJClNMh9y03SjviXvnqFDC O4M70u3iLC50 + em4PouqM1DZdoW8O5pb = vhFx —– END PGP MESSAGE—–

Hashfunktioner-SHA-256

Kryptering säkerställer att meddelanden mellan två parter är säkra och pålitliga. Mottagaren måste dock också verifiera att meddelandet som de har fått inte har manipulerats. För att göra det signeras varje överfört meddelande digitalt med dess hashvärde.

En hash är som en digital signatur av ett meddelande. Många algoritmer, kända som hash -funktioner, har utvecklats för att generera en hash, t.ex. MD5 och SHA-1, men den som används mest nu kallas SHA-256. Detaljerna om hash och matematik som är involverade i de olika hashfunktionerna är onödiga för att förstå blockchain.

En hash -funktion är en enkelriktad funktion. Det betyder att hash för ett meddelande alltid är samma när du använder samma funktion. Meddelandet kan dock inte dekrypteras från hash.

SHA-256 producerar alltid ett 256-bitars hashvärde. Till exempel:

[tabell -id = 1 /]

Som du kan se ändras en enda ändring av data (versaler L i detta fall) hash totalt.

Datainmatningen till hash -funktionen kan vara så enkel som ett enda ord, eller så kan det vara hela ordlistan och det kommer alltid att producera ett 256 -bitars hash -värde som liknar dem ovan.

Vad är kedjor

Som nämnts ovan kan valfri datamängd skickas genom en hash -funktion för att generera motsvarande hash. I en blockchain är denna dataset de transaktioner som äger rum på den. Varje transaktion i en blockchain signeras digitalt med sin hash och använder för närvarande SHA-256-funktionen. Alla efterföljande transaktioner kommer att innehålla den digitala signaturen av den tidigare transaktionen. Detta bildar en kedja av transaktioner så att om man skulle ändra någon transaktion i kedjan kommer det att ändra hashvärdet för alla efterföljande transaktioner. Detta gör det enkelt att identifiera alla kedjor där en tidigare transaktion har ändrats bara genom att jämföra hashvärden.

Exempel: Säg att Bob måste överföra $ 10 till Alice och ytterligare $ 5 till Charlie. Eftersom transaktioner är atomiska kommer Bobs överföring av $ 10 till Alice att ske först. Denna transaktion kommer att signeras digitalt med dess SHA-256-hash. Nästa transaktion av Bob som överför $ 5 till Charlie kommer också att signeras digitalt, men den här gången kommer det också att innehålla hash från den tidigare transaktionen.

[tabell -id = 2 /]

Självklart kommer transaktioner på en blockchain inte att se ut så här, men detta ger en allmän representation av det.

Vad är gruvdrift

Som tidigare nämnts är blockchain ett nätverk av noder som kör samma programvara som kommunicerar med varandra för att säkerställa att data är synkroniserade. Några av dessa är specialiserade noder som kallas gruvarbetare.

Syftet med gruvarbetare är att verifiera de transaktioner som görs på blockchain. När ett antal transaktionskedjor har verifierats kombineras de till ett blockera av transaktioner.

Som en belöning för att korrekt och ärligt verifiera transaktionerna tilldelas gruvarbetarna kryptovalutan från motsvarande blockchain. Så till exempel kommer gruvarbetare på Bitcoin blockchain att belönas med Bitcoin. Detta belopp är fast men kan variera från tid till annan.

Gruvarbetare måste visa sina bevis på arbete att få sin belöning. De arbete som ska utföras är i huvudsak att hitta ett 32-bitars fält som, när det hascherats med hashvärdet i transaktionskedjan genererar ett annat hashvärde med ett bestämt antal ledande nollor. Detta fält kallas ett nonce. Antalet ledande nollor som ska genereras bestäms av svårigheten som ändras efter att ett bestämt antal block har bryts. Ju fler ledande nollor, desto svårare blir det att hitta nonce. 

Som ett exempel, bristen på Bitcoin block #493257 befanns vara 1488602745 som när hash med transaktionerna i det blocket genererade hash för blocket av 00000000000000000034bd56aea0c6db865e8dff1fe5d2023170b568ad5e0968. Observera de främsta nollorna i blockets hashvärde.

Det är mycket omöjligt att härleda en nonce med hjälp av en formel. Det enda sättet att hitta bristen är genom gissningar. Detta innebär att gruvarbetare måste spendera sin egen datorkraft för att köra igenom ett potentiellt stort antal 32-bitars värden innan de i huvudsak snubblar över den som uppfyller kraven för de ledande nollorna. Det faktum att de hittade bristen på bevis visar att de har gjort jobbet för att hitta det.

Att sätta ihop Blockchain

Kryptering med offentlig nyckel säkerställer att transaktioner mellan två konton är säkra.

Hashfunktioner säkerställer att transaktioner är giltiga, atomära och praktiskt taget omöjliga att ändra.

Gruvdrift genom bevis på arbete säkerställer att transaktioner bekräftas och verifieras av en tredje part.

Alla dessa metoder som fungerar tillsammans gör den distribuerade huvudboken, och därmed en applikation som digital valuta, möjlig på blockchain.