Saat mempelajari lebih jauh tentang bitcoin dan proses penambangan, kamu pasti menemukan berbagai istilah baru, salah satunya adalah nonce. Untuk memahami apa itu nonce, kita perlu mempelajari pengertian hash terlebih dahulu.
Hash adalah kode alfanumerik yang digunakan untuk mewakili kata, pesan, atau data. Di dalam proof-of-work, atau proses mining bitcoin, hash yang valid harus memenuhi kriteria tertentu. Sehingga membuat proof-of-work menjadi sulit untuk dilakukan. Kriteria dalam proof-of-work adalah setiap hash harus dimulai dengan angka 0 atau bisa dibilang hash harus memiliki nilai rendah.
Contohnya, kata ‘pintu’ jika di-hashing di dalam algoritma hash SHA-256, hasilnya setiap kali akan selalu menjadi 24d52030496d5935c5929564269fae1194db553c0ca3e2ede7a4ecc836f134d3
Lalu bagaimana caranya agar kata ‘pintu’ memiliki hash dimulai dengan angka 0 agar sesuai dengan kriteria proof-of-work?
Untuk mendapatkan hash dengan angka kecil, maka miner harus memasukkan data yang disebut sebagai nonce. Lalu, apa itu nonce dan bagaimana cara nonce bekerja? Yuk, pelajari lebih lanjut di artikel ini.
Nonce adalah satu-satunya data yang bisa ditambahkan oleh miner atau penambang pada saat proses mining untuk mengubah output hash, sehingga memiliki nilai yang sama dengan target mining. Penambang hanya bisa menerka kira-kira berapa angka nonce ini untuk menghasilkan target hash yang selalu dimulai dengan angka 0. Jadi bisa dibilang nonce merupakan cara paksa (brute force) untuk mencapai target mining.
Baca juga: Apa itu Hashrate?
Mari kita ambil contoh bagaimana cara kerja nonce dengan melihat simulasi blok berikut. Sebagai persyaratan block proof-of-work yang valid, hash yang dihasilkan harus memiliki angka yang kecil atau dimulai dengan beberapa digit angka 0 sesuai dengan target kesulitan penambangan. Sebagai contoh, anggap saja difficulty target atau target kesulitan penambangan adalah 4 digit angka 0 di depan.
3. Dengan nonce angka 1 (Gambar B), maka hash yang dihasilkan dengan data yang sama akan menjadi 306b…ba6a. Hash ini masih dianggap tidak valid karena tidak memenuhi tingkat kesulitan (dimulai dengan 0000) . Penambang akan mencoba untuk mengubah angka nonce satu-persatu dari 1,2,3… , dan seterusnya (Gambar C), menjalankan algoritma hashing SHA 256 hingga mendapat hash kecil valid yang sesuai dengan tingkat mining difficulty.
4. Setelah berbagai percobaan, nonce dengan angka 16,663 (Gambar D) menghasilkan hash dengan nilai kecil yaitu dimulai dengan 4 digit angka di depannya.
Proses untuk menggunakan hashing algoritma dan menambahkan nonce ini yang kita sebut sebagai mining. Para miner berlomba-lomba untuk menebak nonce dan melakukan hashing yang sesuai dengan target. Penambang tercepat yang dapat membuat blok yang valid (yaitu menemukan nonce yang membuat block hash lebih kecil dari difficulty target) akan mendapatkan block reward atau imbalan berupa bitcoin.
Bitcoin ditambang setiap rata-rata 10 menit sekali. Waktu yang dibutuhkan untuk menambang bitcoin ini harus konstan, agar jumlah bitcoin baru yang dirilis juga stabil, sehingga harga bitcoin semakin meningkat.
Dengan terus meningkatnya kekuatan komputer, dapat dipastikan bahwa penambang akan lebih mudah untuk menemukan hash. Untuk memastikan bahwa bitcoin ditambang secara konstan setiap 10 menit sekali, maka mining difficulty harus disesuaikan juga. Dengan demikian, apabila mesin komputer dan jumlah miner meningkat, waktu yang dibutuhkan untuk menemukan blok baru tidak terpengaruh.
Mining difficulty disesusaikan setiap 2016 block, atau kira-kira setiap 2 minggu sekali. Apabila miner menemukan hash lebih cepat dari 10 menit maka tingkat kesulitan akan ditambahkan, tetapi apabila penambang menemukan hash lebih lambat dari 10 menit maka tingkat kesulitan akan dikurangi.
Sebagai contoh, kalau kita harus menemukan hash yang kurang atau sama dengan 0xxx maka kita memiliki 65,536 kemungkinan hash. Akan tetapi, jika kita harus menemukan hash yang kurang atau sama dengan 000xx, maka kita hanya memiliki 256 kemungkinan hash. Dengan semakin banyaknya angka nol di depan (semakin kecil angkanya), maka akan semakin sulit untuk menemukan hash yang sesuai.
Jadi, apa hubungan nonce dengan mining difficulty?
Dengan target kesulitan yang semakin meningkat, penambang harus mencoba menebak nonce dan menjalankan hashing algoritma kuadriliun kali untuk menemukan hash yang sesuai dengan difficulty target. Apabila difficulty target bertambah maka usaha yang dibutuhkan untuk menemukan hash yang sesuai akan menjadi dua kali lipat lebih sulit. Hal ini membuat jaringan Bitcoin semakin aman.
Bagikan