‘Selfish mining’ elv a gyakorlatban

A tegnapi cikk kapcsán előkerült a 51% attack és a double spending gyakorlati kérdésköre. Ennek kapcsán gondoltam edukációs célzattal bemutatom az egyik legismertebb módszer lényegét, amit anno 2013-ban még Emin Gun Sirer és Ittay Eyal publikált “Majority is not Enough: Bitcoin Mining is Vulnerable” címmel.

Nézzük az egész témát a gyakorlatban. Ugye így épülnek szépen sorjában a blokkok:

A blokkokat különböző minerek/poolok hozzák létre, majd egyszer csak az egyik pool úgy dönt, hogy double spendelni akar. Ekkor az egyik pool úgy dönt, hogy végrehajt egy 51% attackot. Ehhez persze nem árt, ha az összes hashing power jóval több mint 50%-ával rendelkeznek, de szigorúan matematikai alapon erre úgy egyébként 33,3% is elég, ha a difficulty adjustment nem azonnal reagálja le a fő láncon történő hash elvonódást.

A “Selfish miner” (pirossal jelölt blokkok) elkezd gyártani egy blokkot (piros #1-es), miközben a többi miner gyárt egy blokkot az eredeti #0-ás után. A Selfish miner blokkja persze hamarabb készül el, hiszen több hashing powerrel rendelkezik. Ennek okán a selfish miner lánca lenne a hosszabb lánc, ami miatt a kék #1-es el sem készülhetne, azonban:

A Selfish miner NEM propagálja a blokkot, hanem megtartja azt magának. Így az összes többi miner valójában azt hiszi, hogy az eredeti (kék) lánc a leghosszabb.

Ezt követően a Selfish miner elkészít még egy blokkot (piros #2), mire a többi bányász is propagálja az elkészült (kék #1) blokkját. Itt a támadó már pontosan tudja, hogy olyan mennyiségű hashing power van a kezében, amivel stabilan meg tudja csinálni a támadást. Ekkor:

A támadó előveszi a meglévő – a támadásra félrerakott – coinjait és a főláncon beküldi azt az egyik tőzsdére, majd a továbbra is rejtve bányászott láncon (piros) ugyanazt elküldi egy másik tőzsdére. A rejtett (piros) láncról továbbra sem tud senki a Selfish mineren kívül, mivel ezek a blokkok nem kerülnek propagálásra a hálózat felé!

Ezen a ponton a Selfish minernek tovább kell gyártania a blokkokat a piros láncon, míg a főláncon (kék) megvárja, hogy megtörténjen a 20 confirmation, amíg az exchange elkölthetővé teszi a beküldött coinokat. Amikor ez megtörténik, akkor azonnal eladja a coinokat és az ellenértéket valamilyen gyorsan kiküldhető formában, lehetőleg privacy coinok (zcash, monero, stb.) formájában kimenti a tőzsdéről. Megvárja, amíg a kiküldés is confirmálódik, majd fogja magát és elkezdi szépen lassan propagálni a piros lánc blokkjait:

A propagálás végére a nodeok azt fogják látni, hogy megjelent egy újabb lánc, ami sokkal hosszabb, tehát ezt követően mindenki dropolja az eredeti kék láncot és folytatják a felfedett selfish miner által gyártott láncot. Amint a második láncot elkezdik folytatni a rendes bányászok is valójában nem csak, hogy megtörténik ugyanannak a coin mennyiségnek az elküldése egy másik exchangere (xchg#2), de egyből meg is kapja a 20 confirmation-t, tehát azonnal el is költhető lesz a másik láncon és másik exchangen ugyanaz a coin, ami alig néhány blokkal korábban egyszer már elköltöttek a korábbi (kék) láncon. Természetesen ezt a támadó azonnal el is költi/átváltja.

Hogy ki járt rosszul az egésszel? Természetesen az első exchange (XCHG#1), hiszen a longest chainen valójában meg sem történt az az esemény, amikor beküldésre került hozzá egy adat coin és mégis el lett adva az. Tehát összességében  olyan coinokat adott el, ami valójában sosem kerül az exchangere. Itt nyilván az exchange a lehető leggyorsabban megpróbálja értesíteni a fejlesztőcsapatot és a többi exchanget is. Ám ennek reakcióideje akár extrém hosszú is lehet, így szinte biztos, hogy a támadó minden gond nélkül véghez tudja vinni a támadást és az eladásokat, hiszen valójában a második exchange (XCHG#2) jogosan birtokolta az eladásra került coinokat, mivel az ő általa ismert leghosszabb chainen tényleg hozzá kerültek a coinok.

Persze az exchangek több módon is próbálkoznak védekezni ezen támadás ellen. Pl többször is elfordult már, hogy ha egy kriptopénzből hirtelen tűnik el nagy mennyiségű hashing power, akkor az adott algo összes coinjánál felemelik a confirmation-t. Legutóbb pont a héten bekövetkezett zencash támadásnál emelték fel a tőzsdék 20-ról 120-ra a minimum confirmationt. Hogy mit érnek el ezzel? Nyilván időt nyernek, mely idő alatt esetleg ki tudják hámozni, hogy melyik addressen történt double spending, ehhez persze nagyon hatékony együttműködés szükséges az exchangek között, ami centralizált exchangek esetén még talán létezhet is, de az egyre inkább erősödő decentralizált exchange és atomic swap megoldások tükrében ezen támadások valószínűsége sokkal inkább fog növekedni.

Hogy mi erre a megoldás és ‘ha ennyire bugos, akkor egyáltalán miért nem javítják meg…’ típusú kérdésekre az egyezményes válasz: Nem minden arany ami fénylik. Aki minority hash powerrel rendelkező crypto-t bányászik vagy akár csak tart az legyen felkészülve arra, hogy ilyen támadások bármikor bekövetkezhetnek. Aki pedig szeretné magát ettől megóvni, annak:

  • csak majority hash powerrel bányászott PoW coinokat használj. (Bitcoin, Ethereum, LTC, Zcash, Monero, stb.)
  • vagy használj olyan altcoinokat, amikben a konszenzus egyéb módon (pl. PoS, DPoS) van elérve és van is mögötte akkora mennyiségű validity stake, ami alapján feltételezhető, hogy mindenki tisztességes.

 

 

Miért NINCS értelme a vegyes crypto-portfólióknak?

Most hogy egy időre elbúcsúzunk a 8k feletti BTC árfolyamoktól és újra élet költözik az altcoinokba, időszerű lehet beszélni a vegyes cryptovaluta portfóliókról. Lelkes követője vagyok a nemzetközi élmezőny mellett egyre erősebb hazai cryptovaluta portfóliómenedzserek gyarapodó táborának. Különösen azoknak, akik a napi kereskedés mellett időt és energiát szánnak arra, hogy a cryptovaluta-evangelizációban is részt vegyenek. Tegnap a Blockchaineum konferencián élőben is lehetőségem nyílt több szakértő (köztük Kallós Péter) portfólióalkotási technológiáját is meghallgatni. Ezen elvek jellemzően arról szólnak, hogy valamilyen elv mentén képezz diverzifikált kosarakat, amiben kellően színesen összeválogatva tárolj altcoinokat és a bitcoint. Ezen post célja az, hogy – minden tiszteltem ellenére is, de – megcáfoljam a neves szakértők portfólióképzési javaslatait, mivel ezen javaslatok lényegében a hozam/kockázat minimalizálás hamis illúziója mellett elmaradt hasznot eredményeznek.

A diverzifikáció alapvető eszköze a pénzügyi kultúrának. Adja persze magát a kérdés, hogy miként is kell értelmezni a diverzifikációt, a szakma ezt eképp képzeli el: “Portfólió diverzifikáció: a befektetett összeg több olyan elemre kerül szétbontásra melyeket jellemzően más és más piaci hatások befolyásolnak, így jelentősebb negatív piaci hangulat esetén is minimalizálódik annak negatív hatása.”

Ugyanazon kategóriába tartozó befektetési terméket jellemzően azonos piaci hatások mozgatják. Éppen ezért érdemes a portfólió megválasztása esetén vizsgálni azok korrelációját. A piaci hatásokra azonos módon reagáló befektetési termékek várhatóan egységesen termelnek mind nyereséget, mind veszteséget. Ez nem szolgálja a magánbefektető „diverzifikálási” célját éppen ezért lehetőség szerint kerülendő. A korreláció értékét -1 és 1 között mérjük. Az érték minél közelebb van az 1-hez annál inkább elmondható, hogy ezen termékeket közös piaci hatások mozgatják, tehát ezen termékek közös portfólióban/kosárban tartása NEM eredményez valós divezifikációt. Hogy mennyire is releváns mindez? Nézzünk egy a cryptovaluta világtól teljes mértékben elrugaszkodott példát:

Folytatás…

Halloweeni rémtörténet

Ami az éjszaka történet a Bitcoinnal az tényleg már-már a halloweeni gyerekriogatások kategóriájába esik. Úgy néz ki, hogy a Bitcoin végig látogatta az összes altcoint és mindenhol ellőtte a “trick or threat!?” kérdést. A jelek szerint mindenhol csokit kapott.

Persze nehéz szó nélkül elmenni az a tény mellett, hogy irreálisan gyors volt az este folyamán a gyarapodás. A Bitcoin piaci kapitalizációja veszélyesen megközelítette a 100 milliárd dollárt. Ezen a szinten már az amerikai ipar igen neves szereplőit is beelőzte piaci értékben (hol van már a paypal és a netflix…)

Bár tény, hogy az elmúlt napok erősödését jellemzően az altok finanszírozták. Ma viszont már jól látszik, hogy mérhető szinten növekedett az összesített piaci kapitalizáció, ami arra utal, hogy tetemes mennyiségű új fiat áramlott be a piacra.

Óva intenék azonban mindenkit, hogy az “aranyláz” hatására most adja el mindenét vaterán és kiköltözve egy sátorba a természet lágy ölén várja ki a crypto-haven-t. Mindazon túl, hogy alapvetően értetlenül állok az ilyen opportunisták láttán sose feledjük el a nagy piaci befektetők és manipulátorok azon mondását, hogy: “Akkor veszek amikor mindenki elad ás akkor adok el amikor mindenki vesz…”. Ahogy épp az imént írtam az egyik barátomnak: “Ha most NEM veszel, akkor csak a kihagyott lehetőséget bukod el, ha viszont mégis most veszel és jön egy flash-crash, akkor viszont a pénzed”

Tessék ésszel játszani és ne feledjük, hogy ma péntek 13 van… Lehet, hogy ez neked semmit nem mond, de kellően nagy a Bitcoin befektetői bázis entrópiája ahhoz, hogy egy igen nagy részét ez kellően paranoiássá tegye. 🙂

Folytatás…

Bitcoin: SegWit… Most akkor lesz vagy nem lesz?

Nagy hírként járta be a világot, hogy a bitcoin minerek össz hash teljesítményéből 83%-ot uraló 56 nagyvállalat (ennyit a közösségi erőről…) megegyezett a SegWit implenetálásáról és a 2Mb-os blockméret forkolásról, mindezt várhatóan még akár idén szeptember előtt meg is lépnék. A hír az egekbe röpítette a BTC árát és a BTC-vel együtt a legtöbb altcoin is hatalmas pávatáncot járt az elmúlt napokban. Mielőtt rátérnék arra, hogy miért írtam az előző mondatot múlt időben tisztázzuk azért, hogy mi is ez a hard fork és végkép mi ez a SegWit…

A bitcoin technológia arra épül, hogy minden egyes block 1 Mb méterű, amely tartalmazza a tranzakciókat és azok hitelesítő aláírásait is. A blokkok fix időközönként kerülnek kiadásra, így limitált, hogy darabszámra mennyi tranzakció futhat párhuzamosan. Ezt a limitet manapság nagyon sűrűn kiüti az aktuális forgalom, ami miatt előfordul, hogy akár 1 órán túlra is csúszhat egy-egy tranzakció hitelesítése. Ez pedig nem igazán néz ki jól egy digitális fizetőeszköznél. Ezen problémát kétféleképpen lehet orvosolni:

Folytatás…