Blockchain forklart

blockchain-101

En blockchain er en offentlig, distribuert hovedbok for alle transaksjoner som noen gang skal finne sted på den blockchainen. Selv om Bitcoin ser ut til å være synonymt med blockchain, er blockchain -teknologi ikke bare Bitcoin. Bitcoin er den største og mest kjente implementeringen av teknologien, men noen av de andre store åpen kildekode-implementeringene er det Ethereum og Litecoin.

Veldig enkelt er blockchain programvare som kjører på millioner av datamaskiner. Disse datamaskinene (eller noder) kommuniserer med hverandre for å sikre at data forblir synkronisert.

Men hvordan fungerer det, og hvorfor ble det oppfunnet?

Problemet med dobbeltbruk

Et av hovedoppgavene til en sentral, pålitelig myndighet i en finansiell transaksjon, for eksempel en bank, er å forhindre det som kalles “doble utgifter”Problem. Bankene fungerer som de pålitelige mellomleddene for å sikre at penger ikke brukes digitalt to ganger. Bankene sørger for at denne utvekslingen av penger skjer innen en transaksjon.

En transaksjon, per definisjon, er atomisk, dvs. enten skjer det eller ikke, det er ingen mellomliggende tilstand. Transaksjoner er også sekvensielle. Det betyr at en transaksjon alltid følger og/eller går foran en annen transaksjon. Transaksjoner skjer ikke samtidig.

Som et eksempel, la oss si at Hannah har $ 10, og hun må betale Alice $ 3 og Liam $ 5. Den logiske, vellykkede slutten på disse transaksjonene ville resultere i at Hannah hadde $ 2, Alice med $ 3 og Liam med $ 5. Hannah kan ikke sende de samme pengene til både Alice og Liam på samme tid. Hvis hun gjorde det, ville Hannah ende opp med $ 5, Alice ville få henne $ 3 og Liam ville få hans $ 5. Hannah ville på magisk vis ha skapt $ 3 ekstra. Hun ville ha brukt pengene sine to ganger.

Uten en pålitelig, sentral myndighet som en bank som fører journal over hver av disse transaksjonene, ville det finansielle systemet raskt falle fra hverandre.

Derfor, selv om ideen om en desentralisert hovedbok og digital valuta har eksistert siden 1990 -tallet, var det dobbelte utgiftsproblemet en stor hindring for den praktiske implementeringen..

Hvordan Bitcoin/Blockchain løser det

I 2009 publiserte Satoshi Nakamoto, en person som ennå ikke skal identifiseres, en hvitt papir der han hevdet at han hadde løst det dobbelte utgiftsproblemet uten at et sentralbyrå fungerte som voldgiftsmann, via digital kryptografi, spillteori og informatikk.

Nick Szabo hadde introdusert Bitgold i 2005. Bitcoin er så lik Bitgold og deler så mange av konseptene at noen mistenker at Szabo er Satoshi Nakamoto.

Offentlig nøkkel kryptografi

For å forstå hvordan blockchain-teknologien fungerer, må man forstå kryptografi med offentlig nøkkel. De fulle tekniske detaljene om dette emnet er utenfor denne artikkelen. Flere detaljer er tilgjengelige her.

På et veldig høyt nivå er offentlig nøkkelkryptografi avhengig av to nøkler: en offentlig nøkkel og en privat nøkkel. Disse to nøklene er koblet, men atskilt som nedenfor:

  • Bare den offentlige nøkkelen kan dekryptere data som ble kryptert av den tilhørende private nøkkelen
  • Den offentlige nøkkelen kan bekrefte data signert med den tilhørende private nøkkelen

Den offentlige nøkkelen kan trygt deles med andre, derav “offentlig”. Den private nøkkelen må holdes hemmelig av sikkerhetshensyn. Den offentlige nøkkelen kan stammer fra den private nøkkelen, men ikke omvendt.

Anta som et eksempel at Bob ønsker å overføre en hemmelig melding til Alice. Bob må kjenne Alices offentlige nøkkel for å kryptere meldingen før han sender den til henne. Siden den offentlige nøkkelen ikke er en hemmelighet, kan Alice sende den til Bob. Når Alice mottar den krypterte meldingen, kan hun dekryptere den med sin private nøkkel. Alle i midten som fanger opp meldingen, kan ikke dekryptere den uten Alices private nøkkel.

Til referanse ser det slik ut en offentlig nøkkel:

305C300D06092A864886F70D01010105 00034B003048024100A251C92CCA3E7B 6599146DDB10044807B3AA1EFA8BE627 4D329765E0CC5A0EA03CA8F010524A89 2484A7C96498660

En kryptert melding kan se slik ut:

—–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—–

Hashfunksjoner-SHA-256

Kryptering sikrer at meldinger mellom to parter er sikre og pålitelige. Mottakeren må imidlertid også bekrefte at meldingen de har mottatt ikke har blitt manipulert. For å gjøre det, signeres hver overførte melding digitalt med hash -verdien.

En hash er som en digital signatur av en melding. Tallrike algoritmer, kjent som hashfunksjoner, er utviklet for å generere en hash, for eksempel MD5 og SHA-1, men den som er mest brukt nå kalles SHA-256. Detaljene om hashing og matematikken som er involvert i de forskjellige hashfunksjonene er unødvendige for å forstå blockchain.

En hashfunksjon er en enveisfunksjon. Dette betyr at hashen til en melding alltid er den samme når du bruker den samme funksjonen. Meldingen kan imidlertid ikke dekrypteres fra hasjen.

SHA-256 produserer alltid en 256-biters hash-verdi. For eksempel:

[tabell -id = 1 /]

Som du kan se, endrer en enkelt endring av dataene (store bokstaver L i dette tilfellet) hash -verdien fullstendig.

Datainmatingen til hashfunksjonen kan være så enkel som et enkelt ord, eller det kan være hele ordboken, og den vil alltid produsere en 256 -biters hash -verdi som ligner på de ovenfor.

Hva er kjeder

Som nevnt ovenfor kan ethvert datasett sendes gjennom en hashfunksjon for å generere tilhørende hash. I en blockchain er dette datasettet transaksjonene som finner sted på det. Hver transaksjon i en blockchain signeres digitalt ved hjelp av hash-en, for øyeblikket bruker SHA-256-funksjonen. Alle påfølgende transaksjoner vil inkludere den digitale signaturen til den forrige transaksjonen. Dette danner en kjede av transaksjoner slik at hvis en skulle endre en transaksjon i kjeden, vil det endre hash -verdien for alle påfølgende transaksjoner. Dette gjør det enkelt å identifisere en kjede der en tidligere transaksjon er blitt endret bare ved å sammenligne hashverdier.

Eksempel: Si at Bob må overføre $ 10 til Alice og ytterligere $ 5 til Charlie. Siden transaksjoner er atomiske, vil Bobs overføring av $ 10 til Alice skje først. Denne transaksjonen blir signert digitalt ved bruk av SHA-256-hash. Den neste transaksjonen med Bob som overfører $ 5 til Charlie vil også bli signert digitalt, men denne gangen vil den også inneholde hash av den forrige transaksjonen.

[tabell -id = 2 /]

Selvfølgelig vil transaksjoner på en blockchain ikke se slik ut, men dette gir en generell fremstilling av det.

Hva er gruvedrift

Som tidligere nevnt er blockchain et nettverk av noder som kjører den samme programvaren som kommuniserer med hverandre for å sikre at data er synkronisert. Noen av disse er spesialiserte noder kalt gruvearbeidere.

Formålet med gruvearbeidere er å verifisere transaksjonene som utføres på blockchain. Når et antall transaksjonskjeder er verifisert, kombineres de til en blokkere av transaksjoner.

Som en belønning for riktig og ærlig bekreftelse av transaksjonene, blir gruvearbeiderne tildelt kryptovalutaen til den tilsvarende blockchain. Så for eksempel vil gruvearbeidere på Bitcoin blockchain bli belønnet med Bitcoin. Dette beløpet er fast, men kan variere fra tid til annen.

Gruvearbeidere må vise sitt bevis på arbeid for å tjene belønningen sin. De arbeid som skal utføres, er i hovedsak å finne et 32-biters felt som, når det er hasket med hash-verdien i transaksjonskjeden, genererer en annen hash-verdi med et angitt antall ledende nuller. Dette feltet kalles et nonce. Antallet ledende nuller som skal genereres, er satt av vanskeligheten som endres etter at et bestemt antall blokker er blitt utvunnet. Jo flere ledende nuller, desto vanskeligere blir det å finne nonce. 

Som et eksempel, ikke -Bitcoin -blokkeringen #493257 ble funnet å være 1488602745 som når hashes med transaksjonene i den blokken genererte hash for blokken av 00000000000000000034bd56aea0c6db865e8dff1fe5d2023170b568ad5e0968. Vær oppmerksom på de ledende nullpunktene i blokkens hashverdi.

Det er svært umulig å få en nonce ved å bruke en formel. Den eneste måten å finne nektet på er gjennom gjetninger. Dette betyr at gruvearbeidere må bruke sin egen datakraft for å kjøre gjennom et potensielt stort antall 32-biters verdier før de i hovedsak snubler over den som oppfyller kravene til de ledende nullene. Det faktum at de fant mangel på bevis, beviser at de har gjort jobben for å finne det.

Å sette Blockchain sammen

Kryptografi med offentlig nøkkel sikrer at transaksjoner mellom to kontoer er sikre.

Hashfunksjoner sikrer at transaksjoner er gyldige, atomiske og praktisk talt umulige å endre.

Gruvedrift gjennom bevis på arbeid sikrer at transaksjoner blir bekreftet og verifisert av en tredjepart.

Alle disse metodene som fungerer sammen gjør det mulig å distribuere hovedbok, og dermed en applikasjon som digital valuta, på blockchain.