Nonce
TekninenKertakäyttöinen numero transaktiossa tai louhinnassa, joka estää toistohyökkäykset ja varmistaa uniikit lohkot.
Mikä on Nonce?
Nonce (number used once) on kertakäyttöinen numero, jolla on kaksi eri merkitystä kryptomaailmassa: transaktiononce ja louhinnan nonce. Molemmat ovat välttämättömiä lohkoketjun toiminnalle.
Transaktiononce on juokseva luku, joka kasvaa yhdellä jokaisen lähetetyn transaktion myötä. Ethereumissa jokaisella tilillä on oma nonce-laskurinsa, joka alkaa nollasta. Ensimmäinen transaktio saa noncen 0, toinen 1 ja niin edelleen. Tämä mekanismi estää toistohyökkäykset (replay attacks), joissa sama transaktio lähetettäisiin uudelleen varojen varastamiseksi. Transaktiot on myös käsiteltävä nonce-järjestyksessä: jos nonce 5 on lähettämättä, nonce 6 ei voi vahvistua.
Louhinnan nonce puolestaan on satunnainen arvo, jota louhijat muuttavat toistuvasti yrittäessään löytää lohkon hash-arvon, joka täyttää verkon vaikeustavoitteen. Bitcoin-louhija saattaa kokeilla miljardeja eri nonce-arvoja ennen kuin löytää sopivan. Tämä brute force -prosessi on Proof of Work -konsensuksen ydin.
Käytännössä nonce tulee vastaan, kun Ethereum-transaktio jumittuu. Jos lähetät transaktion liian alhaisella gas-hinnalla, se jää mempooliin eikä vahvistu. Koska seuraavat transaktiot eivät voi ohittaa sitä nonce-järjestyksessä, koko jono pysähtyy. Ratkaisuna voit lähettää uuden transaktion samalla noncella mutta korkeammalla gas-hinnalla, joka korvaa jumittuneen transaktion. MetaMask ja muut lompakot tarjoavat tähän "Speed Up" -toiminnon.