I dagens digitale tidsalder har blockchain-teknologi fått en stadig viktigere rolle i forskjellige applikasjoner, fra kryptovalutaer som Bitcoin til mer komplekse systemer for datadeling og samarbeid mellom organisasjoner. Forståelsen av hvordan forskjellige blockchain-modeller fungerer og deres respektive styrker og svakheter er avgjørende for å kunne vurdere hvilke løsninger som er best egnet til ulike formål. Denne artikkelen ser nærmere på noen viktige aspekter ved blockchain-modellene, inkludert UTXO-modellen og kontosystemet, samt forskjellen på offentlig, privat og konsortium-blockchain.

UTXO-modellen og dens Effektivitet

En av de mest kjente blockchain-modellene er UTXO-modellen (Unspent Transaction Output), som brukes av blant annet Bitcoin. Denne modellen skiller seg fra kontosystemet, da hver transaksjon er representert ved en utgift (output) som kan brukes i fremtidige transaksjoner. Dette gjør det mulig å parallellisere transaksjoner, da hver UTXO er uavhengig av de andre. Dette skaper muligheten for samtidige transaksjoner, noe som gjør UTXO-modellen mer skalerbar i teorien.

Men til tross for de skalerbaritetsfordelene, kan UTXO-modellen være ineffektiv dersom den ikke implementeres riktig. En full node som holder hele settet av UTXOer, kan kreve betydelig lagringsplass. For eksempel, Bitcoin-nettverket har i dag et UTXO-sett som veier rundt 3,65 GiB, og dette krever mye plass for autentisering av transaksjoner. Det er også strategier som kan bidra til å forbedre effektiviteten i UTXO-modellen, for eksempel ved å lagre bare en komprimert versjon av UTXO-settet, som kun inneholder de relevante dataene for å validere transaksjoner. I tillegg kan metoder som Bulletproofs bidra til å redusere lagringsbehovet betydelig ved å forbedre datakomprimeringen i kryptografiske bevis.

Skalerbarhet i Blockchain

Skalerbarhet er en annen viktig faktor når man vurderer blockchain-teknologi. I UTXO-modellen kan transaksjoner behandles parallelt, noe som gjør det lettere å skalere nettverket uten å gå på bekostning av transaksjonsintegriteten. På den annen side, i kontosystemet behandles transaksjoner sekvensielt, da hver konto må oppdateres for å opprettholde integriteten til systemet. Dette kan føre til at kontosystemet er mindre skalerbart enn UTXO-modellen, spesielt i store nettverk som Bitcoin eller Ethereum.

Offentlig, Privat og Konsortium-Blockchain

Når det gjelder tilgang og skala, kan blockchain-modeller deles inn i tre hovedkategorier: offentlig blockchain, privat blockchain og konsortium-blockchain.

  • Offentlig Blockchain: Offentlige blockchains, som Bitcoin og Ethereum, er desentraliserte og tillater enhver å delta. I disse nettverkene er deltakerne frie til å initiere transaksjoner og engasjere seg i konsensusmekanismene som styrer nettverket, for eksempel som minearbeidere, validatorer eller velgere. Selv om offentligheten gir fordeler som transparens og sikkerhet, innebærer det også visse utfordringer. For eksempel er offentlige blockchains sårbare for angrep som token-tyveri eller såkalte Sybil- og eklipsangrep. I tillegg reiser den åpne naturen problemer relatert til personvern, ettersom alle transaksjoner er synlige på nettverket, og høy energiforbruk er en bekymring på grunn av global gruveaktivitet.

  • Privat Blockchain: Privat blockchain er lukket for et begrenset antall deltakere og benyttes ofte av organisasjoner som ønsker å bruke blockchain for spesifikke applikasjoner som intern datadeling eller identitetsforvaltning. Den største fordelen med privat blockchain er økt effektivitet, sikkerhet og personvern, men til gjengjeld går man på bekostning av desentralisering og åpenhet. En sentral autoritet kan ha makt til å endre eller tilbakekalle transaksjoner, noe som kan undergrave noen av de grunnleggende prinsippene ved blockchain-teknologi, som tillitsløshet.

  • Konsortium Blockchain: Konsortium-blockchains ligger et sted mellom offentlig og privat blockchain. Disse er også tillatelsesbaserte, men de er semi-desentraliserte. I stedet for å være kontrollert av én enhet, styres et konsortium-blockchain av flere organisasjoner som samarbeider for å opprettholde nettverket. Dette kan være ideelt for applikasjoner som krever tillit mellom flere aktører, som energihandel mellom forskjellige produsenter og forbrukere. Eksempler på slike løsninger inkluderer Hyperledger Fabric og Ripple.

Blockchainens Grunnleggende Egenskaper

Blockchain-teknologi har flere nøkkelkarakteristikker som gjør den unik og verdifull for ulike brukstilfeller. Disse inkluderer:

  • Uforanderlighet: Når data er registrert på en blockchain, kan det ikke endres. Dette gir høy grad av dataintegritet og gjør blockchain ideell for anvendelser som revisjon og bevaring av historiske data. Samtidig kan uforanderligheten føre til utfordringer når det gjelder personvern, ettersom all informasjon som legges til blockchain er offentlig og umulig å endre.

  • Desentralisering: Blockchain-nettverk er desentraliserte, noe som betyr at det ikke er et enkelt kontrollpunkt som kan manipuleres. Dette reduserer risikoen for korrupsjon og angripere som kan få tilgang til systemet. Mens offentlig blockchain er sterkt desentralisert, er private og konsortium-blockchains ofte mer sentraliserte, med færre noder som styrer nettverket.

  • Åpenhet: Åpenhet er et viktig kjennetegn for offentlig blockchain, der alle har tilgang til hele blokkjeden. Denne åpenheten kan føre til økt tillit, men også til utfordringer knyttet til personvern og sikkerhet. Åpen kildekode er også vanlig i mange blockchain-prosjekter, noe som gjør det lettere for utviklere å bidra og forbedre systemet.

Viktige Konsepter å Forstå

Ved å forstå disse grunnleggende egenskapene og forskjellene mellom ulike blockchain-modeller, kan man få en bedre innsikt i hvordan denne teknologien kan implementeres på en sikker og effektiv måte. Det er viktig å merke seg at mens blockchain gir stor mulighet for å forbedre dataintegritet, redusere tredjeparts mellomledd og øke transparens, medfører det også utfordringer knyttet til skalerbarhet, personvern og energiforbruk. Videre er det avgjørende å forstå de forskjellige bruksområdene for offentlige, private og konsortium-blockchains, samt deres styrker og svakheter, for å kunne ta velinformerte beslutninger om implementering av blockchain-teknologi i praksis.

Hvordan det distribuerte MIS-algoritmen fungerer i et trådløst blockchain-system

Utførelsen av et distribuert MIS-algoritme basert på avstanden ri=2ir_i = 2^i fører til en sekvens som utvikler seg som VlogΓV1V0=VV_{\log \Gamma} \subseteq \dots \subseteq V_1 \subseteq V_0 = V. Denne sekvensen definerer en struktur hvor nodene i ViV_i danner et maksimal uavhengig sett (MIS) av nodene i Vi1V_{i-1} med hensyn til avstanden rir_i. Hver node i Vi1ViV_{i-1} \setminus V_i har en foreldrenode i ViV_i, og avstanden mellom disse nodene, d(v,u)d(v, u), er mindre enn eller lik rir_i. I denne konteksten inneholder VlogΓV_{\log \Gamma} kun én node, nemlig roten.

For å tydeliggjøre diskusjonen, blir nodene i V0VlogΓV_0 \setminus V_{\log \Gamma} og de i VlogΓV_{\log \Gamma} henholdsvis betegnet som "followers" og "collector". Denne inndelingen skaper et hierarkisk system, der hver node i V0VlogΓV_0 \setminus V_{\log \Gamma} sender sine data til den tilsvarende samler- eller collector-noden, som har ansvar for å aggregere og videreformidle informasjonen til ledernodene.

En viktig egenskap ved denne strukturen er at hvert trinn i prosessen, enten det er å oppdatere en node med informasjon fra en annen eller å aggregere data, må håndtere feil og tap av noder på en robust måte. I tilfelle at en node svikter, kreves det at det etableres et nytt nettverk, kjent som en spanner, som igjen leder til en omfordeling av lederrollen i nettverket, men uten at det går på bekostning av systemets stabilitet.

I dette kapittelet definerer vi at en hendelse EE skjer med høy sannsynlighet (w.h.p.) dersom, for hvilken som helst valgt node, er sannsynligheten for at hendelsen skjer minst 11Nc1 - \frac{1}{N^c}, der NN er antall noder, og cc er en konstant. Dette betyr at selv i et stort nettverk er systemet designet for å være svært motstandsdyktig mot feil.

Designmål for wChain

Det overordnede designmålet for wChain, et distribusjonssystem basert på blockchain, er å oppnå full desentralisering, økt effektivitet, feiltoleranse, utholdenhet og kontinuitet i drift. Systemet er konstruert for å eliminere sentrale feilpunkt og unngå avhengighet av et enkelt kontrollpunkt. Dette gjør wChain både sikkert og robust, ettersom det ikke er avhengig av én enkelt node eller server for å fungere.

  • Full desentralisering: wChain er utviklet som et helt distribuert system uten behov for sentralisert kontroll, og dermed er risikoen for et enkelt feilpunkt eliminert.

  • Høy effektivitet: Systemet er designet for å ha lav kommunikasjonsoverhead, noe som muliggjør rask behandling og økt transaksjonsgjennomstrømning.

  • Feiltoleranse: wChain kan håndtere opp til f=N2f = \left\lceil \frac{N}{2} \right\rceil feilede noder uten at systemets integritet blir kompromittert, noe som er spesielt viktig for å sikre påliteligheten under perioder med nodefeil.

  • Vedvarende drift og liveness: wChain sikrer at systemet er både vedvarende og aktivt, som er nødvendige egenskaper for å opprettholde blokkjedens integritet over tid.

Teknisk oversikt og funksjoner

Protokollen wChain opererer i distinkte tidsperioder, kjent som epoch, hvor én blokk produseres per epoch. I løpet av hver epoch er det nødvendigvis én ledernode som er ansvarlig for å samle data fra alle følgere og verifisere konsensusen på tvers av nettverket. Hvis det oppstår et systemkrasj, må et nytt nettverk (spanner) dannes i samme epoch, men lederrollen forblir uendret. Dette sørger for at systemet kan fortsette å operere pålitelig, selv ved feil.

I wChain finnes det tre nøkkelphaser som styrer prosessen med datainnsamling og blokkaproduksjon: PREPARE, COMMIT, og DECIDE. Under PREPARE-fasen samler lederen meldinger fra følgere for å verifisere konsensus. Hvis en tilstrekkelig mengde følgere støtter lederens syn, går systemet videre til COMMIT-fasen, der transaksjoner blir samlet og satt sammen i en blokk. I DECIDE-fasen blir blokken distribuert til hele nettverket og integrert i de lokale blokkjedene.

Data-aggregasjon og reaggregasjon

En kritisk del av wChain er prosessen med data-aggregasjon og reaggregasjon. Målet er å sikre at data effektivt samles fra alle følgere til lederen, som deretter samler og videresender denne informasjonen til ledernoden. Prosessen må være tidseffektiv og tillate høy skalering, da flere noder kan være involvert i et globalt nettverk. Effektiv datahåndtering er avgjørende for å opprettholde nettverkets ytelse, spesielt når antallet noder vokser.

Datahåndteringen krever at hver node i systemet bruker spesifikke funksjoner som MSG(.datav)MSG(.datav) for å generere meldinger, og ADD(Mv,Mu)ADD(Mv, Mu) for å legge til meldinger i køen. I tillegg må systemet håndtere forskjellige typer dataelementer, som transaksjoner og blokkinnhold, som skal autentiseres og integreres i blockchain.

Viktige konsepter å forstå

Når man arbeider med distribuerte systemer som wChain, er det viktig å forstå den betydelige rollen som feiltoleranse spiller. Selv små feil i nettverket kan forårsake store problemer, så mekanismene for feilbehandling, som automatisk dannelse av nye spanner ved krasj, er avgjørende for systemets stabilitet og pålitelighet.

Videre må man merke seg at blokkjedeteknologi, til tross for sine fordeler, krever stor nøye overvåking av nettverksdynamikken for å forhindre brudd på konsensus. Selv om wChain er designet for å være robust, kan systemets ytelse variere avhengig av hvor godt de ulike noder er koblet sammen og deres evne til å håndtere store datamengder.

Hvordan Byzantine-feiltolerante algoritmer former dagens desentraliserte systemer

PBFT-algoritmen, som ble introdusert av Castro og Liskov, representerer en viktig milepæl i utviklingen av distribuerte systemer, spesielt innenfor områder som krever høy pålitelighet til tross for potensielle feil i systemet. Denne algoritmen har vist seg å være effektiv i å opprettholde kontinuitet i systemer som er utsatt for bysantinske feil, det vil si feil som kan være både systematiske og skadelige i naturen, for eksempel fra ondsinnede noder som prøver å manipulere systemet.

Når en forespørsel sendes til systemet, starter en rekkefølgeprosess som sikrer at alle noder, eller replikasjoner, er enige om hva som skal skje. Først validere en replika forespørselen og sender ut en "prepare"-melding til de andre replikasjonene. En replika går videre til den "forberedte" tilstanden når den har mottatt disse meldingene fra minst en tredjedel av replikasjonene i systemet, der det totale antallet replikasjoner er N, og det kreves at N er stor nok til å tåle opptil N−1 Byzantinske feil. Denne fasen bidrar til å fastsette både sekvensnummeret og innholdet i forespørselen.

Når en replika har mottatt en bekreftelse på at et flertall av replikasjonene er enige om både rekkefølgen og innholdet i forespørselen, går systemet videre til "commit"-fasen. Her sendes en "commit"-melding, og en replika gjennomfører forespørselen lokalt når den har mottatt nok bekreftelser fra de nødvendige replikasjonene. Dette garanterer at alle noder i systemet utfører forespørselen i samme rekkefølge. Når forespørselen er utført, blir et svar sendt til klienten som ber om operasjonen, og dermed sikres systemets konsistens i utførelsen.

En annen viktig mekanisme for å opprettholde systemets pålitelighet er periodisk sjekkpunktlegging og loggtruncering. Gjennom denne prosessen kan replikasjonene bli enige om en stabil tilstand i systemet, noe som muliggjør en effektiv administrasjon av loggene og reduserer lagringsbehovet. På denne måten kan systemet raskt komme tilbake til normal drift etter et krasj.

I tilfelle den primære replikasjonen opplever feil, finnes det et mekanisme kjent som "View Change Protocol". Denne prosessen setter i gang en ny valgprosess for å etablere en ny primær replika gjennom en konsensusmekanisme som ligner på de innledende fasene, og krever bekreftelse fra et flertall av replikasjonene for å sikre systemets kontinuerlige operasjon.

En videre utvikling på området kom i 2016, da Andrew Miller og hans kolleger introduserte HoneyBadgerBFT, en asynkron bysantinsk feiltolerant konsensusprotokoll designet for desentraliserte systemer, som kryptovalutaer. I motsetning til tradisjonelle BFT-protokoller som krever synkronisering av tid, opererer HoneyBadgerBFT uten tidssynkronisering, noe som gjør det svært robust i forhold til nettverksfeil. Denne innovasjonen gjør det mulig for systemer å oppnå konsensus selv under ugunstige forhold der tidssynkronisering ikke kan garanteres.

HoneyBadgerBFT fungerer ved at hver replika først initialiseres med en offentlig nøkkel for "Threshold Public-Key Encryption" (TPKE), en metode for å sikre transaksjoner før konsensus oppnås. Replikaene mottar transaksjoner, velger deretter en delmengde av dem, og krypterer dem. Deretter benyttes ACS-protokollen (Asynchronous Common Subset) for å koordinere transaksjoner mellom replikasjoner. Dette protokollsteget sikrer at alle replikasjoner er enige om et felles sett av krypterte transaksjoner.

Når konsensus er oppnådd, samarbeider replikasjonene for å dekryptere transaksjonene ved hjelp av deres respektive dekripsjonsandeler. Denne fasen krever minst én andel dekripsjon fra f+1 forskjellige replikasjoner, hvor f er antall tillatte feil i systemet. Når transaksjonene er dekryptert, blir de deretter ordnet og endelig bekreftet i henhold til den sekvensen som ble avtalt i ACS-protokollen. Dette sikrer at transaksjonene er registrert på blokkjeden i riktig rekkefølge og med høy grad av sikkerhet.

En av de største fordelene med HoneyBadgerBFT er at det fjerner avhengigheten av nettverksforsinkelser, som er en vanlig sårbarhet i andre BFT-protokoller. Dette gjør HoneyBadgerBFT spesielt godt egnet for bruk i blokkjeder og andre desentraliserte applikasjoner som trenger høy tilgjengelighet og sikkerhet, selv under ugunstige forhold.

Når vi ser på konsensusmekanismer som Proof-of-Work (PoW), er det interessant å merke seg hvordan ressursbaserte mekanismer påvirker blockchain-teknologier. I PoW konkurrerer "minere" om å legge til nye blokker på blokkjeden basert på deres databehandlingskraft, med de med høyest regnekraft som har større sjanse for å vinne. Bitcoin var den første globale desentraliserte transaksjonsledgeren som benyttet PoW, og den bruker en algoritme kjent som hashcash med dobbeltiterert SHA-256.

Andre PoX-protokoller, som Proof-of-Space (PoSpace) og Proof-of-Elapsed-Time (PoET), viser hvordan ressurser, både fysiske og virtuelle, kan brukes for å velge en lederreplika som får muligheten til å foreslå et nytt blokk. Denne typen konkurranse, som benytter fysiske ressurser eller til og med virtuelle som innsats eller omdømme, er et alternativ til de mer tradisjonelle PoW-algoritmene.

Det er viktig å forstå hvordan ulike konsensusprotokoller påvirker ytelse, sikkerhet og ressursbruk i distribuerte systemer. Mens PBFT gir høy sikkerhet og pålitelighet, spesielt i systemer som er utsatt for bysantinske feil, kan HoneyBadgerBFT tilby en mer robust løsning for asynkrone nettverk hvor tidssynkronisering er en utfordring. Samtidig viser PoW- og PoX-baserte mekanismer hvordan forskjellige måter å bruke ressurser på kan lede til ulike måter å oppnå konsensus og sikre systemintegritet.

Endtext