Sisältö ei ole yksilöllistä sijoitus-, vero-, oikeus- tai tietoturvaneuvontaa.
Kryptoville.

Kryptoista selkoa.
Ilman hypetystä.

Bitcoinin vaikeustaso: miksi verkko säätää louhinnan tavoitetta?

Avoin tarkistustarve:

Bitcoinin louhinnan vaikeustaso kertoo, kuinka tiukka kelvollisen lohkon tiivisteelle asetettu raja on. Kun laskentatehoa tulee verkkoon lisää ja lohkot syntyvät pidemmän aikaa tavoitetta nopeammin, sääntöjen mukainen säätö kiristää rajaa. Jos lohkojen synty on ollut hidasta, rajaa voidaan vastaavasti löysentää. Tarkoitus ei ole pitää yksittäisten lohkojen väliä tasan kymmenessä minuutissa vaan ohjata lohkojen pitkän aikavälin tahtia kohti tavoitetta.4, 5

Vaikeustaso ei ole bitcoinin hinta eikä louhijan sähkölasku. Pääverkon kelpoisuussäännöt määrittävät lohkolle sallitun tavoiterajan; vaikeustaso on tapa kuvata rajan tiukkuutta. Vaikutukset louhijan toimintaan riippuvat lisäksi esimerkiksi tämän omasta laskentatehosta ja kustannuksista. Tässä tarkastellaan nimenomaan pääverkkoa: testiverkoissa voi olla erilaisia poikkeussääntöjä.4, 5

Mitä louhija yrittää löytää?

Louhinnassa muodostetaan lohkoehdokas ja sen otsake. Louhintalaite muuttaa otsakkeen tietoja ja laskee niistä tiivisteitä eli hasheja. Kelvollinen tulos edellyttää, että otsakkeen tiiviste on enintään verkon määrittämän tavoiterajan suuruinen; myös muiden lohkoa koskevien sääntöjen on täytyttävä.1, 2

Tiivistettä voi ajatella suurena lukuna, vaikka ruudulla se näkyisi usein toisessa esitysmuodossa. Mitä pienempi sallittu tavoiteraja on, sitä pienempi osa mahdollisista tuloksista mahtuu sen alle. Louhija ei voi valita haluamaansa tulosta, vaan kokeilee erilaisia otsakkeita. Vaikeus syntyy hyväksyttävän tuloksen löytämisestä, ei siitä, että joku tarkistaja tekisi lohkolle käsin monimutkaisen tehtävän.1, 2

Kun puhutaan korkeammasta vaikeustasosta, tarkoitetaan tiukempaa tavoiterajaa: onnistumiseen tarvitaan keskimäärin enemmän yrityksiä. Vastaavasti tavoiterajan kasvattaminen helpottaa hyväksyttävän tiivisteen löytämistä. Termit tuntuvat aluksi ristiriitaisilta, koska vaikeustaso ja tavoiteraja liikkuvat vastakkaisiin suuntiin. Erottelu auttaa lukemaan uutisia, joissa molemmat luvut saatetaan mainita samassa yhteydessä.2, 4

Miksi tavoitellaan noin kymmenen minuutin tahtia?

Bitcoin Coren pääverkkoparametreissa lohkovälin tavoite on kymmenen minuuttia ja säätöjakson tavoiteaika kaksi viikkoa. Näistä määräytyy 2 016 lohkon säätöväli. Verkko ei kuitenkaan odota kellosta seuraavaa tasakymmentä, eikä jokainen lohko ole valmis juuri tavoiteajan kohdalla.4, 5

Lohkon löytyminen riippuu onnistuneesta tiivisteestä. Siksi lyhyt väli ei yksin todista laskentatehon kasvaneen, eikä pitkä väli yksin todista sen vähentyneen. Yksittäiset tulokset vaihtelevat myös silloin, kun verkon teho ja tavoiteraja pysyvät samoina. Tavoite on hyödyllinen vertailukohta, ei lupaus kellontarkasta palvelusta.1, 5

Tämä ero on käytännöllinen myös siirtoa odottavalle. Jos edellisen lohkon jälkeen on kulunut tavoiteaikaa pidempään, siitä ei voi päätellä seuraavan lohkon syntyvän välittömästi. Toisaalta uusi lohko voi seurata edellistä nopeasti. Vaikeustasosta kertova uutinen ei yksin kerro, milloin juuri sinun tapahtumasi saa vahvistuksen.

Miten säätö toimii?

Pääverkossa tavoite pysyy normaalisti samana säätöjakson sisällä. Jakson rajalla Bitcoin Core laskee kuluneen ajan jakson ensimmäisen ja viimeisen lohkon otsakkeiden aikaleimoista. Koodissa kyse on 2 016 lohkosta mutta niiden ensimmäisen ja viimeisen aikaleiman välissä on 2 015 väliä: yksinkertainen kertolasku ei siis kuvaa tarkasti koko laskentaa.4, 5

Jos mitattu aika on tavoiteaikaa lyhyempi, uusi tavoiteraja pienenee ja vaikeus yleensä kasvaa. Jos aika on tavoitetta pidempi, tavoiteraja kasvaa ja vaikeus yleensä laskee. Laskenta käyttää lohkojen aikaleimoja, ei suoraa mittausta jokaisen louhijan laitteista. Siksi toteutunut nopeus on tietoa menneestä jaksosta, ei täydellinen mittari juuri tämän hetken laitekannasta.4

Säätö on rajattu: laskennassa käytettävää kulunutta aikaa leikataan vähintään neljännekseen ja enintään nelinkertaiseksi tavoiteajasta. Tavoiterajalla on lisäksi pääverkon parametreissa yläraja. Näiden rajojen ja kompaktin esitystavan vuoksi pelkkä prosenttilasku ei aina anna täsmälleen seuraavaa todellista lukua.4, 5

Aikaleima ei ole sama asia kuin riippumattoman kellon mittaama täsmällinen julkaisuaika. Lohkojen otsakkeiden aikoihin liittyy verkon kelpoisuussääntöjä, mutta niitä ei kannata käsitellä täydellisinä mittauslaitteina. Tämä on yksi syy olla ylitulkitsematta pientä muutosta yksittäisen jakson perusteella.2, 4

Kuvitteellinen numerolasku

Tarkastellaan Bitcoin Core v30.2:n pääverkkosääntöjä ja kuvitteellista säätöä, ei verkon nykyisiä arvoja. Oletetaan, että edellisen jakson ensimmäisen ja viimeisen lohkon otsakeaikojen ero on 604 800 sekuntia eli seitsemän vuorokautta. Tavoiteaika on 1 209 600 sekuntia. Suhde on siis 1/2, ja se on säädön 1/4–4-rajojen sisällä. Lähtötavoitteen ollessa compact-muodossa 0x1d00ffff laskettu uusi tavoite on puolet vanhasta ja sen compact-esitys 0x1c7fff80. Tässä esimerkissä compact-muunnos ei muuta tarkkaa puolitusta; vaikeus kaksinkertaistuu laskennallisesti. Pääverkon tavoitteen yläraja ei estä pienentämistä.4, 5

Aikaleimojen ero kattaa 2 015 lohkoväliä, ei 2 016:ta; se ei myöskään ole tarkka riippumattomalla kellolla mitattu lohkojen löytymisaika. Toisilla luvuilla kokonaislukujako, compact-esityksen tarkkuus ja tavoitteen yläraja voivat muuttaa tulosta. Nelinkertaista tavoiteaikaa nopeampi tai hitaampi mitattu jakso rajataan ennen laskentaa neljännekseen tai nelinkertaiseksi tavoiteajaksi.4

Kuvitteellinen esimerkki tehon muutoksesta

Kuvitellaan, että pääverkkoon tulee lisää laskentatehoa heti uuden jakson alussa ja se pysyy käytössä. Vanha tavoiteraja ei muutu saman tien. Jos lohkoja löytyy jakson aikana keskimäärin tavoitetta nopeammin, seuraava säätö kiristää tavoiterajaa käytetyn aikamittauksen perusteella. Kyse on havainnollistuksesta, ei ennusteesta tietylle tulevalle jaksolle.4

Kuvitellaan seuraavaksi päinvastainen tilanne: suuri osa laskentatehosta poistuu. Vanha vaikeustaso jää aluksi voimaan ja lohkojen löytyminen voi hidastua. Koska säätö odottaa seuraavaa lohkokorkeuteen perustuvaa rajaa, jakson loppuun pääseminenkin voi kestää tavallista kauemmin. Seuraava säätö voi helpottaa tavoitetta, mutta yhden säädön rajat ja verkon tavoiterajan yläraja jäävät voimaan.4

Esimerkistä ei pidä päätellä, että jokainen tehomuutos näkyisi heti täsmälleen samansuuruisena vaikeustason muutoksena. Todelliset lohkovälit vaihtelevat sattuman vuoksi, teho voi muuttua kesken jakson ja säätö perustuu otsakkeiden aikoihin. Mittarin suunta on silti hyödyllinen: järjestelmä reagoi aiempaan lohkotahtiin eikä ilmoitettuihin laitehankintoihin.4

Mitä eroa on vaikeustasolla ja laskentateholla?

Laskentateho kuvaa yritysten määrää ajassa; vaikeustaso puolestaan kertoo, kuinka tiukka hyväksyttävän tuloksen raja on. Niitä voi verrata kysymyksiin ”kuinka monta yritystä tehdään” ja ”kuinka pieni osa yrityksistä kelpaa”. Lisääntyvä teho voi nopeuttaa lohkojen löytymistä ennen seuraavaa säätöä, mutta pelkästä vaikeustasosta ei voi lukea suoraan tämänhetkistä tehoa.1, 4

Verkon laskentatehoa käsitteleviä tilastoja kannattaa sen vuoksi lukea arvioina ja tarkistaa niiden mittausjakso. Lohkoketjussa näkyvät löytyneet lohkot, mutta yksittäiset epäonnistuneet tiivistysyritykset eivät muodosta täydellistä julkista laskuria. Lyhyen aikavälin arvio voi heilua, vaikka laitteiden toiminnassa ei olisi vastaavaa äkillistä muutosta.1

Samoin vaikeustason nousu kertoo ensisijaisesti siitä, että edellisen jakson aikamittaus johti tiukempaan rajaan. Se ei itsessään todista jonkin yksittäisen yrityksen lisänneen kapasiteettiaan eikä kerro, missä laitteet sijaitsevat. Yksittäisen mittarin muuttaminen tarinaksi tietystä syystä vaatii erillistä näyttöä.

Mitä tapahtuu jaksojen välissä?

Sääntö ei tee erillistä välisäätöä siksi, että useampi lohko syntyi peräkkäin nopeasti tai louhintaa koskeva uutinen julkaistiin. Pääverkossa jakso etenee lohkokorkeuksien mukaan. Tämä tuo ennakoitavuutta siihen, milloin tavoitetta tarkistetaan, mutta samalla se tarkoittaa, että verkko ei välittömästi korjaa laskentatehon äkillistä muutosta.4

On myös hyvä erottaa uusi jakso ja yksittäisen lohkon synty. Uusi tavoite koskee säätörajan ensimmäistä lohkoa ja sen jälkeisiä saman jakson lohkoja. Se ei muuta jo löydettyjen lohkojen aikaleimoja eikä tee aiemmasta hitaasta jaksosta jälkikäteen nopeampaa. Käyttäjä näkee vaikutukset vasta tulevissa lohkoväleissä, joiden tarkka pituus vaihtelee edelleen.

Saman jakson aikana tapahtunut suuri tehon lisäys ja yhtä suuri poistuminen voivat osittain peittää toisensa koko jakson mittauksessa. Vastaavasti jakson loppupuolella tapahtunut muutos ehtii vaikuttaa vähemmän mittausjaksoon kuin samanlainen muutos alussa. Näiden tilanteiden täsmällinen vaikutus riippuu todellisista lohkoista ja niiden aikaleimoista, joten pelkkä tieto muutoksen ajankohdasta ei riitä laskemaan seuraavaa säätöä.4

Onko vaikeustaso verkon päätös?

Säätöä ei määrää yksi louhintapooli ilmoittamalla uutta lukua kaikille muille. Bitcoin Core laskee seuraavan tavoitteen aikaisemman ketjun ja sovellettavien parametrien perusteella. Lohkon pitää täyttää verkon kelpoisuusehdot, joten yksittäinen osallistuja ei voi vain asettaa itselleen helpompaa pääverkon rajaa ja odottaa muiden hyväksyvän lohkon.2, 4

Käytännössä ohjelmistot toteuttavat yhteisiä sääntöjä, mutta tarkka toimintatapa on aina tarkistettava kyseisen verkon ja ohjelmistoversion mukaan. Testiverkon erityissääntöjä ei pidä käyttää pääverkkoa selittävän luvun lähteenä. Samoin vanhan dokumentin esimerkki voi olla hyödyllinen käsitteen ymmärtämiseen, vaikka sen ajankohtainen vaikeusluku olisi jo muuttunut.4, 5

Entä turvallisuus ja hinta?

Louhinta tekee tallennetun tapahtumahistorian muuttamisesta työlästä, mutta pelkkä vaikeustason arvo ei ole täydellinen turvallisuusmittari. Arvioon vaikuttaa myös se, kenellä laskentateho on käytettävissään ja mitä toimintaa tarkastellaan. Yksittäinen luku ei todista, ettei verkkoon, palveluntarjoajaan tai käyttäjän omaan säilytykseen voisi liittyä riskejä.1

Vaikeustaso ei myöskään määrää bitcoinin markkinahintaa. Kun näet väitteen, jonka mukaan vaikeustason nousu ennustaa hinnan nousua, erota kaksi asiaa: verkon sääntöjen mukainen tavoiterajan muutos ja väite tulevasta markkinakehityksestä. Ensimmäinen on tekninen tapahtuma; jälkimmäinen vaatii oman perustelunsa eikä seuraa säätösäännöstä.

Miksi lähteen aikarajaus ratkaisee?

Sama verkkoluku voi näyttää erilaiselta, jos sitä tarkastellaan yhden päivän, kokonaisen säätöjakson tai useamman jakson ajalta. Ensin kannattaa katsoa, kuvaako lähde toteutuneita lohkoja vai niistä johdettua arviota. Sen jälkeen voi verrata väitettä saman mittausmenetelmän aikaisempiin tuloksiin. Eri palveluiden luvut eivät välttämättä tarkoita samaa asiaa vain siksi, että molemmat käyttävät sanaa laskentateho.

Vertailussa on myös kysyttävä, mihin hetkeen vaikeustaso viittaa. Juuri toteutunut säätö kertoo edellisen jakson mittauksesta, kun taas ennakkoarvio yrittää kuvata seuraavaa säätöä ennen kuin kaikki tarvittavat lohkot ovat olemassa. Jälkimmäisen ilmoittaminen varmana toteumana antaa lukijalle väärän kuvan.4

Näin luet vaikeustasosta kertovan uutisen

Tarkista ensin, käsitteleekö lähde Bitcoinin pääverkkoa ja onko kyse jo toteutuneesta säädöstä vai ennakkoarviosta. Katso sitten, miltä jaksolta lohkotahtia tai laskentatehoa kuvaava luku on laskettu. Ennuste voi muuttua ennen jakson loppua, koska lopullinen laskenta tarvitsee jakson viimeisen lohkon aikaleiman.4

Lopuksi kysy, mitä luvusta todella voi päätellä. Nousu tarkoittaa tiukempaa tavoiterajaa, ei takuuta tasaisesta lohkovälistä, tietyn louhijan kannattavuudesta tai hinnan suunnasta. Jos kaipaat ymmärrystä verkon toiminnasta, hyödyllisin pari on tarkastella vaikeustasoa ja lohkojen toteutunutta tahtia yhdessä, lähteen aikarajaus huomioiden.

Lähteet