Magyarázat a dupla költéshez
KezdŇĎlap
Cikkek
Magyarázat a dupla költéshez

Magyarázat a dupla költéshez

K√∂z√©pszintŇĪ
Közzétéve Feb 17, 2020Frissítve Jan 31, 2023
7m

Mit jelent a dupla költés?

A dupla k√∂lt√©s a digit√°lis p√©nzrendszerek egy lehets√©ges probl√©m√°ja, amikor is ugyanazt az √∂sszeget egyidejŇĪleg k√©t c√≠mzettnek k√ľldik el. MegfelelŇĎ ellenint√©zked√©sek n√©lk√ľl egy olyan protokoll, amely nem oldja meg ezt a probl√©m√°t, alapjaiban s√©r√ľlt ‚ÄĒ a felhaszn√°l√≥knak nincs m√≥djuk ellenŇĎrizni, hogy a kapott √∂sszeget nem k√∂lt√∂tt√©k-e m√°r el m√°shol.

A digit√°lis p√©nz eset√©ben kiemelkedŇĎ fontoss√°g√ļ annak biztos√≠t√°sa, hogy az egyes egys√©gek ne legyenek m√°solhat√≥k. Az eg√©sz rendszert al√°√°sn√°, ha Al√≠z kaphatna 10 egys√©get, 10-szer lem√°solhatn√° √©s beilleszthetn√© ŇĎket, √≠gy 100 egys√©g birtok√°ban tal√°ln√° mag√°t. Hasonl√≥k√©ppen, egy ilyen rendszer nem mŇĪk√∂dhet, ha egyszerre ugyanazt a 10 egys√©get el tudja k√ľldeni Robinak √©s Karolin√°nak is. A digit√°lis p√©nz mŇĪk√∂d√©s√©hez teh√°t olyan mechanizmusokra van sz√ľks√©g, amelyek megakad√°lyozz√°k ezt a probl√©m√°t.


Hogyan elŇĎzhetŇĎ meg a dupla k√∂lt√©s?

A centralizált megközelítés

A centraliz√°lt megold√°s l√©nyegesen k√∂nnyebben megval√≥s√≠that√≥, mint a decentraliz√°lt alternat√≠v√°k. Ez jellemzŇĎen egy fel√ľgyelŇĎt alkalmazna, aki ir√°ny√≠tja a rendszert, √©s ellenŇĎrzi az egys√©gek kiad√°s√°t √©s eloszt√°s√°t. A dupla k√∂lt√©s probl√©m√°j√°nak centraliz√°lt megold√°s√°ra j√≥ p√©lda a David Chaum √°ltal kifejlesztett eCash.¬†

Ahhoz, hogy a felhaszn√°l√≥knak p√©nzt imit√°l√≥ (n√©vtelen √©s peer-to-peer keresked√©sre alkalmas) digit√°lis eszk√∂zt adjon ki, a bank haszn√°lhat vak al√°√≠r√°st - ahogyan azt David Chaum kriptogr√°fus 1982-ben megjelent Blind Signatures for Untraceable Payments(Vak al√°√≠r√°s a lenyomozhatatlan fizet√©sekhez) c√≠mŇĪ munk√°j√°ban r√©szletezte.

Ilyen k√∂r√ľlm√©nyek k√∂z√∂tt, ha egy felhaszn√°l√≥ (nevezz√ľk Daninak) 100 doll√°rnyi digit√°lis p√©nzt szeretne kapni, elŇĎsz√∂r a bankot kell √©rtes√≠tenie. Amennyiben rendelkezik a sz√°ml√°j√°n az egyenleggel, ezut√°n gener√°l egy v√©letlen sz√°mot (vagy t√∂bb sz√°mot, kisebb c√≠mletek eset√©n). Tegy√ľk fel, hogy √∂t sz√°mot √°ll√≠t elŇĎ, amelyek mindegyik√©hez 20 doll√°rnyi √©rt√©ket rendel. Annak √©rdek√©ben, hogy a bank ne tudja nyomon k√∂vetni az egyes egys√©geket, Dani elrejti a v√©letlenszerŇĪ sz√°mokat azzal, hogy mindegyikhez hozz√°ad egy¬†titkos√≠t√≥ t√©nyezŇĎt¬†.

Ezt k√∂vetŇĎen √°tadja ezeket az adatokat a banknak, amely 100 doll√°rral megterheli a sz√°ml√°j√°t, √©s al√°√≠rja azokat az √ľzeneteket, amelyek igazolj√°k, hogy az √∂t egys√©g mindegyike 20 doll√°rra v√°lthat√≥. Dani most m√°r elk√∂ltheti a bank √°ltal kibocs√°tott p√©nzeszk√∂z√∂ket. Elmegy Erika √©tterm√©be, √©s vesz egy 40 doll√°ros √©telt.¬†

Dani elt√°vol√≠thatja az elrejt√©si t√©nyezŇĎt, hogy felfedje az egyes digit√°lis ‚Äěbankjegyekhez‚ÄĚ tartoz√≥ v√©letlenszerŇĪ sz√°mot, amely az egyes egys√©gek egyedi azonos√≠t√≥jak√©nt szolg√°l (hasonl√≥an a sorozatsz√°mhoz). EbbŇĎl kettŇĎt felfed Erik√°nak, akinek be kell v√°ltania ŇĎket a bankn√°l, hogy Dani ne k√∂lthesse el ŇĎket egy m√°sik kereskedŇĎn√©l. A bank ellenŇĎrzi, hogy az al√°√≠r√°sok √©rv√©nyesek-e, √©s ha minden rendben van, 40 doll√°rt j√≥v√°√≠r Erika sz√°ml√°j√°n.

A felhaszn√°lt bankjegyek l√©nyeg√©ben el√©get√©sre ker√ľltek, √©s √ļjabbakat kell kibocs√°tani, ha Erika ugyan√≠gy szeretn√© elk√∂lteni az √ļj egyenleg√©t.

A Chaumian eCash be√°ll√≠t√°sa hasznos lehet a priv√°t √°tutal√°sokhoz. A rugalmass√°g ter√©n azonban kudarcot vall, mert a bank a k√∂zponti hibalehetŇĎs√©g. A kibocs√°tott bankjegy √∂nmag√°ban semmit sem √©r, mivel √©rt√©ke kiz√°r√≥lag abb√≥l sz√°rmazik, hogy a bank hajland√≥ azt doll√°rra v√°ltani. Az √ľgyfelek ki vannak szolg√°ltatva a banknak, √©s a bank j√≥sz√°nd√©k√°ra kell hagyatkozniuk, hogy a p√©nz√ľk mŇĪk√∂dj√∂n. A kriptovalut√°k pontosan ezt a probl√©m√°t hivatottak orvosolni.


A decentralizált megközelítés

Nagyobb kih√≠v√°st jelent annak biztos√≠t√°sa, hogy a p√©nzeszk√∂z√∂ket ne lehessen k√©tszer elk√∂lteni egy olyan √∂kosziszt√©m√°ban, ahol nincs fel√ľgyelŇĎ. Az egyenlŇĎ hatalommal rendelkezŇĎ r√©sztvevŇĎknek olyan szab√°lyok szerint kell elj√°rniuk, amelyek megakad√°lyozz√°k a csal√°st, √©s minden felhaszn√°l√≥t tisztess√©ges magatart√°sra √∂szt√∂n√∂znek.

A Bitcoin feh√©r k√∂nyv√©ben bemutatott legnagyobb √ļj√≠t√°s a dupla k√∂lt√©s probl√©m√°j√°t hivatott megoldani. B√°r nem √≠gy hivatkozott r√°, Satoshi kor√°bban m√°r felvetette a ma m√°r sz√©les k√∂rben blokkl√°nc n√©ven ismert adatstrukt√ļr√°t.

A blokkl√°nc tulajdonk√©ppen egy adatb√°zis, n√©h√°ny egyedi tulajdons√°ggal. A h√°l√≥zat r√©sztvevŇĎi (a csom√≥pontok) speci√°lis szoftvert futtatnak, amely lehetŇĎv√© teszi sz√°mukra, hogy szinkroniz√°lj√°k az adatb√°zis m√°solat√°t t√°rsaikkal. Az eredm√©ny az, hogy a h√°l√≥zat eg√©sze ellenŇĎrizni tudja a tranzakci√≥s elŇĎzm√©nyeket a genezisblokkig visszamenŇĎleg. Az√°ltal, hogy a blokkl√°nc nyilv√°nosan megtekinthetŇĎ, k√∂nnyen felismerhetŇĎk √©s megelŇĎzhetŇĎk a csal√°rd tev√©kenys√©gek, p√©ld√°ul a dupla k√∂lt√©ses tranzakci√≥k.

Amikor egy felhaszn√°l√≥ k√∂zvet√≠t egy tranzakci√≥t, az nem ker√ľl fel azonnal a blokkl√°ncra ‚Äď elŇĎsz√∂r b√°ny√°szat √ļtj√°n kell egy blokkba foglalni. √ćgy a c√≠mzett csak azt k√∂vetŇĎen tekintheti a tranzakci√≥t √©rv√©nyesnek, hogy a blokkot hozz√°adt√°k a l√°nchoz. EllenkezŇĎ esetben kock√°ztatj√°k a p√©nz elveszt√©s√©t, mivel a felad√≥ m√°shol is elk√∂ltheti ugyanazokat az √©rm√©ket.¬†

A tranzakci√≥ megerŇĎs√≠t√©se ut√°n az √©rm√©ket nem lehet k√©tszer elk√∂lteni, mivel a tulajdonjog egy √ļj felhaszn√°l√≥hoz ker√ľl, √©s ezt az eg√©sz h√°l√≥zat ellenŇĎrizni tudja. Ez√©rt is javasolj√°k sokan, hogy v√°rjon t√∂bb visszaigazol√°sra, mielŇĎtt √©rv√©nyesnek fogadja el a fizet√©st. Minden tov√°bbi blokk drasztikusan megn√∂veli a l√°nc m√≥dos√≠t√°s√°hoz vagy √ļjra√≠r√°s√°hoz sz√ľks√©ges erŇĎfesz√≠t√©st (ami egy 51%-os t√°mad√°s sor√°n elŇĎfordulhat).

T√©rj√ľnk vissza az √©ttermes p√©ld√°nkhoz. Dani visszat√©r az √©tterembe, √©s ez√ļttal √©szreveszi, hogy az ablakon egy Bitcoin elfogad√≥hely matrica van. √ćzlett neki a m√ļltkori √©tel, ez√©rt √ļjra megrendeli. 0,005 BTC-be ker√ľl.¬†

Erika mutat neki egy publikus c√≠met, ahov√° el kell k√ľldenie a p√©nzt. Dani tov√°bb√≠tja a tranzakci√≥t, amely l√©nyeg√©ben egy al√°√≠rt √ľzenet, amely szerint a 0,005 BTC, mely Dan birtok√°ban volt, most m√°r Erika birtok√°ban van. An√©lk√ľl, hogy t√ļls√°gosan belemenn√©nk a r√©szletekbe, b√°rki, akinek Dani al√°√≠rt tranzakci√≥j√°t bemutatj√°k, meggyŇĎzŇĎdhet arr√≥l, hogy val√≥ban az ŇĎ birtok√°ban voltak az √©rm√©k, √©s ez√©rt volt felhatalmaz√°sa arra, hogy elk√ľldje ŇĎket.

Mint eml√≠tett√ľk, a tranzakci√≥ azonban csak akkor √©rv√©nyes, ha egy megerŇĎs√≠tett blokkban szerepel. A meg nem erŇĎs√≠tett tranzakci√≥k elfogad√°sa olyan, mintha az elŇĎzŇĎ p√©ld√°ban eml√≠tett 40 doll√°ros eCash-t fogadn√°nk el an√©lk√ľl, hogy azt azonnal bev√°ltan√°nk a bankn√°l ‚Äď ez lehetŇĎv√© teszi a k√ľldŇĎ sz√°m√°ra, hogy m√°shol is elk√∂ltse azt. Ez√©rt aj√°nlott, hogy Erika legal√°bb 6 blokk visszaigazol√°s√°t (nagyj√°b√≥l egy √≥ra) megv√°rja, mielŇĎtt elfogadja Dani fizet√©s√©t.


Dupla költés a Bitcoinon

A Bitcoint gondosan √ļgy tervezt√©k, hogy megakad√°lyozza a dupla k√∂lt√©ses t√°mad√°sokat, felt√©ve, hogy a protokollt megfelelŇĎen haszn√°lj√°k. Ez azt jelenti, hogy ha valaki v√°r a tranzakci√≥ megerŇĎs√≠t√©s√©re egy blokkban, a felad√≥ nem tudja k√∂nnyen visszacsin√°lni azt. Ehhez ‚Äěvissza kellene ford√≠taniuk‚ÄĚ a blokkl√°ncot, ami irre√°lisan nagy hash kapacit√°st ig√©nyel.

Van azonban p√°r dupla k√∂lt√©ses t√°mad√°s, amely a meg nem erŇĎs√≠tett tranzakci√≥kat elfogad√≥ feleket c√©lozza. Kis √©rt√©kŇĪ v√°s√°rl√°sok eset√©n p√©ld√°ul elŇĎfordulhat, hogy a kereskedŇĎ nem akarja megv√°rni, hogy a tranzakci√≥k beker√ľljenek egy blokkba. Egy forgalmas gyors√©tterem val√≥sz√≠nŇĪleg nem engedheti meg mag√°nak, hogy v√°rakozzon, am√≠g a h√°l√≥zat minden v√°s√°rl√°st feldolgoz. Teh√°t, ha egy v√°llalkoz√°s lehetŇĎv√© teszi az ‚Äěazonnali‚ÄĚ fizet√©st, kiteszi mag√°t a dupla k√∂lt√©s vesz√©ly√©nek. Lehet, hogy valaki rendel egy hamburgert, kifizeti, majd azonnal elk√ľldi ugyanezt az √∂sszeget a saj√°t c√≠m√©re. Magasabb d√≠j mellett val√≥sz√≠nŇĪleg ezt az √ļj tranzakci√≥t fogj√°k elŇĎsz√∂r megerŇĎs√≠teni, √©s √≠gy √©rv√©nytelen√≠tik az elŇĎzŇĎt.

H√°rom n√©pszerŇĪ m√≥dszer l√©tezik a dupla k√∂lt√©s v√©grehajt√°s√°ra:

  • 51%-os t√°mad√°s: amikor egyetlen entit√°snak vagy szervezetnek siker√ľl a hashr√°ta t√∂bb mint 50%-√°t ir√°ny√≠tania, ami lehetŇĎv√© teszi sz√°m√°ra, hogy kiz√°rjon tranzakci√≥kat vagy m√≥dos√≠tsa azok sorrendj√©t. Egy ilyen t√°mad√°sra nagyon kicsi az es√©ly a Bitcoin eset√©ben, de m√°s h√°l√≥zatokon m√°r elŇĎfordult.

  • Race t√°mad√°s: k√©t egym√°snak ellentmond√≥ tranzakci√≥t tov√°bb√≠tanak egym√°s ut√°n, ugyanazzal a p√©nzeszk√∂zzel - de csak az egyik tranzakci√≥t erŇĎs√≠tik meg. A t√°mad√≥ c√©lja, hogy √©rv√©nytelen√≠tse a fizet√©st az√°ltal, hogy csak a sz√°m√°ra elŇĎny√∂s tranzakci√≥t valid√°lja (pl. ugyanazt az √∂sszeget egy √°ltala birtokolt c√≠mre k√ľldi). A race t√°mad√°sok megk√∂vetelik, hogy a c√≠mzett egy meg nem erŇĎs√≠tett tranzakci√≥t fogadjon el fizet√©sk√©nt.

  • Finney-t√°mad√°sok: a t√°mad√≥ elŇĎre b√°ny√°sz egy tranzakci√≥t egy blokkba an√©lk√ľl, hogy azonnal tov√°bb√≠tan√° a h√°l√≥zatra. Ehelyett ugyanazt az √©rm√©t egy m√°sik tranzakci√≥ban k√∂lti el, √©s csak ezut√°n tov√°bb√≠tja a kor√°bban b√°ny√°szott blokkj√°t, ami √©rv√©nytelen√≠theti a fizet√©st. A Finney-t√°mad√°sok meghat√°rozott esem√©nysorozatot k√∂vetelnek meg, √©s att√≥l is f√ľggnek, hogy a c√≠mzett elfogadja-e a meg nem erŇĎs√≠tett tranzakci√≥kat.

Mint l√°thatjuk, egy olyan kereskedŇĎ, aki megv√°rja a blokkok visszaigazol√°s√°t, nagym√©rt√©kben cs√∂kkenti annak kock√°zat√°t, hogy dupla k√∂lt√©sek √°ldozat√°v√° v√°ljon.


Záró gondolatok

A dupla k√∂lt√©s lehetŇĎv√© teszi, hogy a felhaszn√°l√≥ p√©nz√ľgyi haszonszerz√©s c√©lj√°b√≥l kij√°tsszon egy elektronikus p√©nzrendszert, √©s ugyanazt az √∂sszeget t√∂bbsz√∂r is felhaszn√°lja. JellemzŇĎen a probl√©ma megfelelŇĎ megold√°s√°nak hi√°nya akad√°lyozta a ter√ľlet elŇĎrehalad√°s√°t.

Szerencs√©re azonban a vak al√°√≠r√°sok haszn√°lata √©rdekes megold√°st k√≠n√°l a centraliz√°lt p√©nz√ľgyi rendszerek sz√°m√°ra. K√©sŇĎbb a Proof of Work mechanizmusok √©s a blokkl√°nc technol√≥gia l√©trehoz√°s√°val sz√ľletett meg a Bitcoin, mint a decentraliz√°lt p√©nz hat√©kony form√°ja, ami viszont t√∂bb ezer m√°s kriptovaluta projektet inspir√°lt.