Vsebinska področja

V okviru mentorstev zaključnih del sem na voljo za naslednja vsebinska področja:

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.

  • Kannengieser et al. (2022): Challenges and Common Solutions in Smart Contract Development, IEEE Transactions on Software Engineering, 48(11), full text.
  • He et al. (2023): Detection of Vulnerabilities of Blockchain Smart Contracts, IEEE Internet of Things Journal, full text.

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:

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,
**Account-based** identity model

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,
**Federated** identity model

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.
**Decentralized** identity model

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.

Koncept pametne pogodbe

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:

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.

Arbitraža na trgu kriptovalut

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)}\),
  • \(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)}\),
  • \(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)}\),
  • \(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)}\).

Č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.

He, Daojing, Rui Wu, Xinji Li, Sammy Chan, and Mohsen Guizani. 2023. “Detection of Vulnerabilities of Blockchain Smart Contracts.” IEEE Internet of Things Journal, 1–1. https://doi.org/10.1109/JIOT.2023.3241544.
Kannengieser, N., S. Lins, C. Sander, K. Winter, H. Frey, and A. Sunyaev. 2022. “Challenges and Common Solutions in Smart Contract Development.” IEEE Transactions on Software Engineering 48 (11): 4291–4318. https://doi.org/10.1109/TSE.2021.3116808.