BTC
% 1h
0.16
% 24h
6.56
% 7d
13.59
BTC
USD
12,990
EUR
10,988
NOK
119,889

BTC
% 1h
0.16
% 24h
6.56
% 7d
13.59
BTC
USD
12,990
EUR
10,988
NOK
119,889

Ukens whitepaper: Holochain første del

Holochain er et meget krevende whitepaper å lese og for de som vil lese whitepaper selv, så bør du ha en del matematiske forkunnskaper, samt kjennskap til en del tekniske begreper og meget god kjennskap om hvordan distribuerte systemer virker. Om du ikke har dette blir det litt som å prøve å tyde en magisk trylleformel.

Les whitepaperet i sin helehet her.

Datasentrisk vs Agentsentrisk

I starten av whitepaperet analyseres Bitcoin og Git som distribuerte systemer. Det gjennomgås svakheter og fordeler ved de ulike måtene systemene er satt opp på. Bitcoin kategoriseres som et datasentrisk distribuert system ettersom det først og fremst fokuserer på å skape en felles delt data-virkelighet blant alle noder. Git derimot, kategoriseres som et agentsentrisk distribuert system, ettersom det fokuserer på å tillate noder å dele uavhengige data-virkeligheter som endrer seg over tid. Holochain påstår i likhet med mange andre at den datasentriske modellen er en fundamental begrensning for blokkjedeteknologien. Mange løsninger er foreslått, men Holochain er den første som endrer den fundamentale datamodellen.

Deretter følger en sammenligning av systemene. Bitcoins datasentriske system prøver å opprettholde en nettverkstilstand hvor alle noder har den samme versjonen av blokkjeden. I den agentsentriske modellen til Git er det ingen slik begrensing, da kjernevirksomheten i Git er å la forskjellige agenter operere autonomt og divergerende på en felles kodebase. Dette ville selvsagt være umulig om tilstanden til koden alltid måtte være den samme. En direkte konsekvens av den datasentriske modellen er at når størrelsen på blokkjeden øker, så må også alle nodene til Bitcoin øke tilsvarende i størrelse. Dette er i følge Holochain et av kjerneproblemene for skalering. For Git og den agentsentriske modellen gjelder derimot nødvendigvis ikke det samme.

Blockchain handler om likhet ikke konsensus

Holochain argumenterer så for at konsensusalgoritmen i Bitcoin har lite med konsensus å gjøre. Kravet er at alle noder skal ha de samme dataene fra blokkjeden. Dette håndheves i praksis med et lotteri om hvilken node som for lov til å validere neste blokk, slik at ingen noder skal kunne ha en preferanse på hvilken blokk som blir lagt til blokkjeden neste gang. Holochain spøker til og med at «proof of work» burde hete «proof of luck» og med en litt mer alvorlig tone at konsensus isteden burde erstattes med ordet likhet.

illustrasjonsfoto: https://holochain.org

Holochain gir oss et eksempel på hvordan Bitcoin sin konsensusalgoritme ville virket i praksis i virkeligheten:

La oss si at 10.000 tilfeldig utvalgte personer skal bestemme hvem som skal bli den neste presidenten i USA. For at en ny president skal bli valgt, så må alle de 10.000 komme til enighet, altså konsensus. Hver person får utdelt en boks med 20 terninger. Den første som rister boksen, kaster terningene og klarer å få alle terningene til å lande som seksere, får sin stemme til å bli den eneste stemmen som teller. Selvsagt bare så lenge alle de andre er enige om at kandidatens navn ble stavet riktig, og oppfyller de juridiske kriteriene(over 35 år, amerikansk statsborger). Holochain spør så retorisk om noen normale mennesker ville kalt dette konsensus.

Les mer om kritikken mot Blockchain av Arthur Brock her.

Hva betyr konsensus

Det påpekes at konsensus handler først og fremst å bli enige om uenigheter, og jobbe seg fram til en felle enighet mellom alle parter, i motsetning til å bare tilfeldig plukke en vinner som får rett. I Git finnes det en kommando som heter «Merge» eller slå sammen. Den slår sammen ulike deler av kodebasen til ett, og er mer gjenkjennelig som konsensus. Den er dog ikke automatisert.

Holochain poengterer til slutt at hvis du starter fra et datasentrisk synspunkt, som ignorerer og nekter agenter «opplevelsen» av konsensus til fordel for bare en, er det mye vanskeligere å designe ekte konsensus prosesser som engasjerer hver enkelt agent og som har tilknytning til den virkelige verden.

Generell distribuert databehandling

Ethereum er i dag det beste eksempelet på et system som følger den generelle distribuerte databehandlingsmodellen. Ethereum-tilnærmingen fokuserer også på en felles enighet i nettverket, men istedenfor å lagre transaksjoner, slik som Bitcoin, så lagrer den databeregninger istedet. Dessverre så lider også Ethereum av å være datasentrisk, og databehandlingen blir derfor særdeles dyr. Ethereum sliter også med skalering som følge av dette.

Les også: Benchmark Ethereum vs Holochain

 

Holochain er et generell distribuert databehandlingssystem som er agent sentrisk. Nodene kan delta i systemet uten at de er pålagt å opprettholde den samme nettverkstilstanden som alle andre noder. I stedet for en felles uforanderlig kjede av transaksjoner som alle må være enige om, har hver agent sin egen uforanderlige kjede av handlinger og transaksjoner som den har gjort. Når en agent bruker en valuta registreres det to steder slik som i den virkelige verden. Min saldo går ned med 20 og din saldo går opp med 20. Hver agent registrerer en identisk transaksjon på sin unike kjede som peker på forrige transaksjon mellom partene. Ingen av partene kan derfor endre eller manipulere noen av transaksjonene uten at signaturen blir ugyldig. Det går heller ikke an å legge til eller fjerne noen transaksjoner uten at hash blir ugyldig.

Limet mellom kjedene

Mellom disse unike kjedene finnes en felles delt sharded DHT, eller en såkalt Distribuert Hash Tabell. Sharded betyr at tabellen er delt i små biter slik at en node slipper å lagre hele tabellen. Nodene pålegges å validere DHT, samt at de oppgir data om opprinnelsen til transakjoner fra de unike kjedene. Når du registrerer en transaksjon, en melding på twitter, eller ett blogginnlegg, så skriver du dette i din egen unike kjede, som bare du har tilgang til. Hvis det er en offentlig oppføring blir den lagt ut på den delte DHT. En node må validere oppføringen før det blir offentliggjort. Noden kan gjøre full revisjon på din unike kjede for å være sikker på at du har tilstrekkelig med penger, eller at signaturen din er gyldig for å publisere en melding på twitter.

DHT blir distribuert via en sladder(gossip) protokoll som fungerer slik at hver gang noder kommuniserer, så forteller de alt de vet til hverandre og oppdaterer det de ikke viste fra før. Hashgraph som også bruker DHT benytter samme teknikk. Hver agent besitter også regnekraft, og jo flere agenter som finnes jo mer regnekraft besitter nettverket. Når to agenter skal gjennomføre en transaksjon så kan de enkelt validere hverandres unike kjeder. De trenger ikke be om validering fra et globalt nettverk som skal komme til enighet først. Fordelen med dette er at regnekraften som brukes går kun til validering av opprinnelsen og gyldigheten av transaksjoner, intet kastes bort på å oppnå konsensus også kjent som «proof of work» i Bitcoin. Resultatet er et mye mer energieffektivt system som bruker en brøkdel av energi i motsetning til sine data-sentriske motparter, slik som Bitcoin og Ethereum.

Les mer om filosofien bak Holochain her

I Holochain er en node en celle, og dets DNA er regler og attributter

Holochain tegneserie

Et atom til ett annet atom: Jeg skulle ønske vi kunne utveksle elektroner, men hvordan vet jeg at du ikke dobbelbruker elektronet ditt? Det andre atomet svarer tørt, ja det har jeg brent meg på før.

Alle unike kjeder opprettes likt og har like regler. De henter regler som f. eks hvilke type transaksjoner og data som er gyldige, hvilke type programmatiske funksjoner som kan kjøres i koden, samt system innstillinger fra det Holochain kaller DNA settet.

Holochain er uten tvil inspirert av hvordan celler og organismer samhandler i naturen, og mye av filosofien i hvordan Holochain er designet, har sitt utspring fra hvordan naturen løser de samme utfordringene. Holochain poengterer at det er jo ikke slik at om to celler ønsker å slå seg sammen så må de vente på konsensus blant alle organismens celler for å få erklært oppføringen som gyldig. Det er heller ikke slik at to atomer må vite tilstanden til alle atomer i hele universet for å kunne utveksle elektroner.

Blockchain har fundamentale feil

Poenget til Holochain er at det er noe fundamentalt galt med Blockchain. Vi bruker vanvittig mengder med energi på å opprettholde en felles tilstand. Hvordan vil ett desentralisert system se ut hvis vi heller forsøker å etterligne systemer i naturen? En celle trenger ikke å spørre alle de andre cellene om den kan slå seg sammen med en annen celle. Dets DNA har satt preferanser på hvilke celler den bør slå seg sammen med å ikke. Og sånn sett kan man også si at et atom forholder seg til naturlover som avgjør om den kan utveksle elektroner eller ikke. Det er dette Holochain prøver å gjenskape, noe som er utrolig spennende.

Validering

Holochain poengterer at en kan diversifisere validering i to grupper etter sannsynlighet. I den første gruppen er det 100% sannsynlig at en oppføring er gyldig, mens i gruppe to er det mindre enn 100%. Det finnes bruksområder for begge grupper. Du vil kanskje ikke bry deg om 100% validering, hvis du bare skal validere om en e-post er spam eller ikke. Når det gjelder pengetransaksjoner derimot er du ganske sikkert opptatt av at den skal være 100% gyldig. Holochain er designet for å tillate slike valideringsfunksjoner å være kontekstbasert per program. Det betyr at ett program kan selv velge om hvor mange av blockchains egenskaper den ønsker å implementere. Holochain kan derfor forstås som et rammeverk som åpner opp for ett spekter av desentraliserte applikasjonsarkitekturer, der Blockchain kun er en bestem forekomst i den ende enden av dette spekteret.

Fortsettelse følger

I del to av denne artikkelserien, skal vi dykke ned i hvilke kategorier av validerings algoritmer som finnes i Holochain. Vi skal se på hvordan man kan sette disse algoritmene sammen til å bygge desentraliserte systemer. Hvordan disse er i stand til å opprettholde integritet, uten å måtte introdusere en absolutt sannhet, som hver agent ville være tvunget til å godta eller vurdere.

Forrige

Neste