BTC
% 1h
0.17
% 24h
1.53
% 7d
0.67
BTC
USD
7,237.2
EUR
6,530.6
NOK
66,279

BTC
% 1h
0.17
% 24h
1.53
% 7d
0.67
BTC
USD
7,237.2
EUR
6,530.6
NOK
66,279

Sikkerhet i smarkontrakter

Desentraliserte autonome organisasjoner

Desentraliserte autonome organisasjoner (DAO) er et svært spennende aspekt ved blockchains. Smartkontraktene som former en slik organisasjon skildrer «kode er lov» på perfekt vis. Ved å eliminere behovet for en lønnet, styrende enhet vil kostnadene for organisasjonen minke. Dette vil til slutt føre til reduserte priser for kundene.

For mye makt, for tidlig?

Dette er kritiske, svært mektige kontrakter, som må kodes med svært høy presisjon. Desverre er det slik at industrigjennomsnittet ligger på rundt 15 – 50 bugs per 1000 linje kode. Et slikt gjennomsnitt er en mulighet for datasnokere. De finner feil i koden, og henter ut de verdiene de klarer. Et slikt angrep fant sted i 2016, hvor angripere klarte å hente ut Ether til en verdi av $125 millioner.

Mer om DAO her.

Hvis slike organisasjoner skal lykkes, må smartkontrakene være av ypperste klasse. Det krever en betydelig mengde arbeidstimer for å skape slik kode, som fører til høye utviklingskostnader. Sikkerhet i smartkontrakter er derfor et hett tema blant utviklere og akademikere.

Spørsmålet som oppstår er; Hvordan kan man utvikle sikre smartkontrakter på en lønnsom måte?

Praksiser for økt kodekvalitet

Det finnes flere ulike praksiser som styrker kodekvaliteten. Tre metoder er spesielt interessante:

  • Revidering av kode i etterkant av produksjon
  • Formell verifisering
  • Autogenerering av smartkontrakter

Førstnevnte utføres i stor grad i dag, av for eksempel aktører som «Solidified». Formell verifisering av smartkontrakter er av høy kompleksitet, men det finnes aktører som Tezos hvor dette er innebygget i blockchainteknologien.

Av størst interesse er autogenerering av smartkontrakter. Et system av denne typen henter inn kontrakter skrevet av mennesker uten kodekyndighet. Deretter oversettes kontraktene til maskinleselig kode, eksempelvis i form av smartkontrakter på Ethereumnettverket skrevet i Solidity. Det er en rekke premisser som bør være oppfyllt før et slikt system vil være gunstig:

  • Kontraktene som skrives av mennesket må være på en bestemt form, ved bruk av spesifikke ord og fraser.
  • Oversetteren må være av svært høy kvalitet.

Fordelen ved bruk av en slik modell er mange. Først og fremst vil man kunne legge ekstremt mange arbeidstimer inn i en slik oversetter, engangskostnaden ved utvikling av slik programvare vil være neglisjerbar ved høy gjenbruk. Et høyt antall arbeidstimer fører som regel til økt sikkerhet i programvare. Et kjapt googlesøk avslører at smartkontrakt-utviklere er svært ettertraktet og høyt lønnet. De fleste kontrakter er svært standardiserte, og krever lite kreativitet. Ved å bruke et oversettelsesprogram kan derfor slike utviklere i mange tilfeller sløyfes til fordel for en oversetter. Samtidig som smartkontraktene utvikles i høy hastighet av en oversetter, vil som nevnt sikkerheten i kontraktene være bedre.

I teorien skal hvem som helst med kontroll på kontrakter kunne utvikle smartkontrakter ved bruk av en slik oversetter. Dette vil være med på å gjøre smartkontrakter til en fullverdig konkurrent til «vanlige» kontrakter.

Høres bra ut, hvordan kommer vi dit?

Det vil kreve en hel del arbeid. To professorer ved NTNU Gjøvik har skrevet en svært god artikkel om konseptet; «From Institution to Code: Towards Automated Generation of Smart Contracts». I artikkelen beskriver de hvordan man skal gå frem for å kunne oversette menneskeleselige kontrakter til maskinleselige «Solidity»-kontrakter. De går blant annet gjennom hva som må endres ved dagens kontrakter for å klargjøre dem til oversetting. Ved å bruke et strengt strukturert rammeverk kalt «ADICO», vil kontraktene lettere kunne oversettes. Avslutningsvis oppgir professorene at det fortsatt er langt igjen, og at dagens resultater fra programmet kun kan fungere som «kontraktskjelett».

Dette et steg i riktig retning. En retning som tar oss mot bruk av smartkontrakter i daglige oppgjør mellom mennesker og organisasjoner.

Sammendrag

Smartkontrakter er selve grunnlaget for desentraliserte applikasjoner. Det krever høy kodekvalitet for at slike applikasjoner skal kunne lykkes. Høy kodekvalitet er dyrt, som fører til at det ofte slurves i utvikling av programvaren for å minke kostnaden. Autogenerering av smartkontrakter vil sørge for lavere utviklingskostnader. Autogenerering sørger for at det ikke lenger kun er utviklere som kan produsere smartkontrakter.

Kilde: From Institutions to Code: Towards Automated Genereation of Smart Contracts

Forrige

Neste