Älysopimukset ja Ethereum-sovellusalusta
Hiironen, Altti (2017)
Hiironen, Altti
2017
Tietotekniikka
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2017-12-07
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201711222203
https://urn.fi/URN:NBN:fi:tty-201711222203
Tiivistelmä
Lohkoketjuteknologialla tarkoitetaan hajautettua vertaisverkossa toimivaa tietokantaa, jonka ylläpitoon jokainen vertaisverkossa oleva toimija osallistuu. Lohkoketjut mahdollistavat luottamuksen rakentamisen Internetissä eri toimijoiden välille ilman tarvetta kolmanteen osapuoleen, jonka tehtävänä olisi varmentaa toimijoiden välisten viestien oikeellisuus. Lohkoketjuteknologia on mahdollistanut uusien vaihtoehtoisten digitaalisten valuuttojen toteuttamisen. Ensimmäinen lohkoketjuteknologiaa hyödyntävä ja edelleen käytössä oleva järjestelmä oli digitaalinen valuutta nimeltään Bitcoin.
Bitcoinin ideaa eteenpäin vievä hajautettu järjestelmä Ethereum mahdollistaa ohjelmoitavan digitaalisen valuutan käyttäen älysopimuksia. Älysopimukset ovat itseään suorittavia tietokoneohjelmia, jotka kuvaavat sopimuspohjaista toimintaa. Ethereum mahdollistaa älysopimusten suorittamisen lohkoketjussa, jossa niihin ohjelmoidut sopimusehdot toteutuvat ilman kolmannen osapuolen varmennusta. Tämän työn tarkoituksena on selvittää, kuinka lohkoketjuteknologia on teknisesti toteutettu, käyttäen esimerkkinä Bitcoinia. Tämän pohjalta käydään läpi myös Ethereumsovellusalustan toteutus. Työssä toteutetaan sovellus, joka hyödyntää Ethereum-sovellusalustalle ohjelmoituja älysopimuksia, ja arvioidaan millaisia tietoturvariskejä ja ohjelmointikäytäntöjä niiden toteuttamiseen liittyy.
Työssä toteutettu sovellus mahdollistaa työsopimusten solmimisen käyttäen Ethereum-sovellusalustalle ohjelmoituja älysopimuksia. Sovellus toteutettiin asiakas-palvelin -mallia hyödyntävänä web-sovelluksena, jossa palvelin on yhteydessä Ethereumsovellusalustaan. Sovelluksessa hyödynnettiin myös verkkoselaimeen saatavilla olevaa MetaMask-laajennusta, jonka avulla asiakaskäyttöliittymässä voidaan olla myös suoraan yhteydessä älysopimusten kanssa käyttäen käyttäjän omaa Ethereum-tiliä.
Yleisesti älysopimusten toteuttamisessa on tärkeää ymmärtää niiden suorittamisen mahdolliseksi tekevän lohkoketjuteknologian toiminta ja ominaisuudet, jotta mahdollisiin haavoittuvuuksiin ja virhetilanteisiin voidaan varautua. Ohjelmointikäytännöt muokkaantuvat jatkuvasti, koska teknologia on vielä luonteeltaan uutta. Lisäksi Ethereum-sovellusalusta on saamassa seuraavien vuosien aikana merkittäviä päivityksiä, minkä vuoksi siihen liittyvän kehityksen ja uutisoinnin seuraamista suositellaan.
Bitcoinin ideaa eteenpäin vievä hajautettu järjestelmä Ethereum mahdollistaa ohjelmoitavan digitaalisen valuutan käyttäen älysopimuksia. Älysopimukset ovat itseään suorittavia tietokoneohjelmia, jotka kuvaavat sopimuspohjaista toimintaa. Ethereum mahdollistaa älysopimusten suorittamisen lohkoketjussa, jossa niihin ohjelmoidut sopimusehdot toteutuvat ilman kolmannen osapuolen varmennusta. Tämän työn tarkoituksena on selvittää, kuinka lohkoketjuteknologia on teknisesti toteutettu, käyttäen esimerkkinä Bitcoinia. Tämän pohjalta käydään läpi myös Ethereumsovellusalustan toteutus. Työssä toteutetaan sovellus, joka hyödyntää Ethereum-sovellusalustalle ohjelmoituja älysopimuksia, ja arvioidaan millaisia tietoturvariskejä ja ohjelmointikäytäntöjä niiden toteuttamiseen liittyy.
Työssä toteutettu sovellus mahdollistaa työsopimusten solmimisen käyttäen Ethereum-sovellusalustalle ohjelmoituja älysopimuksia. Sovellus toteutettiin asiakas-palvelin -mallia hyödyntävänä web-sovelluksena, jossa palvelin on yhteydessä Ethereumsovellusalustaan. Sovelluksessa hyödynnettiin myös verkkoselaimeen saatavilla olevaa MetaMask-laajennusta, jonka avulla asiakaskäyttöliittymässä voidaan olla myös suoraan yhteydessä älysopimusten kanssa käyttäen käyttäjän omaa Ethereum-tiliä.
Yleisesti älysopimusten toteuttamisessa on tärkeää ymmärtää niiden suorittamisen mahdolliseksi tekevän lohkoketjuteknologian toiminta ja ominaisuudet, jotta mahdollisiin haavoittuvuuksiin ja virhetilanteisiin voidaan varautua. Ohjelmointikäytännöt muokkaantuvat jatkuvasti, koska teknologia on vielä luonteeltaan uutta. Lisäksi Ethereum-sovellusalusta on saamassa seuraavien vuosien aikana merkittäviä päivityksiä, minkä vuoksi siihen liittyvän kehityksen ja uutisoinnin seuraamista suositellaan.