Vad är Smarta kontrakt?

Okej, du känner till vad Bitcoin är och du har förmodligen hört talas om den så kallade blockkedjan (blockchain).
Men vad är det här nya Ethereum? Det är tydligen en ny kryptovaluta som du kan använda för att bygga Smarta Kontrakt (spoiler: de är inte så smarta. Och de är inte direkt kontrakt!)

Istället för en kort definition, låt oss försöka få hum om vad smart contracs är. Först kommer vi åter besöka blockkedjan och ordet ‘’tillit’’. Sen pratar vi om ordet ‘’kontrakt’’. Att förstå båda är hemligheten.

Del 1: Vad menas med ‘’tillit(löst)’’?

När vi tänker på dessa kryptovalutor så ser vi ofta ofta objekt – digitalt guld, eller silver. Eftersom dessa bilder är enkla att förstå, glömmer vi lätt den underliggande tekniken.

Digital sten

Digitala stenar? Faktiskt så är stenar ganska användbara i det här sammanhanget. Vi har den här frasen i svenska språken ‘’hugget i sten’’.

Den här metaforen fortsätter att ha mening i vår moderna värld eftersom i den fysiska (gamla) värden, hade stenar några intressanta egenskaper.

  1. När du ristar in något på sten så är det fysiskt permanent. Det är väldigt svårt att göra förändringar.
  2. Om du försöker radera något senare kommer det vara uppenbart. Ändringar som du gör kommer vara väldigt transparenta och bevisbara.
  3. De här reglerna är likgiltiga för alla. Sten är neutralt. Den lyder fysikens lagar, inte människans. Den bryr sig inte om du är en mäktig kung eller president, den beter sig exakt likadant för alla.

På grund av dessa egenskaper, så har vi en ganska hög grad av tillit till sten.

En blockkedja är egenligen precis som ovan: Ett typ av material som, genom en speciell mix av kryptografi och decentralisation, har egenskaper av slutgiltighet, transparens och neutralitet.

  • Att sätta någonting på en blockkedja är som att hugga något i sten, och det gör tillit enklare.

Fast nu kan vi göra det digitalt. Och det är ganska speciellt.

Att tänka på en blockkedja som en bit av sten som du kan skriva saker på hjälper oss också att förstå blockkedjans breda potential. Vilket leder oss till kontrakt!

Del 2: Vad vi menar med ‘’kontrakt’’

När vi hör ordet kontrakt så börjar vi ofta tänka på juridiska dokument och advokater osv.
Men beskrivningen som används inom journalistiken är lite bättre: Redskap som exekveras av sig själv eller exekveras automatiskt. Om du har hört något om smarta kontrakt innan så låter det rätt bekant. Men faktiskt är det ju så att det inte nått nytt med automatisk exekvering.

Förfadern till smarta kontrakt:

Den gamla hederliga försäljningsautomaten som du ser på alla tågstationer. Det är en ‘’dum’’ maskin som gör vad den ska (om inte Snickersen fastnar såklart), den exekverar automatiskt. Och den har existerat i årtionden!

Vi låtsas att du en eftermiddag står framför den här maskinen. Den säger: ‘’Om du stoppar in 25kr, och trycker på knappen, så kommer du få Cola.’’

Den kommer förmodligen inte säga exakt de orden någonstans. Men det är löftet av den här lilla interaktionen. Man kan också kalla det här ett typ avtal.

Du matar in pengar. Trycker på knappen. Voila! Du har flaskan i handen, och glömmer den här meningslösa händelsen i ditt liv.

Du kanske inte märkte det, men hela den här grejen var faktiskt ett litet program (‘’kontrakt’’) kodat (‘’skrivet’’) i maskinen innan, som körde när du tryckte på knappen (‘’signerade det’’). Nått i stil med:

     > if money received == 25 kr
          > && the button pressed is “Diet Coke”
     > then release Diet__Coke

Datorkod, som du kan se, är typ som ett kontrakt.

Den gör påståenden och uppgifter. Det är villkor (om du gör detta… då…). Och den till och med uppfyller sin del av uppgörelsen.

Kontrakt är bara kod!

Vad är då speciellt med detta? Som försäljningsautomaten demonstrerar, den här typen av kod är redan överallt i våra vardagsliv. Om smarta kontrakt bara är “if….then…. kod”, vad är det som egentligen är nytt?

Försäljningsautomater 2.0

Låt oss göra en teoretisk försäljningsautomat. En digital försäljningsautomat.

En dag ser du en ny försäljningsautomat sitta i hörnet av din digitala värld. Du går dit och kollar, och maskinen säger: ‘’Om du stoppar in 10 000 kr så kommer maskinen ge dig 50 000 kr’’.

Wow! Den som satte ihop den här maskinen måste vara väldigt rik och generös, eller bara en idiot. Vilket som. 10 000 kr för 50 000 kr? Självklart tar man den dealen.

Det här är exakt lika som den gamla försäljningsmaskinen. Samma logik. Samma if…then process.

Fast nu är insatserna annorlunda. 10 000 kronor är inte direkt fickpengar. Plötsligt blir man lite orolig. Vem satt ihop den här maskinen? Tänk om den bara äter upp ens pengar utan att ge tillbaka något?

Då börjar man fundera på tillit.

  • Hur vet vi att maskinen har tillräckligt med kapital för att ge oss de lovade 50 000 kr?
  • Hur vet vi att koden ens kommer köras?
  • Finns det något sätt vi kan publikt och transparent kan verifiera koden?

Slutsats:

Den 50 000 kr försäljningsautomaten är en extremt exempel men det visar problemet med att göra tillit skalbart. I en expanderande digital värld där människor kan koppla upp sig anonymt, så blir tillit en svår sak. Då brukar vi lita på en tredje part och andra mellanhänder på grund av den anledningen. Det måste vi göra, speciellt när vi handlar med grejer som är mer värda än en coca cola.

Tänk om man kunde sammankoppla traditionell programmering och egenskapen av tillit som en digital sten har.

Det är exakt de som smarta kontrakt är! Det är bara kod, med ett väldigt speciellt typ av stöd.

  • Kom ihåg, vi har haft både programmering och exekvering innan. Men aldrig har det slutförts på ett neutralt, bevisbart och pålitligt sätt på en (digital) sten.

Hur kan smarta kontrakt appliceras i verkligheten då?

Onlinespel: Är oddsen verkligen 13 till 1 att Sverige vinner mot Spanien i fotbolls VM. Hur vet vi at de kommer betala? Varför då inte ‘’hugga koden i sten’’ och bevisa det?

Värdekedjor: Kanske följa och verifiera vart och hur saker är gjorda?

Röstning: Kanske manipulationsssäker röstningsprocess?

Decentraliserade och Automatiska Företag?! Science fictions tid är kommen. (tips: testa googla ”decentralized autonomous organizations”)

Det här är bara några förslag på vad du kan koda på en blockkedja genom att använda Ethereums plattform. Vi är bara i starten. Om du kan drömma det, så kommer du förmodligen kunna koda det. På många sätt är de just det som gör allt det här så spännande. Vi har några gissningar, men ärligt, vi har ingen aning vad som kommer bli byggt i dom kommande åren och årtiondena. Allt vi vet är att byggstenarna är här. Och det är öppet för alla. Resten är upp till dig.

Se även: Vad är Ethereum?

Dela gärna denna artikel med vänner om du vill, och kommentera vad du tycker. Samt maila nått roligt eller tråkigt till: hello@chainit.se om du känner för det. Chainit är konstant under utveckling, så hör gärna av dig med feedback.


Källor:
– https://medium.freecodecamp.org/
– Crosby Michael, Pattanayak Pradhn, Verma Senjeev, Klyanarama Vignesh. Blockchain Technology – Beyond Bitcoin. Berkeley University, 2015

3 comments

Leave a Reply

Your email address will not be published. Required fields are marked *