Nonce dan Mining Difficulty adalah dua hal yang sangat penting dalam ekosistem jaringan Bitcoin. Apa itu?
Pada saat Anda mempelajari seluk beluk jaringan Bitcoin dan proses penambangannya lebih jauh, istilah Nonce pasti akan sering ditemui. Namun, sebelum mempelajari Nonce, Anda perlu mengetahui pengertian hash terlebih dahulu.
Hash merupakan kriptografi atau kode alfanumerik yang digunakan untuk mewakili kata, pesan, atau data, namun hanya satu arah. Dalam proof-of-work atau proses mining dalam jaringan Bitcoin, hash yang valid harus memenuhi beberapa kriteria tertentu. Hal tersebut tentu akan membuat proses mining Bitcoin menjadi lebih sulit untuk dilakukan. Salah satu kriteria dalam proof-of-work adalah setiap hash yang valid harus dimulai dengan angka nol.
Contohnya, kata "Inbizia" jika di-hashing menggunakan algoritma hash SHA-256, hasilnya akan selalu menjadi "d0c3c2c2b21e39cf8d3f8e9b6a3076c148b0ea2e". Lalu bagaimana caranya agar kata "Inbizia" memiliki hash yang dimulai dengan angka nol, sesuai dengan kriteria proof-of-work?
Baca Juga: Apakah Proof of Authority Lebih Baik Dari PoS dan PoW?
Nah, untuk mendapatkan hash dengan angka nol, miner harus memasukkan data yang disebut sebagai Nonce. Lalu, apa itu Nonce dan bagaimana cara kerjanya? Pelajari lebih lanjut di artikel ini.
DI
|
Daftar Isi |
Mengenal Nonce dan Mining Difficulty
Nonce adalah satu-satunya data yang bisa ditambahkan oleh miner atau penambang untuk mengubah output hash pada saat proses mining, sehingga memiliki nilai yang sama dengan target mining. Miner hanya bisa menduga-duga angka Nonce yang harus dipakai agar menghasilkan target hash dengan angka nol. Dengan demikian, Nonce dapat dikatakan sebagai cara paksa (brute force) untuk mencapai target mining.
Cara Kerja Nonce
Sebagai persyaratan blok proof-of-work yang valid, miner harus menghasilkan hash angka kecil atau dimulai dengan beberapa digit angka nol sesuai Mining Difficulty target. Untuk dapat menjelaskan hal ini, lihat contoh bagaimana cara kerja Nonce dengan menggunakan simulasi blok berikut. Pada contoh di bawah, anggap saja Mining Difficulty target adalah 4 digit angka nol di depan.
1. Blok #1 memiliki data yang mencakup transaksi dalam jaringan Bitcoin dari A ke B sebanyak 5 BTC. Hash dari data ini adalah bc97e...5052 berdasarkan format hexadecimal. Karena dalam hexadecimal b=11 dan c=12, maka hash tersebut dibaca sebagai 111297…5052 atau dengan kata lain, hash itu dimulai dengan angka 1 dan tidak valid.
2. Agar hash dapat dimulai dengan angka nol dan valid, maka miner harus memasukkan angka Nonce, yaitu angka acak agar hash dapat memiliki nilai atau value yang berbeda. Setelah miner memasukkan Nonce, maka ia harus menjalankan algoritma hashing SHA-256 agar bisa menghasilkan hash baru.
3. Dengan Nonce angka 1, maka hash yang dihasilkan dengan data yang sama akan menjadi 306b…ba6a. Hash tersebut masih dianggap tidak valid karena tidak memenuhi kriteria Mining Difficulty target, yaitu dimulai dengan 0000.
4. Penambang akan mencoba untuk mengubah angka Nonce satu-persatu dari 1,2,3, dan seterusnya, sambil menjalankan algoritma hashing SHA 256 hingga mendapat hash kecil valid yang sesuai dengan Mining Difficulty target.
5. Setelah menjalankan berbagai percobaan, Nonce dengan angka 16,663 menghasilkan hash bernilai kecil, yaitu dimulai dengan 4 digit angka nol di depan sesuai Mining Difficulty target.
Nah, dengan demikian apa yang orang sering sebut sebagai mining adalah keseluruhan proses seperti contoh di atas. Secara sederhana, kegiatan mining dapat dilihat sebagai aktivitas para miner yang berlomba-lomba menebak Nonce dan melakukan hashing sesuai dengan Mining Difficulty target. Miner tercepat yang dapat menemukan Nonce agar blok valid, akan mendapatkan block reward atau imbalan berupa Bitcoin.
Hubungan Nonce dengan Mining Difficulty
Perlu diketahui bahwa Bitcoin ditambang setiap rata-rata 10 menit sekali. Agar harga Bitcoin semakin meningkat, maka jumlah Bitcoin baru yang dirilis juga harus stabil. Itulah kenapa waktu yang dibutuhkan untuk menambang Bitcoin harus konstan. Namun dengan terus meningkatnya kekuatan komputer, dapat dipastikan bahwa penambang akan lebih mudah dan cepat dalam menemukan hash yang valid.
Nah, untuk memastikan bahwa Bitcoin ditambang secara konstan setiap 10 menit sekali, maka Mining Difficulty harus disesuaikan juga. Sehingga, jika mesin komputer dan jumlah miner meningkat, waktu yang dibutuhkan untuk menyelesaikan blok baru tidak akan terpengaruh.
Mining Difficulty disesuaikan setiap 2016 block, atau kira-kira setiap 2 minggu sekali. Apabila miner menemukan hash yang valid lebih cepat dari 10 menit, maka tingkat kesulitan akan ditambahkan. Sebaliknya, kalau penambang menemukan hash valid lebih lama dari 10 menit, maka tingkat kesulitan juga akan dikurangi.
Sebagai contoh, kalau Anda harus menemukan hash sama dengan 0xxx, maka akan ada 65,536 kemungkinan hash yang valid. Namun, jika Anda harus menemukan hash sama dengan 000xx, maka hanya akan ada 256 kemungkinan hash yang valid. Jadi, semakin banyak angka nol di depan, maka akan semakin sulit untuk Anda menemukan hash yang sesuai dan valid.
Kesimpulan
Jadi, apa hubungan Nonce dengan Mining Difficulty? Semakin meningkatnya Mining Difficulty, 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 valid akan menjadi dua kali lipat lebih sulit dan justru membuat jaringan Bitcoin juga semakin aman. Dengan kata lain, keberadaan Nonce membuat transaksi antar alamat wallet Bitcoin menjadi lebih aman.
Selain istilah Nonce dan Mining Difficulty dalam penambangan Bitcoin, ada juga yang namanya Halving Day. Apa itu? Simak penjelasan lengkapnya di artikel berjudul, "Mengenal Halving Day dalam Investasi Bitcoin".