A bányászat rejtelmeiről
2011-07-09Szerző: Tessel Renzenbrink
(Haladók és profik ugorhatnak rögtön az utolsó részhez (FPGA-k vs ASIC-ek), mivel számukra leginkább csak az lehet érdekes. Kezdők olvashatnak tovább. 🙂 )
Esett már szó a Bitcoin óriási pénzrendszer-forradalmasító lehetőségeiről. Nem meglepő módon az elmúlt hetek során egyre nagyobb figyelmet is vont magára ez a digitális valuta: politikusoktól (akik be akarják tiltani) közgazdászokon át (akik főként elméleti szempontból érdeklődnek iránta) tolvajokig mindenkit érdekel, ez pedig a bitcoin árfolyamára is igen jó hatással van. Egy évvel ezelőtt, amikor még csak a rajongói kemény mag játszadozott a rendszerrel, egy bitcoin (1 BTC) alig néhány dollárcentet ért, míg ma már 16$ körül mozog 1 BTC ára. A bitcoinok előállításának folyamatát bányászatnak nevezik. Mivel pedig ez egy nyílt forráskódú, P2P-pénz, ezért bárki elkezdhet bányászni, aki csak akar. De mit is jelent ez pontosan, és milyen hardverre lesz szükségünk hozzá?
A bitcoin a világ első decentralizált valutája, ezért a rendszer tervezője – bizonyos Satoshi Nakamoto – nagy hangsúlyt fektetett az egyes bitcoinok többszöri elköltésének megakadályozására. A hagyományos, központosított pénzrendszereknél egy központi hatóság kíséri figyelemmel, ellenőrzi és hitelesíti az összes tranzakciót, így könnyen gondoskodhat róla, hogy egy pénzegységet mindig csak egyszer lehessen elkölteni. Mivel azonban a Bitcoinnak ezzel szemben nincs központi hatósága, hanem P2P-infrastruktúrával – elosztott hálózattal – dolgozik, melynek minden csomópontja egyenrangú, ezért a bitcoinok többszöri elköltését a rendszer úgy akadályozza meg, hogy a hálózat minden egyes csomópontját értesíti minden egyes tranzakcióról. Más szóval, a Bitcoin-kliensek minden egyes elindított tranzakciót bejelentenek a hálózat egészének, majd amikor a hálózat hitelesítette a tranzakciót, akkor fel is jegyzik azt a hálózati nyilvántartásba. E nyilvántartás védelméről a rendszer tervezője hasheléssel és munkabizonyítékkal gondoskodott.
Mi is az a bányászat?
Az új tranzakciók adatait a kliensek blokkoknak nevezett csomagokban küldik szét a hálózatban, melynek a csomópontjai aztán hash-funkciókká számítják át a blokkok adatait. A hash egy matematikai funkció, ami egy nagy adatkészletet egy viszonylag rövid, például ilyesféleképpen kinéző adatsorozattá konvertál: 93ef6f358fbb998c60802496863052290d4c63735b7fe5bdaac821de96a53a9a. Ugyanaz az adatkészlet mindig ugyanazt a hash-értéket is eredményezi, de ha akár csak egy egészen apró módosítást is eszközölnek az adatkészletben, úgy a hash-értéke is mindjárt teljesen más lesz. Ezért tehát egy már lehashelt blokk adatait nem lehet megváltoztatni anélkül, hogy ennek megfelelően meg ne változtatnánk a hashét is.
Minden egyes blokk magában foglalja az őt megelőző blokk hashét is, így a rendszer indulása óta lehashelt összes blokk egyetlen hosszú blokkláncot alkot, melynek a legelső, kiinduló blokkját ősblokknak (genesis block) nevezzük. Ez a blokklánc tartalmazza tehát a rendszer összes hitelesített tranzakcióját, a kezdetektől fogva. Egy már hitelesített blokk tranzakcióinak utólagos módosításához az egész blokkot újra kellene generálni, és ugyanúgy bele kellene illeszteni az azt megelőző blokk hashét is – valamint az utána következő összes blokkot is, mivel a módosított blokknak már más lesz a hash-értéke, és így az utána következők is mind megváltoznak a láncolatban. És hogy még nehezebb dolga legyen a leendő csalóknak, nem elég csupán kiszámítani a hash-értékeket, de még egy bizonyos feltételnek, jelesül egy úgynevezett nehézségi célszámnak is meg kell felelni, ez pedig nagyon nem egyszerű. Az ennek érdekében végzett számítások hosszú sorát nevezzük munkabizonyítéknak (proof of work).
Magát a hash-értéket igen könnyen, egy szempillantásnál is gyorsabban kiszámolja bármilyen számítógép. Ahhoz azonban, hogy a rendszer valóban el is fogadjon egy bizonyos hash-értéket egy blokk “aláírásaként”, annak egy bizonyos feltételnek is meg kell felelnie. Ez az előre meghatározott feltétel a nehézségi célszám, ami jelenleg annyit tesz, hogy csak olyan hash-értéket fogad el a rendszer, ami négy nullával kezdődik. Annak érdekében, hogy előállíthasson egy ilyen hash-értéket, a számítógép egy véletlenszerűen generált adatszeletet szúr be az éppen számítás alatt álló blokk fejlécének direkt erre a célra kialakított speciális mezőjébe. Ezt a véletlenszerűen generált adatszeletet nonce-nak (ejtsd: “nonsz”) nevezzük. A számítógépnek sokmillió lehetséges kombinációt végig kell zongoráznia, mire megtalálja a megfelelő nonce-ot, ami kellőképpen alacsony (négy nullával kezdődő) hash-értéket eredményez. A megfelelő értéket semmilyen más módon nem lehet kiszámítani vagy kitalálni, csak “nyers erővel” – az összes lehetséges kombináció végigpróbálgatásával. Ez tehát egy igen idő- és energiaigényes feladat; a nehézségi célszámot pedig mindig úgy állítja be a rendszer, hogy a teljes hálózat összesített számítókapacitása is csak átlagosan tízpercenként találhasson egy érvényes hash-értéket a legújabb blokk hitelesítéséhez. Egy hamisított blokknak a blokkláncolatba való beszúrásához tehát az egész hálózat számítókapacitását felül kell múlni, ez pedig csak úgy lehetséges, ha a hálózat számítókapacitásának több, mint a fele a hamisító kezén van.
Amikor aztán egy sikeresen lehashelt blokkot a hálózat is hitelesít, és beilleszti a blokkláncolatba, a megfelelő megoldással elsőként előrukkoló csomópont 50 BTC jutalmat kap a munkájáért. Ezért nevezik bányászatnak a blokkhashelés folyamatát; a jutalom ösztönzi a csomópontok gazdáit arra, hogy folyamatos blokkhashelésre fordítsák az erőforrásaikat, folyamatosan védve így a hálózatot a csalók machinációitól. Hogy mikor melyik csomópont találja meg elsőként a megfelelő megoldást, az kizárólag szerencse kérdése – de persze minél nagyobb számítókapacitás áll egy bányász rendelkezésére, annál nagyobb az esélye az elsőségre és ezáltal a jutalom bezsebelésére. Minél magasabb egy adott hardver Mhash/s (millió hash per másodperc)-értéke, annál jobbak az esélyei a győzelemre.
Hardver
A kezdet kezdetén a hálózat még csak alig néhány csomópontból állt; ennek megfelelően a nehézségi célszám is olyan alacsony volt, hogy már minimális számítókapacitással – csak CPU-val – is könnyedén bányászhatott bárki bitcoinokat. Mára azonban a CPU-bányászat napjai végleg leáldoztak, helyettük már a GPU-k uralják a terepet. A CPU a számítógép fő feldolgozó egysége, ez végzi el a rajta futtatott programok működtetéséhez szükséges számításokat. Ennek megfelelően nem is arra tervezték, hogy egy bizonyos feladatnak szentelje magát, hanem arra, hogy minél gyorsabban tudjon váltani sok különböző feladat között – így azonban nem is túl jó a hashelésben (bár persze képes rá, csak elég rossz hatásfokkal). Ezzel szemben a GPU-kat, vagyis a grafikai feldolgozó egységeket már speciális feladatok ellátására tervezték; játékokhoz és látványtervezéshez, pixelek millióinak vezényléséhez. Mivel pedig ezek a feladatok összetett, de alapvetően ismétlődő jellegű számítások elvégzését igénylik, ezért a GPU-k már sokkal hatékonyabbak a hashelésben, mint a CPU-t.
Bárki összeállíthat magának egy dedikált bányászrendszert – csak pénz kérdése az egész. Ha például összeraksz egy MSI 890FXA-GD70-es alaplapot egy AMD Sempron 140 CPU-val és három Radeon HD 6990 GPU-val, akkor megközelítőleg 2,1 Gigahash per másodperc (Ghash/s) értéket érhetsz el. Egy bányászrendszer (mining rig) összeállításakor a szükséges hardverek ára mellett az áramfogyasztásukra kell még nagyon odafigyelni, mivel míg az előbbi csak egyszeri, induló költség, addig az utóbbi folyamatos működési, és így leginkább ettől is függ, hogy mennyire lesz költséghatékony a rendszered. Az előbb leírt rendszer például mintegy 3.021$-ból (2.132€-ból) állítható össze, és mintegy 1,3 Kw/h-t fogyaszt. Az áram árát a te lakóhelyeden pedig értelemszerűen csak te tudhatod.
A jelenlegi nehézségi célszám mellett a 2,1 GHash/s-es rendszer egy nap alatt átlagosan 1,5 BTC-t bányász ki, ami a jelenlegi (június 26-ai) árfolyam mellett kb. 24$-t ér. Manapság azonban egyetlen bányászrendszerrel csak egyetlen apró halacska leszel a tóban. Az igazán nagy játékosok egyszerre 48 vagy még több GPU-val dolgoznak, hasonlóan például az ebben a videóban megszólalóhoz, aki nem kevesebb, mint 48 Ghash/s-es értékre törekszik. Ezért érdemes inkább csatlakoznod egy bányásztársuláshoz; ezeknek az a lényege, hogy többen dolgoznak együtt a blokkokon, és elosztják egymás között a szerzeményeiket.
FPGA-k vs ASIC-ek
Bár jelenleg a GPU-k uralkodnak, a Bitcoin hálózatának gyors terebélyesedésével rövidesen az ő idejük is lejárhat, mivel a hálózat növekedésével arányosan nő a célszám is, hogy továbbra is átlagosan tíz percenként készüljön el egy újabb blokk. Ennek megfelelően a Bitcoin-közösségben egyre élénkebben tárgyalnak dedikált bányászhardverek tervezéséről, május 20-án pedig már meg is jelent az első nyílt forráskódú bitcoin-bányász FPGA (utólag, vagyis a legyártását követően programozható chip). Egy bizonyos Progranism nevezetű fejlesztő közreadott kódjával egy Terasic DE2-115 FPGA-t foghat bányászatra az ember. Ez 595$-ba kerül és 80 Mhash/s (M mint mega-) értékkel dolgozik, tehát túl drága és nem is elég hatékony a jelenlegi körülmények között, de mindenképpen egy kezdet – és eljöhet még az a nap, amikor a FPGA-s bányászat már hatékonyabb lesz a GPU-snál, mivel az FPGA-k lényegesen kevesebb áramot fogyasztanak. Minél lejjebb viszik a nehézségi célszámot, annál több áramot igényel majd egy blokk legenerálása – így rövidesen kiemelten fontos szemponttá fog válni a wattonkénti számítókapacitás optimalizálása is. Az FPGA-bányászok további fejlesztésével értelemszerűen a teljesítményük is drámaian megnőhet, így egyre jobban előtérbe kerülhetnek majd.
A GPU-k trónjára pályáznak továbbá az ASIC-ek, az alkalmazásspecifikus integrált áramkörök is; ezek a specializált chipek még az FPGA-knál is drágábbak, mivel egyéni igényeknek megfelelően készítik őket. Ezek is sokkal kevesebb árammal dolgoznak, mint a GPU-k, és még magasabb hash/s-értékkel is kecsegtetnek, mint az FPGA-k. Az ASIC-bányászat ideje akkor jöhet el, ha már elég sokan bányásznak majd ahhoz, hogy valamelyik gyártó fantáziát lásson a dologban, és befektessen egy ilyen chip megtervezésébe, fejlesztésébe, legyártásába és piacra dobásába. Egyelőre azonban a Bitcoin rendszere fiatal, és még senki sem tudhatja, hogy végül mi lesz belőle. A jövő pénze? Vagy csak egy érdekes kísérlet? A LargeCoin a maga részéről az előbbire fogad, és ennek megfelelően már be is jelentették, hogy még az idén ősszel piacra dobnak egy megfizethető hashelő ASIC-ot. Az egyre csak emelkedő árfolyamot elnézve valószínűleg jó helyre tették a tétjeiket.
Forrás: tech the future
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.