Opas: mikä on älysopimus (smart contract)?

älysopimus smart contract

Älysopimus eli smart contract on yksi krypyovaluuttoihin ja lohkoketjuihin liittyvistä avaintermeistä. Mikä on älysopimus ja miten se toimii? Älysopimukset ovat lohkoketjuihin tallennettuja ohjelmakoodeja, joilla on poikkeuksellisia ominaisuuksia perinteisiin applikaatioihin nähden. Tämä on aloittelijan opas älysopimuksista.

Lohkoketjuteknologia ja erilaiset kryptovaluutat

Termi älysopimus liittyy lohkoketjuteknologiaan sekä kryptovaluuttoihin. Jos lohkoketju eli blockchain ei ole sinulle lainkaan tuttu, suosittelen ensin lukemaan tämän oppaan: mikä on lohkoketjuteknologia?

Lyhyesti sanottuna lohkoketju on verkkoon hajautettu tietokanta. Englanninkielinen lyhenne DLT eli Distributed Ledger Technology kuvaa sitä hyvin. Lohkoketjut toimivat käytännössä kryptovaluuttojen tietokantana ja sisältävät niiden verkossa lähetetyn transaktiodatan.

Lohkoketjuja on nykyään montaa eri tyyppiä. Bitcoinin vuonna 2009 käynnistynyt lohkoketju on kapasiteetiltaan ja toiminnaltaan hyvin erilainen kuin kolmannen sukupolven platformit, jotka pystyvät teoriassa jopa tuhansiin transaktioihin sekunnissa ilman fyysisiä louhintalaitteita.

Kryptovaluuttoja on myös monia erilaisia. Paras tapa on mielestäni tehdä jako kolmeen eri ryhmään: platformit, tokenit ja valuutat.

älysopimus-blockchain

Platform, ekosysteemi tai hajautettujen sovellusten käyttöjärjestelmä. Tällaisiksi kutsutaan Ethereumia sekä sen kilpailijoita, kuten EOS ja Tezos. Nämä kryptovaluutat on suunniteltu alustoiksi, joihin hajautettuja sovelluksia (dapp) sekä älysopimuksia voidaan rakentaa.

Tokenit ovat puolestaan edellä mainittujen platformien sisällä luotuja valuuttoja, arvon välittäjiä. Niillä ei ole siis omaa lohkoketjua ja ne ovat usein yhden tietyn, rajatun sovelluksen sisällä toimiva.

Valuuttakategoriaan kuuluvat sitten Bitcoin kilpailijoineen (Litecoin, Bitcoin Cash, Monero jne.). On silti virheellistä sanoa, että Bitcoin ei tue älysopimuksia. Tiettyjä älysopimuksen toimintoja voidaan koodata myös Bitcoin-ympäristöön, mutta maailman tunnetuin bittiraha ei ole alun perin suunniteltu siihen.

Bitcoinin kehitys etenee myös varsin hitaasti, eikä sen toimintalogiikkaa muuteta helposti. Tämän vuoksi vuosien 2014-2015 tienoilla syntyi monia 2. sukupolven projekteja tukemaan sitä ohjelmallisuutta, jota Bitcoinista puuttui.

Tässä artikkelissa otamme näkökulmaksi Ethereumin, joka on suosituin ja tunnetuin smart contract -alusta.

Mikä on älysopimus?

Smart contract eli älysopimus on saanut hieman hämäävän nimen. Kyseessä kun ei ole mikään superälykäs komponentti eikä se välttämättä ole edes sopimus. Älysopimus selitetään usein vain ”älykkäänä sopimuksena lohkoketjussa”, mutta vain tähän näkökulmaan jääminen on laiskaa.

Älysopimus on yksinkertaisesti ohjelmakoodin pätkä, jonka Ethereum-sovelluskehittäjä naputtaa tarkoitukseen varta vasten kehitetyllä Solidity-kielellä. Alla olevassa kuvassa on hyvin simppeli esimerkki Solidity-koodia (lähde).

älysopimus solidity

Kun ohjelma on valmis, se täytyy kääntää bytecode-muotoon. Tämä on formaatti, joten Ethereum Virtual Machine ymmärtää.

EVM on Ethereum-verkossa toimiva ohjelmakoodin prosessori, josta on kopio jokaisella Ethereum-solmulla eli nodella. Moni muistaa varmasti ladanneensa jossain vaiheessa JVM:n eli Java Virtual Machinen omalle koneelleen tiettyjä www-sivuja varten. Kyse on hieman samasta asiasta.

Valmista ohjelmaa ei noin vain heitetä Ethereum MainNetin puolelle – sen toiminnallisuutta kokeillaan ensin TestNetin puolella. Testnetissä ohjelmoijan on turvallista kokeilla koodin toimintaa ilman pelkoa oikea kryptovaluutan hukkaamisesta. Testaukseen on myös yksi erittäin vahva syy: älysopimuksen tärkeimpiä ominaisuus on se, ettei koodia voida jälkeen päin enää muuttaa.

Ei ole olemassa mitään undo-nappia tai ylläpitäjän komentoa sen muokkaamiseksi. Jos ohjelmakoodin tekijä voisi muokata sopimusta jälkeen päin, sen koko toimintaidea katoaisi eikä se eroaisi tavallisesta sovelluksesta millään tavoin.

Kun älysopimukselle lähetetään transaktio eli annetaan käsky sen ohjelmakoodin suorittamiseksi, esiin astuvat Ethereum-verkon louhijat. Älysopimukset prosessoidaan louhinnan yhteydessä samalla kun kaikki muutkin lohkoketjun transaktiot suoritetaan. Eli älysopimuksen ohjelmakoodi on käytännössä jokaisen louhijan (huom. louhijat ovat myös node-palvelimia) hallussa ja kaikki louhijat ajavat koodin käskyn tullessa. Kaikki saavat myös aina saman lopputuloksen.

Ethereum käyttäjätilit

Otetaan sitten pari askelta syvemmälle älysopimuksen kanssa. Kuten edellä kuvattiin, kyse on vain ja ainoastaan ohjelmakoodista. Se ei ole yhtään älykkäämpi kuin tekijänsä eikä välttämättä edes sopimus.

Älysopimuksen toiminnan mahdollistaa Ethereum-verkon käyttäjätiliominaisuus. Esimerkiksi Bitcoinin UTXO-malli toimii eri tavalla, eikä erillisiä tilejä ole olemassa – vain transaktioita ja osoitteita. Ethereum-verkossa on sen sijaan kahden tyyppisiä tilejä: EOA (Externally Owned Account) sekä Contract Account.

EOA-tili on käyttäjän kontrolloima tili, johon hänellä on käyttöoikeus privaattiavaimen avulla. EOA:lla on aina Ether-saldo ja se voi lähettää (ja vastaanottaa) transaktioita. Siihen ei ole liitetty ohjelmakoodia eikä uuden tilin luominen maksa mitään.

älysopimus ethereum privaattiavain
Privaattiavain on ikään kuin käyttäjätilin salasana. Jos hukkaat avaimesi toiselle osapuolelle, hänellä on vapaa pääsy tilisi varoihin.

Contract accountia voidaan kutsua myös älysopimus-tiliksi. Kyseessä on Ethereum-verkkoon luotu älysopimus (eli ohjelma), jolla on myös julkinen osoite, aivan kuten EOA-tileilläkin. Älysopimus-tili voi myös vastaanottaa ja lähettää transaktioita – joko etheriä tai muuta informaatioita.

Oleellista on ymmärtää, että älysopimus-tilin luominen ja käyttö maksaa. Jokaisen koodirivin ajaminen EVM:ssa vaatii aina laskentatehoa, joten tästä on sovelluskehittäjän myös maksettava hinta. Tämä hinta on Ethereum-verkossa nimeltään gas eli virtuaalinen bensa.

Mitä raskaamman ohjelman rakennat, sen enemmän bensaa sen käyttö maksaa. Tämä on hyvin loogista. Sen avulla voidaan myös estää verkon spämmääminen ja tahallinen hidastaminen Käytännössä gas maksetaan etherinä. Joillain kilpailevilla alustoilla (esim. NEO) on käytössä kokonaan erilinen gas-token, jolla voi käydä myös kauppaa kryptovaluuttapörsseissä.

Älysopimuksen ominaisuuksia

Toivottavasti lukijalle alkaa tässä vaiheessa muodostua kuva älysopimuksen roolista. Kun aiheesta puhutaan, on mahdotonta olla mainitsematta termiä dapp eli hajautettu sovellus. Miten ne liittyvät toisiinsa?

Hajautettu sovellus on appi siinä missä perinteisetkin sovellukset. Se voi olla mobiiliappi, desktop-appi tai selainpohjainen sovellus. Eli dapp on laajempi ohjelmisto, jolla on oma käyttöliittymänsä ja toiminnallisuus. Älysopimus on siten yksi komponentti sen ytimessä.

dapp hajautettu sovellus
Kuvassa muutamia dappeja sivulta dapp.com

Älysopimuksella on muutamia tärkeitä ominaisuuksia, joita on jo mainittu edellä. Listataan ne vielä tähän yhteenvetona.

  • Kyseessä on avoimen lähdekoodin (open source) ohjelma
  • Ohjelmakoodi on tallennettua lohkoketjuun
  • Ohjelmakoodia ei voi enää muuttaa sen jälkeen, kun se on lohkoketjussa
  • Älysopimus suorittaa sille annetut toiminnot automaattisesti
  • Älysopimuksen koodi, toimintalogiikka ja tulokset ovat kaikkien nähtävillä
  • Älysopimuksen toimintaa ei voi estää eikä lopputuloksia muokata

Kyseessä on siis lohkoketjuun tallennettu ohjelma, joka on kaikille avoin mutta samalla toiminnaltaan täysin turvattu ja manipuloinnin ulottumattomissa.

Mikä tahansa taho voi toki rakentaa aina oman lohkoketjunsa, joka ei ole avoin ja jonka toimintaa se kontrolloi itse. Jos kyseessä ei ole todella hajautettu verkko, se vesittää samalla koko lohkoketjun ja älysopimuksen idean. Miksi ei sitten käyttäisi tavallista tietokantaa ja perinteisiä sovelluksia?

Älysopimukset tarjoavat paljon mahdollisuuksia

Käydään seuraavaksi läpi muutamia älysopimusten käyttökohteita, joiden avulla niiden hyödyistä ja ominaisuuksista saa ehkä parhaan kuvan.

Omaisuuden myyminen

Ensimmäinen esimerkki on tietysti kaupankäynti, mikä voi tarkoittaa asuntoa, autoa, osakkeita tai mitä tahansa muitakin hyödykkeitä. Tässä kohtaa puhutaan usein termistä tokenisaatio (tokenization), eli reaalimaailman hyödykkeet siirretään tulevaisuudessa lohkoketjuun.

Ajattele vaikka asuntoa tai autoasi, jonka omistustiedot ja historia ovat tällä hetkellä valtakunnallisesti keskitetyssä tietopankissa. Tulevaisuudessa ne voivat hyvin olla lohkoketjussa ja sinulla voi olla lompakossasi yksi omistusta kuvaava token.

Jos haluat myydä autosi, se voitaisiin tehdä älysopimuksen avulla. Kun haluttu summa etheriä on lähetetty tiettyyn osoitteeseen, siellä sijaitseva älysopimus muuttaa lohkoketjuun auton omistajan tiedot automaattisesti.

Ennustemarkkinat

Toinen hyvä esimerkki löytyy erilaisilta ennustemarkkinoilta. Tähän asti vedonlyöntimarkkinoita ovat hallinneet kolmannen osapuolen ylläpitämät palvelut, joiden päätökset kuluttajan on pakko hyväksyä – oli niissä virheitä tai ei.

älysopimus käyttökohteet

Tulevaisuudessa vedonlyönti voisi tapahtua älysopimusten välityksellä, jotka sijaitsevat hajautetussa lohkoketjussa ja ovat näin ollen ehdottoman luotettavia ja manipuloinnin ulottumattomissa. Lähetät haluamasi määrän etheriä (panos) osoitteeseen X, jonka jälkeen älysopimus maksaa sinulle voiton automaattisesti oikean tuloksen saavuttua.

Vakuutukset

Kolmas usein käytetty esimerkki löytyy vakuutusmaailmasta. Täällä on usein nähty tilanteita, joissa vakuutuksenottaja sekä vakuutusyhtiö ovat päätyneet kiistelemään korvauksista. Älysopimusten avulla koko prosessi voitaisiin automatisoida.

Kun vakuutuksen ehdot ovat lohkoketjussa ja niiden triggeröinti kaikille osapuolille selvää, ei kiistatilanteita pääse syntymään. Koko prosessi muuttuu myös automaattiseksi ja säästää näin ollen resursseja.

ICO

Vuoden 2017 kryptovaluuttabuumi oli pitkälti ICO:n ansiota. Kyseessä on siis joukkorahoituksen muoto, jossa kryptovaluuttaprojekti kerää rahaa itselleen. Lähes kaikki ICO:t järjestettiin vuosina 2017/2018 Ethereum-alustalla mukaan lukien sen kilpailevat platformit. Esimerkiksi EOS, Tron ja ICON olivat Ethereum-platformilla tehdyn ICO:n tuotoksia. Myöhemmin ko. tokenit siirrettiin niiden omiin lohkoketjuihin.

Älysopimukset olivat ICO:n ytimessä ja niiden toimintalogiikka oli varsin simppeli. Jos halusit osallistua ICO:hon, lähetit haluamasi määrän etheriä tiettyyn Ethereum-osoitteeseen eli käytännössä älysopimukseen. Tämän jälkeen ohjelma palautti sinulle uutta tokenia tietyn kaavan mukaisesti. Esimerkiksi 1 ETH -sijoitus = 1000 XXX tokenia.

Yleistä

Esimerkkejä älysopimusten käyttökohteista on lukemattomia. Käytännössä voit ajatella asiaa näin: kaikki tilanteet missä ostat tuotteen tai palvelun tai laadit jonkinlaisen sopimuksen asian X ja Y toteutumisesta, voidaan siirtää lohkoketjuun ja älysopimuksen hoidettaviksi.

Hyödyt ovat selkeät: kulut, luotettavuus, nopeus ja turvallisuus. Jos siis käytetään aidosti hajautettua ympäristö, minkä hallinto ei ole yhden osapuolen näpeissä.

Älysopimusten avulla prosessista voidaan poistaa paljon välikäsiä, mikä tekee siitä nopeamman ja luotettavan. Inhimillisiä virheitä ei tapahdu ja kaikki osapuolet tietävät ennakkoon jokaisen skenaarion tuloksen.

Oraakkelit ja Chainlink

Käydään lopuksi läpi lohkoketjun oraakkeleita, jotka liittyvät oleellisesti älysopimuksiin ja esim. edellä mainittuihin käyttökohteisiin.

Älysopimuksen heikkous on siinä, että se on suljettu oman lohkoketjunsa sisälle. Sillä ei ole siis pääsyä ulkopuoliseen dataan kuten esimerkiksi säätiedot, osakekurssi tai jalkapallo-ottelun lopputulos. Tätä varten tarvitaan datasyötteen tarjoava komponentti, jota kutsutaan lohkoketjujen maailmassa oraakkeliksi.

Oraakkelin käyttö luo kuitenkin heti uuden ongelman: älysopimuksen toiminta on nyt kolmannen osapuolen hallitseman komponentin varassa. Mitä jos oraakkeli syöttää virheellistä informaatiota tarkoituksella? Mitä jos sen toiminta katkeaa syystä tai toisesta?

Tämän ongelman haluaa ratkaista Chainlink (linkin takana laajempi opas).

chainlink-api

Chainlink on luonut hajautetun oraakkeliverkon sekä insentiivin sen toimijoille laadukkaan informaation tuottamisesta. Jos joku Chainlink-verkon oraakkeleista tuottaa jatkuvasti muista eroavaa dataa, se saa penaltia tai voidaan jopa sulkea pois verkosta kokonaan.

Vastaavasti hyödylliset oraakkelit palkitaan LINK-tokeneilla.

Chainlinkin ratkaisu on todella merkittävä asia älysopimusten toimintalogiikan kannalta. Kyseessä on Ethereum-alustalle rakennettu ohjelmisto, mutta tulevaisuudessa se laajenee myös muille platformeille. Chainlinkin SWIFT-yhteistyö mahdollistaa myös hajautettujen älysopimusten linkittämisen fiat-valuuttojen maailmaan. Kannattaa seurata tätä projektia.

Yhteenveto

Toivottavasti tämä artikkeli avasi älysopimus-termiä pintaa syvemmältä. Aihe ei ole niin yksinkertainen, kuin monet oppaat ja artikkelit antavat ymmärtää. Usein pysähdytään vain lauseseen ”älykäs sopimus lohkoketjussa” ja kerrotaan esimerkkejä vakuutus- tai myyntitilanteista.

Kuten lukija toivottavasti nyt ymmärtää, älysopimus on suomen- ja englanninkielisenä sanana hieman harhaanjohtava. Se alleviivaa liikaa sopimus-aspektia ja korostaa komponentin olevan jollain tavalla älykäs, mikä todennäköisesti vain hämää aloittelevaa henkilöä.

Kyse on vain ohjelmanpätkästä, joka on juuri niin tyhmä tai älykäs kuin sen koodannut henkilö.

On tärkeää ymmärtää, että älysopimuksen ja koko lohkoketjuteknologian todelliset vahvuudet tulevat esiin vain hajautetussa ympäristössä. Jos lohkoketjun hallinta on keskitetty ja yksittäisen tason manipuloitavissa, älysopimuksen vahvuudet hävitetään saman tien.

Edellä kuvatun oraakkeliongelman ymmärtäminen on myös olennainen osa älysopimusten toimintaa. Niiden avulla älysopimuksille voidaan antaa syötteinä dataa myös oman lohkoketjun ulkopuolelta. Ilman oraakkeleita älysopimusten toiminta olisi hyvin rajallista.

Kuva: Tumisu from Pixabay, Waldemar Brandt on Unsplash, GuHyeok Jeong from Pixabay

Coinmotion


Disclaimer: Bitcoinkeskus ei anna sijoitusvinkkejä eikä suosittele ostamaan mitään tiettyä kryptovaluuttaa. Kryptovaluutat sisältävät suuren riskin sijoituksen menettämisestä. Vuoden 2018 aikana suurin osa tunnetuista kryptovaluutoista on pudonnut yli 90% kurssihuipustaan. Lue lisää info-sivulta.

Ei kommentteja, oletko sinä ensimmäinen?

Kommentoi

Sähköpostiosoitettasi ei julkaista.


*