Typer af konsensusalgoritmer
Hovedtrækket ved distribueret hovedbogsteknologi er, at den mangler en central myndighed. Dette betyder, at deltagerne i kernen af teknologien er nødt til at blive enige om hovedstatens tilstand. Dette er det grundlæggende stykke af ethvert distribueret system, og hvordan det implementeres definerer resten af arkitekturen. Dette kaldes konsensusalgoritmen.
På grund af sin overvældende natur er konsensusalgoritmen hjertet i et distribueret system. Det er den centrale del, og dets design og implementering skal overvejes nøje for dem, der ønsker at oprette en protokol. En god konsensusalgoritme skal give følgende resultater:
1. Aftale: Alle noder i netværket skal nå resultatet med hensyn til netværkets tilstand.
2. Fejltolerant: Algoritmen skal have kapacitet til at fungere korrekt, selv med tilstedeværelsen af defekte eller uærlige noder.
3. Opsigelse: Konsensusprocessen skal have et klart stop, hvorefter alle knudepunkter kommer til en beslutning.
4. Integritet: Alle noder skal opnå finalitet inden for en konsensuscyklus.
Dette er de grundlæggende egenskaber ved en fungerende konsensusmekanisme. Specifikke algoritmer kan have flere eller forskellige versioner af de præsenterede begreber, men på nogle måder deles alle disse af enhver decentral protokol. Derudover har konsensusalgoritmer et væsentligt lag af egenskaber, de skal have for at arbejde.
Disse er:
1. Konsistens: Denne egenskab betyder, at alle ærlige noder producerer den samme værdi, der betragtes som den rigtige.
2. Tolerance: Evnen til at udholde nogle defekte eller uærlige noder og netværkets kapacitet til at komme sig.
3. Livsstil: Så længe antallet af kompromitterede noder er under tolerancegrænsen, kan disse ikke stoppe eller forsinke netværket i at nå til enighed.
4. Godkendelse: Denne egenskab sikrer, at der er en mekanisme til at verificere identiteten på deltagerknudepunkterne.
5. Kvorumstruktur: I et distribueret system er kun det mindste antal stemmer nødvendigt for at fungere.
6. Ikke-afvisning: En måde at verificere afsenderkontoens identitet på, så den kan have kapacitet til at bestride transaktionen.
7. Lig autoritet: Alle noder i netværket skal have den samme kapacitet uden nogen central myndighed, der er i stand til at tilsidesætte en beslutning.
Igen er dette et grundlæggende sæt egenskaber til en ideel decentral konsensusalgoritme. Ikke alle de virkelige mekanismer derude er i overensstemmelse med disse sæt regler. Et eksempel er IOTA, som har en central observatør, der er i stand til at ændre nodernes beslutninger. For en purist betyder en sådan inddragelse, at IOTA ikke virkelig er et decentralt netværk, selvom det har nogle andre egenskaber.
Før vi gennemgår de mest almindelige konsensusalgoritmer, der er i brug, skal vi bemærke noget. Dem, vi vil diskutere, arbejder for det meste med blockchains. Det vil sige, datastrukturen kendt som blockchain er, hvor disse er beregnet til at fungere. Andre datastrukturer kan bruges i et decentralt netværk såsom dirigeret acyklisk graf (DAG), Hashgraph osv. Disse har deres konsensusalgoritmer.
Når det er sagt, er blockchain stadig den mest populære datastruktur. Det blev først implementeret med Bitcoin; Ethereum vedtog det, og selv nu bruger nye tredjegenerationsprotokoller som Cardano det. Det ser ud til, at blockchain i en overskuelig fremtid vil forblive den dominerende teknologi.
Kina er i spidsen for blockchain-integration. Tjek ud hele deres blockchain-strategi, og hvorfor de er så hurtige til at integrere blockchain-teknologi i deres økonomi.
Typer af konsensusalgoritmer
Her giver vi et generelt overblik over de mest populære i blockchain.
Bevis for arbejde
Bevis for arbejde er den første levedygtige konsensusalgoritme og stadig den mest anvendte. I det konkurrerer individuelle noder om at finde en hash-funktion, der repræsenterer listen over transaktioner inde i blokken og en nonce tilføjet oven på den. En nonce er et tal, der kræver, at hash-funktionen forud for et antal nuller for at være gyldig. Processen med at finde denne hash-funktion kaldes minedrift.
Klik her for at læs alt om den komplette guide til Bitcoins arkitektur.
Alle netværksnoder konkurrerer i den meget hardwarekrævende minedrift for at få Bitcoin som en belønning. Mange har kritiseret, at energiintensiteten af bevis for arbejde er spild og miljøskadelig. Derudover har minedriftens el- og hardwareomkostninger ført til centralisering af netværket i en håndfuld lande.
Dette har resulteret i, at nye konsensusalgoritmer er designet.
Bevis for indsats
Det vigtigste alternativ til bevis for arbejde (PoW), bevis for indsats (PoS), har fået trækkraft hurtigt i blockchain-verdenen. I det deponerer noderne i netværket protokollens hovedvaluta og låses i nogen tid. Dette giver dem mulighed for at deltage i et semi-tilfældigt lotteri for at validere den næste blok af transaktioner.
Muligheden for at blive valgt afhænger af mængden af de indsatte mønter. En node med et depositum på 1.000 mønter vælges mere sandsynligt end en med 500. Dette kan føre til centralisering, da de noder med større puljer af penge kan dominere netværket. Selv med denne mulighed hævder fortalere, at PoS er billigere at køre end PoW, da der ikke er behov for dyr hardware for at validere transaktioner.
Delegeret bevis for stav
Dette er en variation af PoS. Her bruger interessenterne deres mønter til at vælge, hvilken node der skal validere den næste blok med transaktioner. De noder, der er tildelt penge af deltageren, bliver validatorer og har ansvaret for at udbrede blokke til netværket. De kan stemmes ud af interessenterne, hvis de er langsomme eller opfører sig uærligt. Der er et større niveau af centralisering i denne model, da de noder, der kan blive validatorer, har et begrænset antal og vælges inden afstemning på anden måde.
Bevis for forløbet tid
Dette er en foretrukken konsensusalgoritme med få blockchains. Her genererer hver node en tilfældig ventetid, hvor en node går i dvale. Noden, der vågner først, bliver den næste validator. Ulempen er, at nodernes identitet skal være kendt af systemet, da ventetiden skal være tilfældig. Ellers kan uærlige noder snyde systemet.
Konsensusalgoritmen er kernen i en blockchain. Det er den vigtigste designbeslutning, der bestemmer, hvad der er muligt, og hvor hurtigt resten af systemet skal udføre. For dem der ønsker at udvikle sig i en given protokol eller for investorer, der prøver at bestemme, hvilken protokol der vil være den bedste i fremtiden, er det afgørende at forstå det grundlæggende.