Typer av konsensusalgoritmer
Hovedtrekk ved distribuert hovedboksteknologi er at den mangler en sentral autoritet. Dette betyr at deltakerne i kjernen av teknologien må bli enige om reskontrostat. Dette er den grunnleggende delen av et distribuert system, og hvordan det implementeres, definerer resten av arkitekturen. Dette kalles konsensusalgoritmen.
På grunn av sin overveldende natur er konsensusalgoritmen hjertet i et distribuert system. Det er den sentrale delen, og design og implementering må vurderes nøye for de som ønsker å lage en protokoll. En god konsensusalgoritme må gi følgende resultater:
1. Avtale: Alle noder i nettverket må nå resultatet når det gjelder nettverkets tilstand.
2. Feil-tolerant: Algoritmen skal ha kapasitet til å fungere ordentlig, selv om det er feil eller uærlige noder.
3. Oppsigelse: Konsensusprosessen må ha et klart stopp, hvoretter alle noder kommer til en beslutning.
4. Integritet: Alle noder skal oppnå finalitet innen en konsensus-syklus.
Dette er de grunnleggende egenskapene til en fungerende konsensusmekanisme. Spesifikke algoritmer kan ha flere eller forskjellige versjoner av konseptene som presenteres, men på noen måter deles alle disse av hvilken som helst desentralisert protokoll. I tillegg har konsensusalgoritmer et viktig lag med egenskaper de trenger å ha for å fungere.
Disse er:
1. Konsistens: Denne egenskapen betyr at alle ærlige noder produserer den samme verdien som anses som den riktige.
2. Toleranse: Evnen til å tåle noen defekte eller uærlige noder og nettverkets evne til å komme seg.
3. Livsstil: Så lenge antallet kompromitterte noder er under toleransegrensen, kan disse ikke stoppe eller forsinke nettverket fra å oppnå konsensus.
4. Autentisering: Denne egenskapen forsikrer at det er en mekanisme for å verifisere identiteten til deltakernodene.
5. Kvorumsstruktur: I et distribuert system er det bare minimum antall stemmer som er nødvendig for å operere.
6. Ikke-avvisning: En måte å verifisere avsenderkontoens identitet på, slik at den kan ha kapasitet til å bestride transaksjonen.
7. Like autoritet: Alle noder i nettverket må ha samme kapasitet, uten sentral myndighet som kan overstyre en beslutning.
Igjen, dette er et grunnleggende sett med egenskaper for en ideell desentralisert konsensusalgoritme. Ikke alle de virkelige mekanismene der ute samsvarer med disse reglene. Et eksempel er IOTA, som har en sentral observatør som er i stand til å endre avgjørelsene til nodene. For en purist betyr en slik inkludering at IOTA ikke virkelig er et desentralisert nettverk, selv om det har noen andre egenskaper.
Før vi går gjennom de vanligste konsensusalgoritmene som er i bruk, må vi merke oss noe. De vi skal diskutere, arbeider for det meste med blokkjeder. Det vil si at datastrukturen kjent som blockchain er der disse er ment å fungere. Andre datastrukturer kan brukes i et desentralisert nettverk som for eksempel rettet acyklisk graf (DAG), Hashgraph, etc. Disse har sine konsensusalgoritmer.
Når det er sagt, er blockchain fortsatt den mest populære datastrukturen. Den ble først implementert med Bitcoin; Ethereum adopterte den, og selv nå bruker nye tredjegenerasjons protokoller som Cardano den. Det ser ut til at blockchain fortsatt vil være den dominerende teknologien i overskuelig fremtid.
Kina er i forkant av blockchain-integrering. Sjekk ut hele deres blockchain-strategi og hvorfor de er så raske med å integrere blockchain-teknologi i økonomien.
Typer av konsensusalgoritmer
Her vil vi gi en generell oversikt over de mest populære i blockchain.
Bevis på arbeid
Bevis for arbeid er den første levedyktige konsensusalgoritmen og fortsatt den mest brukte. I den konkurrerer individuelle noder om å finne en hash-funksjon som representerer listen over transaksjoner inne i blokken og et nonce lagt til på toppen av det. En nonce er et tall som krever at hash-funksjonen er innledet av et antall nuller for å være gyldig. Prosessen med å finne denne hashfunksjonen er kjent som gruvedrift.
Klikk her for å les alt om den komplette guiden til Bitcoins arkitektur.
Alle nettverksnodene konkurrerer i den svært maskinvarekrevende prosessen med gruvedrift for å få Bitcoin som belønning. Mange har kritisert at energiintensiteten til bevis på arbeid er sløsing og skadelig for miljøet. I tillegg har gruvedriftens strøm- og maskinvarekostnader ført til sentraliseringen av nettverket i en håndfull land.
Dette har resultert i at nye konsensusalgoritmer er designet.
Bevis for innsats
Hovedalternativet til bevis på arbeid (PoW), bevis på innsats (PoS), har fått grep raskt i blockchain-verdenen. I den deponerer nodene i nettverket protokollens hovedvaluta og låses i noen tid. Dette gjør at de kan delta i et semi-tilfeldig lotteri for å validere neste blokk med transaksjoner.
Muligheten for å bli valgt avhenger av mengden av innsatte mynter. Det er mer sannsynlig at en node med et innskudd på 1000 mynter blir valgt enn en med 500. Dette kan føre til sentralisering siden de nodene med større bassenger av penger kan dominere nettverket. Selv med denne muligheten hevder talsmenn at PoS er billigere å kjøre enn PoW, siden det ikke er behov for kostbar maskinvare for å validere transaksjoner.
Delegert bevis på stav
Dette er en variant av PoS. Her bruker interessentene myntene sine til å velge hvilken node som skal validere neste blokk med transaksjoner. Nodene tildelte penger av deltakeren blir validatorer og har ansvaret for å forplante blokkene til nettverket. De kan bli stemt ut av interessentene hvis de er treg eller oppfører seg uærlig. Det er et større nivå av sentralisering i denne modellen siden nodene som kan bli validatorer er av begrenset antall og er valgt før avstemningen på annen måte..
Bevis på forløpt tid
Dette er en foretrukket konsensusalgoritme for få blokkjeder. Her genererer hver node en tilfeldig ventetid der en node går i dvale. Noden som våkner først blir neste validator. Ulempen er at nodenes identitet må være kjent av systemet siden ventetiden må være tilfeldig. Ellers kan uærlige noder jukse systemet.
Konsensusalgoritmen er kjernen i en blockchain. Det er hoveddesignbeslutningen som avgjør hva som er mulig og hvor raskt resten av systemet skal utføre. For de som ønsker å utvikle seg i en gitt protokoll eller for investorer som prøver å bestemme hvilken protokoll som vil være den beste i fremtiden, er det avgjørende å forstå det grunnleggende.