Apa itu Nonce dan Mining Difficulty?

Update 16 Aug 2021 • Waktu Baca 5 Menit
Gambar Apa itu Nonce dan Mining Difficulty?
Reading Time: 5 minutes

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.

Apa itu Nonce?

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?

Bagaimana Cara Kerja Nonce?

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.

cara kerja nonce 1
Gambar A – Blok #1 yang berisi data sebelum menambahkan nomor nonce, blok tidak valid
  1. Blok #1 memiliki data yang mencakup transaksi bitcoin dari A ke B sebanyak 5 BTC(Gambar A) . Hash dari data ini adalah bc97ee..5052. berdasarkan format hexadecimal. Karena dalam hexadecimal b=11 dan c=12, maka hash bisa diartikan dimulai dengan angka desimal 111297…5052. Dalam kata lain hash ini dimulai dengan angka 1.
  2. Agar hash dapat dimulai dengan angka 0 di depannya 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 dapat menghasilkan hash baru.
cara kerja nonce 2
Gambar B – Blok #1 setelah penambang memasukkan “1”, blok masih tidak valid.
cara kerja nonce 3
Gambar C – Blok #1 setelah penambang memasukkan “23”, blok masih tidak valid.

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.

cara kerja nonce 4
Gambar D – Blok #1 dengan nilai nonce “16663” buat blok valid yang dimulai dengan empat nol.

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.

Apa Hubungan Nonce dengan Mining Difficulty?

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.

bitcoin mining difficulty
Grafik Difficulty Bitcoin.

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.

Kesimpulan

  • Nonce adalah angka tambahan yang dimasukkan oleh miner saat proses penambangan bitcoin, untuk mengubah output hash, sehingga memiliki nilai yang sama dengan target mining.
  • Mining difficulty adalah tingkat kesulitan dalam menambang bitcoin, yang berfungsi untuk menjaga agar bitcoin baru tetap ditambang setiap 10 menit sekali, untuk menjaga jumlah bitcoin yang beredar agar harganya terus meningkat.
  • Berapapun banyak jumlah miner yang berpartisipasi tidak akan bisa menambang bitcoin lebih cepat. Semakin banyak miner yang berpartisipasi maka tingkat kesulitan mining akan bertambah, semakin sedikit miner yang berpartisipasi maka tingkat kesulitan mining akan berkurang.
  • Apa hubungan nonce dengan mining difficulty? Dengan difficulty target yang semakin meningkat, miner 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.
Penulis:Dea Rezkitha

Bagikan