Teme zaključnih nalog
nedelja, 05. februar, 2023
Vsebinska področja
V okviru mentorstev zaključnih del sem na voljo za naslednja vsebinska področja:
- SSI, DID, VC in VP,
- porazdeljene aplikacije (DApps) in Splet3,
- semantični splet,
- relacijske in NoSQL podatkovne baze,
- razvoj naprednih spletnih aplikacij,
- analiza finančnih informacij,
- merljivost kakovosti informacij.
V nadaljevanju je nekaj potencialnih tem diplomskih nalog, kjer so nekatere na voljo , druge pa so zasedene . Zaključne teme, opredeljenje na 1. stopnji, se lahko razširijo tako da so primerne tudi na 2. stopnji.
1. stopnja, UNI, BSc
Podrobnosti v zvezi s pripravo zaključnega dela na 1. stopnji se nahajajo na spletni strani fakultete, kjer najdete pravilnik, navodila za izdelavo, vzorec, izjavo o avtorstvu idr.
Investment DAO
Pregled področja decentraliziranih avtonomnih organizacij (angl. Decentralized Autonomous Organization (DAO)) ter priprava prototipa za področje finančnega investiranja (tj. predlog arhitekture in podpornih pametnih pogodb).
Načrtovalski vzorci in varnost pametnih pogodb
S široko uporabo interneta in tehnologije veriženja blokov so raziskave o varnosti pametnih pogodb vedno bolj pomembne, odkrivanje varnostnih groženj pa je eden glavnih fokusov. Nastala so tudi že številna priporočila v obliki načrtovalskih vzorcev, ki jih lahko upoštevamo pri razvoju in tako zmanjšamo verjetnost težav v produkcijskem okolju.
Namen diplomskega dela je pregled obstoječih dobrih praks v obliki načrtovalskih vzorcev in predlog uporabe dodatnih načrtovalskih vzorcev s klasičnega področja objektno usmerjenega načrtovanja.
Podatkovni prostori
Podatkovni prostori (angl. Dataspaces) predstavljajo abstrakcijo upravljanja podatkov, kjer je osredni cilj odprava težav, ki se pojavijo pri integraciji podatkov. Osrednji namen podatkovnih prostorov je zmanjšati napor, ki je potreben za vzpostavitev sistema za integracijo podatkov, kjer uporabimo obstoječe tehnike ujemanj in preslikav ter vpeljava plačila po uporabi.
Na ravni EU je prisotnih veliko aktivnosti, kjer je na voljo številno gradivo:
- Evropska podatkovna strategija,
- Strategija digitalnih javnih storitev 2030 (SDJU 2030),
- Načrt za okrevanje in odpornost (NOO),
- Usmeritve Evropske komisije,
- International Data Spaces,
- MyData Principles,
- SOLID Intiative,
- GAIA-X,
- OCEAN protocol.
V okviru diplomske naloge se pričakuje podroben pregled področja, primerjava obstoječih rešitev in implementacija prototipa s pomočjo odprtokodnih orodij.
Nadzor nad osebnimi podatki s pomočjo Solid Pods
Solid je specifikacija, ki omogoča varno shranjevanje podatkov v decentraliziranih podatkovnih shrambah, ki se imenujejo Pods. Predstavljamo si jih lahko kot varne osebne spletne strežnika za podatke. Ko so podatki shranjeni v uporabnikovemu Podu, le-ta nadzira, kdo (uporabniki oz. aplikacije) lahko do njih dostopa.
Za implementacijo je na voljo Community Solid Server, prav tako pa je bila že izvedena ena diplomska naloga z naslovom Nadzor nad občutljivimi osebnimi podatki s pomočjo porazdeljenega pristopa Solid.
Avtentikacija in avtorizacija z DID
Z vidika razvoja razvoja programske oprema raziščite uporabo decentralizirane avtentikacije in avtorizacije na primeru izbrane spletne aplikacije, kjer razvijete naslednje načine in jih kritično ovrednotite ter predstavite z vidika prednosti in slabosti razvijalca ter uporabnika:
- obvladovanje uporabnikov (prijavni podatki in vloge) poteka v okviru aplikacije (npr. uporabniki shranjeni v podatkovni bazi), kot to prikazuje slika 1,

Slika 1: Account-based identity model
- uporabnike (prijavne podatke in vloge) obvladuje zunanji sistem IAM (angl. Identy and Access Management) (npr. lastna namestitev Keycloak, Facebook login, GitHub, Google itd.), ki je integriran z vašo spletno aplikacijo, kot to prikazuje slika 2,

Slika 2: Federated identity model
- aplikacijo uporablja decentralizirana identiteta (glej sliko 3), kjer lahko vsak uporabnik upravlja lastno identiteto (SSI) in se z DID poveže z aplikacijo, ki glede na VC-je omogoča dostop do posameznih funkcionalnosti.

Slika 3: Decentralized identity model
Uporaba DID pri preverjanju istovetnosti in avtorizaciji študenta pri izpitu
Pristop SSI omogoča vsakemu uporabniku neodvisno upravljanje lastne identite na svetovnem spletu. Predlagajte vpeljavo omenjenega pristopa, kjer si lahko vsak študent sam kreira svoj lasten DID in nato od fakultete oz. izvajalca predmeta zahteva izdajo različnih preverljivih poverilnic (VC), ki potrjujejo, da je dejansko študent določene fakultete, obiskuje predmet in ima pravico obiska izpita. Izpita bi se nato udeležil z aplikacijo mobilne denarnice na mobilnem telefonu, kjer bi imel shranjene prej omenjene poverilnice. Sistem bi ob pristopu na izpit (npr. skeniranje QR kode, BLE povezava ipd.) od študenta zahteval dokazilo, da ima pravico do opravljanja izpita. Študent bi v mobilni denarnici zgolj potrdil, da se strinja s posredovanjem dokazov o lastništvu teh dokazil, kjer bi ga sistem popolnoma samodejno preveril, kjer bi se lahko dodatno zahtevalo tudi npr. ujemanje obraza, zajetega s kamero (npr. če je slika eden izmed podatkov v preverljivih poverilnicah – podobna rešitev je na voljo na nekaterih letališčih pri prijavi na let, kjer se obrazna slika, zajeta s kamero, in QR koda na boarding pass-u primerja s sliko v potnem listu in kupljeno letalsko karto).
Primerjava decentraliziranih (DeFi) in centraliziranih (CeFi) finančnih rešitev
Kritično ovrednotenje DeFi in CeFi finančnih rešitev s predstavitvijo ključnih prednosti in slabosti.
Pregled tehnologij veriženja blokov s podporo pametnim pogodbam
Podrobnosti zasedene teme
Pri razvoju porazdeljenih aplikacij (DApps) temeljimo na tehnologiji veriženja blokov, kjer pa ločimo več tipov. V okviru diplomske naloge se osredotočite na tiste, ki podpirajo funkcionalnost pametnih pogodb.

Slika 4: Koncept pametne pogodbe
Izberite nekaj ključnih predstavnikov in jih kritično ovrednotite. Na izbranih najbolj pogosto uporabljanih tehnologijah veriženja blokov s podporo pametnim pogodbam na enostavnem primeru prikažite ter primerjate proces razvoja enostavne pametne pogodbe.
Pri pripravi naloge ustrezno preglejte obstoječe področje in predvsem diplomske ter magistrske naloge, ki so že bile opravljene:
- Analiza platform za pripravo pametnih pogodb,
- Cyber security in decentralized applications,
- Sklepanje pogodb s tehnologijo veriženja podatkovnih blokov,
- Razvoj aplikacij na platformi Ethereum in pregled ekosistema decentraliziranih aplikacij,
- Tehnologija veriženja blokov v zdravstvu,
- Kriptovalute in pametne pogodbe.
2. stopnja, MAG, MSc
Podrobnosti v zvezi s pripravo zaključnega dela na 2. stopnji se nahajajo na spletni strani fakultete, kjer najdete prijavo teme, vlogo za odobritev teme, navodila za pripravo, izdelavo in zagovor, vzorec idr.
Arbitraža na trgu kriptovalut
Podrobnosti zasedene teme
Nakup in prodajo kriptovalut lahko izvajamo na kripto menjalnicah (npr. Binance, Kraken, FTX, Bitstamp idr.), ki podpirajo menjavo trgovalnih parov med fiat valuto in kriptovaluto. Cena istega trgovalnega para pa se lahko na različnih menjalnicah zelo razlikuje.

Slika 5: Arbitraža na trgu kriptovalut
V okviru diplomske naloge raziščite možnost izkoriščanje neučinkovitosti oblikovanja cen istih trgovalnih parov na različnih menjalnicah, kjer poskusite z naslednjim pristopom:
- \(F(B) \rightarrow F(M_1)\),
- na kripto menjalnico \(M_1\) iz banke \(B\) prenesemo fiat valuto \(F\) (npr.
EUR
), - kjer je prisoten strošek prenosa \(S_{F(B) \rightarrow F(M_1)}\),
- na kripto menjalnico \(M_1\) iz banke \(B\) prenesemo fiat valuto \(F\) (npr.
- \(F(M_1) \rightarrow C_1(M_1)\),
- na kripto menjalnici \(M_1\) kupimo kriptovaluto \(C_1\) za fiat valuto \(F\) preko trgovalnega para \(C_1/F\) (npr.
BTC/EUR
), - kjer je prisoten strošek nakupa \(S_{F(M_1) \rightarrow C_1(M_1)}\),
- na kripto menjalnici \(M_1\) kupimo kriptovaluto \(C_1\) za fiat valuto \(F\) preko trgovalnega para \(C_1/F\) (npr.
- \(C_1(M_1) \rightarrow C_1(M_2)\),
- kriptovaluto \(C_1\) prenesemo iz kripto menjalnice \(M_1\) na kripto menjalnico \(M_2\),
- kjer je za kriptovalute \(C_1\) prisoten strošek prenosa preko omrežja \(S_{C_1(M_1) \rightarrow C_1(M_2)}\),
- \(C_1(M_2) \rightarrow F(M_2)\),
- na kripto menjalnici \(M_2\) prodamo kriptovaluto \(C_1\) za fiat valuto \(F\) preko trgovalnega para \(C_1/F\) (npr.
BTC/EUR
), - kjer je prisoten strošek prodaje \(S_{C_1(M_2) \rightarrow F(M_2)}\),
- na kripto menjalnici \(M_2\) prodamo kriptovaluto \(C_1\) za fiat valuto \(F\) preko trgovalnega para \(C_1/F\) (npr.
- \(F(M_2) \rightarrow F(B)\),
- na banko \(B\) iz kripto menjalnice \(M_2\) prenesemo fiat valuto \(F\) (npr.
EUR
), - kjer je prisoten strošek prenosa \(S_{F(M_2) \rightarrow F(B)}\).
- na banko \(B\) iz kripto menjalnice \(M_2\) prenesemo fiat valuto \(F\) (npr.
Če je razlika med zneskom na koncu \(F(B)_{\text{konec}}\) in začetku \(F(B)_{\text{začetek}}\) večja od vseh stroškov, je bila arbitraža uspešna:
\[ F(B)_{\text{konec}} - F(B)_{\text{začetek}} > S_{F(B) \rightarrow F(M_1)} + S_{F(M_1) \rightarrow C_1(M_1)} + S_{C_1(M_1) \rightarrow C_1(M_2)} + S_{C_1(M_2) \rightarrow F(M_2)} + S_{F(M_2) \rightarrow F(B)} \]
Zgoraj omenjeni cikel lahko seveda dodatno razširimo še z večimi menjavami med različnimi kriptovalutami. V okviru diplomske naloge se mora razviti delujoči prototip, kjer si lahko pomagate z obstoječimi odprtokodnimi projekti.