IT Law logo
Swipe up
22 / 12 / 2017

Tehnologija Blockchain in Splošna Uredba o varstvu osebnih podatkov

Blog22 / 12 / 2017

Tehnologija Blockchain in Splošna Uredba o varstvu osebnih podatkov

 

by Urban Kryštufek

Katere vidike varstva zasebnosti je potrebno upoštevati pri uporabi tehnologije blockchain v praksi ?

Pri uporabi tehnologije blockchain oz. verige podatkovnih blokov v praksi, je potrebno obvezno upoštevati veljavna pravila o varstvu osebnih podatkov, saj predmetna tehnologija predvideva masovno shranjevanje in izmenjavo podatkov, kar lahko vključuje tudi osebne podatke. To pa je samo ena stran spektra, saj lahko uporaba tehnologije blockchain koristi varstvu osebnih podatkov na različne načine, npr. lahko zagotovi večjo točnost podatkov in poveča kontrolo nad podatki in dostop do podatkov s strani oseb, katerih osebnih podatki se obdelujejo.

V Sloveniji temeljna pravila glede varstva osebnih podatkov določa Zakon o varstvu osebnih podatkov, ki je v slovenski pravni red implementiral Evropsko direktivo o varstvu osebnih podatkov 94/46. Da bi poenotili zakonodajo varstva zasebnosti znotraj EU, bo predmetno direktivo nadomestila Splošna Uredba o varstvu osebnih podatkov 2016/679 (General Data Protection Regulation, GDPR). Družbe, ki obdelujejo osebne podatke morajo svoje poslovanje uskladiti z zahtevami GDPR do 25.5 2018, ko bo GDPR začela neposredno veljati v vseh državah članicah EU. V nadaljevanju je podan pregled glavnih obveznosti glede varstva osebnih podatkov po veljavni in bodoči zakonodaji GDPR (pravila varstva osebnih podatkov oz. zasebnosti) v zvezi z aplikacijami blockchain.

Blockchain in varstvo podatkov

Shranjevanje podatkov v strukturi blockchain

V svojem bistvu je tehnologija blockchain samo nov način shranjevanja in izmenjevanja informacij. Kljub temu pa se tovrsten način shranjevanja razlikuje od obstoječih metod shranjevanja, kar pa je ključno glede uporabe pravil varstva osebnih podatkov. S tehnologijo blockchain se namreč podatki shranjujejo v serijah podatkovnih blokov, ki so med seboj povezani v verigo.

Na splošno se predmetna tehnologija opisuje kot analogija z (glavno) računovodsko knjigo, kjer je prvi podatkovni blok prva stran računovodske knjige. Vsak naslednji podatkovni blok vsebuje digitalni prstni odtis, ki mu pravijo zgoščena vrednost ali hash (poljubno zaporedje črk in številk) prejšnjega podatkovnega bloka. Hash nastane na podlagi zgoščevanja (hashing), ki je ključna kriptografska tehnika vključena v verigo blokov. Posledično ima vsak blok v verigi sledljivost do prvega podatkovnega bloka. Ker tako vsaka nova stran v ˝računovodski knjigi˝ vsebuje povzetek vseh prejšnjih strani, se s časom velikost strani v računovodski knjigi povečuje. Tako je poglavitna lastnost blockchaina, da se prejšnji podatkovni bloki ne morejo spremeniti ali izbrisati neopaženo, saj bi to pomenilo, da bi bilo potrebno spremeniti tudi vsak naslednji podatkovni blok. Če bi namreč nekdo poskušal spremeniti podatke znotraj bloka, bi se sprememba odražala tudi v sami zgoščeni vrednosti. Vsak udeleženec v blockchain omrežju tako lahko hitro identificira spremenjene oz. pokvarjene bloke podatkov, saj se ob spremembi podatkov spremeni tudi zgoščena vrednost bloka. Zgoščene vrednosti blokov so med seboj povezane in tako tvorijo verigo blokov

Predmetni mehanizem dodajanja (append only) tako v najboljši mogoči meri olajša vpogled v spremembe narejene v blockchainu in tako ustvarjena preglednost in preverljivost pomaga preprečiti nepooblaščene spremembe v tej podatkovni verigi.

Decentralizirano shranjevanje in izmenjava podatkov

Tehnično gledano je veriga blokov porazdeljena podatkovna baza, podvojena na vsaki napravi oz. računalniku, ki se nenehno sinhronizira s sodelovanjem vseh udeležencev v omrežju prek procesa imenovanega soglasje (ang. consensus). Soglasje je proces sinhronizacije predmetne baze v omrežju, ki zagotavlja, da je glavna knjiga posodobljena samo takrat, ko so transakcije potrjene s strani zaupanja vrednih udeležencev omrežja

Blokovna baza je sestavljena iz dveh vrst zapisov - transakcij in blokov. Blok je nenehno rastoč seznam potrjenih transakcij. Vsak blok vsebuje časovni žig in povezavo na prejšnji blok. Tako povezani bloki tvorijo verigo, imenovano veriga blokov, ki uporabnikom omogoča pregled vseh transakcij v omrežju vse od začetnega, t. i. genesis bloka, vključenega v samo programsko kodo. Z izvajanjem in hranjenjem novih transakcij veriga blokov raste.

Vsi računalniki v omrežju skrbijo za potrjevanje novih blokov v skladu z določenim protokolom, zato je blokovna baza odporna na spreminjanje podatkov. Njene podatke namreč hrani vsak računalnik v omrežju, zato je  že enkrat zapisane podatke praktično nemogoče spreminjati, saj bi morali spremeniti vse nadaljnje bloke v verigi in poskrbeti za njihovo potrditev v celotnem omrežju, za kar bi potrebovali ogromno računsko moč (t.i. append only feature of blockchain). To uporabnikom omogoča enostavno preverjanje in revizijo transakcij.

Namesto, da bi se tako deli informacije izmenjevali med ločenimi igralci, vse stranke blockchaina s tako imenovanimi  polnimi nodi (full nodes- računalnik, ki hrani in distribuira celotno kopijo glavne knjige vseh transakcij ) shranjujejo lastno kopijo celotnega blockchaina in delijo informacije preko blockchaina.

V primeru klasičnega shranjevanja podatkov pa vsak posameznik oz. organizacija shranjuje lastne podatke in jih izmenjuje z drugimi posamezniki po lastni volji. Tako stranka, ki shranjuje podatke (finančni operator, država, zavarovalnica, univerza,..) lahko predstavlja osrednjo točko napake (central point of failure) oz. centralno točko napada za hakerje. Poleg tega vsaka izmenjava podatkov predstavlja ločeno varnostno tveganje. Na drugi strani v primeru verige blokov ni posamične točke napake (single point of failure), saj vse podatke v blockchainu shranjujejo vsi sodelujoči igralci (računalniki). Vse te distribuirane kopije blockchaina se stalno sinhronizirajo (usklajujejo).

Glavni igralci verige blockchain

Kot v vsakem sistemu, kjer se vršijo transakcije (npr. plačilo določenega denarnega zneska med dvema osebama, vpis lastništva nepremičnine, izvršitev pametne pogodbe, vpis diplome, itd.), poznamo tudi pri verigi podatkovnih blokov dva tipa protagonistov: uporabnike sistema na eni strani, in  na drugi strani tiste, ki predmetni sistem upravljajo in dajejo na razpolago potrebno informacijsko infrastrukturo.


Uporabniki so isti kot v klasičnem sistemu. Na eni strani je ponudnik (iniciator) transakcije: dolžnik, ki plača določen denarni znesek, univerza, ki vnese diplomo v ustrezni register ali zavarovalnica, ki objavi pametno pogodbo za kritje določenih škodnih dogodkov. Na drugi strani so (korelativno) upravičenci (beneficiarji) posla: upnik, ki prejme določen denarni znesek, delodajalec, ki preveri verodostojnost diplome ali zavarovanec, ki bo avtomatično prejel odškodnino v primeru, da se bodo izpolnili v pametni pogodbi zapisani pogoji.

Organizatorji verige podatkovnih blokov so tisti, ki se precej razlikujejo od klasičnega sistema, vsaj glede javne blockchain mreže. V klasičnem sistemu transakcij so za delovanje registra transakcij odgovorni eden ali več opredeljenih  javnih ali zasebnih akterjev, ki so praviloma povrženi določeni obvezni regulativi. Ti uradni akterji so garanti verodostojnosti transakcij (glede njene vsebine, datuma in resničnosti) in aplikacije, ki podpirajo delovanje predmetnega sistema so večinoma sestavljene iz (plačljivih) licenčnih informacijskih sistemov (programov).

V primeru javne blockchain mreže pa aplikacije, ki delujejo na podlagi predmetne tehnologije, temeljijo na odprtokodni programski opremi, kar jim zagotavlja preglednost in interoperabilnost (npr. primer Hyperledger projekt katerega pobudnik je Linux Foundation). Gre sicer bolj za kulturni šok kot nujnost, saj lahko blockchain aplikacija deluje tudi na podlagi lastniške programske opreme.

Prav informacijska infrastruktura pa predstavlja izvirnost javne blockchain mreže. Slednjo namreč sestavljajo strežniki, ki jih upravljajo rudarji, razdeljeni po internetnih vozliščih oz. nodih (komunikacijske entitete verige blokov) od katerih vsak daje na razpolago sistemu računske zmogljivosti za delovanje aplikacije in ohranitev celote ali dela registra transakcij. Rudarji so neodvisni in plačani za svoje belo (npr. z bitcoin kovanci). Skupno jim je le to, da sodelujejo v isti blockchain mreži.

Delovanje verige blockchain (oz. aplikacije temelječe na tehnologiji blockchain)

Vsako internetno vozlišče (node) stalno prejema sporočila, od katerih nekatera vsebujejo predlog, da je potrebno dodati novo transakcijo (zapis) k blockchain mreži.

Ko je podan predlog za izvršitev transakcije (npr. vpis nepremičnine v zemljiško knjigo), se predmetno sporočilo prenese preko interneta nodom in rudarjem (posebni nodi, ki izvajajo določene zapletene računske operacije potrebne za delovanje aplkacije) na podlagi zahteve podpisane z zasebnim kriptografskim ključem s strani emitenta transakcije (npr. predlagatelja vpisa v zemljiško knjigo).

Po prejemu transakcije, aplikacija blockchain, ki je inštalirana na strežniku enega od rudarjev preveri veljavnost transakcije na podlagi vnaprej opredeljenih kriterijev (preverba zasebnega ključa in npr. v primeru plačila denarnega zneska preverba ali pobudnik izvršitve plačila razpolaga z zadostnimi denarnimi sredstvi na svojem bančnem računu).

Predmetna aplikacija nato napravi digitalni prstni odtis (hash), ki vsebuje samo transakcijo, številko prejšnjo podatkovnega bloka v verigi in majhno datoteko imenovano proof of work (POW), ki meri količino dela rudarjev za izvedbo operacije (na podlagi vnaprej opredeljenih kriterijev, ki so odvisni od vsake posamezne aplikacije, običajno gre za reševanje zapletenih matematičnih operacij). Proces izvajanja zapletenih matematičnih operacij (s strani rudarjev) z namenom generiranja POW se imenuje rudarjenje (mining).

Rudarjenje je način zbiranja novo nastalih transakcij in tvorjenje bloka z vsemi zbranimi, še nepotrjenimi, transakcijami, s katerim rudarji potrjujejo bloke in transakcije ter na ta način poskrbijo, da je veriga blokov v vsakem trenutku dosledna in popolna. Da bi udeleženci omrežja sprejeli blok, morajo rudarji poskrbeti za izračun števila nonce. Vsak rudar mora preveriti veliko različnih vrednosti za število, dokler ne doseže težavnostnega praga ali najde pravega števila. Rudar, ki odkrije pravo število, je za njen izračun nagrajen z vnaprej določeno količino kriptokovancev. Težavnostni prag dela se na določeno število blokov prilagodi glede na računsko moč omrežja. Povprečni čas potrditve novega bloka transakcij se na ta način ohranja. Vsak blok prek hasha vsebuje povezavo na prejšnji blok. Tako se s povezavami med bloki tvori veriga blokov. S časom potrjeni bloki v omrežju prejmejo nove potrditve o skladnosti zapisanih podatkov, zato so starejši bloki z večjim številom potrditev med uporabniki mreže deležni večje stopnje zaupanja o celovitosti in veljavnosti shranjenih podatkov.

Bolj poenostavljeno povedano: Če vemo, da vsi nodi v mreži opravljajo enako delo istočasno  (mining izvajajo samo rudarji) je potrebno izbrati najboljšo transakcijo, ki se jo potem vključi v vsak podatkovni blok članov mreže, tako da vsak nod posledično vsebuje celotno kopijo oz. informacije o vseh odobrenih transakcijah. Rudarjenje namreč deluje na način, da vsi rudarji v mreži tekmujejo med seboj, da bi se mreži priključil njihov podatkovni blok. Namen predmetne operacije je namreč izločiti nepristne transakcije oz. zaznati prevare (zlorabe) v sistemu, da bi se na koncu mreži priključila transakcija oz. podatkovni blok zmagovitega rudarja (tj. tisti, ki najbolje reši določene matematične operacije) ki je potem posredovan vsem nodom v mreži. Tako veljaven zapis vseh transakcij, ki ga sedaj hranijo vsi uporabniki sistema potem služi kot osnova za integracijo naslednjih transakcij.

Tako npr. platforma Bitcoin za potrjevanje predlaganih zapisov (transakcij) za shranitev v verigo blokov uporablja predmetni sistem rudarjenja na način dokazovanja skladnosti zapisa z POW. Podatke, shranjene v verigi blokov, ki uporablja sistem POW je namreč izjemno težko spremeniti. saj bi moral napadalec spremeniti vse naslednike bloka, ki ga želi spremeniti. Ker ves čas nastajajo tudi novi bloki, zahtevnost spreminjanja podatkov narašča z nastajanjem novih blokov in povečevanjem števila potrditev preteklih blokov.

Rudarji so za svoje delo (oz. dajanja na razpolago računskih zmogljivosti svojih računalnikov) ustrezno plačani, npr. v obliki kovancev bitcoin (ki se lahko zamenjajo za uradno valuto na ustreznih menjalnih platformah).

V zvezi z zgoraj navedenim je potrebno dodati, da rudarji za izračun števila nonce porabljajo velike količine električne energije (npr. za rudarjenje kriptovalut Bitcoin in Ethereum se dnevno porabi za miljon dolarjev električne energije), saj morajo ti preveriti veliko število kombinacij za ustrezno generiranje predmetnega števila.

Zato razvijalci platforme Ethereum pripravljajo nadgradnjo platforme s prehodom iz sistema POW na sistem dokazila o deležu (proof-of-stake-POS). V sistemu, ki uporablja metodo soglasja POS je namreč rudar, ki potrdi in ustvari nov blok, izbran naključno glede na količino kovancev Ether v posamezni digitalni denarnici, ki jo ima v lasti, pri čemer je nagrajen zgolj s provizijo transakcij, za razliko od sistema POW, kjer rudar prejme vnaprej določeno količino kriptokovancev.

Na drugi strani platforma Hyperledger Fabric ne uporablja nobene od zgoraj opisanih metod soglasja za potrjevanje transakcij, saj za razliko od platform Bitcoin in Ethereum nima podprte kriptovalute, s katero bi nagrajevala rudarje za njihovo opravljeno delo. Predmetna platforma za potrjevanje transakcij tako uporablja praktično bizantinsko odpornost na napake. Takšen način potrjevanja transakcije ne terja velikih količin električne energije, saj v sistemu ne obstajajo rudarji, ki bi potrjevali bloke, ampak je privzeto, da določen delež vključenih vozlišč zagotovo sporoča resnične podatke o rezultatih transakcije

Uporaba pravil varstva osebnih podatkov

Obdelava osebnih podatkov (psevdoanonimizirani in anonimizirani podatki)

Pravila varstva osebnih podatkov se uporabljajo glede obdelave osebnih podatkov. Tako je potrebno ugotoviti ali se pri uporabi tehnologije blockchain obdelujejo osebni podatki. Osebni podatki zadevajo vsako informacijo glede (direktno ali indirektno) določenega ali določljivega posameznika. Iz prej navedene definicije sledi, da je odvisno od načina shranjevanja podatkov (povezani ali ne) in možnosti ponovne vzpostavitve povezave ali se podatki v konkretnem primeru lahko štejejo za osebne podatke. Na primer rdeči avto se sam po sebi ne šteje za osebni podatek, vendar lahko na podlagi predmetnega podatka ugotovimo kdo je lastnik predmetnega avtomobila. Glede tehnologije blockchain je potrebno razumeti, da se lahko za osebne podatke skladno z GDPR štejejo tako sporočila v podatkovnih blokih kot tudi ostali podatki glede mreže blockchain (npr. tako imenovani header of block).

Nadaljnja pojasnila glede pojma osebni podatek je podala Delovna skupina iz člena 29 (WP29), ki je neodvisen svetovalni organ EU Komisije glede varstva osebnih podatkov, sestavljen iz članov nadzornih organov za varstvo osebnih podatkov držav članic. Mnenjem predmetnega organa praviloma sledijo nadzorni organi držav članic. V letu 2014 je WP29 sprejela smernice glede razlikovanja med psevdoanonimiziranimi (slednje za razliko od veljavne zakonodaje šteje GDPR za osebne podatke) in anonimiziranimi podatki. Za uporabo blockchaina je predmetno razlikovanje pomembno, saj se pravila varstva osebnih podatkov ne uporabljajo za anonimiziranime podatke, saj tovrstnih podatkov ni mogoče povezati s posameznikom oz. živo fizično osebo. Kljub temu je meja za uvrstitev podatkov med anonimizirane podatke izredno

CC BY