A vásárlás protokoll megalkotásánál arra törekedtem, hogy egy olyan protokollt hozzak létre, amelyben a vásárló nem kommunikál közvetlenül a bankkal. Ez az Internetes megoldásnál nem lenne fontos, hiszen az elektronikus pénztárca szoftver ugyanúgy képes kommunikálni az áruházzal, mint, ahogy a bankkal. Ellenben a nem Internetes megoldásnál a vásárlónál lévõ chipkártya a bankot csak az áruház által szolgáltatott eszközön képes elérni. Ebben a speciális helyzetben a vásárló ki van szolgáltatva az elektromos áruház szoftverének, hiszen a digitális pénznek át kell mennie ezen az eszközön. Így a vásárlót meg kell védeni, nehogy az áruház ellophassa pénzét. Ezt úgy oldottam meg a protokollban, hogy a vásárló a nyilvános kulcsú titkosításnál megismert módszerrel, a bank publikus kulcsával letitkosítja üzeneteit, így azokat csak a bank tudja értelmezni, az áruház szoftverét majd a bank fogja értesíteni. Hozzátartozik, hogy a bank üzeneteit digitális aláírással hitelesíti, így a vásárló elektronikus pénztárcája megbizonyosodhat róla, hogy üzentei elérkeztek a bankig, illetve a válaszokat nem az áruház generálja megtévesztésbõl.
A protokoll további lényeges jellemzõje, hogy az áruház csak a bankszámlájára kapja meg a vásárló által fizetett összeget, és nem kapja meg a digitális pénz bitfolyamát. Ez a megoldás a vevõt és az áruházat is egyaránt védi. Az áruház biztos lehet abban, hogy a vásárlás pillanatában kapott pénzösszeg az övé lesz, és nem fordulhat elõ olyan, hogy a vevõ egyszerre két helyen vásárol, ugyanazzal a pénzzel, és így az az eladó, akinél késõbb vásárol, az elfogadott digitális pénz már érvénytelen. A vásárló is védve van ugyanakkor, hiszen digitális pénze csak a bank kezébe kerül, így senki sem tudja lemásolni, ha esetleg az üzlet mégsem jönne létre.
A vásárláskor a vásárló és az eladó között egy megegyezés történik, miszerint a vásárló pénzéért az eladó áruját kapja. Ezt az késõbbi viták elkerülése végett egy szerzõdésben rögzítik a felek. A szerzõdés különösen fontos, hiszen gyakran a vásárlás nem személyesen történik, és ilyenkor a vevõ ezzel az okmánnyal tudja bizonyítani, hogy valóban megvette a terméket. Ezt a szerzõdést megõrzik a felek, és ha vitára kerül a sor, akkor segítségével eldönthetik kinek van igaza. A szerzõdés szövege lehet kódolva is oly módon, hogy bármelyik fél ki tudja kódolni, ugyanakkor egy harmadik, illetéktelen személy ne láthassa.
A protokoll továbbá fel van készítve arra is, hogy amennyiben a vásárlónak nem áll rendelkezésére a pontos összeg, úgy a bank az eladó számlájának rovására visszaad a vásárlónak. Ilyenkor nem szükséges a digitális pénz kiváltásakor megismert sorszám generálási protokollt használni, hiszen a bank ismét csak azt tudja, hogy ki az eladó, míg a vevõvel nem áll kapcsolatban, azaz a visszajáró pénzhez a sorszámot a bank fogja generálni.
- A vásárló megkeresi az Interneten az elektronikus áruházat, és rácsatlakozik. Lehívja az áruházban kapható termékek listáját és áraikat, majd az áruházzal megállapodik, hogy melyik terméket kívánja megvenni.
- Az áruház bejelentkezik a bankhoz, közli számlaszámát, nevét és a számlájához tartozó jelszót, majd közli a bankkal, hogy egy vásárlás fog lezajlani.
- A vásárló elküldi a megvásárolandó termék árának megfelelõ digitális pénzt az áruháznak, hogy küldje tovább a banknak. Ezt a mûveletet, persze úgy teszi meg, hogy a küldendõ üzenetet a bank publikus kulcsával kódolja le. Így ezt az üzenetet már csak a bank képes a privát kulcsának segítségével visszakódolni. Az áruház szoftvere képtelen értelmezni az adatokat. A digitális pénzzel együtt a vásárló küld egy általa véletlenszerûen generált azonosítót is, amely több funkciót lát el. Elsõsorban biztosítja, hogy az áruház a vevõ által küldött üzeneteket ne tudja lemásolni, majd az üzletet meghiusítani, és egy késõbbi idõben az így eltárolt üzenetekkel a vásárlást vevõ nélkül leszimulálni. A bank csak olyan üzeneteket fog elfogadni a vevõtõl, amely tartalmazza ezt az azonosítót. Ez az azonosító ugyanakkor arra is jó, hogy a visszajáró pénzt a bank ezzel a kulccsal fogja letitkosítani, és így amikor szintén átmegy az eladó számítógépén, az áruház nem tudja azt ellopni. A vásárló üzenete tartalmazza a kiválasztott termék árát is, hogy a bank tudja mennyit kell visszaadnia, illetve az eladó így fogja tudni, hogy vásárlója valóban a megfelelõ áron vásárol.
![]()
- A bank fogadja az áruháztól érkezõ, vásárló által küldött kódolt digitális pénzt, majd saját privát kulcsával kikódolja. Megvizsgálja, hogy a küldött pénz valóban helyes-e, valamint, hogy értéke fedezi-e a megvásárolni kívánt termék árát. Rendellenesség esetén figyelmezteti az áruházat. A bank válaszüzenete, az áruház tájékoztatása számára tartalmazni fogja a vevõ által küldött pénzmennyiség összegét, valamint a termék árát, és tartalmazni fog egy tranzakciós azonosítót, amely a bank által véletlenszerûen generált és egyedi, de tartalmaz az aktuális idõpontra vonatkoztatott információt. Az ily módon generált tranzakciós azonosító biztosítja, hogy az áruház valóban a bank üzeneteit továbbítja a vásárló felé, és nem pedig egy korábban rögzített vásárlásból származó üzeneteket ad a vásárlónak. A tranzakciós azonosító mindamellett arra is szolgál, hogy a bankban azonosítja a vásárlással kapcsolatos feljegyzéseket. A bank az üzenetet digitális aláírással látja el, így a vásárló fél meg tud gyõzõdni róla, hogy ezt az üzenetet valóban a bank küldte.
![]()
- Az áruházi szoftver ellenõrzi, hogy a vásárló valóban annak a terméknek az árát közölte, amelyben megalkudtak, valamint ellenõrzi, hogy a vásárló rendelkezik-e megfelelõ mennyiségû fizetõeszközzel. Amennyiben ezeket rendben találja, úgy elkészíti a szerzõdés szövegét, és ezt elküldi a banknak, azzal a szándékkal, hogyha a vásárlás létrejön, akkor ezt a szerzõdést a bank hitelesíti, és kiküldi a szerzõdõ feleknek. A szerzõdés az által fog hitelesnek bizonyulni, hogy azt a bank digitálisan aláírja. Ezt a szerzõdést a vásárlóhoz is el kell juttatni, hogy a vásárlás megtörténte elõtt ellenõrizhesse. Ezt a vásárlás elõtti szerzõdét a bank fogja a vevõnek elküldeni. Az áruház a szerzõdés mellett küldi a tranzakciós azonosítót is, hogy garantálja az üzenet eredetiségét.
- A bank a beérkezett szerzõdésbõl egy elõszerzõdést készít, oly módon, hogy a szerzõdés szövege elé beszúrja, hogy ez valójában csak egy elõszerzõdés. Az elõszerzõdést hitelesíti és kiküldi az áruházi szoftveren keresztül a vásárló szoftverének.
![]()
- A vásárló elolvassa az elõszerzõdést, és ha valami kifogása van az üzlettel kapcsolatban, akkor itt még érvényteleníteni tudja a vásárlást. Ha elfogadja a szerzõdést, akkor egy nyugtázó üzenetet küld a banknak. Természetesen ez az üzenet a hitelességet bizonyítóan tartalmazza a vásárló egyedi és a bank tranzakciós azonosítóját.
- Amennyiben az eladó fél sem gondolja meg magát, úgy a vevõtõl jövõ üzenetet továbbítja a bank felé, jelezve, hogy mindketten beleegyeznek az üzlet lebonyolításába.
![]()
- A bankhoz megérkezik a szerzõdõ felek beleegyezése, ekkor kiadhatja az aláírt, végleges szerzõdést. Amennyiben van visszajáró, azt is kiküldi a vásárló részére. A visszajárót a vásárló által küldött azonosítóval titkosítja, hogy az áruház ne tudja felhasználni. A titkosítást a vak aláírás eljárással lehet elvégezni, ahol a véletlen faktor helyett most a vevõ által küldött azonosítót használjuk.
![]()
A protokoll véletlenül vagy akarattal bármikor megszakadhat. Éppen ezért a protokoll során olyan üzenetek keletkeznek, melyek véletlenül generált azonosítók segítségével biztosítják, hogy ne lehessen a megszakadt, vagy csalás szándékkal megszakított üzeneteket újból felhasználni. Problémát jelent, ha az üzenet a protokoll legutolsó stádiumában szakad meg. Ilyenkor a vásárló nem tudhatja, hogy a vásárlást az eladó direkt állította le, vagy hálózati hiba miatt szakadt meg. Ezért a banknak a vásárlásról feljegyzéseket kell tárolnia. Így a vevõ a banktól lekérdezheti, hogy mi történt a vásárlás megszakadása után. A bank tárolja a szerzõdést és a visszajáró pénzt is, hogyha az különbözõ okok miatt nem tud eljutni a vásárlóig, a késõbbiekben újból lekérhetõ lehessen. A lekérés során persze hivatkozni kell a tranzakciós és a vevõ egyedi azonosítójára.