Pada bagian sebelumnya, kita telah mempelajari cara menghitung hash sebuah blok. Namun, ada perbedaan mendasar antara mendapatkan hash sembarang dan menemukan hash yang memenuhi persyaratan Bitcoin.
Untuk menambahkan blok baru ke rantai, menghitung pengenal blok saja tidak cukup. Hasilnya harus memenuhi kondisi matematis: nilainya harus kurang dari atau sama dengan nilai batas yang ditetapkan oleh protokol, yang dikenal sebagai target.
Lalu bagaimana cara mendapatkan hasil tersebut?
Para penambang melakukan sangat banyak perhitungan, dengan mengubah data tertentu pada header dan menerapkan kembali fungsi kriptografi SHA-256 sebanyak dua kali.
Setiap perubahan menghasilkan hash baru yang harus dibandingkan dengan target yang ditetapkan.
Jika tidak memenuhi syarat, prosesnya dicoba lagi dengan data yang berbeda.
Namun, yang menarik adalah tidak ada yang bisa memprediksi percobaan mana yang akan menghasilkan hash valid.
Tidak ada rumus yang diketahui untuk menemukan solusinya secara langsung. Hasilnya tidak dapat diprediksi sebelum dihitung, dan setiap percobaan baru memiliki peluang keberhasilan yang sangat kecil.
Itulah sebabnya kita mengatakan bahwa penambangan adalah proses probabilistik....
Bayangkan ribuan perangkat khusus yang tersebar di seluruh dunia, terus-menerus melakukan perhitungan dalam jumlah luar biasa. Semuanya ikut serta mencari hasil yang memenuhi syarat Bitcoin.
Seorang penambang mungkin menemukannya pada percobaan berikutnya, sementara penambang lain mungkin melakukan triliunan perhitungan tanpa berhasil menemukannya.
Dan di sinilah penjelasan tentang sepuluh menit yang terkenal itu.
Bitcoin tidak selalu menghasilkan satu blok setiap sepuluh menit. Waktu tersebut adalah rata-rata yang ingin dipertahankan oleh protokol.
Sebuah blok bisa muncul hanya beberapa detik setelah blok sebelumnya. Bisa juga dua puluh, tiga puluh menit, atau lebih berlalu tanpa satu blok pun ditemukan.
Setiap percobaan baru merupakan kesempatan lain untuk berhasil, tetapi menunggu lama bukan berarti perhitungan berikutnya memiliki peluang lebih besar untuk berhasil.
Lalu, bagaimana Bitcoin mempertahankan rata-rata itu jika jumlah perangkat yang berpartisipasi terus berubah?
Dengan mekanisme yang disebut penyesuaian tingkat kesulitan.
Setiap 2.016 blok, kira-kira setiap dua minggu, protokol menyesuaikan kembali target penambangan dengan mempertimbangkan waktu yang dibutuhkan untuk menghasilkan blok-blok dalam periode tersebut.
Jika blok ditemukan terlalu cepat, tingkat kesulitannya dinaikkan. Jika terlalu lama, tingkat kesulitannya dapat diturunkan.
Dengan cara ini, Bitcoin mengatur tingkat kesulitan matematis tanpa menetapkan jadwal tetap atau bergantung pada otoritas pusat yang memutuskan kapan blok berikutnya harus muncul.
Namun, menemukan hash yang sesuai hanyalah salah satu bagian dari proses. Blok tersebut juga harus mematuhi aturan Bitcoin lainnya dan diverifikasi oleh node-node di jaringan.
Dan ini membawa kita pada pertanyaan mendasar: jika seorang penambang menemukan blok baru di suatu tempat di dunia, bagaimana informasi itu sampai ke komputer lain agar mereka dapat memverifikasinya?
Untuk memahaminya, kita perlu mengetahui cara kerja komunikasi di antara para peserta Bitcoin....
Kita lihat ???
