Satoshi Nakamoto je v svojem članku Bitcoin: A Peer-to-Peer Electronic Cash System [58] svetu predstavil tehnologijo veriženja blokov (angl. block-chain). Definiral je matematične osnove potrebne za njeno delovanje in opisal javno zgodovino transakcij, ki je odporna na neželjene spremembe napadal-cev. Aplikacije, ki temeljijo na tehnologiji veriženja blokov, so aktivno raz-iskovalno področje, kjer znanstveniki eksperimentirajo z različnimi modeli.
Zmotno je prepričanje, da za decentralizirane aplikacije velja samo to, da ni-majo centralne točke odpovedi. Resnica je, da je za uspešno decentralizirano aplikacijo potrebno izpolniti več pogojev [59]:
1. Odprtokodnost – uporabniki zaprtokodne aplikacije morajo zaupati raz-vijalcem, da je aplikacija res decentralizirana in da nimajo dostopa do njihovih podatkov na centralnem viru. Zaprtokodne aplikacije pogosto
2.2. DECENTRALIZIRANE APLIKACIJE 11
odvrnejo uporabnike od uporabe, še posebej, če aplikacija upravlja z denarnimi sredstvi.
2. Interna valuta – aplikacije pogosto uporabljajo t.i. aplikacijski žeton (angl. appcoin). Ker so aplikacije večinoma odprtokodne, se pojavlja vprašanje, kako z njimi zaslužiti. Če bi dodali pristojbino (angl. fee) za transakcije, bi morali zaupati uporabnikom, da ne bodo kode pri-lagodili tako, da pristojbina ne bo več potrebna. To lahko rešimo z dodelitvijo žetonov v omrežju, ki jih morajo imeti uporabniki, če želijo uporabljati aplikacijo. Ker je število žetonov omejeno, je pričakovano, da bo tudi njihova vrednost naraščala. To seveda ne pomeni, da mo-rajo uporabniki dejansko plačati za uporabo storitve – ob registraciji jim lahko ponudimo simbolično število brezplačnih žetonov, ki jih lahko porabijo po potrebi.
3. Decentraliziran konsenzus – ne zanašamo se na centralni sistem za po-trjevanje veljavnosti transakcij. Veriga blokov je prva decentralizirana podatkovna baza transakcij, ki je bila od samega začetka načrtovana za visoko varnost. Če aplikacija potrebuje funkcionalnost, ki zahteva stri-njanje vseh za določeno stvar, je smiselna uporaba verige blokov, bolj natančno pametnih pogodb (angl. smart contract). To je del kode, ki se nahaja na verigi blokov. S tem se znebimo odvisnosti od zunanjih sistemov in pogosto pridobimo zaupanje uporabnikov.
4. Ni centralne točke odpovedi – decentraliziranih aplikacij ne moremo ugasniti, ker ne obstaja samo en strežnik, ki bi jih gostil. Aplikacijski podatki so porazdeljeni po vseh vozliščih, ki so med seboj neodvisna – če eno odpove, ostala delujejo nemoteno.
Prav tako kot klasične aplikacije, imajo tudi decentralizirane aplikacije (angl. decentralized applications, Dapps) uporabnike, mobilne aplikacije in strežnike. Bistvena razlika je v hranjenju ključnih podatkov, ki se v pri-meru decentraliziranih aplikacij nahajajo na verigi blokov v obliki pametnih pogodb.
Vitaly Dmitriyevich Buterin, eden od soustanoviteljev kriptovalute Ethe-reum, je v svojem članku [60] podrobno opisal njeno delovanje in namen, na koncu pa se je dotaknil še razvoja decentraliziranih aplikacij, ki temeljijo na Ethereumu. Pametne pogodbe omogočajo vsakomur, da razvije aplikacijo, ki se bo poganjala na navideznih strojih s predhodno pridobitvijo konsenza vseh v omrežju. Aplikacija lahko spreminja globalno stanje omrežja, ki se obnaša kot trdi disk. Shranjevanje večje količine podatkov na verigi blokov je odsvetovano, saj so stroški veliki. Vendar, koncept pošiljanja transakcij na verigo blokov ni najbolj uporabniško prijazen pristop, zato je Buterin že leta 2014 napovedal, da bodo za popularizacijo in dostopnost potrebni grafični uporabniški vmesniki, ki bodo uporabnikom prikrili kompleksnost interakcije z verigo blokov. Omenil je tudi, da bi klasično arhitekturo spletnih strani strežnik-odjemalec lahko zamenjali z arhitekturo veriga blokov-odjemalec. V praksi to ni vedno mogoče, saj mnoge aplikacije zahtevajo shranjevanje ve-like količine podatkov, kar je cenovno nesprejemljivo, če za zaledni sistem uporabljamo verigo blokov.
Pametne pogodbe lahko uporabljamo tudi za doseganje skladnosti s pred-pisi pri čezmejni izmenjavi modelov umetne inteligence [14]. Pri tem se uporabljajo namenski preroki (angl. oracle), ki so prilagojeni za napredno upravljanje z metodami umetne inteligence. V okviru članka smo raziskovali scenarij, ki predpostavlja, da se cevovod velepodatkov začne na eni lokaciji (npr. nadzorna kamera v Ljubljani) in potuje skozi varne internetne kanale proti nadaljnjim fazam procesiranja, ki se izvajajo na drugi lokaciji (npr.
zasebni oblak v Koreji). Shematski prikaz procesa je prikazan na sliki 2.2, njegovi koraki pa vključujejo:
1. S pomočjo grafičnega uporabniškega vmesnika uporabnik iz EU poda strinjanje za uporabo njegovih osebnih podatkov za določen čas, ko bo bival v Koreji (npr. uporabo njegovega biometričnega modela v metodah umetne inteligence).
2. Aplikacija pokliče funkcijo v pametni pogodbi, ki s pomočjo preroka
2.2. DECENTRALIZIRANE APLIKACIJE 13
uporabnik
1. preveri in potrdi regulacije 2. pridobi in namesti model umetne inteligence
repozitorij modelov umetne inteligence, ki vsebuje tudi model z uporabnikovimi
biometričnimi podatki
videotok
verifikacija osebe z uporabnikovim modelom
umetne inteligence v Koreji
Slika 2.2: Scenarij čezmejnega upravljanja s podatki.
za EU regulacijo potrdi obstoj potrebnih podatkov v repozitorijih in zapiše strinjanje na verigo blokov.
3. Ob prihodu v Korejo morajo biti uporabnikovi podatki nameščeni na varno računsko infrastrukturo v Koreji.
4. Komponente DECENTER platforme [61] izberejo najbolj primerno vo-zlišče za namestitev metode umetne inteligence v Korejskem oblaku.
5. Modul za upravljanje s podatki dovoli dostop na podlagi izpolnjenih EU in Korejskih regulacij ter osebnega dovoljenja lastnika biometričnih podatkov.
6. Ko uporabnik uspešno izvede plačilo, se mu izpiše API ključ, s katerim lahko dostopa do metode umetne inteligence.
7. Sporazum o ravni storitev (angl. Service Level Agreement, SLA) se pošlje infrastrukturi in uporabnikovi biometrični podatki so na voljo metodi umetne inteligence skozi celoten čas bivanja v Koreji.