Tavaly októberben értekeztem hosszabban az egyik legnépszerűbb Bitcoin körüli tévhitről: A kvantumszámítógépek fenyegetéséről. Most találtam egy igen látványos levezetést, ami kapcsán időszerűnek éreztem elővenni a másik igen népszerű témát: Nevezetesen, hogy vajon mekkora esélye van egy balanceszal rendelkező address privát kulcsának eltalálására? Közismert tény, hogy a privát kulcs->publikus kulcs->address transzformáció lépései között lényegében csak matematikai műveletsor van (ECDSA+2SHA256 és a végére még egy RIPEMD-160), tehát a megfelelő erőforrások bevetésével akár találomra el is lehet kezdeni végig probálgatni az összes lehetséges privát kulcsot mondván előbb-utóbb csak belefutunk egy olyan publikus kulcsba, ami mögött vagyon is található. Mivel a Bitcoin címek 256biten képződnek, így a teljes címtartomány is 256 biten képződik. Jelenleg az UTXO táblázat 53.417.437 db tételt tartalmaz, tehát ennyi addressen van legalább egy morzsányi bitcoin.

A következő ábra azt mutatja be, hogy mekkora az eséllyel lehet beletrafálni egy értéket is tartalmazó privát kulcsba véletlenszerű próbálgatással, szemben mekkora esélye van a powerball nevű amerikai lottó megnyerésének. (5+1-et húznak 1-69-ig). A teljes powerball nyerési esélye egyébként lényegesen alacsonyabb a hazai ötös lottónál (utóbbiban kb 44 millió variáció nyerhet, az amerikai példában viszont 292 millió kombináció játszik).

Az lista alapján akkora esélyed van beletrafálni egy balanceszal rendelkező address privát kulcsába, mint egyhuzamban megnyerni az ötös lottót egymást követő 11 alkalommal…

Persze az ilyen esetekben igen fontos az időtényező is. Hiszen lottót hetente sorsolnak, egy privát kulcsot viszont pillanatok alatt lehet generálni.

Mégis mennyi időt is vesz igénybe egy kulcsgenerálás? A jó hír az, hogy jelenleg nem nagyon létezik kulcsgeneráló ASIC és az ECDSA miatt nem is túlságosan valószínű, hogy valaha is létezhetne. Ellenben tele van a világ temérdek számítási kapacitással a GPU minerek miatt. Márpedig a privát kulcsból address generálásra a GPU tökéletes. Találtam némi statisztikát a vanity address generátorok kapcsán (apropó időszerű lenne lassan egy cikk a vanity addressekről is…). Ebből a következők olvashatók ki:

  • 2 magos Corei5-2430M (2.4Ghz): ~660 KH/s
  • 20 magos Xeon E5-2650L v3 (1.8Ghz): ~3MH/s
  • 32 magos Xeon E5-2670 (2.6Ghz): ~6MH/s
  • 1 GPU+Nvidia GRID K520 (4GPU): ~23MH/s

Tehát másodpercenként 23 millió kulcsot lehet egy ilyen géppel végig próbálni. Vegyük azt, hogy valaki rákölt erre a témára temérdek pénzt és felhalmoz 1 millió ilyen gépet. Ezzel a másodpercenkénti kapacitása már elérné a 23TH/s-t. Ez még mindig eléggé sovány performancia. Álmodjunk nagyot és feltételezzünk egy komoly generációváltást vagy akár egy keygenerator ASIC fejlesztést. Ezzel mondjuk talán el tudjuk érni a Bitcoin jelenlegi teljes network hashing powerét (23EH/s), amihez ugye kell egy Paksnyi atomerőmű áram is…

Na ha mindezzel megvagyunk, akkor immáron csak 2.705^47 (270.577.970.750.242.640.000.000.000.000.000.000.000.000.000) évig kell üzemeltetni ezt az 1 millió ASIC-et, hogy biztosan találjunk legalább egy olyan addresst, amin létezik nullánál több bitcoin.

Source: Variance

%d bloggers like this: