Az azonnali tranzakciós csalásokról

2013-01-22

Szerzõ: Vitalik Buterin

Nemrégiben a BitcoinTalk egy felhasználója bejelentette a fórumon, hogy sikerült megfordítania egy megerõsítetlen tranzakciót a népszerű bitcoinos szerencsejáték-oldal, a SatoshiDice sérelmére. Először egy igen egyszerű megközelítéssel próbálkozott: beküldött egy tranzakciós díj nélküli, 0,25 BTC-s fogadást az oldalra, amit elvesztett. Amint megkapta erről az értesítőt, azonnal indított egy újabb 0,25 BTC-s tranzakciót – ezúttal azonban már saját magának címezve, és tranzakciós díjjal is megerősítve, hogy a bányászok lehetőleg előbb dolgozzák fel azt, mint az elődjét. Ezzel a módszerrel azonban kudarcot vallott, így más megközelítést választott, jelesül a tranzakció-“spammelést”. A standard Bitcoin-kliensnek megvannak a maga szabályai arra vonatkozóan, hogy mekkora helyigényű tranzakciók számítanak még elfogadhatónak – annak érdekében, hogy senki ne szabotálhassa a rendszert úgy, hogy több száz gigabájtnyi tranzakcióval puffasztja fel a blokkláncot. Általánosságban kijelenthető, hogy a minél kevesebb be- és kimenettel rendelkező tranzakciók az elfogadottak; minél inkább eltér egy tranzakció ettől a normától, annál csekélyebb az esélye a gyors elfogadásra ill. a hálózatban való elterjedésre (tranzakciós díjak nélkül). Ezért tehát a támadó ezúttal egy olyan, 0,20 BTC összértékű tranzakcióval próbálkozott, amelyet 20 0,01 BTC-s bemenetre osztott fel, majd megpróbálta rögtön felül is írni azt egy egységes egész, saját magának címzett 0,20 BTC-s tranzakcióval, amihez még egy nagylelkű 0,004 BTC-s tranzakciós díjat is hozzácsapott. Ezúttal bejött a trükk. A BTC Guild bányásztársulás a második tranzakciót nyilvánította érvényesnek az első helyett, végleg eltörölve így a támadó veszteségét.

Ennek kapcsán azonban nem lehet eléggé hangsúlyozni azt a tényt, hogy ez nem ássa alá a Bitcoin egészének biztonságosságát, mivel csak nagyon szűk keretek között lehet élni vele. A Bitcoin rendszere alapvetően kétféle “megerősítést” ismer. Az egyik nagyon gyorsan, mindössze 2-5 másodperc alatt lezajlik: ez nem több, mint a hálózatban való puszta elterjedés, ami a tranzakció érvényességét igazolja, és amely által az utalás eljut a küldőtől a címzetthez. Tényleges megerősítésnek azonban csak a második, az átlagosan tízpercenkénti blokk-megerősítés nevezhető: amikor a hálózatot üzemeltető bányászok elhelyezik a tranzakciót egy blokkba, és igen erőforrás-igényes munkabizonyíték-számításokkal hozzákapcsolják azt a blokklánchoz. A legtöbb bitcoinos üzlet megvár legalább egy ilyen blokk-megerősítést, mielőtt átadná a terméket a vásárlónak. Az ily módon – blokkal – megerősített tranzakciók ellen pedig a fent vázolt támadás teljességgel tehetetlen. Fizikai árukat és online szolgáltatásokat kínáló kereskedők tehát könnyen visszavonhatják a terméküket egy csaló vásárlótól, még akár órákkal az eredeti értesítés után is. Az azonnal felhasználható digitális holmik – így például ajándékkódok, feltöltések, stb. – esetében már más ugyan a helyzet, de ezeknél nem is okoz különösebb gondot, ha a kereskedők úgy állítják be a rendszerüket, hogy az várjon legalább úgy 30 percet a kód kiküldése előtt, és ellenőrizze a vásárló tranzakciójának blokk-megerősítéseit. Felhasználhatósági szempontból – az ügyfél szemszögéből – ez szinte nem is változtat semmit semmin: az azonnali megerősítésből nyomban láthatja, hogy a tranzakciója sikeresen eljutott a kereskedőhöz. Az a plusz néhány tíz perces várakozás pedig már igazán nem oszt, nem szoroz.

Meglepő módon a digitális letöltéseket azonnali megerősítések ellenében kínáló boltok már eleve védettek; a Coindl-nek sem kell változtatnia semmit az üzletmodelljén. Mert bár a fent vázolt technikával valóban visszacsalhatja az ember a pénzét az üzlettől, de az ilyen üzleteknek ez nem is okoz komoly veszteséget. Miért? Azért, mert a digitális árucikkek – így például könyvek, filmek és zenék – kezelési költsége szinte nulla: az Apple-nek például egy centnél is kevesebb pénzébe kerül a plusz elektromosság- és sávszélesség-költség, amit fel kell használniuk ahhoz, hogy letölthetővé tegyenek neked mondjuk egy 11,99$-os albumot. Mi több, ha így csaklizol el egy online bolttól ingyen egy könyvet vagy valami zenét, akkor az lényegében ugyanaz, mintha letorrentezted volna. Még ha a világ össznépességének a fele is elkezdene ezzel a trükkel élni, még akkor is bőven elég tisztességes vásárló maradna ahhoz, hogy a művészek továbbra is háborítatlanul, méltányos juttatás ellenében folytathassák alkotó tevékenységüket.

Ami a megoldási lehetőségeket illeti, a legkézenfekvőbb – és garantáltan elégséges – az, ha egyszerűen kivárunk legalább egy blokk-megerősítést, mielőtt bármi visszafordíthatatlant tennénk. Egyes üzletmodellek esetében persze ez akkor sem lesz soha elfogadható: elvégre a SatoshiDice legfőbb attrakciója is éppen az, hogy az ember azonnal megkapja a pénzét, ha nyert. Ők – a SatoshiDice illetékesei – szintén egy frappáns huszárvágással oldották meg a problémát: kötelezővé tették a tranzakciós díjat a beérkező fogadásokhoz. De nem kell aggódni akkor sem, ha egyesek szemében ez már túlzott komplikációnak tűnne, mivel vannak még további opciók is. Kb. nyolc hónappal ezelőtt állt elő a mára már elfüstölt RingCoin vállalat a ZipConf nevezetű termékével, melynek célja lényegében a blokkmegerősítést nélkülöző tranzakciók visszafordításának megnehezítése és ezáltal az azonnali megerősítéseket is elfogadó kereskedők támogatása. A ZipConf kétféleképpen is segít e téren: először is, amint befut hozzá egy tranzakció, azt azonnal szétkürtöli az egész hálózatba, elküldve a lehető legtöbb helyre annak érdekében, hogy a csomópontok egyszerűen ignoráljanak minden ezután esetleg még következő ellentétes, ütköző tranzakciót. Másodszor, hajlandó feladni még néhány extra másodpercet az “azonnaliságból” a tranzakció beérkezését követően, hogy addig is éberen figyelhesse esetleges csalási próbálkozások felbukkanását, mielőtt elfogadná a tranzakciót – annál is inkább, hogy ennyi idő alatt a tranzakció már kellőképpen elterjedhetett a hálózatban, közel ellehetetlenítve így egy második, azt felülírni szándékozó tranzakció térhódítását.

Ilyen megoldásokat pedig már a SatoshiDice és más hasonló üzletek is gond nélkül alkalmazhatnak – mi több, vegyíthetik más, további eljárásokkal is. Azonnal újraküldhetnek például minden beérkező tranzakciót saját maguknak címezve és tranzakciós díjjal is felvértezve annak érdekében, hogy a bányászok minél hamarabb megerősítsék azt a szülőtranzakciójával együtt, ezzel is kiütve a nyeregből az esetleges csalási próbálkozásokat. Szintén érdemes emellett elutasítani és azonnal visszaküldeni minden túl terebélyes, az átlagtól eltérő tranzakciót. Együtt lehet működni továbbá a bányászokkal és magukkal a Bitcoin fejlesztőivel is egy olyan patch kidolgozása érdekében, amelynek révén már maga a Bitcoin rendszere utasítana el minden ütköző tranzakciót – még akkor is, ha az újabb sokkal kisebb a korábbinál, és tranzakciós díjjal is megtámogatják. Egyes “önző” bányászok elfogadhatják ugyan a díjat, de mivel a bányászat oroszlánrészét bányásztársulások végzik – amelyek elég nagyok ahhoz, hogy a Bitcoin hálózatának közérdeke messze fontosabb legyen nekik bármilyen személyes nyereségvágynál -, ezért végeredményben az ilyen “magányos farkasok” is tehetetlenek maradnának. Mindent egybevetve tehát, bár tény és való, hogy erre a kihívásra még nincs konkrét, rendszerszintű válasz, de így is könnyen megelőzhető minden baj egy kis türelemmel. A közösség pedig kétségkívül minden tőle telhetőt meg fog tenni annak érdekében, hogy a lehető legbiztonságosabb környezetet teremtse meg mindenki számára úgy, hogy közben az azonnali megerősítések előnyeiről se kelljen lemondani.

Forrás: Bitcoin Magazine

A lap szövege Creative Commons Nevezd meg! – Ne add el! – Így add tovább! 3.0 licenc alatt áll, felhasználni csak forrásmegjelöléssel, és ide mutató linkkel szabad.