Norsk Ethereum-utvikler forklarer: - Kryptovaluta bare et nødvendig onde for blokkjeden

Hvorfor er framtida blokker i kjede? Hva skiller Ethereum fra Ether? Vi stiller Jon Ramvi de dumme spørsmålene, så du slipper.

Jon Ramvi i Symfoni AS er en av de som virkelig kan blokkjede i Norge, spesielt Ethereum. Og en av de som er mer opptatt av hva utviklere kan bruke den til, enn hvor mye penger kryptovaluta-folk kan tjene på den. 📸: Alexander Eriksson / Eriksson Media / Det Kongelige Hoff
Jon Ramvi i Symfoni AS er en av de som virkelig kan blokkjede i Norge, spesielt Ethereum. Og en av de som er mer opptatt av hva utviklere kan bruke den til, enn hvor mye penger kryptovaluta-folk kan tjene på den. 📸: Alexander Eriksson / Eriksson Media / Det Kongelige Hoff Vis mer

- De mest skeptiske er alltid utviklerne. Ikke ledelsen, de med penga, ikke arkitektene, forteller Jon Ramvi til kode24.

- Men når det kommer utviklere, er det alltid "OK, forklar meg hvordan blokkjeden er forskjellig fra server/klient".

Og om noen skal kunne forklare denne forskjellen, er det nettopp Ramvi. Han er blant annet gründeren bak selskapet Symfoni AS, som livnærer en håndfull norske blokkjede-utviklere, og arrangør av Oslo Blockchain Day.

Etter å ha lest artikkel opp og artikkel ned om hvor viktig blokkjeden skal bli i 2022, tenkte vi å én gang for alle å faktisk skjønne greia sjæl - slik at vi forhåpentligvis også kan forklare greia til deg.

Så vi tok en lang, lang prat med Ramvi om hvordan blokkjede, kryptovaluta, blokker, noder, smartkontrakter og Ethereum egentlig henger sammen - og hvorfor du skal bry deg.

OK, forklar det til meg som om jeg var fem år gammel: Hva er blokkjeden?

Om du låner 100 kroner til meg, så kan du skrive det ned på en lapp: "Jon skylder meg 100 kroner". Og jeg kan skrive det samme: "Jeg skylder Ole Petter 100 kroner". Så lenge vi skriver det samme, så har vi konsensus.

Men hva stopper meg fra å heller skrive en lapp om at jeg har tilbakebetalt deg? Sånn at når du ber meg betale deg tilbake, sier jeg bare "Nei, her står det at jeg allerede har betalt"?

«Blokkjeden sørger for at du selv kan føre din liste, og jeg min, men at vi presses til å være enige.»

Det var derfor vi fant opp banker; bare de har tilliten vi trenger for slikt. Og hele samfunnet vårt er bygd opp på slik tillit; for å vite hvem som sitter på Stortinget, eller hvem som jobber hos dere i Aller, føres det lister sentralt, så ikke folk bare kan påstå å sitte på Stortinget eller jobbe i Aller.

Blokkjeden sørger for at du selv kan føre din liste, og jeg min, men at vi presses til å være enige. Og vi kan dermed føre slike lister uten noen sentral aktører.

Hva i blokkjeden er det som presser oss til å være enige, da?

Konsensusalgoritmer.

De sørger for at om du for eksempel sier at du har flere bitcoins enn du har, så kan blokkjeden si nei; det har du ikke. Fordi du ikke får konsensus, enighet, rundt det.

Alle nodene har nemlig alle listene, og koden vil på egenhånd merke at noe ikke stemmer om noen tukler med dem.

Hei vent, hva er en node?

Med en tradisjonell klient/server-tankegang, kan du si at det er en server.

For eksempel har AWS sikkert titusenvis av servere for å drive skyen deres, mens blokkjeden trenger mange noder for å være desentralisert.

Vil du for eksempel bidra til å drive Ethereum-blokkjeden, kan du sette opp en node på din egen maskin.

Og hvorfor skal jeg gidde å drive en node?

Skal man ha en desentralisert blokkjede, trenger man insentiver for å drive nodene. Så driver du noder, får du tokens tilbake - kryptovaluta.

For eksempel får du Ether for å drive en node på Ethereum-blokkjeden.

Kryptovaluta er derfor, i mine øyne, et nødvendig onde for å drive en desentralisert blokkjede.

Aha, så det er det som kalles å utvinne kryptovaluta. Hvordan funker det?

Konsensusalgoritmen til Ethereum er for tida basert på proof-of-work; et unødvendig mattestykke for å komme fram til en hash.

Hasher er vanskelige å lage, men enkle å verifisere, og blokkjeden bruker hasher for å koble sammen alle blokkene i en kjede.

Så du regner ut flest mulig hasher på datamaskinen din i løpet av 13 sekunder, også trekkes det en hash, og den som først regna ut akkurat den hashen kan si "Den har jeg!". Da sier blokkjeden "Greit, da kan du lage den blokken", også får du tokens tilbake.

Nå skjønner jeg hvorfor det kalles blokkjede - men hva er egentlig disse blokkene?

Å lage en blokk er som å ta en save, av alle endringene i blokkjeden siden sist blokk ble laga. Du lager en historikk av alt som har skjedd i blokkjeden fram til da - i Ethereum sitt tilfelle i løpet av de siste 13 sekundene.

Alle blokkene kobles sammen i en blokkjede gjennom en hash i hver nye blokk, som peker tilbake til forrige blokk.

Rent praktisk er en blokk en datablob som følger en viss standard. Se for deg en JSON-fil. Og når du setter alle disse sammen, får du en slags desentralisert database, hvor hver blokk alene er et utsnitt av hele databasen.

«Så sa Ethereum: Hva om blokkjeden ikke bare inneholdt tall, men en hel virtuell maskin?»

Og mens Bitcoin-blokkjeden handler om valuta, handler Ethereum-blokkjeden om... noe annet?

De første blokkjedene hadde bare masse tall; lister over transaksjoner.

Så sa Ethereum: Hva om blokkjeden ikke bare inneholdt tall, men en hel virtuell maskin? Som en Java Virtual Machine, bare en Ethereum Virtual Machine, som kan kjøre allslags kode?

Man kan derfor kjøre små programmer på Ethereum-blokkjeden, som kalles smartkontrakter. De er verken smarte eller kontrakter, men kode som kjører i blokkjeden. NFT er et eksempel, uten at jeg synes akkurat NFT-er er så spennende.

Men hva er vitsen med å kjøre kode i blokkjeden?

Blant annet at alt blir atomisk: Det er alt eller ingenting, du kan ikke komme halveis i en prosess før det henger seg.

Dermed er det blant annet perfekt for alle samhandlingstjenester. Vi er jo alle opptatt av hvordan vi får tjenestene våre til å samhandle digitalt, og drømmer om det komplette samarbeid hvor alle API-er kan snakke med alle. Vanligvis må man da lage toveisbindinger på hvert system, som blir eksponensielt mye arbeid.

Men alt i blokkjeden kan allerede snakke med alt annet, atomisk.

Det vil for eksempel ikke skje at du begynner å kjøpe en billett, men når du skal ta betalt så henger det seg. Det kan ikke skje i blokkjeden.

Du kan vel bare lage et robust nok system med dagens klient/server-regime, også?

Jada, og du kan skrive brev i stedet for å sende SMS. Du kan alltids gjøre ting på andre måter.

Men hva er mest effektivt?

Om du ønsker deg et brukersentrert, digitalt økosystem med enkel samhandling, hvor personvern er innebygd fra start, det er sikkert mot angrep, og du har sporbarhet, kan du sikkert få det til i Azure. Men du kan også bare bruke Ethereum, nærmest som hyllevare. Du bare skriver koden og "trykker på deploy", akkurat som med AWS og liknende, og det er gratis å teste koden på testnet.

Eventuelt så kan du sette opp din egen blokkjede, med for eksempel proof-of-authority, om du ikke liker strømforbruket proof-of-work skaper.

Sant, mengden energi som kreves for å drive blokkjedene får mye kritikk. Ser du på det som et problem?

Det er et kjempeproblem, absolutt. Med klimakrisa og dagens strømpriser er det et massivt problem. Vi må jo velge hva vi skal bruke strømmen vår til, og man vil jo kunne ta en dusj uten å betale 25 kroner.

Så jeg mener vi må finne en løsning, ja.

Bitcoin-folk har gjerne bestemt seg for at proof-of-work er den eneste måten å gjøre det på, men Ethereum skal over på proof-of-stake. Da blir energiforbruket som å drive en server.

«Norge kan bli den første i verden til å gjøre dette.»

Strømtyv eller ikke, hva er det dere i Symfoni ser for dere å bruke blokkjeden til i Norge framover?

Det største prosjektet vårt nå, er for Brønnøysundregisteret, hvor vi ser på å ta aksjeeierboka til blokkjeden.

Alle aksjeselskap som ikke er på børs har krav på å føre aksjeeierbok. Om du starter "Ole Petter AS", må du skrive ned et sted at Ole Petter AS har 30.000 aksjer. Og skal du overføre 10 aksjer til Jon, må du oppdatere aksjeeierboka med én gang, og dette skal sendes til Skatteetaten hvert år.

Men alt dette kan føres direkte inn i blokkjeden: De 30.000 aksjene du har, at du sender 10 til Jon, både rapporteringen og noteringen. Aksjeeierboka kan oppdateres fortløpende, og Skatteetaten kan lytte fortløpende, med all sikkerhet blokkjeden innebærer.

En annen fordel er at andre kan koble seg på; du kan for eksempel overføre aksjer gjennom plattformer for folkefinansiering, og du kan la aksjeeiere stemme i voteringer.

Norge kan bli den første i verden til å gjøre dette.

Så helt til slutt: Vil du si at blokkjeden er noe norske utviklere bør lære seg i 2022?

Ja, jeg mener det ikke er noen tvil om det.

For vil du lære deg datautveksling med self-sovereign identity og eIDAS 2.0 og alt det der, hvor klient/server-tankegangen forsvinner og alle bare blir agenter, og det bør du sette deg inn i, er veien kort til blokkjeden.

Selv har jeg lenge hatt en følelse av at blokkjeden har noe for seg. For den har allerede løst så mange utfordringer for oss. Problemet er at det er jævlig vanskelig å forklare.