SHA-256 érthetően — mit csinál valójában a Bitcoin bányász?

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:

  • Egyirányú: a hash-ből nem lehet visszafejteni az eredeti adatot — mint ahogy a darált húsból nem rakod össze a szalonnát
  • Determinisztikus: ugyanaz a bemenet mindig ugyanazt a hash-t adja
  • Lavina effektus: egyetlen bit változás a bemenetben teljesen más hash-t eredményez
  • 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.

    💡 SZPONZORÁLT
    Hirdetési felület — Native tipp
    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.


    Források

  • Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System — Az eredeti Bitcoin whitepaper
  • 3Blue1Brown — But how does Bitcoin actually work? — SHA-256 és bányászat vizuális magyarázata
  • Khan Academy — Bitcoin: Cryptographic hash functions — Hash függvény alapok
  • MDPI — Custom ASIC Design for SHA-256 — SHA-256 hardver implementáció
  • Bitcoin Wiki — Block hashing algorithm — A blokk hash-elés technikai leírása
  • Szólj hozzá!

    This site uses Akismet to reduce spam. Learn how your comment data is processed.

    ×

    🚀 Ne maradj le!

    Iratkozz fel hírlevelünkre és értesülj elsőként a legfrissebb kripto hírekről, elemzésekről és bányászati tippekről!

    Newsletter / Hirdetési felület