Ha valaki megkérdezi, mit csinál egy Bitcoin bányász, a legtöbben azt felelik: „Bitcoint termel.” De mit csinál valójában, fizikailag, számítástechnikailag? A válasz egyetlen szóban: hash-el. Másodpercenként több százbilliószor próbálkozik egy matematikai rejtvénnyel, aminek a megoldása a Bitcoin hálózat alapja. Ha ezt nem érted, a kriptovaluták egész világát félreérted. Nézzük meg egyszerűen — de pontosan.
Mi az a hash függvény?
A hash függvény egy matematikai „húsdaráló”: beleteszel bármilyen adatot (egy szót, egy fájlt, egy teljes könyvet), és kijön belőle egy fix méretű, egyedi lenyomat. A SHA-256 esetében ez a lenyomat mindig pontosan 256 bit hosszú — 64 hexadecimális karakter.
Három alapszabály:
Próbáljuk ki fejben:
- `”Hello”` → `185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969`
- `”Hello!”` → `334d016f755cd6dc58c53a86e183882f8ec14f52fb05345887c8a5edd42c87b7`
Egy felkiáltójel — és a kimenet felismerhetetlen. Ez a lavina effektus, és ez a SHA-256 egyik legfontosabb tulajdonsága: lehetetlenné teszi a „közelítést.” Nem tudod fokozatosan kitalálni a megoldást — vagy eltalálod, vagy nem (Bitcoin Whitepaper).
A bányász feladata: a nonce vadászat
Most, hogy tudod mi a hash, nézzük meg mit csinál vele a bányász. A feladata egyetlen mondatban:
> Találj egy számot (nonce), amivel a blokk hash-e kisebb, mint a hálózat által meghatározott célérték (target).
A blokk header — amit a bányász hash-el — hat mezőből áll:
| Mező | Mi ez? | Méret | |——|——–|——-| | Version | Protokoll verzió | 4 byte | | Previous Block Hash | Az előző blokk hash-e | 32 byte | | Merkle Root | Az összes tranzakció összefoglalása | 32 byte | | Timestamp | Időbélyeg | 4 byte | | Bits | A nehézség kompakt formában | 4 byte | | Nonce | A bányász változtatható száma | 4 byte |
A bányász veszi ezt a hat mezőt, összefűzi, és kétszer lefuttatja rajta a SHA-256-ot (erről később). Aztán megnézi az eredményt: ha a kapott hash kisebb a target-nél — nyert. Ha nem — növeli a nonce-ot eggyel, és újra próbálkozik. És újra. És újra. Másodpercenként több százbilliószor.
A nehézség és a target: az önszabályozó rendszer
A Bitcoin hálózat úgy van megtervezve, hogy átlagosan 10 percenként szülessen egy új blokk. De ha egyre több bányász csatlakozik (tehát több hashrate áll rendelkezésre), a blokkok gyorsabban jönnek létre. Ilyenkor a protokoll automatikusan nehezíti a feladatot.
728×90 vagy responsív
Ez a nehézség-igazítás 2016 blokkonként történik (kb. kéthetente):
- Ha az előző 2016 blokk átlagosan gyorsabban készült el 10 percnél → nehézség nő
- Ha lassabban → nehézség csökken
Gyakorlatilag a target szám csökken: a hash-nek egyre több nullával kell kezdődnie. 2009-ben elég volt, ha a hash néhány nullával kezdődött. 2026-ban a target olyan alacsony, hogy a hash-nek nagyjából 19–20 vezető nulla hexadecimális karakterrel kell kezdődnie. A valószínűsége annak, hogy egy véletlen hash teljesíti ezt, elképzelhetetlenül kicsi — ezért kell másodpercenként billió próbálkozás.
Ez a rendszer zseniálisan elegáns: nem kell senkinek beállítania — a protokoll önmagát szabályozza, függetlenül attól, hogy tíz bányász van a hálózaton vagy tízmillió.
Double SHA-256: miért hash-el a Bitcoin kétszer?
A Bitcoin nem egyszerűen SHA-256-ot használ, hanem SHA-256d-t: az adatot kétszer futtatja át a hash függvényen. Tehát: `SHA-256(SHA-256(block_header))`.
Miért? Több oka is van:
- Length extension attack védelme: az egyszeres SHA-256 sebezhető egy speciális támadástípussal, ahol a hash kimenetéhez adatot fűzhetnek anélkül, hogy ismernék az eredeti bemenetet. A dupla hash-elés ezt eliminálja.
- Extra biztonsági margó: Satoshi Nakamoto a Bitcoin tervezésekor konzervatív biztonsági döntéseket hozott — ha a SHA-256 ellen valaha részleges támadás születik, a dupla alkalmazás extra védelmet ad.
- Egyszerűség: a double hash könnyen implementálható hardverben — az ASIC chipek két SHA-256 egységet fűznek sorba, és a pipeline természetesen kezeli.
A Merkle fa: tranzakciók ujjlenyomata
A blokk header-ben található Merkle Root az összes tranzakció egyetlen hash-be sűrített összefoglalása. Hogyan működik?
Képzeld el, hogy egy blokkban 4 tranzakció van: A, B, C, D. A Merkle fa így épül fel:
„` Merkle Root / \ Hash(AB) Hash(CD) / \ / \ Hash(A) Hash(B) Hash(C) Hash(D) „`
Először minden tranzakciót külön hash-elnek. Aztán a hash-eket párosával összefűzik és újra hash-elik, egészen addig, amíg egyetlen hash marad — ez a Merkle Root.
Miért fontos ez a bányász számára? Mert a Merkle Root-ot a bányász a blokk header-be illeszti, és ez alapján hash-eli az egész blokkot. Ha bármelyik tranzakció megváltozik, a Merkle Root megváltozik, és az egész blokk hash-e érvénytelenné válik. Ez biztosítja, hogy egyetlen tranzakciót sem lehet utólag módosítani anélkül, hogy az egész blokk újraszámítását igényelné.
A Merkle fa ráadásul lehetővé teszi az SPV (Simplified Payment Verification) ellenőrzést: egy könnyű kliens anélkül ellenőrizheti, hogy egy tranzakció benne van-e egy blokkban, hogy az összes tranzakciót letöltené — elég a Merkle-útvonal néhány hash-e.
Egy gyakorlati példa: hogyan néz ki mindez?
Tegyük fel, hogy a bányász a következő blokk header-t kapta:
- Previous hash: `000000000000000000034a…` (az előző blokk)
- Merkle root: `7f8b2c…` (az aktuális tranzakciók összefoglalása)
- Target: a hash-nek 19 nulla hexadecimális karakterrel kell kezdődnie
A bányász elkezdi:
- Nonce = 0 → SHA-256d → `8a3f21…` ❌ (nem kezdődik elég nullával)
- Nonce = 1 → SHA-256d → `c71bb4…` ❌
- Nonce = 2 → SHA-256d → `3e90a1…` ❌
- … (több százmilliárd próbálkozás) …
- Nonce = 2 841 592 761 → SHA-256d → `0000000000000000000a7f…` ✅ TALÁLT!
A nyertes blokk hash-e közzétételre kerül, a hálózat ellenőrzi (egyetlen hash-eléssel — a megoldás ellenőrzése trivális), és a bányász megkapja a 3,125 BTC jutalmat plusz a tranzakciós díjakat.
Miért számít ez neked?
A SHA-256 nem csak egy technikai részlet — ez a Bitcoin biztonságának alapja. Azért nem lehet Bitcoint hamisítani, azért nem lehet tranzakciókat visszafordítani, azért nem lehet a rendszert manipulálni, mert a SHA-256 egyirányú és megjósolhatatlan. Aki bányász gépet vásárol, valójában nem „termel” semmit — hanem biztosítja a hálózatot, és ezért kap jutalmat.
A következő alkalommal, amikor valaki azt mondja, hogy a Bitcoin bányászat „értelmetlen energiapazarlás,” kérdezd meg tőle: „Értelmetlen egy zárat rátenni a széfre?” Mert a SHA-256 pontosan az: a világ legerősebb digitális zárja, amit több mint 1 Zettahash/s számítási kapacitás véd.