Blokkjede — Introduksjon Del 4— Mining & Konsensus
Hva betyr mining og desentralisering? Hva er en konsensus mekanisme?
Vi har gått nærmere inn på hva innholdet i ulike blokker er, og nå skal vi grave dypere inn på hvordan transaksjonene faktisk blir gjennomført.
I tradisjonelle systemer, slik som når du bruker banken din, så er du avhengig av en mellommann til å håndtere din aktivitet. Hvis du skal sende penger fra en bank til en annen, så må denne mellommannen være til rådighet og du er avhengig av “tillatelse” fra mellommannen — i dette tilfellet banken.
Dersom det for eksempel er helg, og du ønsker å sende penger fra en bank til en annen, så er ikke dette mulig, fordi banken som en essensiell mellommann har bestemt at dette ikke er mulig og ikke gir deg tillatelse. Dette er hva vi kaller et sentralisert system, der en enkelt part står i sentrum for å gi eller ikke gi tillatelse til å utføre handlinger og der du ma ha tillit til den sentrale aktøren.
Blokkjeder skiller ser ut i den forstand at det ikke nødvendigvis er sentrale parter som står til ansvar for å muliggjøre aktiviteten din. Mange blokkjeder er desentraliserte og har en underliggende konsensus mekanisme (en mekanisme om felles enighet), der det vi kaller for noder validerer all aktiviteten i nettverket og miners verifiserer nye blokker.
En miner er enkel forklart en person som tar i bruk en datamaskin / datakraft for å verifisere transaksjoner som gjøres i et nettverk. Med blokkjeder så trenger man ikke å ha tillit til en sentral part, men heller til et større nettverk av desentraliserte parter som verifiserer transaksjoner mot en avgift. Begrepet som brukes når en miner gjør denne valideringen kalles mining.
Enkelte som miner er også det man kaller noder i nettverket. Forskjellen på en node og en miner er hovedsakelig at en miner løser dataproblemene i nye blokker, men en node bevarer all tidligere data i nettverket. En miner lager blokker som en node bevarer. En node kan også mine, men en miner kan ikke bevare data slik en node gjør.
Når Pia skal sende Pål 100 kr, så må det være noen (en miner) som sørger for at den transaksjonen blir godkjent i nettverket. I blokkjeder er miners disse validatorene og konsensus mekansismen er den felles enigheten mellom alle noder om at all informasjon i blokkjeden stemmer.
Så da kan man spørre seg selv, hvorfor vil folk ta seg tid til å verifisere transaksjoner og bekrefte at ting stemmer, og hvordan vet vi at de verifiserer riktig?
Dette er der innovasjonen med Bitcoin kom inn i bildet. Skaper(ene) av Bitcoin var ikke de som lagde blokkjedeteknologi, men det han/hun/de gjorde, var å lage et system med insentiver som gjør det appellerende for folk å validere transaksjoner i en blokkjede ved bruk av en underliggende valuta (bitcoins).
I Bitcoin fungerer det slik at man få en premie i Bitcoin (som per idag er 6.25 bitcoin per blokk, en sum som halveres ca hvert 4 år) for å verifisere en blokk. Dette gjorde at folk etterhvert ble interessert i å mine Bitcoin, da de kunne bruke datakraft for å tjene penger på å mine Bitcoin. I tillegg tjener minere penger på en avgift som brukere av nettverket kan betale for å øke hastigheten til en transaksjon.
Naturligvis får ikke alle som prøver å mine en blokk 6.25 Bitcoin, som igjen tar oss tilbake til det tidligere punktet om miningens vanskelighetsgrad. Hvis det er 10000 som prøver å mine en blokk, så er det kun 1 person som får premien på 6.25 Bitcoin for den blokken. Jeg skal prøve å forklare hvordan dette funker i et eksempel:
Se for deg mining som en puslespill, der alle miners prøver å pusle sammen et puslespill først. Den som er raskest ute med å pusle ferdig puslespillet får en premie. I tilfellet med bitcoin så handler det om hvem som klarer å gjette et tall mellom 1 til 13,912,524,048,946 først (eksempel). Vi som mennesker er ikke så raske med å gjette tall, men datamaskiner kan gjette utrolig raskt. Dersom du har 2 datamaskiner, har du en større sjanse for å gjette riktig tall. Har du et helt datasenter, så vil du ha enda større sjanse for å gjette riktig. Med det sagt, koster det mer og mer strøm desto flere datamaskiner du har som prøver å gjette disse tallene.
Dette er grunnen til at man assosierer mining med stort strømforbruk, da det er masse folk rundt i verden som drifter datamaskiner 24/7 for å kunne prøve å gjette riktig tall i en blokk. Denne typen mining kalles Proof of Work, der man bruker datakraft til å løse matte-problemet i blokken. Vi skal i fremtidige artikler også ta en titt på på Proof of Stake, en ny konsensus-mekanisme som blant annet adresserer strømforbruk og skalering.
Det er svært vanlig at minere deltar noe man kaller mining-pools, en løsning der miners går sammen for å dele premien i stedet for å prøve å løse mattestykke alene, ettersom det er statistisk vanskelig å gjøre det alene. For eksempel kan 100 forskjellige minere gå i et samarbeid og hver gang en miner får en premie, deles det mellom alle i poolen.
Som vi snakket om tidligere, så må du alltid verifisere alle tidligere blokker i blokkjeden for å kunne verifisere nye blokker. I tillegg må informasjonen i blokken en miner har minet bli bekreftet av majoriteten av andre miners. Heldigvis er det mye lettere å dobbeltsjekke at et puslespill er riktig enn å faktisk pusle det. Slik bekrefter miners hele tiden at all informasjonen i og blokker bak i blokkjeden stemmer.
Dersom Pål har en saldo på 100 kr, og en miner prøver å endre saldoen til på ved å si at han har 1 million kr, så vil han ikke lykkes (eksempel med “invalid” i bildet over), fordi majoriteten av miners er enige om at Pål har 100 kr — og derav skaper den lengste kjeden med blokker. For miners er det ikke lønnsomt å prøve å lure systemet, da de ikke kan få premie og bare sløser penger på strøm på å verifisere feil informasjon. Det er ikke før en visst menge blokker blir minet at premien blir utbetalt. Dette er for å sikre at alle minere er i konsensus om hvilke blokker som skal mines.
Dersom over 51% av miners en blokkjede er enige om dataen, vil den enigheten bestemme utfallet i blokkjeden. Derfor evaluerer man også sikkerheten av en blokkjede basert på hvor distribuert nettverket er, da en majoritet kan endre innholdet i blokkjeden. Bitcoin sitt nettverk er så stort, distribuert og har så store insentiver at det anses som svært trygt og robust.
Du kan lese mer om Bitcoin her i en artikkel jeg har skrevet i Firi.
Oppsummering: Vi vet at transaksjoner gjøres mellom folk i et nettverk slik som Bitcoin. De som fasiliteter for disse Bitcoin transaksjonene er tusenvis miners som bruker datakraft rundt i verden for å prøve å løse et matteproblem i den gjeldende Bitcoin blokken. Vanskelighetsgraden og mattestykket blir definert som “mining vanskelighetsgrad”, og siden dette nettverket er sikret av ulike parter rundt i verden drevet av insentiver, får vi et desentralisert nettverk med distributerte noder, i stedet for et sentralisert nettverk med en aktør i midten.
Vi kaller denne typen validering for Proof of Work, som er en konsensus mekanisme, en mekanisme om felles enighet fra mange noder i et nettverk. Dette gjør at ingen bestemt person styrer bitcoin, men heller at det er drevet med bruk av insentiver som er definert med et par linjer med kode. Koden utbetaler automatisk ut en viss menge Bitcoin til mineren av en blokk som er definert som 6.25 Bitcoin nå, og som halveres ca vært fjerde år frem til ca. 2140. Miners kan også tjene penger på avgifter som brukere betaler på nettverket for å øke hastigheten på en transaksjon de har gjennomført.
Noder må alltid verifisere tidligere blokker i blokkjeden, som igjen sørger for at man alltid sikrer at blokkjeden ikke endrer seg. Man må alltid sjekke at alle puslespillene (matteproblemet) fra tidligere blokker stemmer, før man kan delta i løse det nyeste puslespillet (matteproblemet).
Denne prosessen gjør at man får “den lengste kjeden”, som alltid er den som gjelder i blokkjeden. Prøver man å lure systemet, ender man opp med å ikke kunne få premie, samtidig som man sløser unødvendig strøm fordi kjeden ikke fortsetter. Dersom over 51% av nettverket er enige om at informasjonen i en blokk stemmer, blir den blokken gjeldende for blokkjeden. Derfor er det svært relevant hvor stort og distribuert et nettverk av miners er for å avgjøre sikkerheten til blokkjeden det gjelder.
_________________________________________________________________
Forhåpentligvis var denne informasjonen nyttig for noen der ute. Denne gjennomgangen av blokkjedeteknologi er delt opp i flere deler så det er enklere å fordøye. Etter du har lest alle delene, vil du kunne mer om blokkjeder enn folk flest.
Du kan lese mer om digitale signaturer, del 5 av denne serien om blokkjeder:
https://krypto101.medium.com/blokkjede-introduksjon-del-5-digitale-signaturer-fd94e099eb00
Inntil neste gang,
Milad
🐦 Twitter: https://twitter.com/itsnakazumi
📨 Telegram: https://t.me/inakazumi
✉️ Epost: milad@presail.com
_________________________________________________________________
Definisjoner:
Sentralisering: Definisjonen av et nettverk eller en operasjon som er drevet og krever tillatelse fra (ofte) en sentral aktør.
Desentralisering: Definisjonen av et nettverk eller en operasjon som er distributert i et større nettverk med ulike parter — uten at alle avgjørelser blir gjort av en part.
Proof of Work: Konseptet om at man tar i bruk datakraft og bruke datamaskiner for å løse et spesifikt matteproblem for å verifisere informasjon og data i en blokkjede.
Miner: En person som tar i bruk datakraft for å validere transaksjoner i et nettverk for et insentiv som er fremlagt av protokollen — eller for annet insentiv som er gitt av deltagere i nettverket.
Node: Definert som en spesifikt knutepunkt i et nettverk. Det som differensierer en full node fra en miner er at en node har lastet ned hele blokkjeden, mens en miner validerer nye transaksjoner som en node oppbevarer. En full node kan også utføre mining.
Mining pools: Definisjonen av en samlingen med minere som går sammen for å dele premien de får ved mining. Folk danner ofte mining pools pga høy vanskelighetsgrad på mining, for å sikre mer stabil inntekt.