Vigyázó szemetek az 51%-os támadásokra vessétek!

Az utóbbi időben igen megszaporodtak az 51%-os támadások. Ennek oka igen komplex, de mindenképp érdemes alaposabban foglalkozni vele, mivel a támadások talán legfontosabb tanulsága az, hogy a közösség nagy része etéren kifejezetten alulinformált. A tavalyi évben számos alkalommal írtam már az 51%-os attackról, így most nem tartanék teljes kiselőadást a technológiai háttérről. Sokkal érdekesebb arról beszélni, hogy mégis miért tud egyáltalán kialakulni ilyen típusú támadás, ha egyszer a blockchain technológia világmegváltó attitűdjének kulcseleme az, hogy az ökoszisztéma minden szereplője abban motivált, hogy tisztességes legyen, hiszen ezzel jár jól.

Ez a feltételezés úgy egyébként teljesen igaz… bizonyos feltételek teljesülése esetén.

A krízispont mindenképpen ott jön el (mindig is ott jött el), amikor több PoW (Proof of Work) konszenzus típusú kriptopénz osztozik ugyanazon a számítási kapacitáson. Aki kicsit is foglalkozott már a publikus blockchainek technológiájával, az pontosan tudja, hogy a blockchaineken belül attól igaz valami, hogy mennyien állítják azt. Ennek megfelelően a hamis is lehet igaz, ha kellően sokan (50%+1 vote) állítják azt igaznak. Az ökoszisztéma minden szereplője rendelkezik bizonyos szavazati mennyiséggel, melynek súlya lehet akár mondjuk a letétbe helyezett értéke mennyisége (PoS), lehet akár birtokolt vagyon mennyisége után delegált szavazatok száma (DPoS) és persze lehet a ‘hagyományos’ elvégzett munka bizonyítéka (PoW) modell is. Plusz emellett lehet másik 82,5 egyéb módszer, ami éppen kipottyan egy matematikus fejéből miközben egy tetszőleges középkori csatát felelevenítő filmet néz éppen, ahol a kékre mázolt képű főszereplő – a beivódott szintetikus festék által kimart – képpel ordítja a freedomot.

Szóval a képlet igen egyszerű (PoW) esetén: Ha van a világon X mennyiségű specifikus számítási kapacitás (legyen mondjuk ez pl az SHA256D), amin osztozik 50-50%-ban két kriptopénz és az összes kapacitás (hashing power) 5-6 nagy poolban összpontosul, akkor igen kicsi rá az esélye, hogy bármelyik fél is ki legyen téve az 51% támadás esélyének, hiszen iszonyatosan magas a risk szemben a rewarddal, mivel a támadáshoz több órán keresztül kell blokkokat gyártani a kamu láncon, majd ha sikerül behozni a +7 vagy +21 blokk előnyt, akkor propagálni a blokkokat és végrehajtani a double spendinget.

Na de mi a helyzet akkor, ha mondjuk az X mennyiségű hashing poweren nem 50-50%-ban osztozik a két kriptopénz, nem pl. 90-10%-ban. Itt már jól látható, hogy a nagy láncon lévő erőforrásokból elég kicsit >10%-ot elvonni ahhoz, hogy a kisebb láncon végre lehessen hajtani a támadást, ami más sokkal kevésbé tűnik annyira krízisnek.

Persze van egy fontos tényező, amit nem szabad ilyenkor sem figyelmen kívül hagyni: a risk/reward ratio esetén fontos kérdés a két lánc közötti értékkülönbözet is.

A nagyobb láncon ugyanis folyamatosan termelődik érték, ha a bányászok tisztességesen bányásznak. Egy összehangolt (51%) támadás esetén tehát a risk/reward ratio-t erősen rontja, hogy az átirányított erőforrások bizony nem termelnek a nagyobb láncon, ami okán bevételtől esnek el a támadók. Egy 90-10%-os megosztottságú majority/minority hashing power lánc esetén, ha a két lánc marketcapja között is 90-10%-os az arán, akkor a támadás miatt átirányított erőforrások sokkal értéktelenebb coint termelnek, pláne, ha valamiért nem is jön össze a támadás sem. Ez persze mindjárt nem is igaz annyira, ha a két lánc (marketcap) értéke a 90-10%-os hashing power eloszlás ellenére más arányszámot mutat.

Vegyük példaként az Ethereum és az Ethereum classic “testvéreket”, akik lényegében javarészt osztoznak az Ethash algon. 1:31,5 a két coin között a hashing power arány, nyilván a Ethereum javára. Ehhez mérten az árfolyamuk aránya 1:39-hez arányban áll a jelenlegi 600US$ ethereumot és a 15.39US$-os Ethereum Classicot figyelembe véve. Ennek megfelelően nem kifejezetten tűnik profitábilisnek egy ETC 51%-os attack az eddig megismert tényezők kapcsán.

Azonban akad itt még egy fontos tényező, amire nem árt odafigyelni, ez pedig az adott algo bányászatának profitabilitása. Jól látszik, hogy a legtöbb algoritmus esetén a mining diffuculty fejlődésre vajmi kevésbé hatott az, hogy kvázi piaci recesszió van. A bányászokat szemlátomást nem érdekli az alacsony árfolyam miatti alacsony profitabilitás, olyan mértékben nő folyamatosan a kapacitás, ami már-már aggasztólag hathat. Az elmúlt 2 napban a Bitcoin hálózaton végrehajtott difficulty adjustment során a difficulty 0,7T-vel nőtt és így majdnem átlépte már az 5T-s értéket. A dolog abszurditása, hogy kerek egy évvel ezelőtt a TELJES difficulty összesen volt 0.678T, tehát csak az elmúlt bő két hétben állítottak üzembe akkora mennyiségű SHA256D hashing kapacitást, amit egy évvel ezelőttig ÖSSZESEN (8 év alatt) állítottak üzembe, kezdve onnantól, hogy Satoshi nekifogott a saját gépén bányászni, majd lecseszte Hanyecz Lacit, hogy a bányászat mellett azért jó lenne, ha néha kódolna is egy kicsit, ha már egyszer core devnek jelentkezett.

Szóval az utolsó faktor az 51%-os attack kapcsán a profitabilitás. Minél inkább nő a konkurencia és ezáltal csökken az aktuális árfolyamhoz képesti profit margin, annál inkább tűnik reálisnak, hogy a jótét bányászok úgy döntsenek, hogy legyalulnak egy minority hashing powerrel rendelkező láncot. Pontosan ez történt néhány napja a ZenCash kapcsán is, ami egyébként egy kifejezetten jó reputációnak örvendő kriptopénz, amit equihash algoval lehet bányászni, tehát a ZCash hashing powerét csapolja. A támadás pillanatában a ZenCash 1000k-s difficultyval funkcionált, amikor a ZCashnek egyébként éppen 9M körül mozgott. Tehát a két lánc közötti arány akkor éppen 1:9-hez állt. Viszonyítási alapként az árfolyamok júni 3-án az incidens pillanatában: ZCash: 250US$, ZenCash 30 dollár körül mozgott. Ergo minimálisan de érdemesebb volt a minority chaint bányászni.

Ehhez hozzájött a tény, hogy január óta a Zcash diffje duplázódott, az árfolyama pedig feleződött. Ennyi elég is volt, hogy néhány jótét lélek a sötétebb utat választva áttereljen némi hashing powert a zen-es csávók hálózatára, majd összerakjon egy double spending attackot, mely során előbb 13k, majd további 6,6k ZEN-t dupláztak, amivel összesen 550.000 dollár értékű coinhoz jutottak és nem mellesleg 30 dollárról instant szaggatták be a ZenCash árfolyamát 21 dollárra.

Az elmúlt hónapokban ez már a sokadik olyan történet, ahol minority chainek szenvednek el 51%-os támadást. A nevesebb történetek között ott volt nemrégiben a Bitcoin Gold és a Verge is.

Tanulság mindebből: Bármennyire is csábító legyen egy minority chain árelőnye, összességében nagyon komoly vakmerőségre vall, ha valaki ilyen láncokon bányászik vagy éppen használ kriptopénzeket. A PoW consensus kriptopénzek között a nyolcadik legnagyobb marketcappel rendelkező ByteCoin 51%-os támadásához kevesebb mint 1000 dollárnyi CryptoNight algo hashpowert kell bérelni. De kifejezetten ígéretes célpont lehet a közeljövőben a MonaCoin vagy akár a ZClassic is. Mindkettő ráadásul equihashes…