Mennyire is veszélyes a teljes hálózat 50%-át meghaladó bányászkapacitás?

2011-12-02

Szerző: Zooko Wilcox-O’Hearn

1. rész:

(Elnézést, ez egy kicsit hosszú lett. Röviden azonban a lényeg az, hogy még ha nagyobb számítókapacitás is van a birtokodban, mint a Bitcoin-hálózat maradékának, a jelek szerint akkor sem tudsz túl nagy károkat okozni, és sokkal jobban jársz azzal, ha rendeltetésszerűen, a hálózat és a felhasználók kiszolgálására fordítod a kapacitásodat, és szabályszerű bányászattal keresel pénzt.)

Hiába birtokolnád a Bitcoin-hálózat hashkapacitásának több, mint 50%-át (vagyis hiába tudnál többet hashelni másodpercenként, mint a hálózat maradéka együttvéve), akkor is csak igen korlátozott mértékben és módokon léphetnél fel a többiek ellen. Elnyomhatod ugyan a többi bányászt és az általuk generált blokkokat, felbőszítve így őket, és némileg magasabb tranzakciós díjakat követelve mindenki mástól, de – bár ez persze nem volna egy jó helyzet – a hálózat ettől még nem omlana össze, és a felhasználók sem fordulnának el a Bitcointól. Sőt, annál inkább ösztönöznél másokat is bányászatra, mivel nyilván szeretnének részesedni ők is az általad felhajtott tranzakciós díjakból.

Megtehetnéd továbbá azt is, hogy egyoldalúan figyelmen kívül hagysz bizonyos tranzakciókat és nem vezeted be őket a tranzakciós naplóba. Azonban ha csak egy kicsivel több a hashkapacitásod, mint a hálózat maradékáé, akkor csak ideig-óráig késleltetheted egyes tranzakciók bejegyzését; a bármeddig való késleltetéshez sokkal nagyobb túlsúlyt kell szerezned.

Ezzel azonban egyrészt le is mondanál az ezekhez a tranzakciókhoz felajánlott tranzakciós díjakról, másrészt pedig ha ezt tennéd, úgy bárki könnyen rád bizonyíthatná, hogy miben is mesterkedsz. Ez az egyik óriási stratégiai előnye annak, hogy a Bitcoin minden tranzakciója nyilvános; bárki, bármikor, zavartalanul és akadálytalanul végezhet könyvvizsgálatot, közzéteheti az eredményeit, és azokat szintén bárki ellenőrizheti is.

Ha tehát a hálózati hashkapacitás nagyobbik része birtokában megtagadod egyesektől a szolgáltatást és elnyomod a tranzakcióikat (vagy egyszerűen csak túl magas díjakat követelsz a versenytársaidhoz képest), akkor hamar lelepleződnél, és a közösség könnyen meg is szabadulhat tőled. Dönthetnek például úgy, hogy a továbbiakban kollektíven feketelistára teszik a munkádat, és inkább a tisztességes vetélytársaidra építenek.

Ez persze szintén nem lenne egy kellemes helyzet a hálózatnak, mivel a felhasználók nagy tömegét tekintve a kollektív feketelistára tétel megszervezése és koordinálása bizony nem egyszerű – de technikailag mégis megoldható nagyobb gazdasági károkozás nélkül. Mivel pedig ez a lehetőség adott, így már ennek a puszta tudata is jelentősen mérsékli a csalás csábítását a hálózati túlsúly birtokosa számára.

További lehetőség – amennyiben valóban folyamatosan fenn tudod tartani a hashelési túlsúlyodat -, ha újraírod akár a rendszer teljes tranzakciótörténetét, a kezdetektől fogva. Ez hasonló következményekkel járna, mint az előbbi csalás, és ugyanúgy is lehetne védekezni ellene; a különbség csak annyiban állna, hogy ezúttal nem a blokklánc végénél kezdenéd a manipulációt, hanem a legelején. Ehhez azonban valóban hatalmas hashkapacitás kell. Már csak a tíz perccel ezelőtti blokk “lenyomása” is óriási kihívás, az évek során felhalmozottaké pedig még monumentálisabb.

Mi több, a feketelista egy válfaját már be is építették a hivatalos Bitcoin-kliensbe, csak épp a másik oldalról közelítve meg a kérdést: feketelista helyett fehérlistával, ami nem az esetlegesen ignorálandó csalókat tartalmazza, hanem a közmegegyezéses, elfogadott, hiteles láncot – illetve annak a kliens forráskódja kiadásának pillanatában épp legfrissebben legenerált blokkjának a biztonságos hashét, amire aztán minden további blokknak épülnie kell, amit már senki nem hagyhat figyelmen kívül. Így még korlátlan hashkapacitással sem tudnád elfogadtatni a hivatalos kliens felhasználóival a saját készítésű, alternatív blokkláncodat – vagy legfeljebb csak akkor, ha megelégszel azzal, hogy a legutóbbi ilyen bebetonozott mérföldkő-blokktól kezdve írod csak újra a tranzakciókat.

És persze ott van még a Bitcoin rendszerének természetéből fakadó, úgymond automatikus védelem is az ilyesfajta támadások ellen, vagyis az a puszta tény, hogy akinek ekkora hashkapacitás áll rendelkezésére, az akkor jár a legjobban, ha azt egyszerűen rendeltetésszerűen használja a hálózat támogatására, és bányászat útján keres pénzt vele. Ha tehát mindössze annyi a célod az óriási hashkapacitásoddal, hogy minél több pénzhez juss, akkor ennek a leghatékonyabb módja egyszerűen a szokványos bányászat, vagyis a hálózattal való tisztességes együttműködés. Bármilyen meglepő is, ennél nagyobb nyereséghez semmilyen támadással, csalással vagy trükközéssel sem juthatsz (kivéve talán azt az egy esetet, ha elnyomod a többi bányász blokkjait, hogy minél több tranzakciós díjat gyűjthess be).

2. rész – avagy a többszörös elköltés

(FIGYELEM: újabb hosszú írás. Ezúttal annyi a lényeg, hogy a többszörös elköltés kivitelezése rendkívül költséges és kockázatos, a potenciális nyereség pedig a legjobb esetben is csak mérsékelt ehhez képest. Mi több, a rendszer ezzel szembeni védettsége könnyen erősíthető, így végül a támadó megint csak ott tart, hogy a játékszabályok betartásával és tisztességes bányászattal nagyobb nyereségre tehet szert, mint trükközéssel és csalással.)

Ha elnyomsz egy tranzakciót a tranzakciónaplóban, úgy lehetőséged nyílik arra, hogy egyvalakivel egy bizonyos tranzakciót láttass, valaki mással pedig már egy másikat; ehhez mindkét változatnak meg kell fizetned az árát hashkapacitásban. Az egyiket – a közmegegyezéseset, amin mindenki más is dolgozik – ingyen kapod, viszont azt követően minden újabb alternatívához le kell nyomnod a hálózat maradékát hashkapacitás terén. Ha tehát a teljes kapacitás több, mint a fele áll rendelkezésedre, úgy generálhatsz egy alternatív vonalat (néhány tíz másodperccel a múltból indítva azt), ha pedig több, mint a 2/3-a, akkor kettőt, 3/4-del hármat, és így tovább. Minden újabb változattal (ide értve az eredeti, közmegyezésest is) kifizetheted az összes bitcoinodat egyvalakinek, akik amennyiben elfogadják ezt a vonalat, úgy vélhetőleg adnak is neked érte cserébe valami értéket.

A nyereséges többszöri elköltéshez tehát bizony sok kereskedőpartnerre lesz szükséged, mert az alternatív vonalak legenerálásának költségét még nullszaldóra sem egyszerű kihozni. Vessünk csak egy pillantást a számokra! Jelenleg a közmegegyezéses hálózat mintegy 7,5 terahashsel dolgozik másodpercenként. A jelenleg nyilvánosan hozzáférhető legjobb hashteljesítményt az ATI Radeon GPU-k nyújtják, amelyek az ár-teljesítmény viszonya mintegy 2$/megahash/másodpercre tehető. Így a túlsúly megszerzéséhez eszerint mintegy 3,25 millió dollárt kell költened csak a megfelelő hardverre. (MEGJEGYZÉS: az ilyesféle becslésekben mindig van hiba; ha ilyet találsz, ne habozz rámutatni, hogy korrigálhassuk.)

Ennyi pénzért azonban már tervezhetsz és gyárt(tat)hatsz magadnak egyéni ASIC-okat is. Nagylelkűen feltételezzük, hogy 3,25 millió dollár induló költséggel a jelenlegi élvonalbeli GPU-k krémjénél is egy nagyságrenddel (10x) jobb másodpercenkénti hash/s teljesítményt érhetsz el. Elköltesz tehát 3,25 millió dollárt az indulásra a több ezer spéci ASIC-oddal, és máris egymagad uralod a hálózat hashkapacitásának mintegy 90%-át, így akár 9 alternatív tranzakciószálat is generálhatsz – vagyis akár tíz alkalommal is elköltheted az összes bitcoinodat különböző embereknek, és kérhetsz tőlük mindenféléket cserébe.

Ennek a tervnek pusztán annyi a szépséghibája, hogy ezzel egyben cáfolhatatlan bizonyítékot is hagysz magad után a tevékenységeidről: tíz különböző, a saját titkos kulcsoddal aláírt, egy bizonyos mennyiségű bitcoin-fizetést ígérő üzenetet tíz különböző embernek címezve. Ahhoz, hogy minden újabb balekot meggyőzhess arról, hogy nyugodtan átadhatják neked a bitcoinjaid ellenértékét, elejét kell venned annak, hogy észrevehessék, hogy ugyanazt a bitcoin-mennyiséget már másoknak is elígérted előzőleg. Ehhez az ő hálózataikat is a kezedben kell tartanod, hogy ne válthassanak üzeneteket egymással, és így ne leplezhessék le a csalást. És persze annak is, amit kapsz tőlük, visszavonhatatlannak és lenyomozhatatlannak kell lennie, hogy még azelőtt kereket oldhass vele, hogy rádöbbennének az átverés tényére.

Csakis akkor van esélyed tehát a befektetésed költségeinek visszanyerésére, ha találsz legalább 325.000$-nyi értéket és 10 különböző embert, aki nem csak rendelkezik azzal, de hajlandó is azt visszavonhatatlanul és lenyomozhatatlanul eladni neked. Pechedre azonban az emberek már most is alkalmaznak egy nagyon is hatékony védelmi mechanizmust ezzel a támadással szemben: egyszerűen tovább várnak, hogy biztosak lehessenek a tranzakció tényében és visszafordíthatatlanságában, mielőtt átadnák neked az értékeiket.

Ha fizetsz egy bitcoint egy étteremtulajdonosnak egy ebédért, ő pedig elfogadja azt és nekiáll elkészíteni a rendelésedet, úgy mire elfogyasztottad az ebédedet, a hálózat már meg is erősítette a tranzakciót, és a tulaj is teljesen biztos lehet benne, hogy az ebéd értékénél sokkal többe kerülne neked annak az egy bitcoinnak az újbóli elköltése (ugyebár átlagosan tízpercenként bővül a lánc egy újabb blokkal, a lehagyásához pedig az étkezésed alatt eltelt időben felhalmozódott blokkok számának tizenkétszeresére lenne szükséged Thash/s-ben).

Hasonlóképp, ha fizetsz 100 bitcoint egy műszaki boltnak valamilyen új elektronikus kütyüért, úgy ők akár másnapig is várhatnak a kiszállítással, mivel ők is tudják, hogy a fizetésed érvénytelenítéséhez annak a tranzakciónaplóban való első felbukkanása és a kézbesítés megkezdésének első pillanata között eltelt időben felhalmozódott blokkok számának tizenkétszeresére lenne szükséged Thash/s-ben.

Ha fizetsz 10.000 bitcoint mondjuk egy… nemetközi aranyrúd-kereskedőnek egy raklapnyi aranyrúdért, úgy ő akár egy-két hetet is várhat a kiszállítással. Ez esetben a bitcoinjaid újbóli elköltéséhez 7,5 Thahs/s-ot kellene teljesítened folyamatosan ez idő alatt.

Az idő múlásával, azon túl, hogy folyamatosan dolgoztatnod kell a gépeidet az alternatív tranzakciószálad fenntartásáért, egyben azt is kockáztatod, hogy a lelepleznek a hivatalos tranzakciónaplón kívüli “csevelyben”. Meglátásom szerint ezen a ponton lehetne a leghatékonyabban automatizálni az ilyesfajta próbálkozások elleni védelmet. A Bitcoin-kliensed ugyanis már azelőtt észlelheti a folyamatban lévő, többször elköltött összegeket tartalmazó tranzakciókat, és figyelmeztethet rájuk – és ugyanígy a gyanús csendre is -, hogy először felbukkanna az általad várt tranzakció a hivatalos naplóban, és megkezdődne a hálózati megerősítése blokkról blokkra. (Gyanús csendnek az számít, ha a támadó megpróbálja meggátolni, hogy értesülj a többszörös elköltéseiről; ehhez ugyanis teljesen meg kell akadályoznia azt, hogy kommunikálhass bizonyos emberekkel – akikkel ha amúgyis kommunikáltál már eddig is, úgy még gyanúsabb lesz, ha hirtelen elcsendesednek.)

Gyanítom, hogy ezen a vonalon kellőképpen praktikusan lehet védekezni az ilyesfajta támadások ellen; mi több, ilyen jellegű védelem valamilyen szinten már most is működik a Bitcoin fórumain, még ha csak korlátozott automatizálással is. Akárhogy is, ezt a fajta támadási lehetőséget nem tekintem komoly fenyegetésnek, mivel rendkívül költséges a kivitelezése, nagyon nagy a kudarc veszélye, és minimális a várható nyereség. És nagy valószínűséggel csak egyetlen egy alkalommal próbálkozhatsz meg vele.

(Ismét láthatjuk tehát, hogy a Bitcoin nyilvános tranzakciótörténete már önmagában is sokféle védekezési lehetőséget nyújt a csalókkal szemben – ellentétben egyes hipotetikus, rejtettebb információkkal dolgozó alternatív rendszerekkel.)

Persze mindig ott van a másik lehetőség is: ha már egyszer elköltöttél 3,25 millió dollárt egy olyan csúcs bitcoin-bányagépre, ami a hálózat teljes hashkapacitásának 90%-át teszi ki, úgy még mindig megteheted azt, hogy teljesen tiszta, szabályszerű bányászatba kezdesz, és learatod az újonnan generált blokkokért járó jutalom és az azoknak a tranzakcióihoz felajánlott díjak 90%-át. Ez a lehetőség még hangsúlyosabbá válik akkor, ha több bányász szövetkezik a túlsúly közös kialakítása érdekében: egy részük bármikor gondolhatja úgy, hogy hátbaszúrja összeesküvő társaik támadási terveit azzal, hogy szabályszerű bányászatba kezdenek, learatva maguknak azokat jutalmakat és díjakat, amelyekről a többiek lemondanak a tranzakciótörténet újraírásával (köszönet Brian Warnernek a konspirátorok ezen önérdekű megfontolásával kapcsolatos észrevételéért).

Forrás: Google+

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.