
Bitcoinin louhinta kynällä ja paperilla — nörttien äärimmäinen kuntoilu
Bitcoinin louhinta kynällä ja paperilla
Jossain vaiheessa jokainen krypton harrastaja miettii: "Mitä louhinta oikeastaan on?" Useimmat googlaa, lukee artikkelin SHA-256:sta, nyökkäilee ja siirtyy eteenpäin. Mutta entä ne meistä, joilla on pakkomielteinen tarve ymmärtää asiat oikeasti?
Heille on loistavia uutisia: Bitcoinia voi louhia kynällä ja paperilla. Huonoja uutisia on myös: se kestää hieman kauemmin kuin ASIC-laitteella. Noin 2,5 × 10¹⁵ vuotta kauemmin.
Mitä "louhinta" oikeastaan tarkoittaa?
Ennen kuin tartutaan kynään, ymmärretään mitä tehdään.
Bitcoin-louhinta on pohjimmiltaan arvauskilpailu. Louhija ottaa joukon tietoja (edellisen lohkon tiivisteen, transaktiot, aikaleiman ja oman satunnaisluvun nimeltä nonce) ja ajaa ne SHA-256-tiivistefunktion läpi — kahdesti. Jos tuloksena oleva 256-bittinen luku alkaa riittävällä määrällä nollia, louhija voittaa lohkon ja saa palkkion.
Jos ei ala? Vaihdetaan noncea ja yritetään uudelleen. Ja uudelleen. Ja uudelleen.
ASIC-laite tekee tätä satoja triljoonia kertoja sekunnissa. Me teemme tätä kerran kolmessa päivässä. Mutta hei, säästämme sähköä.
SHA-256 pähkinänkuoressa
SHA-256 kuulostaa pelottavalta, mutta se koostuu yllättävän yksinkertaisista operaatioista:
- Binääriyhteenlasku — perus yhteenlasku, kuten ala-asteella, mutta kahdella numerolla (0 ja 1)
- Bittien kiertäminen (rotate) — siirrä bittejä oikealle ja kierrätä ylivuotaneet takaisin alkuun
- XOR — "joko tai muttei molemmat" — jos bitit ovat samat, tulos on 0; jos eri, tulos on 1
- AND ja NOT — perus logiikkaoperaatioita
Ei derivaattoja. Ei integraaleja. Ei edes kertolaskua. Kolmasluokkalainen osaisi jokaisen yksittäisen operaation. Niitä vain on helvetisti.
Vaihe 1: Valmistele syöte
Bitcoin-lohkon otsikko on 80 tavua (640 bittiä) dataa. Se sisältää:
| Kenttä | Koko | Sisältö |
|---|---|---|
| Versio | 4 tavua | Protokollaversio |
| Edellinen tiiviste | 32 tavua | Edellisen lohkon SHA-256-tiiviste |
| Merkle-juuri | 32 tavua | Kaikkien transaktioiden tiiviste |
| Aikaleima | 4 tavua | Unix-aikaleima |
| Vaikeustaso | 4 tavua | Kohdetiivisteen vaatimus |
| Nonce | 4 tavua | Sinun arvauksesi |
Kirjoita nämä binäärinä paperille. 640 nollaa ja ykköstä. Hyvä alku — olet käyttänyt noin 10 minuuttia ja et ole vielä edes aloittanut laskemista.
Vaihe 2: Täydennys (padding)
SHA-256 käsittelee dataa 512 bitin lohkoissa. 640-bittinen syöte täydennetään 1024 bittiin:
- Lisää yksi
1-bitti syötteen perään - Lisää nollia kunnes olet 64 bittiä vailla 1024:ää
- Lisää alkuperäisen viestin pituus 64-bittisenä lukuna
Tämä on helppoa. Nauti hetkestä — se on viimeinen helppo vaihe.
Vaihe 3: Alusta muuttujat
SHA-256 käyttää kahdeksaa 32-bittistä "työmuuttujaa" (a–h), jotka alustetaan ensimmäisten kahdeksan alkuluvun neliöjuurten desimaaliosilla. Kyllä, oikeasti.
a = 6a09e667 (√2:n desimaaliosa heksana)
b = bb67ae85 (√3)
c = 3c6ef372 (√5)
d = a54ff53a (√7)
e = 510e527f (√11)
f = 9b05688c (√13)
g = 1f83d9ab (√17)
h = 5be0cd19 (√19)
Tarvitset myös 64 kierrosvakiota (K₀–K₆₃), jotka tulevat ensimmäisten 64 alkuluvun kuutiojuurten desimaaliosista.
Kirjoita nämä kaikki ylös. Tämä on hyvä hetki hakea kahvia. Tai kolme.
Vaihe 4: 64 kierrosta helvettiä
Tässä varsinainen työ tapahtuu. Jokainen SHA-256-tiiviste vaatii 64 kierrosta, ja jokaisella kierroksella lasketaan:
Σ₁ (iso sigma 1)
Ota muuttuja e, kierrä sitä 6 bittiä oikealle, sitten 11 bittiä, sitten 25 bittiä, ja XORaa tulokset yhteen.
Ch (choice / valinta)
Jokaiselle bittipositiolle: jos e:n bitti on 1, valitse f:n bitti; jos 0, valitse g:n bitti. Tätä kutsutaan "valinnaksi", koska e valitsee kumman bitin otetaan.
Temp1
Laske yhteen: h + Σ₁ + Ch + K_i + W_i (kaikki modulo 2³²)
Σ₀ (iso sigma 0)
Ota muuttuja a, kierrä 2, 13 ja 22 bittiä oikealle, XORaa yhteen.
Maj (majority / enemmistö)
Jokaiselle bittipositiolle: mikä bitti esiintyy enemmistönä a:n, b:n ja c:n joukossa? Kaksi ykkösistä = 1, kaksi nollaa = 0.
Temp2
Σ₀ + Maj
Päivitä muuttujat
h = g
g = f
f = e
e = d + Temp1
d = c
c = b
b = a
a = Temp1 + Temp2
Toista 64 kertaa. Yhdellä kierroksella käsittelet noin tuhat bittiä käsin. Ken Shirriff mittasi aikaa: 16 minuuttia ja 45 sekuntia per kierros.
64 kierrosta × 16 min 45 s = 17 tuntia ja 52 minuuttia yhdelle SHA-256-tiivisteelle.
Mutta Bitcoin käyttää kaksinkertaista SHA-256:ta (tiivistetään tiiviste), joten kerro kahdella: noin 35 tuntia ja 44 minuuttia yhdelle louhintayritykselle.
Vaihe 5: Tarkista tulos
35 tunnin jälkeen sinulla on 256-bittinen tiiviste. Katso sitä. Alkaako se riittävällä määrällä nollia?
Ei? No, vaihda noncea ja aloita alusta.
Kuinka kauan lohkon louhinta oikeasti kestäisi?
Tehdään matematiikka:
- Käsinopeus: ~0,67 tiivistettä päivässä (yksi kaksois-SHA-256 noin 1,5 päivässä)
- Nykyinen vaikeustaso: tarvitaan keskimäärin noin 2⁷⁸ yritystä
- 2⁷⁸ ÷ 0,67 päivässä = noin 9,0 × 10²³ päivää
- Se on noin 2,5 × 10²¹ vuotta
- Universumin ikä on noin 1,38 × 10¹⁰ vuotta
Sinun on siis louhittava noin 180 000 kertaa universumin ikä löytääksesi yhden lohkon.
Positiivista: sähkölasku on nolla. Negatiivista: kynäbudjetti saattaa karata käsistä.
Vertailu: kynä vs. ASIC
| Kynä ja paperi | Antminer S21 XP | |
|---|---|---|
| Nopeus | 0,67 hash/päivä | 270 TH/s (270 × 10¹² hash/s) |
| Sähkönkulutus | 0 W (+ kahvi) | 3 645 W |
| Aika per lohko | ~2,5 × 10²¹ vuotta | ~muutama kuukausi poolissa |
| Melu | Kynän rapina | Suihkumoottori |
| Hiilijalanjälki | Kynäntynkä + paperi | Pieni kaupunki |
| Tyylikkyys | ★★★★★ | ★☆☆☆☆ |
Miksi tämä on silti opettavaista
Vitsin takana on oikeasti tärkeä pointti: SHA-256 ei ole taikuutta. Se on sarja yksinkertaisia loogisia operaatioita, jotka kuka tahansa voi ymmärtää ja suorittaa. Bitcoinin turvallisuus ei perustu siihen, että algoritmi olisi monimutkainen — vaan siihen, että se on peruuttamaton.
Voit laskea tiivisteen syötteestä. Et voi laskea syötettä tiivisteestä. Ainoa tapa on arvata ja kokeilla. Ja kokeilla. Ja kokeilla.
Tämä on proof-of-workin ydin: työ, jota ei voi oikaista. Ei edes kynällä ja paperilla.
Käytännön vinkit aloittelevalle käsilouhijalle
Jos silti haluat kokeilla (kunnioitamme sitoutumistasi), tässä muutama vinkki:
- Käytä ruutupaperia. Binäärilaskut ilman suoria rivejä ovat tie hulluuteen.
- Värikoodaa muuttujat. Kahdeksan 32-bittistä muuttujaa, 64 kierrosvakiota ja 64 viestisanaa sekoittuvat nopeasti.
- Aloita pienemmästä. Kokeile ensin SHA-256:n laskemista sanalle "abc" — se on klassinen testivektori, ja voit tarkistaa tuloksen netistä.
- Älä luovuta kierroksella 47. Siinä kohtaa useimmat lopettavat. Se on käsilouhinnan "seinä".
- Pyydä ystäviä mukaan. Voit jakaa kierroksia — tämä on itse asiassa primitiivinen louhintapooli. Kutsu sitä "Pen & Paper Pool".
Historiallinen viite
Ken Shirriff teki tämän oikeasti vuonna 2014 ja dokumentoi prosessin blogissaan. Hän käytti lyijykynää, paperia ja paljon kärsivällisyyttä. Hänen johtopäätöksensä: "Voin vahvistaa, ettei käsin louhinta ole käytännöllistä."
Hän saavutti 0,67 tiivistettä päivässä. Vertailun vuoksi: hänen sormus-SHA-256-laskentansa teho oli noin 10⁻²⁶ prosenttia Bitcoin-verkon silloisesta kokonaistehosta. Nykyään se olisi vieläkin vähemmän.
Johtopäätös: miksi tämä on ihanaa
Bitcoinin louhinta kynällä ja paperilla on kuin soutelisi Atlantin yli. Teknisesti mahdollista. Käytännössä järjetöntä. Mutta se opettaa enemmän merestä kuin mikään risteily.
Jos haluat oikeasti ymmärtää, mitä louhijat tekevät miljoonia kertoja sekunnissa, ota kynä käteen ja laske yksi kierros. Sinun ei tarvitse louhia lohkoa — sinun tarvitsee vain ymmärtää, miksi et voi.
Ja jos joku joskus väittää, ettei Bitcoin vaadi oikeaa työtä, näytä hänelle paperipinosi.









