KAKO STVORITI ELEKTRONSKI NOVAC | Kripto Entuzijasti

KAKO STVORITI ELEKTRONSKI NOVAC

KRIPTOGRAFIJA ANONIMNE ELEKTRONSKE GOTOVINE

POSJEDUJEMO DOKUMENT IZ 1996. KOJI JE VEĆ OPISIVAO ANONIMNI DIGITALNI NOVAC 

Kada se danas govori o digitalnom novcu, privatnosti, anonimnim transakcijama i problemu dvostrukog trošenja, većina ljudi gotovo automatski pomisli na Bitcoin i blockchain. Međutim, istorija digitalnog novca mnogo je starija od 2008. godine. Još tokom osamdesetih i devedesetih kriptografi su ozbiljno pokušavali da odgovore na pitanje kako napraviti elektronsku verziju gotovine koja bi zadržala neke od najvažnijih osobina fizičkog novca: privatnost, prenosivost, nemogućnost jednostavnog praćenja i mogućnost neposrednog plaćanja između korisnika. Dokument koji slijedi jedan je od najzanimljivijih tragova tog perioda.

KAKO STVORITI ELEKTRONSKI NOVAC

Riječ je o izvještaju pod naslovom „How to Make a Mint: The Cryptography of Anonymous Electronic Cash“, koji su 18. juna 1996. godine napisali Laurie Law, Susan Sabett i Jerry Solinas iz National Security Agency – NSA, odnosno iz njenog Office of Information Security Research and Technology, Cryptology Division. Dokument je kasnije postao javno dostupan i predstavlja veoma vrijedan istorijski pregled tada poznatih sistema anonimnog elektronskog novca.

Ono što ovaj dokument čini posebno zanimljivim nije nikakva senzacionalna tvrdnja da je NSA „izmislila Bitcoin“. Takva tvrdnja bila bi pogrešna. Prava vrijednost dokumenta jeste u tome što pokazuje koliko su osnovni problemi digitalnog novca već sredinom devedesetih bili jasno definisani i tehnički veoma ozbiljno obrađeni.

U izvještaju se govori o javnim i privatnim ključevima, digitalnim potpisima, hash funkcijama, blind signatures, zero-knowledge dokazima, Schnorrovim protokolima, RSA potpisima, digitalnim novčanicima, anonimnosti korisnika, nemogućnosti povezivanja podizanja i plaćanja, prenosivosti, djeljivosti novca i double-spendingu.

Drugim riječima, gotovo čitav rječnik modernog digitalnog novca već je postojao.

Posebno mjesto zauzima problem double-spendinga. Fizičku novčanicu nije moguće potrošiti dva puta istovremeno, jer kada je predate drugoj osobi, više je nemate. Digitalni novac je drugačiji. Digitalni podatak se može kopirati beskonačno mnogo puta. Ako je elektronski novčić samo niz bitova, postavlja se fundamentalno pitanje: kako spriječiti korisnika da isti niz kopira i pošalje deset različitih ljudi?

Upravo se oko tog problema vrti veliki dio ovog izvještaja.

Jedno rješenje jeste on-line sistem u kojem Banka provjerava svaki novčić prije nego što trgovac prihvati plaćanje. Ako se novčić već nalazi u bazi potrošenih novčića, transakcija se odbija. Međutim, takav sistem i dalje zahtijeva centralnu instituciju koja u realnom vremenu kontroliše stanje.

Mnogo zanimljiviji je off-line sistem.

Kod njega plaćanje može biti izvršeno bez trenutnog kontakta sa Bankom. To donosi veću praktičnost i veću sličnost sa fizičkom gotovinom, ali otvara novi problem: ako se isti novčić potroši više puta prije nego što bilo koja kopija stigne u Banku, kako otkriti prevaru i identifikovati osobu koja ju je izvršila?

Tu se pojavljuju kriptografska rješenja koja su za svoje vrijeme bila izuzetno sofisticirana.

Jedno od njih jeste blind signature, odnosno slijepi potpis. Osnovna ideja je da Banka može potpisati elektronski novčić i time potvrditi njegovu vrijednost i autentičnost, a da pritom ne zna koji konkretni novčić potpisuje. Kada se taj novčić kasnije vrati Banci preko trgovca, Banka može potvrditi da je potpis njen, ali ga ne može jednostavno povezati sa osobom kojoj ga je prethodno izdala.

To omogućava veoma važnu osobinu: novac može biti validan, a da njegovo kretanje nije automatski povezano sa identitetom korisnika.

U dokumentu se zatim ide još dalje.

Razmatraju se sistemi u kojima pošten korisnik ostaje anoniman, ali ako isti novčić pokuša potrošiti dva puta, dvije transakcije zajedno otkrivaju dovoljno informacija da njegov identitet postane poznat.

To je veoma elegantna ideja.

Jedna transakcija ne otkriva ko ste.

Druga upotreba istog novčića otkriva prevaru.

Upravo zbog toga u dokumentu se detaljno objašnjavaju cut-and-choose metodezero-knowledge proofs i takozvani princip dvije tačke na jednoj pravoj. Na prvi pogled riječ je o apstraktnoj matematici, ali njena praktična svrha je veoma konkretna: napraviti sistem u kojem anonimnost postoji sve dok korisnik poštuje pravila.

Dokument razmatra i tri važna tadašnja sistema elektronske gotovine: Chaum–Fiat–Naor, Brands i Ferguson.

Chaum–Fiat–Naor koristi slijepi RSA potpis i cut-and-choose mehanizam.

Brandsov sistem zasniva se na Schnorrovim protokolima i smatra se elegantnijim jer izbjegava glomaznu cut-and-choose konstrukciju.

Ferguson pokušava spojiti neke prednosti RSA pristupa sa principom dvije tačke na pravoj.

Sve ovo pokazuje da je potraga za privatnim digitalnim novcem bila veoma razvijena mnogo prije Bitcoina.

Ali upravo tu se vidi i ključna razlika.

U svim sistemima koje ovaj dokument obrađuje i dalje postoji Banka.

Banka izdaje novčiće.

Banka ih potpisuje.

Banka vodi bazu potrošenih novčića.

Banka učestvuje u otkrivanju višestrukog trošenja.

Banka je, dakle, centralna tačka povjerenja.

To je fundamentalno drugačije od Bitcoina.

Bitcoin nije riješio problem digitalnog novca tako što je napravio bolju Banku. Pokušao je ukloniti potrebu za Bankom kao centralnim izdavaocem i centralnim arbitrom.

Satoshi Nakamoto je 2008. godine problem double-spendinga riješio drugačijom arhitekturom: javnim vremenskim redoslijedom transakcija, lancem blokova, proof-of-workom i mrežnim konsenzusom. Umjesto da jedna centralna institucija vodi bazu potrošenih novčića, čitava mreža zajednički održava istoriju transakcija.

Zato ovaj dokument nije Bitcoin prije Bitcoina.

Ali jeste veoma važan dio priče koja mu je prethodila.

On pokazuje da su problemi bili poznati.

Matematički alati su postojali.

Kriptografi su već razumjeli privatnost.

Već su znali šta je double-spending.

Već su razvijali slijepi potpis.

Već su koristili zero-knowledge dokaze.

Već su razmišljali o elektronskim novčanicima, djeljivim novčićima i anonimnim plaćanjima.

Ono što još nije bilo riješeno jeste kako sve to napraviti bez centralnog izdavaoca i bez centralne baze povjerenja.

Druga izuzetno važna dimenzija dokumenta jeste odnos između anonimnosti i državnog nadzora. Autori otvoreno upozoravaju da anonimna elektronska gotovina može otežati otkrivanje pranja novca, poreske evazije, falsifikovanja i drugih kriminalnih aktivnosti. Zato razmatraju sisteme u kojima se anonimnost može ponovo ukloniti pod određenim uslovima, na primjer uz sudski nalog.

Tu ponovo vidimo raspravu koja je i danas živa: koliko finansijske privatnosti treba imati pojedinac i gdje počinje legitimni interes države?

Dokument je posebno vrijedan zato što ne posmatra anonimnost samo kao tehnološku prednost. On veoma jasno pokazuje i njene rizike. Što je sistem anonimniji, to je teže povezati novac sa njegovim porijeklom. To štiti privatnost poštenih korisnika, ali istovremeno otežava otkrivanje falsifikovanog novca i drugih zloupotreba.

Jedan od najzanimljivijih zaključaka izvještaja jeste upravo ta napetost između privatnosti i anonimnosti.

Privatnost znači da neovlaštene strane ne mogu čitati vaše podatke.

Anonimnost znači da se transakcija ne može povezati sa vašim identitetom.

To nije isto.

Autori čak razmatraju mogućnost da će se na kraju pokazati da je praktičniji elektronski platni sistem koji korisniku daje snažnu privatnost, ali ne i potpunu anonimnost.

To je izuzetno važna razlika i danas.

Zato ovaj dokument treba čitati kao istorijski i tehnički most između dvije ere.

Sa jedne strane nalazi se klasični bankarski sistem sa centralnim institucijama.

Sa druge strane nalazi se kasniji pokušaj stvaranja decentralizovanog digitalnog novca.

Između njih stoji čitava generacija kriptografa koja je pokušavala da digitalnoj gotovini prenese osobine fizičkog novca.

Bez razumijevanja tih pokušaja teško je potpuno razumjeti šta je Bitcoin zaista donio novo.

Zato prevod koji slijedi nije samo prevod jednog starog tehničkog izvještaja.

On je dokument jednog perioda u kojem su se već postavljala pitanja koja danas određuju budućnost novca:

Može li digitalni novac biti anoniman?

Može li ostati siguran bez stalnog nadzora Banke?

Kako spriječiti double-spending?

Kako dokazati vlasništvo bez otkrivanja identiteta?

Kako zaštititi privatnost, a ipak otkriti prevaru?

I ko na kraju treba da kontroliše digitalni novac – institucija, korisnik ili sama mreža?

Više od trideset godina kasnije, ta pitanja nisu nestala.

Samo su postala važnija.

U nastavku donosimo kompletan prevod izvještaja „KAKO STVORITI ELEKTRONSKI NOVAC: KRIPTOGRAFIJA ANONIMNE ELEKTRONSKE GOTOVINE“, koji su Laurie Law, Susan Sabett i Jerry Solinas iz NSA Cryptology Division napisali 18. juna 1996. godine.

KAKO STVORITI ELEKTRONSKI NOVAC: KRIPTOGRAFIJA ANONIMNE ELEKTRONSKE GOTOVINE

KAKO STVORITI ELEKTRONSKI NOVAC

Napomena: Fried, Frank je dobio dozvolu NSA da ovaj izvještaj učini javno dostupnim. Ponudili su da zainteresovanima dostave kopije putem kontakta <21stCen@ffhsj.com> ili na broj telefona (202) 639-7200.

Primljeno 31. oktobra 1996.

Uz pozdrave Thomasa P. Vartaniana

Fried, Frank, Harris, Shriver & Jacobson
1001 Pennsylvania Avenue, N.W.
Washington, D.C. 20004-2505
Telefon: (202) 639-7200

KAKO STVORITI ELEKTRONSKI NOVAC: KRIPTOGRAFIJA ANONIMNE ELEKTRONSKE GOTOVINE

Laurie Law, Susan Sabett, Jerry Solinas

National Security Agency – Office of Information Security Research and Technology
Cryptology Division

18. juni 1996.

SADRŽAJ

UVOD

1. ŠTA JE ELEKTRONSKA GOTOVINA?

1.1 Elektronsko plaćanje
1.2 Sigurnost elektronskih plaćanja
1.3 Elektronska gotovina
1.4 Višestruko trošenje

2. KRIPTOGRAFSKI OPIS

2.1 Kriptografski alati sa javnim ključem
2.2 Pojednostavljeni protokol elektronske gotovine
2.3 Elektronska plaćanja kojima se ne može ući u trag
2.4 Osnovni protokol elektronske gotovine

3. PREDLOŽENE OFF-LINE IMPLEMENTACIJE

3.1 Uključivanje identifikacionih informacija
3.2 Tehnike autentifikacije i potpisa
3.3 Pregled predloženih implementacija

4. OPCIONE FUNKCIJE OFF-LINE GOTOVINE

4.1 Prenosivost
4.2 Djeljivost

5. SIGURNOSNA PITANJA

5.1 Sprečavanje višestrukog trošenja
5.2 Posmatrači novčanika
5.3 Sigurnosni propusti
5.4 Ponovno uspostavljanje sljedivosti

ZAKLJUČAK

REFERENCE

UVOD

Sa početkom informacionog doba, naša država postaje sve zavisnija od mrežnih komunikacija. Računarska tehnologija značajno utiče na našu sposobnost pristupa informacijama, njihovog čuvanja i distribucije. Jedna od najvažnijih primjena te tehnologije jeste elektronska trgovina: obavljanje finansijskih transakcija putem elektronskih informacija koje se razmjenjuju preko telekomunikacionih veza. Ključni uslov za razvoj elektronske trgovine jeste stvaranje sigurnih i efikasnih sistema elektronskog plaćanja. Potreba za sigurnošću posebno dolazi do izražaja sa razvojem Interneta, koji obećava da će postati jedan od vodećih medija buduće elektronske trgovine.

Sistemi elektronskog plaćanja pojavljuju se u mnogim oblicima, uključujući digitalne čekove, debitne kartice, kreditne kartice i kartice sa pohranjenom vrijednošću. Uobičajene sigurnosne osobine takvih sistema jesu privatnost, odnosno zaštita od prisluškivanja; autentičnost, odnosno mogućnost identifikacije korisnika i zaštita integriteta poruke; te nemogućnost poricanja, odnosno sprečavanje naknadnog negiranja izvršene transakcije.

Vrsta elektronskog platnog sistema na koju je ovaj rad usmjeren jeste elektronska gotovina. Kao što naziv sugeriše, elektronska gotovina predstavlja pokušaj stvaranja elektronskog sistema plaćanja oblikovanog po uzoru na papirni novac. Papirna gotovina ima osobine kao što su prenosivost, jer se lako nosi; prepoznatljivost, jer se prihvata kao zakonsko sredstvo plaćanja; mogućnost prenosa bez posredovanja finansijske mreže; nemogućnost praćenja, jer nema zapisa o tome gdje je novac potrošen; anonimnost, jer nema zapisa o tome ko ga je potrošio; te mogućnost vraćanja „kusura“. Dizajneri elektronske gotovine posebno su se usredsredili na očuvanje osobina nemogućnosti praćenja i anonimnosti. Zato ćemo elektronsku gotovinu definisati kao elektronski sistem plaćanja koji, uz prethodno navedene sigurnosne osobine, korisniku pruža anonimnost i onemogućava praćenje plaćanja.

Uopšteno, sistemi elektronske gotovine ostvaruju ove sigurnosne ciljeve pomoću digitalnih potpisa. Oni se mogu posmatrati kao digitalni ekvivalent vlastoručnog potpisa. Digitalni potpisi zasnivaju se na kriptografiji sa javnim ključem. U takvom sistemu svaki korisnik ima tajni ključ i javni ključ. Tajni ključ koristi se za stvaranje digitalnog potpisa, dok je javni ključ potreban za njegovu provjeru. Da bi se moglo utvrditi ko je potpisao određenu informaciju, odnosno poruku, potrebno je sa sigurnošću znati kome pripada određeni javni ključ. To je problem upravljanja ključevima, a njegovo rješenje zahtijeva određenu autentifikacionu infrastrukturu. Pored toga, sistem mora imati odgovarajuću mrežnu i fizičku sigurnost kako bi se zaštitila tajnost privatnih ključeva.

Ovaj izvještaj pregledao je akademsku literaturu o kriptografskim tehnikama za implementaciju sigurnih sistema elektronske gotovine. Pronađeno je nekoliko inovativnih platnih sistema koji omogućavaju anonimnost korisnika i nemogućnost praćenja plaćanja. Iako nijedan konkretan platni sistem nije detaljno analiziran, sama kriptografija djeluje pouzdano i čini se da pruža obećani nivo anonimnosti.

Međutim, ovi sistemi su mnogo manje zadovoljavajući sa stanovišta organa za sprovođenje zakona. Posebno su rizici pranja novca i falsifikovanja potencijalno mnogo ozbiljniji nego kod papirne gotovine. Ovi problemi postoje kod svakog elektronskog platnog sistema, ali ih prisustvo anonimnosti znatno pogoršava. Zaista, široka upotreba elektronske gotovine mogla bi povećati ranjivost nacionalnog finansijskog sistema na napade u okviru informacionog ratovanja. U izvještaju razmatramo mjere kojima bi se ti rizici mogli kontrolisati; međutim, takvi koraci imali bi za posljedicu ograničavanje anonimnosti korisnika.

Izvještaj je organizovan na sljedeći način. Poglavlje 1 definiše osnovne pojmove vezane za elektronske sisteme plaćanja i elektronsku gotovinu. Poglavlje 2 daje čitaocu kriptografski opis protokola elektronske gotovine na višem nivou, koristeći osnovne mehanizme autentifikacije. Poglavlje 3 tehnički opisuje konkretne implementacije predložene u akademskoj literaturi. U Poglavlju 4 predstavljene su opcione osobine prenosivosti i djeljivosti off-line elektronske gotovine. Konačno, Poglavlje 5 razmatra sigurnosna pitanja povezana sa elektronskom gotovinom.

Autori ovog rada žele zahvaliti sljedećim osobama na doprinosu ovom istraživanju kroz brojne razgovore i pregled rada: Kevinu Igoeu, Johnu Petrou, Steveu Nealu i Melu Currieju.

1. ŠTA JE ELEKTRONSKA GOTOVINA?

Počećemo pažljivim definisanjem pojma „elektronska gotovina“. Ovaj termin često se koristi za gotovo svaki elektronski platni sistem koji korisniku površno liči na gotovinu. Međutim, elektronska gotovina zapravo predstavlja posebnu vrstu elektronskog platnog sistema definisanu određenim kriptografskim svojstvima. Upravo na tim svojstvima ćemo se sada usredsrediti.

1.1 ELEKTRONSKO PLAĆANJE

Termin elektronska trgovina odnosi se na svaku finansijsku transakciju koja uključuje elektronski prenos informacija. Paketi informacija koji se prenose obično se nazivaju elektronskim tokenima. Ne treba miješati token, koji predstavlja niz bitova, sa fizičkim medijem koji služi za čuvanje i prenos informacija.

Medij za čuvanje podataka nazivaćemo karticom, jer često ima oblik plastične ili kartonske kartice veličine novčanika. Očigledni primjeri su kreditne kartice i kartice za bankomate. Međutim, „kartica“ može biti i računarska memorija.

Posebna vrsta elektronske trgovine jeste elektronsko plaćanje. Protokol elektronskog plaćanja predstavlja niz transakcija na čijem kraju je izvršeno plaćanje pomoću tokena koji je izdala treća strana. Najčešći primjer je korištenje kreditnih kartica kada se primjenjuje elektronsko odobravanje transakcije. Naša definicija podrazumijeva da ni platiša ni primalac plaćanja ne izdaju token.

Scenario elektronskog plaćanja podrazumijeva tri vrste učesnika:

  • platišu ili potrošača, kojeg ćemo nazvati Alice;
  • primaoca plaćanja, na primjer trgovca, kojeg ćemo nazvati Bob;
  • finansijsku mrežu kod koje i Alice i Bob imaju račune, koju ćemo neformalno nazivati Bankom.

Napomena 1: U ovom smislu elektronsko plaćanje razlikuje se od sistema poput prepaid telefonskih kartica i kartica za javni prevoz, gdje token izdaje sam primalac plaćanja.

Napomena 2: U odjeljku 4.1 ovaj scenario biće proširen kada budemo govorili o prenosima.

1.2 SIGURNOST ELEKTRONSKIH PLAĆANJA

Sa razvojem telekomunikacija i Interneta, elektronska trgovina sve češće se odvija preko prenosnog medija koji nije pod kontrolom finansijskog sistema. Zbog toga je neophodno preduzeti mjere kako bi se osigurala bezbjednost poruka koje se šalju preko takvog medija.

Potrebne sigurnosne osobine su:

Privatnost, odnosno zaštita od prisluškivanja. Ovo je očigledno važno kod transakcija koje uključuju, na primjer, slanje brojeva kreditnih kartica preko Interneta.

Identifikacija korisnika, odnosno zaštita od lažnog predstavljanja. Jasno je da svaki sistem elektronske trgovine mora zahtijevati da korisnik zna sa kim posluje, makar druga strana bila poznata samo pod pseudonimom ili brojem kreditne kartice.

Integritet poruke, odnosno zaštita od izmjene ili zamjene. Mora se znati da je kopija poruke koju je primalac dobio identična onoj koja je poslata.

Nemogućnost poricanja, odnosno zaštita od kasnijeg negiranja transakcije. Ovo je očigledno neophodno u elektronskoj trgovini, na primjer kod digitalnih potvrda i plaćanja.

Posljednje tri osobine zajedno nazivaju se autentičnošću.

Ove sigurnosne funkcije mogu se postići na više načina. Tehnika koja sve više ulazi u široku upotrebu jeste primjena autentifikacione infrastrukture. U takvom sistemu privatnost se postiže šifrovanjem svake poruke pomoću privatnog ključa poznatog samo pošiljaocu i primaocu. Funkcije autentičnosti ostvaruju se upravljanjem ključevima, odnosno sistemom generisanja, distribucije i čuvanja korisničkih ključeva.

Upravljanje ključevima vrši se uz pomoć sertifikacionog autoriteta, odnosno pouzdane institucije odgovorne za potvrđivanje identiteta korisnika. To se radi za svakog korisnika, uključujući banke, kojem se izdaje digitalni sertifikat identiteta. Sertifikat se može koristiti svaki put kada korisnik želi da potvrdi svoj identitet drugom korisniku. Pored toga, sertifikati omogućavaju da se između korisnika na siguran i autentifikovan način uspostavi privatni ključ. Taj privatni ključ zatim se koristi za šifrovanje narednih poruka. Ova tehnika može se implementirati tako da obezbijedi bilo koju ili sve prethodno navedene sigurnosne osobine.

Iako autentifikaciona infrastruktura može biti odvojena od samog sistema elektronske trgovine, njena sigurnost predstavlja suštinsku komponentu sigurnosti sistema elektronske trgovine. Bez pouzdanog sertifikacionog autoriteta i sigurne infrastrukture, prethodno navedene četiri sigurnosne osobine ne mogu se ostvariti, pa elektronska trgovina preko nepouzdanog prenosnog medija postaje nemoguća.

U nastavku rada pretpostavljaćemo da takva autentifikaciona infrastruktura postoji i da obezbjeđuje navedene četiri sigurnosne osobine.

1.3 ELEKTRONSKA GOTOVINA

Privatnost smo definisali kao zaštitu od prisluškivanja komunikacija. Međutim, neki zagovornici privatnosti, poput Davida Chauma, pojam privatnosti definišu mnogo šire. Prema njihovom shvatanju, prava „privatnost“ podrazumijeva da istorija nečijih kupovina nije dostupna bankama i kompanijama koje izdaju kreditne kartice, a samim tim ni državi.

Da bi se to ostvarilo, nije dovoljna samo privatnost nego i anonimnost. Konkretno, potrebne su:

  • anonimnost platiše tokom plaćanja;
  • nemogućnost praćenja plaćanja, tako da Banka ne može utvrditi čiji je novac korišten u određenoj transakciji.

Takve osobine ne postoje kod kreditnih kartica. Zapravo, jedini konvencionalni platni sistem koji ih omogućava jeste gotovina. Zbog toga su Chaum i drugi istraživači uveli koncept elektronske ili digitalne gotovine, elektronskog platnog sistema koji nudi obje navedene osobine.

Redoslijed događaja u elektronskom gotovinskom plaćanju izgleda ovako:

Podizanje novca: Alice prenosi dio svog novca sa bankovnog računa na svoju karticu.

Plaćanje: Alice prenosi novac sa svoje kartice Bobu.

Polaganje novca: Bob prebacuje primljeni novac na svoj bankovni račun.

Ovi postupci mogu se implementirati na dva načina:

On-line plaćanje znači da Bob kontaktira Banku i provjerava validnost Aliceinog tokena prije nego što prihvati uplatu i isporuči robu. Ovo podsjeća na današnje transakcije kreditnim karticama.

Off-line plaćanje znači da Bob šalje Alicein elektronski novčić Banci na provjeru i polaganje tek nakon što je transakcija plaćanja završena. Ova metoda podsjeća na način na koji se male kupovine mogu obaviti ličnim čekom.

Kod on-line sistema plaćanje i polaganje nisu odvojeni koraci. U nastavku ćemo govoriti o on-line i off-line gotovinskim sistemima, izostavljajući riječ „elektronski“ kada nema mogućnosti zabune sa papirnom gotovinom.

1.4 FALSIFIKOVANJE I VIŠESTRUKO TROŠENJE

Kao i kod svakog platnog sistema, postoji mogućnost kriminalne zloupotrebe, bilo sa ciljem prevare finansijskog sistema bilo radi omogućavanja drugih krivičnih djela. Neke od ovih problema razmatraćemo u Poglavlju 5. Međutim, problem falsifikovanja mora biti razmotren već sada, jer platni protokoli sadrže ugrađene zaštite protiv njega.

Postoje dvije zloupotrebe sistema elektronske gotovine koje su analogne falsifikovanju fizičkog novca:

Falsifikovanje tokena, odnosno stvaranje novčića koji izgleda valjano bez odgovarajućeg podizanja novca iz Banke.

Višestruko trošenje, odnosno ponovno korištenje istog tokena. Pošto se elektronski novčić sastoji od digitalnih informacija, nakon što je potrošen on i dalje izgleda jednako validno kao i prije trošenja. Višestruko trošenje takođe se često naziva ponovnim trošenjem, double-spendingom ili repeat spendingom.

Sa falsifikovanjem se može boriti pokušajem da se ono unaprijed spriječi ili da se otkrije naknadno uz identifikaciju počinioca. Ako su ostali uslovi jednaki, sprečavanje je očigledno poželjnije.

Iako je primamljivo zamišljati sisteme elektronske gotovine u kojima su prenosni i memorijski mediji fizički sigurni, sigurno će postojati primjene gdje to neće biti slučaj. Očigledan primjer je Internet, čiji su korisnici poznato ranjivi na viruse i prisluškivanje. Zato su potrebne tehnike zaštite od falsifikovanja koje ne zavise samo od fizičke sigurnosti.

Za zaštitu od falsifikovanja tokena oslanjamo se na uobičajene funkcije autentičnosti: identifikaciju korisnika i integritet poruke. Važno je napomenuti da „korisnik“ kojeg identifikujemo pomoću novčića nije anonimni trošilac nego Banka koja je novčić izdala.

Za zaštitu od višestrukog trošenja Banka održava bazu već potrošenih elektronskih novčića. Novčići koji se već nalaze u bazi moraju biti odbijeni prilikom polaganja. Kod on-line plaćanja to će spriječiti višestruko trošenje. Kod off-line sistema najbolje što možemo uraditi jeste naknadno otkriti da je višestruko trošenje izvršeno. Da bi se primalac zaštitio, potrebno je tada identifikovati platišu. Zbog toga se u slučaju višestrukog trošenja mehanizam anonimnosti mora moći ukinuti.

Funkcije autentičnosti, anonimnosti i otkrivanja višestrukog trošioca najpogodnije se postižu pomoću kriptografije sa javnim ključem. U naredna dva poglavlja objasnićemo kako se to radi.

2. KRIPTOGRAFSKI OPIS

U ovom poglavlju dajemo opis protokola elektronske gotovine na višem nivou koristeći osnovne autentifikacione mehanizme. Najprije ćemo opisati te mehanizme, koji se zasnivaju na kriptografiji sa javnim ključem. Zatim ćemo protokol postepeno graditi radi lakšeg objašnjenja. Počećemo sa pojednostavljenim sistemom koji ne pruža anonimnost. Zatim ćemo dodati mogućnost da se plaćanje ne može pratiti, a na kraju i anonimnost platiše. Rezultat će biti kompletan protokol elektronske gotovine.

2.1 KRIPTOGRAFSKI ALATI SA JAVNIM KLJUČEM

Počećemo razmatranjem osnovnih tehnika kriptografije sa javnim ključem na kojima su zasnovane implementacije elektronske gotovine.

Jednosmjerne funkcije

Jednosmjerna funkcija predstavlja odnos između dva skupa koji se može efikasno izračunati u jednom smjeru, ali ne i u obrnutom.

Drugim riječima, funkcija φ je jednosmjerna ako je, za dato s iz domena funkcije φ, lako izračunati:

t = φ(s)

ali je, kada znamo samo t, teško pronaći s.

Elementi su obično brojevi, ali mogu biti, na primjer, i tačke na eliptičkoj krivoj.

Parovi ključeva

Ako je φ jednosmjerna funkcija, par ključeva predstavlja dva elementa s i t koja su na neki način povezana preko φ.

s nazivamo tajnim ključem, a t javnim ključem.

Kao što nazivi sugerišu, svaki korisnik svoj tajni ključ čuva za sebe, dok javni ključ čini dostupnim svima.

Tajni ključ ostaje tajan čak i kada je javni ključ poznat, jer jednosmjerna osobina funkcije φ osigurava da se s ne može praktično izračunati iz t.

Svi protokoli sa javnim ključem koriste parove ključeva. Zbog toga se kriptografija sa javnim ključem često naziva asimetričnom kriptografijom.

Konvencionalna kriptografija često se naziva simetričnom kriptografijom, jer se istim privatnim ključem može i šifrovati i dešifrovati, dok se bez tog ključa ne može uraditi ni jedno ni drugo.

Potpis i identifikacija

U sistemu sa javnim ključem korisnik potvrđuje svoj identitet tako što dokazuje da zna svoj tajni ključ, a da ga pri tome ne otkriva.

To se postiže izvođenjem određene operacije pomoću tajnog ključa, koju svako može provjeriti ili poništiti pomoću javnog ključa.

Ovo se naziva identifikacijom.

Ako se uz tajni ključ koristi i određena poruka, tada korisnik izvršava digitalni potpis nad porukom.

Digitalni potpis ima istu osnovnu ulogu kao i vlastoručni potpis: identifikuje autora poruke na način koji se ne može naknadno poreći i potvrđuje integritet poruke.

Sigurno hashiranje

Hash funkcija preslikava sve moguće nizove bitova proizvoljne dužine u niz bitova fiksne dužine.

Od takvih funkcija često se zahtijeva da budu otporne na kolizije, odnosno da bude računarski teško pronaći dva različita ulaza koja daju istu hash vrijednost.

Ako je hash funkcija istovremeno jednosmjerna i otporna na kolizije, naziva se sigurnom hash funkcijom.

Najčešća upotreba sigurnih hash funkcija jeste kod digitalnih potpisa.

Poruke mogu imati proizvoljnu veličinu, dok određeni algoritam sa javnim ključem zahtijeva rad sa skupom fiksne veličine. Zbog toga se poruka prvo hashira, a zatim se potpisuje sigurni hash umjesto same poruke.

Hash mora biti jednosmjeran kako bi se spriječilo falsifikovanje potpisa, odnosno stvaranje valjanog potpisa bez korištenja tajnog ključa.

Hash takođe mora biti otporan na kolizije kako bi se spriječilo poricanje potpisa, odnosno tvrdnja da je potpisana neka druga poruka sa istim hashom.

Važno je napomenuti da falsifikovanje tokena nije isto što i falsifikovanje potpisa. Falsifikovanje digitalnog potpisa Banke bez poznavanja njenog tajnog ključa jedan je način falsifikovanja tokena, ali nije jedini. Bankarski službenik ili haker mogao bi, na primjer, privremeno doći do tajnog ključa Banke i njime legitimno potpisivati lažne tokene. Ovaj scenario kompromitovanja ključa razmatra se u odjeljku 5.3.

2.2 POJEDNOSTAVLJENI PROTOKOL ELEKTRONSKE GOTOVINE

Sada predstavljamo pojednostavljeni sistem elektronske gotovine, bez anonimnosti.

PROTOKOL 1: On-line elektronsko plaćanje

Podizanje:

Alice šalje Banci zahtjev za podizanje novca.

Banka priprema elektronski novčić i digitalno ga potpisuje.

Banka šalje novčić Alice i zadužuje njen račun.

Plaćanje/Polaganje:

Alice daje novčić Bobu.

Bob kontaktira Banku i šalje novčić.

Banka provjerava svoj digitalni potpis.

Banka provjerava da novčić nije već potrošen.

Banka može konsultovati evidenciju podizanja novca kako bi potvrdila Aliceino ranije podizanje.

Banka upisuje novčić u bazu potrošenih novčića.

Banka odobrava Bobov račun i obavještava Boba.

Bob daje Alice robu.

Termin „Banka“ treba shvatiti kao finansijski sistem koji izdaje i obračunava novčiće. To može biti kompanija za kreditne kartice ili čitav bankarski sistem. Ako Alice i Bob imaju račune u različitim bankama, procedura polaganja nešto je složenija: Bobova banka kontaktira Aliceinu banku, naplaćuje novčić i pripisuje novac Bobovom računu.

PROTOKOL 2: Off-line elektronsko plaćanje

Podizanje:

Alice šalje Banci zahtjev za podizanje novca.

Banka priprema elektronski novčić i digitalno ga potpisuje.

Banka šalje novčić Alice i zadužuje njen račun.

Plaćanje:

Alice daje novčić Bobu.

Bob po želji provjerava digitalni potpis Banke.

Bob daje Alice robu.

Polaganje:

Bob šalje novčić Banci.

Banka provjerava svoj digitalni potpis.

Banka provjerava da novčić nije već potrošen.

Banka po želji konsultuje evidenciju podizanja kako bi potvrdila Aliceino podizanje.

Banka upisuje novčić u bazu potrošenih novčića.

Banka odobrava Bobov račun.

Prethodni protokoli koriste digitalne potpise radi ostvarivanja autentičnosti. Autentičnost se mogla postići i drugim metodama, ali digitalni potpisi su nam potrebni kako bismo omogućili mehanizme anonimnosti koje ćemo sada dodati.

2.3 ELEKTRONSKA PLAĆANJA KOJIMA SE NE MOŽE UĆI U TRAG

Sada ćemo prethodne protokole izmijeniti tako da omogućavaju nemogućnost praćenja plaćanja.

Za to je potrebno da Banka ne može povezati određeno podizanje sa određenim polaganjem.

To se postiže posebnom vrstom digitalnog potpisa koji se naziva slijepi potpis – blind signature.

Primjere slijepih potpisa daćemo kasnije, ali za sada ćemo opisati samo osnovni princip.

Tokom podizanja korisnik mijenja poruku koju Banka treba potpisati pomoću slučajne vrijednosti. Ovaj korak naziva se zasljepljivanje novčića, a slučajna vrijednost naziva se faktor zasljepljivanja.

Banka potpisuje tekst koji izgleda nasumično, a korisnik zatim uklanja faktor zasljepljivanja.

Korisnik sada posjeduje validan elektronski novčić potpisan od strane Banke.

Banka će taj novčić ponovo vidjeti kada bude poslat na polaganje, ali neće znati ko ga je prvobitno podigao, jer faktori zasljepljivanja nisu poznati Banci.

Očigledno, više nije moguće provjeravati evidenciju podizanja kao u prva dva protokola.

Treba primijetiti da Banka tokom podizanja ne zna šta zapravo potpisuje. To otvara mogućnost da potpisuje nešto drugačije od onoga što namjerava.

Da bi se to spriječilo, može se odrediti da digitalni potpis Banke određenim tajnim ključem važi samo kao odobrenje za podizanje fiksnog iznosa.

Na primjer, Banka može imati jedan ključ za 10 dolara, drugi za 50 dolara i tako dalje.

PROTOKOL 3: On-line elektronsko plaćanje bez mogućnosti praćenja

Podizanje:

Alice kreira elektronski novčić i zasljepljuje ga.

Alice šalje zaslijepljeni novčić Banci zajedno sa zahtjevom za podizanje.

Banka digitalno potpisuje zaslijepljeni novčić.

Banka šalje potpisani zaslijepljeni novčić Alice i zadužuje njen račun.

Alice uklanja zasljepljivanje sa potpisanog novčića.

Plaćanje/Polaganje:

Alice daje novčić Bobu.

Bob kontaktira Banku i šalje novčić.

Banka provjerava svoj digitalni potpis.

Banka provjerava da novčić nije već potrošen.

Banka upisuje novčić u bazu potrošenih novčića.

Banka odobrava Bobov račun i obavještava ga.

Bob daje Alice robu.

PROTOKOL 4: Off-line elektronsko plaćanje bez mogućnosti praćenja

Podizanje:

Alice kreira elektronski novčić i zasljepljuje ga.

Alice šalje zaslijepljeni novčić Banci zajedno sa zahtjevom za podizanje.

Banka digitalno potpisuje zaslijepljeni novčić.

Banka šalje potpisani zaslijepljeni novčić Alice i zadužuje njen račun.

Alice uklanja zasljepljivanje.

Plaćanje:

Alice daje novčić Bobu.

Bob po želji provjerava digitalni potpis Banke.

Bob daje Alice robu.

Polaganje:

Bob šalje novčić Banci.

Banka provjerava svoj digitalni potpis.

Banka provjerava da novčić nije već potrošen.

Banka upisuje novčić u bazu potrošenih novčića.

Banka odobrava Bobov račun.

2.4 OSNOVNI PROTOKOL ELEKTRONSKE GOTOVINE

Sada pravimo posljednji korak i mijenjamo protokole tako da omogućavaju anonimnost platiše.

Idealna situacija, sa stanovišta zagovornika privatnosti, bila bi da ni platiša ni primalac ne znaju identitet druge strane.

To bi udaljene transakcije elektronskom gotovinom učinilo potpuno anonimnim: niko ne bi znao gdje Alice troši novac niti ko njoj plaća.

Međutim, takav sistem zahtijeva previše. U takvom scenariju potrošač ne može dobiti potpisanu potvrdu o kupovini.

Zbog toga smo prisiljeni zadovoljiti se anonimnošću platiše.

Kod on-line plaćanja može se koristiti Protokol 3, implementiran tako da omogućava anonimnost platiše.

Kod off-line sistema nastaje novi problem.

Ako trgovac pokuša položiti novčić koji je već ranije potrošen, Banka će ga odbiti. Međutim, ni Banka ni trgovac neće znati ko je izvršio višestruko trošenje, jer je platiša bio anoniman.

Zato Banka mora imati mogućnost da identifikuje višestrukog trošioca.

Istovremeno, anonimnost korisnika koji poštuju pravila mora ostati sačuvana.

Rješenje je da platiša, osim elektronskog novčića, posjeduje i određene identifikacione informacije koje dijeli sa primaocem.

Te informacije podijeljene su tako da jedan dio sam po sebi ne otkriva ništa o Aliceinom identitetu, ali su bilo koja dva odgovarajuća dijela dovoljna da je potpuno identifikuju.

Informacije se stvaraju tokom podizanja novca.

Protokol podizanja uključuje korak u kojem Banka provjerava da informacije postoje i da odgovaraju Alice i konkretnom novčiću koji se stvara.

Kako bi se sačuvala anonimnost platiše, Banka ne vidi same informacije, već samo provjerava da postoje.

Alice te podatke nosi zajedno sa novčićem sve dok ga ne potroši.

Tokom plaćanja Alice mora Bobu otkriti jedan dio tih podataka.

To znači i da samo Alice može potrošiti novčić, jer samo ona poznaje potrebne informacije.

Otkrivanje se obavlja putem challenge-response protokola – protokola izazova i odgovora.

Bob Alice šalje slučajnu vrijednost – „izazov“.

Alice kao odgovor vraća određeni dio identifikacionih informacija.

Izazov određuje koji će dio otkriti.

Kod polaganja, otkriveni dio šalje se Banci zajedno sa novčićem.

Ako sve funkcioniše pravilno, identifikacione informacije nikada neće otkriti Alice.

Međutim, ako isti novčić potroši dva puta, Banka će na kraju dobiti dvije kopije istog novčića, svaku sa različitim dijelom identifikacionih informacija.

Zbog slučajnosti challenge-response protokola ta dva dijela biće različita.

Banka će ih tada moći spojiti i identifikovati Alice kao višestrukog trošioca.

Pošto samo Alice može pružiti potrebne identifikacione informacije, znamo da njen novčić nije jednostavno kopirala i ponovo potrošila neka druga osoba.

PROTOKOL 5: Off-line gotovina

Podizanje:

Alice kreira elektronski novčić koji uključuje identifikacione informacije.

Alice zasljepljuje novčić.

Alice šalje zaslijepljeni novčić Banci zajedno sa zahtjevom za podizanje.

Banka provjerava da su identifikacione informacije prisutne.

Banka digitalno potpisuje zaslijepljeni novčić.

Banka šalje potpisani zaslijepljeni novčić Alice i zadužuje njen račun.

Alice uklanja zasljepljivanje.

Plaćanje:

Alice daje Bobu novčić.

Bob provjerava digitalni potpis Banke.

Bob šalje Alice izazov.

Alice šalje Bobu odgovor, otkrivajući jedan dio identifikacionih informacija.

Bob provjerava odgovor.

Bob daje Alice robu.

Polaganje:

Bob šalje Banci novčić, izazov i odgovor.

Banka provjerava svoj digitalni potpis.

Banka provjerava da novčić nije već potrošen.

Banka upisuje novčić, izazov i odgovor u bazu potrošenih novčića.

Banka odobrava Bobov račun.

U ovom protokolu Bob mora provjeriti potpis Banke prije nego što preda robu Alice.

Na taj način Bob može biti siguran da će ili dobiti svoj novac, ili će – ako je novčić već ranije potrošen – saznati Alicein identitet kao višestrukog trošioca.

3. PREDLOŽENE OFF-LINE IMPLEMENTACIJE

Nakon opšteg opisa elektronske gotovine, sada želimo opisati konkretne implementacije predložene u stručnoj literaturi.

Takve implementacije odnose se na off-line slučaj, dok su on-line protokoli samo njihove pojednostavljene verzije.

Prvi korak je detaljnije razmotriti različite implementacije kriptografskih alata sa javnim ključem koje smo ranije opisali.

3.1 UKLJUČIVANJE IDENTIFIKACIONIH INFORMACIJA

Najprije moramo preciznije objasniti kako se identifikacione informacije namijenjene otkrivanju višestrukih trošilaca uključuju u elektronski novac i kako im se pristupa kada je to potrebno.

Postoje dva načina:

  • cut-and-choose metoda
  • zero-knowledge dokazi

Cut and Choose

Kada Alice želi podići novac, prvo konstruiše i zasljepljuje poruku koja se sastoji od K parova brojeva.

K se bira dovoljno velikim da se događaj vjerovatnoće:

2^-K

u praksi smatra nemogućim.

Brojevi imaju osobinu da se Alice može identifikovati ako se raspolaže sa oba elementa jednog para, dok pojedinačni nepovezani elementi nisu korisni za identifikaciju.

Alice zatim dobija potpis Banke nad zaslijepljenom porukom.

Proces je konstruisan tako da Banka može provjeriti da su svi K parovi prisutni i da imaju potrebna svojstva uprkos zasljepljivanju.

Kada Alice troši novčić kod Boba, njegov izazov predstavlja niz od K slučajnih bitova.

Za svaki bit Alice šalje odgovarajući dio odgovarajućeg para.

Na primjer, ako niz počinje:

0110…

Alice šalje:

drugi dio prvog para,

prvi dio drugog para,

prvi dio trećeg para,

drugi dio četvrtog para,

i tako dalje.

Kada Bob položi novčić u Banku, prosljeđuje tih K dijelova.

Ako Alice ponovo potroši isti novčić, dobiće novi izazov.

Pošto je svaki izazov slučajni niz bitova, novi izazov gotovo sigurno će se razlikovati od prethodnog barem u jednom bitu.

Zato će Alice morati otkriti drugi dio odgovarajućeg para.

Kada Banka drugi put primi isti novčić, može kombinovati oba dijela tog para i otkriti Alicein identitet.

Iako je konceptualno jednostavan, ovaj sistem nije naročito efikasan jer svaki novčić mora nositi 2K velikih brojeva.

Zero-Knowledge dokazi

Termin zero-knowledge proof označava svaki protokol kriptografije sa javnim ključem kojim se dokazuje poznavanje neke vrijednosti bez njenog otkrivanja, niti značajnog olakšavanja njenog pronalaženja.

U ovom slučaju Alice kreira par ključeva tako da njen tajni ključ upućuje na njen identitet.

To se radi tako da Banka pomoću javnog ključa može provjeriti da tajni ključ zaista otkriva njen identitet, uprkos zasljepljivanju.

Tokom plaćanja Alice daje Bobu javni ključ kao dio elektronskog novčića.

Zatim pomoću zero-knowledge dokaza dokazuje Bobu da posjeduje odgovarajući tajni ključ.

Ako odgovori na dva različita izazova, identifikacione informacije iz tih odgovora mogu se spojiti i otkriti tajni ključ, a samim tim i njen identitet.

3.2 TEHNIKE AUTENTIFIKACIJE I POTPISA

Sljedeći korak je opis digitalnih potpisa korištenih u implementacijama prethodno navedenih protokola, kao i tehnika kojima se uključuju identifikacione informacije.

Postoje dvije vrste digitalnih potpisa i obje se pojavljuju u protokolima elektronske gotovine.

Pretpostavimo da potpisnik ima par ključeva i poruku M koju treba potpisati.

Digitalni potpis sa obnavljanjem poruke

Kod ove vrste potpisa imamo funkciju potpisivanja:

S_SK

koja koristi tajni ključ SK,

i funkciju provjere:

V_PK

koja koristi javni ključ PK.

Te funkcije su međusobno inverzne:

V_PK(S_SK(M)) = M

Funkcija V_PK jednostavna je za implementaciju, dok je S_SK laka samo ako se zna SK, a teško izvodiva u suprotnom.

Zbog toga kažemo da S_SK ima trapdoor, odnosno tajnu vrijednost koja omogućava izvođenje kriptografske operacije koja je inače praktično nemoguća.

Funkcija V_PK naziva se trapdoor one-way funkcijom, jer je jednosmjerna funkcija za svakoga ko ne zna „tajni prolaz“.

U ovom sistemu verifikator prima potpisanu poruku S_SK(M), ali ne i originalni tekst poruke.

Zatim primjenjuje funkciju V_PK.

Taj korak istovremeno potvrđuje identitet potpisnika i vraća originalnu poruku M.

Digitalni potpis sa dodatkom

Kod ove vrste potpisa potpisnik izvodi određenu operaciju nad porukom koristeći svoj tajni ključ.

Rezultat se smatra potpisom poruke i šalje se kao dodatak uz originalni tekst.

Verifikator provjerava jednačinu koja uključuje poruku, dodatak i javni ključ potpisnika.

Ako jednačina važi, verifikator zna da je pri stvaranju potpisa korišten tajni ključ potpisnika.

RSA potpisi

Najpoznatiji potpis sa obnavljanjem poruke jeste RSA potpis.

Neka je N veliki broj koji je teško faktorisati.

Tajni ključ za potpisivanje s i javni ključ za provjeru v jesu eksponenti sa osobinom:

M^(sv) = M mod N

za sve poruke M.

Ako znamo v, s se lako može pronaći ako poznajemo faktore N, ali je to teško u suprotnom.

Zato je funkcija „podigni na v-ti stepen modulo N“ trapdoor one-way funkcija.

Potpis poruke M je:

C := M^s mod N

Da bismo vratili poruku i provjerili potpis, računamo:

M := C^v mod N

Slijepi RSA potpisi

Prethodni sistem lako se može zaslijepiti.

Pretpostavimo da Alice želi da Banka izvrši slijepi potpis poruke M.

Alice generiše slučajni broj r i Banci šalje:

r^v × M mod N

Banka potpisuje ovu vrijednost i vraća:

r × M^s mod N

Alice zatim rezultat podijeli sa r.

Dobija:

M^s mod N

što predstavlja potpis Banke nad M, iako Banka nikada nije vidjela M.

Schnorrovi algoritmi

Schnorrova porodica algoritama uključuje postupak identifikacije i digitalni potpis sa dodatkom.

Ovi algoritmi zasnivaju se na zero-knowledge dokazu posjedovanja tajnog ključa.

Neka su p i q veliki prosti brojevi pri čemu q dijeli p−1.

Neka je g generator, odnosno cijeli broj između 1 i p takav da:

g^q = 1 mod p

Ako je s cijeli broj modulo q, modularno stepenovanje nad s jeste:

φ: s → g^s mod p

Obrnuta operacija naziva se funkcijom diskretnog logaritma.

Ako su p i q pravilno odabrani, modularno stepenovanje je jednosmjerna funkcija.

To znači da je praktično nemoguće izračunati diskretni logaritam.

Sada pretpostavimo da imamo pravu:

y = mx + b

nad poljem cijelih brojeva modulo q.

Prava se može opisati nagibom m i odsječkom b, ali ćemo je „sakriti“.

Definišimo:

c = g^b mod p

n = g^m mod p

c i n predstavljaju „sjenu“ prave pod funkcijom φ.

Poznavanje c i n ne otkriva nagib ni odsječak, ali omogućava provjeru da li data tačka (x,y) leži na pravoj.

Ako (x,y) zadovoljava:

y = mx + b

onda mora važiti:

g^y = n^x × c mod p

I obrnuto, svaka tačka koja zadovoljava ovu relaciju mora ležati na pravoj.

Ova relacija može se provjeriti javno, jer uključuje samo javne vrijednosti.

Zato svako može provjeriti da li tačka leži na pravoj, ali samo osoba koja zna tajne podatke može generisati valjane tačke.

Osnovni Schnorrov protokol

Osnovni Schnorrov protokol predstavlja zero-knowledge dokaz da korisnik posjeduje tajnu vrijednost m.

Neka je n odgovarajuća javna vrijednost.

Pretpostavimo da jedan korisnik, dokazivač, želi uvjeriti drugog korisnika, verifikatora, da zna m bez otkrivanja m.

On konstruiše pravu y = mx + b i šalje njenu sjenu verifikatoru.

Nagib m je tajna vrijednost, a odsječak b bira se nasumično za svako novo izvršavanje protokola.

Protokol zatim ide ovako:

  1. Alice šalje c, i po potrebi n, Bobu.
  2. Bob Alice šalje izazov x.
  3. Alice odgovara vrijednošću y tako da tačka (x,y) leži na pravoj.
  4. Bob provjerava odnos pomoću javne relacije.

Bob sada zna da razgovara sa nekim ko može generisati tačke na pravoj.

Zato ta osoba mora znati nagib prave, odnosno tajnu vrijednost m.

Važna osobina ovog protokola jeste da se ista prava smije koristiti samo jednom.

Ako verifikator zna dvije tačke na istoj pravoj:

(x₀,y₀)

i:

(x₁,y₁)

može izračunati nagib prave poznatom formulom „promjena po y kroz promjenu po x“.

Taj nagib upravo je tajna vrijednost m.

Ovo nazivamo principom dvije tačke na jednoj pravoj.

Ta osobina biće korisna za elektronsku gotovinu, jer želimo postupak trošenja koji ne otkriva ništa o tajnom ključu kada se novčić koristi jednom, ali otkriva ključ ako se isti novčić potroši dvaput.

Schnorrova identifikacija

Prethodni protokol može se koristiti za identifikaciju korisnika na mreži.

Svaki korisnik dobija par ključeva, a svaki javni ključ objavljuje se kao pripadajući određenom korisniku.

Da bi se identifikovao, korisnik mora samo dokazati da poznaje tajni ključ.

To se može postići prethodno opisanim zero-knowledge dokazom.

Schnorrov potpis

Schnorrov identifikacioni protokol lako se može pretvoriti u sistem digitalnog potpisa.

Umjesto da prima izazov od on-line verifikatora, potpisnik uzima x kao sigurni hash poruke i sjene prave.

Time dokazuje poznavanje tajnog ključa na način koji povezuje njegov par ključeva sa porukom.

Slijepi Schnorrov potpis

Pretpostavimo da Alice želi dobiti slijepi Schnorrov potpis za novčić koji će kasnije potrošiti kod Boba.

Alice generiše slučajne vrijednosti modulo q koje opisuju promjenu varijabli.

Ta transformacija zamjenjuje skrivenu Bankinu pravu novom pravom, a tačku na Bankinoj pravoj tačkom na novoj pravoj.

Kada Bob provjerava potpis Banke, on zapravo provjerava novu tačku na novoj pravoj.

Obje prave imaju isti nagib, pa potpis Banke ostaje valjan.

Kada Banka kasnije primi novčić na polaganje, vidiće protokol izveden na novoj pravoj, ali ga neće moći povezati sa Aliceinim podizanjem jer samo Alice zna transformaciju koja povezuje dvije prave.

Chaum-Pedersen potpis

Varijanta Schnorrovog potpisa poznata kao Chaum-Pedersen koristi se u protokolima elektronske gotovine.

Ovaj modifikovani sistem može se posmatrati kao neka vrsta „dvostrukog Schnorra“.

Koristi jednu pravu i jednu tačku, ali dvije različite sjene.

Ovaj sistem potpisa može se zaslijepiti na način sličan običnom Schnorrovom potpisu.

Implementacije Schnorrovih protokola

Schnorrovi algoritmi ovdje su opisani pomoću cijelih brojeva modulo prost broj p.

Međutim, isti protokoli mogu funkcionisati u bilo kojem matematičkom okruženju gdje je analog diskretnog logaritma težak za izračunavanje.

Važan primjer su eliptičke krive.

Protokoli zasnovani na eliptičkim krivama mnogo su brži i zahtijevaju prenos znatno manje podataka nego neeliptički sistemi sa istim nivoom sigurnosti.

3.3 PREGLED PREDLOŽENIH IMPLEMENTACIJA

Sada možemo sažeti glavne off-line sisteme elektronske gotovine iz akademske literature.

Postoje tri osnovna sistema:

  • Chaum–Fiat–Naor
  • Brands
  • Ferguson

Chaum–Fiat–Naor

Ovo je bio prvi sistem elektronske gotovine i konceptualno je najjednostavniji.

Banka stvara elektronski novčić tako što izvršava slijepi RSA potpis nad Aliceinim zahtjevom za podizanje, nakon što interaktivno provjeri da je Alice u novčić uključila svoje identifikacione informacije.

Višestruko trošenje otkriva se cut-and-choose metodom.

Zbog toga je sistem relativno neefikasan.

Brands

Brandsov sistem zasniva se na Schnorru.

Schnorrov protokol koristi se dva puta:

tokom podizanja Banka izvršava slijepi Chaum-Pedersen potpis,

a zatim Alice tokom trošenja izvršava Schnorrov dokaz posjedovanja kao challenge-response dio protokola.

Podizanje proizvodi novčić koji sadrži potpis Banke kojim se autentifikuju i Aliceine identifikacione informacije i sjena prave koja će biti korištena za dokaz posjedovanja.

Time se Alice obavezuje da upravo tu pravu koristi tokom plaćanja.

Ako isti novčić potroši ponovo, moraće istu pravu koristiti drugi put, čime Banka može otkriti njen identitet.

Mnogi smatraju Brandsov sistem najboljim od tri razloga.

Prvo, izbjegava nezgrapnu cut-and-choose tehniku.

Drugo, zasniva se isključivo na Schnorrovim protokolima pa se može implementirati u različitim matematičkim okruženjima, uključujući eliptičke krive.

Ferguson

Fergusonov sistem zasniva se na RSA, kao i Chaum–Fiat–Naor, ali koristi princip dvije tačke na jednoj pravoj, kao Brands.

Potpis koji koristi nije obični slijepi RSA potpis, već njegova varijanta poznata kao randomizovani slijepi RSA potpis.

Obični slijepi RSA ima nedostatak da Banka nema nikakvu predstavu o tome šta potpisuje.

Kod cut-and-choose sistema to nije problem, ali u ovom slučaju može omogućiti platiši da zaobiđe mehanizam za otkrivanje višestrukih trošilaca.

Randomizovana verzija rješava problem tako što i Alice i Banka doprinose slučajnim podacima koji ulaze u poruku.

Banka i dalje ne zna šta potpisuje, ali zna da Alice nije mogla zlonamjerno izabrati sve podatke.

Ostatak protokola konceptualno je sličan Brandsovom sistemu.

Poruka koju Banka potpisuje sadrži, pored slučajnih podataka, sjenu prave čiji nagib i odsječak otkrivaju Alicein identitet.

Tokom plaćanja Alice otkriva jednu tačku na toj pravoj.

Ako to uradi dva puta, Banka može utvrditi njen identitet.

Iako Fergusonov sistem izbjegava cut-and-choose, on je najsloženiji od sva tri, uglavnom zbog randomizovanog slijepog RSA potpisa.

Pored toga, ne može se implementirati pomoću eliptičkih krivih jer je zasnovan na RSA.

4. OPCIONE FUNKCIJE OFF-LINE GOTOVINE

Veliki dio novije literature o off-line gotovini bavio se dodavanjem funkcija koje bi sistem učinile praktičnijim.

Ovdje ćemo razmotriti dvije takve funkcije.

4.1 PRENOSIVOST

Prenosivost je osobina papirnog novca koja omogućava korisniku da novčić koji je upravo primio u jednoj transakciji potroši u sljedećoj, bez potrebe da u međuvremenu kontaktira Banku.

Plaćanje nazivamo prenosom ako primalac može isti novčić koristiti u narednom plaćanju.

Sistem je prenosiv ako omogućava najmanje jedan prenos po novčiću.

Prenosivost bi bila praktična za off-line gotovinski sistem jer bi zahtijevala manje interakcije sa Bankom.

Prenosivi sistem elektronske gotovine po definiciji je off-line, jer on-line sistemi zahtijevaju kontakt sa Bankom pri svakom plaćanju.

Prenosivi sistemi dobili su relativno malo pažnje u akademskoj literaturi.

Sistemi opisani u odjeljku 3.3 nisu prenosivi jer primalac ne može primljeni novčić koristiti u novoj transakciji; njegove jedine mogućnosti su da ga položi u Banku ili zamijeni za nove novčiće.

Svaki prenosivi sistem elektronske gotovine ima osobinu da novčić „raste“ pri svakom trošenju, odnosno akumulira dodatne bitove.

Razlog je taj što novčić mora sadržati informacije o svakoj osobi koja ga je potrošila kako bi Banka zadržala sposobnost identifikovanja višestrukih trošilaca.

Ovaj rast onemogućava neograničen broj prenosa.

Maksimalni broj prenosa biće ograničen najvećom dozvoljenom veličinom novčića.

Postoje i dodatni problemi sa prenosivim sistemima elektronske gotovine, čak i ako je broj prenosa ograničen i ukloni se anonimnost.

Sve dok novčić nije položen, jedina informacija dostupna Banci jeste identitet osobe koja ga je prvobitno podigla.

Sve kasnije transakcije mogu se rekonstruisati samo uz saradnju svakog uzastopnog trošioca tog novčića.

To stvara iste probleme kao papirni novac kod otkrivanja pranja novca i poreske evazije: ne postoje zapisi o transakcijama.

Pored toga, svaki prenos odlaže otkrivanje ponovo potrošenih ili falsifikovanih novčića.

Višestruko trošenje neće biti primijećeno dok se dvije kopije istog novčića konačno ne polože.

Do tada može biti prekasno da se počinilac uhvati, a veliki broj korisnika možda je već prihvatio falsifikovane novčiće.

Zbog toga naknadno otkrivanje višestrukog trošenja možda nije dovoljno dobro rješenje za prenosivi sistem elektronske gotovine.

Prenosivi sistem možda će morati da se oslanja na fizičku sigurnost radi sprečavanja višestrukog trošenja.

4.2 DJELJIVOST

Pretpostavimo da Alice koristi neprenosivi off-line gotovinski sistem i želi kupiti nešto od Boba za 4,99 dolara.

Ako slučajno ima elektronske novčiće čije vrijednosti daju tačno 4,99 dolara, jednostavno ih može potrošiti.

Međutim, osim ako drži veliku rezervu novčića svih mogućih apoena, malo je vjerovatno da će imati tačan iznos za većinu kupovina.

Možda neće željeti držati veliku rezervu iz istih razloga zbog kojih ljudi ne nose velike količine fizičkog novca: izgubljena kamata i strah od krađe ili gubitka.

Druga mogućnost jeste da Alice za svaku kupovinu podigne novčić tačnog iznosa.

Ali tada mora kontaktirati Banku, pa plaćanje iz njene perspektive postaje on-line.

Treća mogućnost jeste da Bob Alice vrati razliku između njenog plaćanja i cijene od 4,99 dolara.

To prebacuje problem tačnog iznosa na Boba i zahtijeva da Alice ponovo kontaktira Banku kako bi položila „kusur“.

Rješenje su djeljivi novčići.

To su novčići koji se mogu „podijeliti“ na dijelove čija ukupna vrijednost odgovara vrijednosti originalnog novčića.

Time se omogućava precizno off-line plaćanje bez potrebe da korisnik drži veliku zalihu različitih apoena.

Papirni novac očigledno nije djeljiv, ali to nije veliki problem jer je prenosiv.

Novčići primljeni u jednoj transakciji mogu se ponovo koristiti u sljedećoj, pa se zaliha različitih apoena djelimično obnavlja svakom transakcijom.

Predložena su tri sistema djeljive off-line gotovine, ali po cijenu dužeg vremena transakcije i dodatnih zahtjeva za memoriju.

Eng i Okamoto predložili su sistem zasnovan na cut-and-choose metodi.

Okamotov sistem efikasniji je i zasniva se na Brandsovom sistemu, ali može raditi i sa Fergusonovim.

Okamoto–Ohta sistem najefikasniji je od tri, ali i najsloženiji.

On se oslanja na težinu faktorizacije i težinu izračunavanja diskretnih logaritama.

Sva tri sistema rade tako što svakom novčiću vrijednosti w pridružuju binarno stablo.

Svaki čvor dobija novčanu vrijednost.

Korijenski čvor, na nivou 0, ima vrijednost:

w

Dva čvora na nivou 1 imaju po:

w/2

Četiri čvora na nivou 2 imaju po:

w/4

i tako dalje.

Ako novčić ima ukupnu vrijednost w i najmanju jedinicu određene veličine, listovi stabla imaju minimalnu vrijednost.

Za trošenje čitavog iznosa koristi se korijenski čvor.

Za manje iznose bira se skup čvorova čije vrijednosti daju željeni iznos.

U početku se može potrošiti bilo koji cijeli iznos do vrijednosti w.

Kasnija plaćanja moraju poštovati sljedeća pravila:

  1. Kada se jedan čvor iskoristi, svi njegovi preci i potomci više se ne smiju koristiti.
  2. Nijedan čvor ne smije biti korišten više od jednom.

Ova pravila osiguravaju da se na bilo kojoj putanji od korijena do lista ne koristi više od jednog čvora.

Ako se pravila poštuju, nemoguće je potrošiti više od originalne vrijednosti novčića.

Ako se jedno od pravila prekrši, dva čvora na istoj putanji biće upotrijebljena.

Informacije iz odgovarajućih transakcija tada se mogu kombinovati tako da otkriju identitet osobe koja je prekoračila vrijednost, na isti način kao kod otkrivanja višestrukog trošioca.

U Eng/Okamoto i Okamoto sistemima svaki korisnik ima tajnu vrijednost:

s

povezanu sa njegovim identitetom.

Otkrivanje s otkriva identitet, ali obrnuto ne mora važiti.

Svaki čvor i dobija tajnu vrijednost:

tᵢ

pa svakom čvoru odgovara prava:

y = sx + tᵢ

Kada se plaćanje vrši određenim čvorom n, otkrivaju se tᵢ vrijednosti svih čvorova koji su preci čvora n.

Primalac zatim šalje izazov xᵢ, a platiša odgovara:

y₁ = sx₁ + tₙ

To otkriva jednu tačku:

(x₁,y₁)

na pravoj:

y = sx + tₙ

ali ne otkriva samu pravu.

Ako se isti čvor potroši dva puta, odgovori na dva nezavisna izazova x₁ i x₂ otkrivaju dvije tačke na istoj pravoj.

Tada se tajna vrijednost s može izračunati principom dvije tačke na jednoj pravoj.

Ako neko pokuša potrošiti više nego što novčić vrijedi, dva čvora na istoj putanji biće korištena.

Pretpostavimo da su n i m na istoj putanji i da je n dalje od korijena.

Trošenje n otkriće t_m, jer je m predak n.

Ako se zatim potroši m, odgovor na izazov x₁ biće:

y₁ = sx₁ + t_m

Pošto je t_m već poznato, može se izračunati sx₁, a time i s.

Zato korištenje dva čvora na istoj putanji otkriva identitet osobe koja je prekoračila vrijednost.

Okamoto–Ohta sistem takođe koristi binarno stablo i ista pravila.

Međutim, nepravilno korištenje čvorova otkriva identitet na drugačiji način.

Umjesto skrivanja korisničke tajne u pravoj, korisnička identifikaciona tajna skriva se u faktorizaciji RSA modula.

Dvostruko korištenje istog čvora ili korištenje dva čvora na istoj putanji daje Banci dovoljno informacija da faktoriše modul i izračuna tajnu identifikacionu informaciju korisnika.

Iako su ovi djeljivi sistemi nepratljivi, plaćanja izvedena iz istog početnog novčića mogu se povezati.

Drugim riječima, moguće je utvrditi da su dva plaćanja potekla iz istog novčića i vjerovatno od iste osobe.

To ne otkriva identitet platiše ako su obje transakcije validne.

Međutim, ako se identitet platiše otkrije za jednu kupovinu, time se otkriva da je ista osoba izvršila i druge kupovine izvedene iz istog početnog novčića.

Ovo su tri primjera off-line gotovinskih sistema sa djeljivim novčićima.

Iako djeljivost komplikuje protokol, moguće ju je ostvariti bez gubitka nemogućnosti praćenja i bez gubitka sposobnosti otkrivanja nepravilnog trošenja.

Najefikasniji djeljivi sistem ima vrijeme transakcije i memorijske zahtjeve po novčiću proporcionalne logaritmu od N, gdje je N ukupna vrijednost novčića podijeljena vrijednošću najmanje djeljive jedinice.

Dalja poboljšanja efikasnosti ovih sistema bila su očekivana, jer je najnovije poboljšanje predstavljeno tek 1995. godine.

5. SIGURNOSNA PITANJA

U ovom poglavlju razmatramo neka pitanja sigurnosti elektronske gotovine.

Najprije ćemo govoriti o načinima sprečavanja višestrukog trošenja u off-line sistemima i objasniti koncept posmatrača elektronskog novčanika.

Zatim ćemo razmotriti posljedice neočekivanog sigurnosnog propusta u sistemu.

Na kraju ćemo opisati jedno moguće rješenje za određene probleme organa za sprovođenje zakona koji nastaju zbog anonimnosti.

5.1 SPREČAVANJE VIŠESTRUKOG TROŠENJA

Već smo objasnili da se višestruko trošenje može spriječiti kod on-line plaćanja održavanjem baze već potrošenih elektronskih novčića.

Kod off-line sistema, međutim, ne postoji kriptografski način da se spriječi da isti novčić bude potrošen više puta.

Umjesto toga, višestruko trošenje se otkriva kada se novčić položi i uporedi sa bazom potrošenih novčića.

Čak i kod anonimnih sistema bez mogućnosti praćenja, identitet višestrukog trošioca može se otkriti kada se zloupotreba prepozna.

Naknadno otkrivanje možda će u većini slučajeva biti dovoljno da obeshrabri višestruko trošenje, ali neće u potpunosti riješiti problem.

Ako neko uspije otvoriti račun pod lažnim identitetom ili je spreman nestati nakon što više puta potroši veliku sumu, može uspješno prevariti sistem.

Jedan način smanjenja problema jeste određivanje maksimalne vrijednosti pojedinačne off-line transakcije.

Time se ograničavaju finansijski gubici trgovca koji prihvati novčić koji je već ranije deponovan.

Međutim, to ne sprečava nekoga da isti mali novčić više puta troši na različitim mjestima.

Da bi se višestruko trošenje kod off-line plaćanja zaista spriječilo, potrebno je osloniti se na fizičku sigurnost.

„Tamper-proof“ kartica mogla bi spriječiti višestruko trošenje tako što bi izbrisala ili onemogućila novčić nakon što se potroši.

Međutim, ne postoji stvarno potpuno „tamper-proof“ kartica.

Zato je preciznije govoriti o tamper-resistant kartici, odnosno uređaju konstruisanom tako da je veoma teško izmijeniti njegov sadržaj.

To može biti smart kartica, PC kartica ili bilo koji memorijski uređaj koji sadrži čip otporan na fizičko neovlašteno mijenjanje.

Takav uređaj spriječiće većinu zloupotreba jer prosječni kriminalac vjerovatno neće imati resurse da ga modifikuje.

Ipak, čak i sa takvom karticom, kriptografska sigurnost ostaje neophodna kako bi se spriječilo falsifikovanje i kako bi se otkrili i identifikovali višestruki trošioci u slučaju da se fizička zaštita ipak probije.

Ograničavanje vrijednosti off-line plaćanja takođe bi smanjilo ekonomsku isplativost pokušaja fizičkog napada na karticu.

Tamper-resistant kartice mogu istovremeno povećati ličnu sigurnost i privatnost korisnika jer otežavaju protivniku čitanje ili izmjenu informacija pohranjenih na kartici, uključujući tajne ključeve, algoritme i evidenciju transakcija.

5.2 POSMATRAČI NOVČANIKA

Svi osnovni off-line sistemi opisani ranije mogu kriptografski otkriti identitet višestrukog trošioca.

Međutim, jedini način da se off-line višestruko trošenje unaprijed spriječi jeste korištenje tamper-resistant uređaja poput smart kartice.

Nedostatak ovog pristupa jeste što korisnik mora imati veliko povjerenje u uređaj, jer gubi mogućnost da kontroliše informacije koje ulaze u karticu ili iz nje izlaze.

Teoretski, takav uređaj mogao bi bez znanja korisnika odavati privatne informacije.

Chaum i Pedersen predložili su da se tamper-resistant uređaj ugradi u vanjski modul koji korisnik kontroliše.

Time bi se dobile sigurnosne prednosti zaštićenog uređaja bez potrebe da korisnik potpuno vjeruje samom uređaju.

Ovu kombinaciju nazvali su elektronskim novčanikom.

Vanjski modul, na primjer mali ručni računar ili korisnički PC, dostupan je korisniku.

Unutrašnji modul koji se ne može čitati niti mijenjati naziva se observer – posmatrač.

Sve informacije koje ulaze u observer ili izlaze iz njega moraju proći kroz vanjski modul, pa korisnik može nadzirati komunikaciju uređaja.

Međutim, vanjski modul ne može završiti transakciju bez saradnje observera.

Time observer dobija moć da spriječi transakcije koje ne odobrava, na primjer ponovno trošenje istog novčića.

Brands i Ferguson pokazali su kako se observer može uključiti u njihove sisteme elektronske gotovine.

Brandsov sistem to radi jednostavnije i efikasnije.

U osnovnom Brandsovom sistemu tajni ključ korisnika ugrađen je u svaki njegov novčić.

Kada se novčić troši, korisnik koristi tajnu vrijednost da generiše validan odgovor na izazov primaoca.

Primalac provjerava odgovor prije prihvatanja plaćanja.

Kod sistema sa observerom korisnička tajna dijeli se između korisnika i observera.

Kombinovana tajna predstavlja modularni zbir dva dijela.

Jedan dio sam po sebi ne otkriva ništa o punoj tajni.

Saradnja korisnika i observera potrebna je da bi se stvorio validan odgovor tokom plaćanja.

To se postiže bez otkrivanja jednog dijela tajne drugoj strani.

Sistem takođe sprečava observer da potpuno kontroliše odgovor, čime mu se onemogućava da krišom ubaci podatke kojima bi se trošilac mogao pratiti.

Observer bi mogao poslužiti i za naknadno praćenje korisničkih transakcija jer može čuvati evidenciju svih transakcija u kojima učestvuje.

Međutim, to bi zahtijevalo da Banka ili druga strana fizički dođe do observera i analizira ga.

Pored toga, nisu sve vrste observera pogodne za praćenje.

Brands i Ferguson tvrdili su da se njihovi observeri mogu ugraditi tako da se nemogućnost praćenja transakcija sačuva čak i ako se uređaj kasnije zaplijeni i analizira.

5.3 SIGURNOSNI PROPUSTI

Vrste propusta

U svakom kriptografskom sistemu postoji određeni rizik od sigurnosnog propusta.

Sigurnosni propust u sistemu elektronske gotovine mogao bi omogućiti falsifikovanje ili dupliranje novca.

Postoji više načina na koje sistem može zakazati.

Jedan od najozbiljnijih jeste da sama kriptografija, protokol ili matematika na kojoj se sistem zasniva ne pružaju očekivanu sigurnost.

To bi nekome moglo omogućiti da kreira novčiće koji izgledaju validno bez poznavanja tajnog ključa ovlaštene Banke ili da dođe do tajnih ključeva bez fizičkog pristupa njima.

Svako ko bi znao za slabost mogao bi stvarati novčiće koji izgledaju kao da ih je izdala legitimna Banka.

Drugi ozbiljan problem može nastati u konkretnoj implementaciji sistema.

Na primjer, ako generator slučajnih brojeva Banke nije dovoljno kvalitetan, neko bi mogao predvidjeti tajnu slučajnu vrijednost i upotrijebiti je za izračunavanje tajnih ključeva kojima se stvara elektronski novac.

Čak i ako su kriptografija i implementacija sigurni, sistem može biti kompromitovan fizičkim napadom.

Ako haker, lopov, nepošten bankarski službenik ili neprijateljska država dođu do tajnog ključa Banke, mogu proizvoditi falsifikovani novac.

Ako dođu do tajnog ključa korisnika, mogu trošiti njegov novac.

Ako izmijene softver Banke ili korisnika, mogu uništiti sigurnost sistema.

Ovi scenariji ne odnose se samo na sistem elektronske gotovine nego i na čitavu autentifikacionu infrastrukturu.

Svaki oblik elektronske trgovine zavisi od toga da korisnici mogu vjerovati mehanizmima autentifikacije.

Ako bi napadač mogao falsifikovati digitalni potpis sertifikacionog autoriteta, to bi uništilo povjerenje korisnika u mogućnost međusobne identifikacije.

Zato sertifikacioni autoriteti moraju biti zaštićeni jednako ozbiljno kao i banke.

Posljedice propusta

Sva tri osnovna sistema opisana u ovom radu anonimna su, što onemogućava povezivanje položenog novčića sa originalnom evidencijom njegovog podizanja.

To ima ozbiljne posljedice ako sigurnosni propust dovede do falsifikovanja tokena.

Kada se novčić pošalje na polaganje, nemoguće je utvrditi da li je falsifikovan.

Čak ni Banka koja ga je navodno izdala ne može prepoznati vlastite novčiće.

Zbog toga kompromitovanje možda neće biti otkriveno sve dok Banka ne primijeti da ukupna vrijednost položenog elektronskog novca premašuje iznos koji je ona izdala određenim ključem.

Do tada bi gubici mogli biti katastrofalni.

Nakon što se kompromitovanje otkrije, Banka i dalje neće moći razlikovati validne novčiće od nevalidnih.

Moraće promijeniti tajni ključ i poništiti sve novčiće potpisane kompromitovanim ključem.

Banka može zamijeniti novčiće koji još nisu potrošeni.

Ali valjanost novčića koji su već potrošeni ili položeni ne može se utvrditi bez saradnje platiše.

Nemogućnost praćenja plaćanja sprečava Banku da identifikuje platišu, a anonimnost platiše sprečava čak i primaoca da utvrdi ko je platiša.

Šteta se može smanjiti ograničavanjem broja novčića pogođenih jednim kompromitovanjem.

To se može postići periodičnim mijenjanjem javnog ključa Banke ili promjenom ključa kada ukupna vrijednost novčića izdatih jednim ključem premaši određenu granicu.

Međutim, takva podjela smanjuje anonimnost jer sužava skup mogućih podizanja koja bi mogla odgovarati određenom polaganju i obrnuto.

5.4 PONOVNO USPOSTAVLJANJE SLJEDIVOSTI

Anonimnost elektronske gotovine stvara više problema organima za sprovođenje zakona jer sprečava povezivanje podizanja i polaganja.

Već smo objasnili kako to otežava otkrivanje falsifikovanih novčića.

Anonimnost takođe otežava otkrivanje pranja novca i poreske evazije jer ne postoji način da se povežu platiša i primalac.

Elektronska gotovina takođe otvara mogućnost novih verzija starih krivičnih djela poput otmice i ucjene, gdje se predaja novca može izvršiti direktno sa kriminalčevog računara.

Jedan način ublažavanja ovih problema jeste zahtijevati da velike transakcije ili veliki broj transakcija u određenom vremenskom periodu budu sljedivi.

To bi otežalo krivična djela koja uključuju velike sume.

Međutim, čak i strogo ograničenje, na primjer maksimalno 100 dolara dnevno po računu, može brzo narasti ako jedna osoba može otvoriti više računa.

Pored toga, ograničavanje količine potrošenog novca u određenom periodu moralo bi se oslanjati na tamper-resistant uređaj.

Drugi način jeste omogućiti ponovno uspostavljanje sljedivosti pod određenim uslovima, na primjer uz sudski nalog.

Sljedivost se može podijeliti na dva smjera.

Praćenje unaprijed – forward traceability

To je sposobnost da se, počevši od evidencije podizanja i identiteta platiše, pronađe evidencija polaganja i tako identitet primaoca.

Drugim riječima, ako postoji nalog za pretragu Alice, praćenje unaprijed otkriće gdje je Alice trošila svoju elektronsku gotovinu.

Praćenje unazad – backward traceability

To je sposobnost da se, počevši od evidencije polaganja i identiteta primaoca, pronađe originalna evidencija podizanja i identitet platiše.

Praćenje unazad otkriva od koga je Alice primala novac.

Stadler, Piveteau i Camenisch predložili su rješenje koje uslovno vraća i praćenje unaprijed i praćenje unazad u cut-and-choose sistem.

U osnovnom cut-and-choose sistemu jedan identifikacioni broj povezan je sa svakim podizanjem, dok je drugi broj povezan sa svakim polaganjem.

Ta dva zapisa nisu međusobno poveziva.

Da bi se omogućilo praćenje unazad, broj podizanja, zajedno sa dodatnim podacima koji se ne mogu povezati sa podizanjem, šifruje se javnim ključem zajednički pouzdane institucije i ugrađuje u sam novčić.

Taj šifrovani broj podizanja prenosi se primaocu tokom plaćanja, a zatim Banci prilikom polaganja.

Platiša vrši šifrovanje tokom podizanja, dok Banka može provjeriti da je šifrovanje ispravno izvedeno.

Ako se ispune uslovi za praćenje, plaćanje ili polaganje predaje se pouzdanoj instituciji koja posjeduje tajni ključ za dešifrovanje broja podizanja.

Taj broj omogućava Banci da pronađe evidenciju podizanja i identifikuje platišu.

Da bi se omogućilo praćenje unaprijed, platiša se mora obavezati na broj polaganja još tokom podizanja novčića.

Platiša šifruje broj polaganja javnim ključem pouzdane institucije i šalje vrijednost Banci kao dio protokola podizanja.

Banka može provjeriti da platiša nije varao, iako broj vidi samo u šifrovanom obliku.

Ako se ispune uslovi za praćenje, evidencija podizanja predaje se pouzdanoj instituciji koja tajnim ključem dešifruje broj polaganja.

Banka zatim može pomoću tog broja identifikovati primaoca novca.

Stadler i saradnici pokazali su da je moguće napraviti mehanizam za obnavljanje sljedivosti u jednom ili oba smjera.

Takav sistem može korisnicima pružiti anonimnost, a istovremeno riješiti mnoge probleme organa za sprovođenje zakona koji postoje kod potpuno nepratljivog sistema.

Praćenje u oba smjera može pomoći u otkrivanju poreskih utajivača i perača novca tako što otkriva ko je platio osumnjičenom ili od koga je osumnjičeni primao novac.

Elektronski ucjenjivači takođe mogu biti otkriveni ako se dešifruju brojevi polaganja novčića koje je žrtva predala.

Međutim, ponovno uspostavljanje sljedivosti ne rješava jedan veoma važan problem: otkrivanje falsifikovanih novčića.

Praćenje unazad može pomoći ako je određeno plaćanje, polaganje ili primalac već sumnjiv.

U tom slučaju može se otkriti broj podizanja i provjeriti postoji li odgovarajući zapis.

Ali ako falsifikovani novčić već uđe u sistem, možda neće biti primijećen sve dok Banka ne shvati da je ukupna vrijednost položenog novca izdatog jednim ključem veća od vrijednosti svih podizanja.

Jedini način da se tada utvrdi koji su novčići pravi, a koji falsifikovani, bio bi dešifrovati brojeve podizanja za svaki pojedinačni depozit napravljen kompromitovanim ključem.

Time bi bila narušena upravo privatnost koju anonimna gotovina treba da zaštiti.

Nažalost, sistem Stadlera i saradnika nije posebno efikasan jer se zasniva na glomaznoj cut-and-choose metodi.

Ipak, moguće je da se slične ideje primijene i na efikasnije sisteme elektronske gotovine.

ZAKLJUČAK

Ovaj izvještaj opisao je nekoliko inovativnih platnih sistema koji omogućavaju anonimnost korisnika i nemogućnost praćenja plaćanja.

Ovi sistemi elektronske gotovine imaju kriptografske mehanizme za rješavanje problema višestrukog trošenja i falsifikovanja tokena.

Međutim, identifikovani su ozbiljni problemi povezani sa sposobnošću sistema da se oporavi nakon sigurnosnog propusta.

Takođe su razmotrene posljedice anonimnosti na pranje novca i poresku evaziju.

Pošto je veoma lako napraviti savršenu kopiju elektronskog novčića, siguran sistem elektronske gotovine mora imati način zaštite od višestrukog trošenja.

Ako je sistem on-line, višestruko trošenje može se spriječiti održavanjem baze potrošenih novčića i provjerom pri svakom plaćanju.

Ako je sistem off-line, ne postoji način da se višestruko trošenje kriptografski unaprijed spriječi, ali ono se može otkriti kada se novčići polože.

Naknadno otkrivanje ima smisla samo ako se može identifikovati počinilac.

Predložena su kriptografska rješenja koja otkrivaju identitet višestrukog trošioca, dok ostalim korisnicima čuvaju anonimnost.

Falsifikovanje tokena može se spriječiti sve dok je kriptografija sigurna i pravilno implementirana, tajni ključevi Banke nisu kompromitovani i integritet javnih ključeva je očuvan.

Međutim, ako postoji sigurnosna slabost ili kompromitovanje ključa, anonimnost elektronske gotovine odložiće otkrivanje problema.

Čak i nakon što kompromitovanje postane poznato, Banka neće moći razlikovati vlastite validne novčiće od falsifikovanih.

Pošto nije moguće garantovati da tajni ključevi Banke nikada neće biti kompromitovani, važno je ograničiti štetu koju jedan takav događaj može izazvati.

To se može postići ograničavanjem ukupne vrijednosti novčića izdatih jednim ključem.

Ali smanjenje tih limita istovremeno smanjuje anonimnost sistema jer se smanjuje skup novčića povezanih sa svakim ključem.

Nemogućnost praćenja elektronske gotovine stvara probleme pri otkrivanju pranja novca i poreske evazije jer ne postoji način da se povežu platiša i primalac.

Jedno moguće rješenje jeste sistem koji omogućava ponovno uspostavljanje sljedivosti pomoću escrow mehanizma.

Ako se ispune određeni uslovi, na primjer ako postoji sudski nalog, zapis o polaganju ili podizanju može se predati pouzdanoj instituciji koja posjeduje ključ za dešifrovanje informacija koje povezuju polaganje sa podizanjem ili obrnuto.

Time se može identifikovati platiša ili primalac određene transakcije.

Međutim, ovo ne rješava problem falsifikovanih tokena jer možda nije poznato koji su depoziti sumnjivi.

U tom slučaju otkrivanje falsifikovanih novčića zahtijevalo bi predavanje svih zapisa o polaganjima pouzdanoj instituciji radi dešifrovanja brojeva podizanja.

Razmotrene su i dvije opcione funkcije off-line elektronske gotovine: prenosivost i djeljivost.

Pošto veličina elektronskog novčića raste svakim prenosom, broj dozvoljenih prenosa po novčiću mora biti ograničen.

Pored toga, prenosivost povećava probleme otkrivanja falsifikovanih novčića, pranja novca i poreske evazije.

Novčići se mogu učiniti djeljivim bez gubitka sigurnosnih ili anonimnih osobina, ali uz cijenu dodatnih memorijskih zahtjeva i dužeg vremena transakcije.

Na kraju, potencijalni rizici elektronske trgovine povećavaju se kada je prisutna anonimnost.

Anonimnost stvara mogućnost da velike količine falsifikovanog novca dugo ostanu neotkrivene jer sprečava identifikaciju lažnih novčića.

Anonimnost takođe otvara put pranju novca i poreskoj evaziji koje je teško suzbiti bez escrow mehanizama.

Anonimnost se može pružiti u različitim stepenima, ali povećanje nivoa anonimnosti istovremeno povećava potencijalnu štetu.

Zbog toga je potrebno pažljivo odmjeriti potrebu za anonimnošću u odnosu na navedene rizike.

Moguće je da će se na kraju zaključiti da je ove probleme najbolje izbjeći korištenjem sigurnog elektronskog platnog sistema koji pruža privatnost, ali ne i potpunu anonimnost.

REFERENCE

  1. Stefan BrandsUntraceable Off-Line Cash in Wallets with Observers, Advances in Cryptology CRYPTO ’93, Springer-Verlag, str. 302–318.
  2. David ChaumAchieving Electronic Privacy, Scientific American, avgust 1992, str. 96–101.
  3. David ChaumSecurity without Identification: Transaction Systems to Make Big Brother Obsolete, ACM 28, br. 10, oktobar 1985, str. 1030–1044.
  4. David Chaum, Amos Fiat i Moni NaorUntraceable Electronic Cash, Advances in Cryptology CRYPTO ’88, Springer-Verlag, str. 319–327.
  5. David Chaum i Torben PedersenTransferred Cash Grows in Size, Advances in Cryptology – EUROCRYPT ’92, Springer-Verlag, str. 390–407.
  6. David Chaum i Torben PedersenWallet Databases with Observers, Advances in Cryptology CRYPTO ’92, Springer-Verlag, str. 89–105.
  7. Tony Eng i Tatsuaki OkamotoSingle-Term Divisible Electronic Coins, Advances in Cryptology EUROCRYPT ’94, Springer-Verlag, str. 311–323.
  8. Niels FergusonExtensions of Single-Term Coins, Advances in Cryptology – CRYPTO ’93, Springer-Verlag, str. 292–301.
  9. Niels FergusonSingle Term Off-Line Coins, Advances in Cryptology – EUROCRYPT ’93, Springer-Verlag, str. 318–328.
  10. Alfred J. MenezesElliptic Curve Public Key Cryptosystems, Kluwer Academic Publishers, Boston, 1993.
  11. Tatsuaki OkamotoAn Efficient Divisible Electronic Cash Scheme, Advances in Cryptology – CRYPTO ’95, Springer-Verlag, str. 438–451.
  12. Tatsuaki Okamoto i Kazuo OhtaUniversal Electronic Cash, Advances in Cryptology – CRYPTO ’91, Springer-Verlag, str. 324–337.
  13. Sebastiaan von Solms i David NaccacheOn Blind Signatures and Perfect Crimes, Computers & Security 11, 1992, str. 581–583.
  14. Markus Stadler, Jean-Marc Piveteau i Jan CamenischFair Blind Signatures, Advances in Cryptology – EUROCRYPT ’95, Springer-Verlag, str. 209–219.

[Kraj]

Zahvalnost autorima, Thomasu Vartanianu i anonimnim saradnicima.

Greške u prepisivanju jednačina mogu se prijaviti na <jya@pipeline.com>.

Petar Miljić – Finansije za narod

👉 Znanjem protiv hajpa – uvijek sigurniji put!

🌐 Posjeti nas: https://kriptoentuzijasti.io

🐦 Prati nas na X-u: https://twitter.com/k_entuzijasti

Ako vam se sviđa ono što čitate, podijelite članak na društvenim mrežama i pomozite nam širiti finacijsku slobodu i kripto znanje. Zajedno gradimo svijet financija i kripta!

#crypto #Bitcoin #KASPA #HBAR #XRP #RENDER #NEXO #BulRan2032

https://kriptoentuzijasti.io/ko-ce-opstati-u-novom-finansijskom-sistemu

Odgovori

Vaša adresa e-pošte neće biti objavljena. Obavezna polja su označena sa * (obavezno)

BobiAI Chat

🗑️ ×

Košarica

🛒

Vaša košarica je trenutno prazna.

Krenite u kupovinu
💎

Odaberi pretplatu

Pristup svim člancima u kategoriji

Već imaš račun? Prijavi se | Registriraj se
🔒 Sigurno plaćanje