Hva er peer-to-peer (P2P)?
Innen datavitenskap består et peer-to-peer (P2P / person-til-person / maskin-til-maskin)-nettverk av en gruppe enheter som sammen lagrer og deler filer. Hver deltaker (node) fungerer som en individuell «peer». Vanligvis har alle nodene like mye makt og utfører de samme oppgavene.
Innen finansteknologi refererer begrepet peer-to-peer vanligvis til veksling av kryptovalutaer eller digitale aktiva via et distribuert nettverk. På en P2P-plattform kan kjøpere og selgere drive handel uten behov for mellomledd. Noen nettsteder tilbyr også et P2P-miljø som knytter sammen långivere og låntakere.
P2P-arkitektur kan passe til ulike bruksområder, men det ble spesielt populært på 1990-tallet da de første fildelingsprogrammene ble til. I dag er P2P-nettverk kjernen i de fleste kryptovalutaer og utgjør en stor del av blokkjedeindustrien. Men de benyttes også innen andre typer distribuert databehandling, inkludert nettsøkemotorer, strømmeplattformer, nettmarkedsplasser og webprotokollen InterPlanetary File System (IPFS).
Hvordan fungerer P2P?
Kort sagt opprettholdes et P2P-system av et distribuert nettverk av brukere. Vanligvis finnes det ingen sentral administrator eller server fordi hver node har en kopi av filene – de fungerer både som klient og som server for andre noder. På den måten kan hver node laste ned filer fra andre noder eller laste opp filer til dem. Det er dette som skiller P2P-nettverk fra de mer tradisjonelle klient-server-systemene, der klientenheter laster ned filer fra en sentralisert server.
På P2P-nettverk deler de tilkoblede enhetene filer som er lagret på harddiskene deres. Ved hjelp av programvare som er utviklet for å kunne dele data, kan brukerne sende forespørsler til andre enheter på nettverket om å finne og laste ned filer. Når en bruker har lastet ned en bestemt fil, kan brukeren selv også fungere som en kilde til den filen.
Sagt på en annen måte: Når en node fungerer som klient, laster noden ned filer fra andre nettverksnoder. Men når noden fungerer som server, er noden kilden som andre noder kan laste ned filer fra. Men i praksis kan begge disse funksjonene utføres samtidig (f.eks. nedlasting av fil A og opplasting av fil B).
Ettersom hver node lagrer, sender og mottar filer, er P2P-nettverk ofte raskere og mer effektive jo større brukerbasen er. Dessuten gjør den distribuerte arkitekturen at P2P-systemer blir veldig motstandsdyktige mot cyberangrep. I motsetning til tradisjonelle modeller har ikke P2P-nettverk et enkelt punkt som kan svikte.
Vi kan kategorisere peer-to-peer-systemer basert på arkitekturen. De tre hovedtypene kalles ustrukturerte, strukturerte og hybride P2P-nettverk.
Ustrukturerte P2P-nettverk
Ustrukturerte P2P-nettverk har ingen spesifikk organisering av nodene. Deltakerne kommuniserer tilfeldig med hverandre. Disse systemene anses som robuste mot høy gjennomtrekk (dvs. flere noder som ofte blir med og forlater nettverket).
Selv om ustrukturerte P2P-nettverk er enklere å bygge, kan de kreve høyere CPU- og minnebruk fordi søkeforespørslene sendes ut til flest mulig noder. Dette fører ofte til at nettverket blir overfylt av spørringer, spesielt hvis det bare er et lite antall noder som tilbyr ønsket innhold.
Strukturerte P2P-nettverk
Strukturerte P2P-nettverk har derimot en organisert arkitektur der nodene effektivt kan søke etter filer, selv om innholdet ikke er allment tilgjengelig. I de fleste tilfeller oppnås dette ved bruk av hash-funksjoner som legger til rette for databasesøk.
Selv om strukturerte nettverk kan være mer effektive, har de ofte et høyere nivå av sentralisering, og krever vanligvis høyere oppsett- og vedlikeholdskostnader. I tillegg er strukturerte nettverk mindre robuste ved høy gjennomtrekk.
Hybride P2P-nettverk
Hybride P2P-nettverk kombinerer den konvensjonelle klient-server-modellen med noen sider ved peer-to-peer-arkitekturen. For eksempel kan designet bestå av en sentral server der noder kan koble seg til hverandre.
Sammenlignet med de to andre typene har hybridmodeller som regel en bedre totalytelse. De kombinerer vanligvis noen av hovedfordelene med hver metode og oppnår høy effektivitet og desentralisering samtidig.
Distribuert kontra desentralisert
Selv om P2P-arkitekturen i seg selv er distribuert, er det viktig å merke seg at graden av desentralisering varierer. Altså er ikke alle P2P-nettverk desentralisert.
Faktisk benytter mange systemer en sentral autoritet for å styre nettverksaktiviteten, og de er derfor delvis sentralisert. I noen P2P-fildelingssystemer kan brukerne søke og laste ned filer fra andre brukere, men de kan ikke delta i andre prosesser, for eksempel administrasjon av søkespørringer.
I tillegg kan små nettverk som er kontrollert av en begrenset brukerbase med felles mål også sies å ha en høyere grad av sentralisering, selv om de ikke har en sentralisert nettverksinfrastruktur.
Rollen til P2P i blokkjeder
I de tidlige stadiene av Bitcoin definerte Satoshi Nakamoto det som et «elektronisk peer-to-peer kontantsystem». Bitcoin ble laget som en digital form for penger. Det kan overføres fra én bruker til en annen gjennom et P2P-nettverk, som administrerer en distribuert hovedbok som kalles en blokkjede.
I denne sammenhengen er P2P-arkitekturen som er integrert i blokkjedeteknologien, det som gjør at Bitcoin og andre kryptovalutaer kan overføres over hele verden uten å bruke mellomledd eller en sentral server. Og hvem som helst kan konfigurere en Bitcoin-node hvis de vil delta i prosessen med å verifisere og validere blokker.
Det finnes ingen bank som behandler eller registrerer transaksjoner på Bitcoin-nettverket. Isteden fungerer blokkjeden som en digital hovedbok som offentlig registrerer all aktivitet. I utgangspunktet har hver node en kopi av blokkjeden og sammenligner den med andre noder for å sikre at dataene er nøyaktige. Nettverket avviser raskt all uærlig aktivitet eller unøyaktighet.
I konteksten kryptovalutablokkjeder kan nodene ha mange forskjellige roller. Fulle noder, for eksempel, er de som sørger for nettverkets sikkerhet ved å verifisere transaksjoner opp mot systemets konsensusregler.
Hver full node har en komplett, oppdatert kopi av blokkjeden – slik at de kan delta i det kollektive arbeidet med å verifisere den virkelige tilstanden til den distribuerte hovedboken. Men det er verdt å merke seg at ikke alle fullvaliderende noder er minere.
Fordeler
Peer-to-peer-arkitekturen til blokkjeder har mange fordeler. Blant de viktigste er det at P2P-nettverk tilbyr større sikkerhet enn tradisjonelle klient-server-oppsett. Distribusjonen av blokkjeder blant et stort antall noder gjør dem tilnærmet immune mot tjenestenekt (DoS)-angrepene som mange systemer er plaget av.
Og fordi et flertall av nodene må etablere konsensus før data legges til på en blokkjede, er det nesten umulig for en angriper å endre dataene. Dette gjelder spesielt for store nettverk som Bitcoin. Mindre blokkjeder er mer utsatt for angrep fordi en person eller gruppe etter hvert kan oppnå kontroll over et flertall av nodene (dette er kjent som et 51 prosent-angrep).
Som et resultat gjør det distribuerte peer-to-peer-nettverket, sammen med et krav om flertallskonsensus, at blokkjeder har en relativt høy grad av motstand mot uærlig aktivitet. P2P-modellen er en av grunnene til at Bitcoin (og andre blokkjeder) har klart å oppnå den såkalte bysantinske feiltoleransen.
I tillegg til sikkerhet gjør bruken av P2P-arkitektur i kryptovalutablokkjeder dem også motstandsdyktige mot sensur fra sentrale myndigheter. I motsetning til standard bankkontoer kan ikke kryptovalutalommebøker fryses eller tømmes av myndigheter. Denne motstanden gjelder også sensurforsøk mot privat betalingsbehandling og innholdsplattformer. Noen innholdsskapere og nettforhandlere har begynt å bruke kryptovalutabetalinger for å unngå at betalingene blir blokkert av tredjeparter.
Begrensninger
Til tross for de mange fordelene har bruken av P2P-nettverk på blokkjeder også visse begrensninger.
Fordi distribuerte hovedbøker må oppdateres på hver enkelt node istedenfor på en sentral server, krever det en enorm mengde datakraft å legge til transaksjoner på en blokkjede. Selv om dette gir økt sikkerhet, reduserer det effektiviteten betraktelig og er en av hovedhindringene for skalerbarhet og utbredt bruk. Men kryptografer og blokkjedeutviklere utforsker alternativer som kan brukes som skaleringsløsninger. Viktige eksempler inkluderer Lightning Network, Ethereum Plasma og Mimblewimble-protokollen.
En annen potensiell begrensning er knyttet til angrep som kan oppstå under hard fork-hendelser. Siden de fleste blokkjeder er desentraliserte og har åpen kildekode, kan grupper av noder fritt kopiere og modifisere koden og dele seg bort fra hovedkjeden for å lage et nytt, parallelt nettverk. Hard forks er helt normale og ikke en trussel i seg selv. Men hvis visse sikkerhetsmetoder ikke brukes på riktig måte, kan begge kjedene bli sårbare for replay-angrep.
Dessuten gjør det distribuerte designet av P2P-nettverk at de er relativt vanskelige å kontrollere og regulere, ikke bare innenfor blokkjede. Flere P2P-applikasjoner og selskaper har vært involvert i ulovlige aktiviteter og brudd på opphavsretten.
Avsluttende tanker
Peer-to-peer-arkitektur kan utvikles og brukes på mange forskjellige måter, og det er kjernen i blokkjedene som gjør det mulig med kryptovaluta. Ved å distribuere transaksjonshovedbøker over store nettverk av noder tilbyr P2P-arkitektur sikkerhet, desentralisering og sensurmotstand.
I tillegg til at P2P-systemer er nyttige i blokkjedeteknologien, kan de også benyttes på andre bruksområder for distribuert databehandling – alt fra fildelingsnettverk til energihandelsplattformer.