Blok Kandidat
Singkatnya, blok kandidat adalah blok yang berusaha ditambah oleh
node mining (miner) untuk menerima reward blok. Jadi, blok kandidat dapat digambarkan sebagai blok temporer yang akan divalidasi atau dibuang oleh jaringan. Para miner saling bersaing untuk memvalidasi blok berikutnya dan menambahkannya ke blockchain, namun mereka harus membuat blok kandidat terlebih dahulu untuk berpartisipasi dalam kompetisi
mining.
Blok kandidat dibuat oleh miner dengan mengumpulkan dan menata beberapa transaksi yang belum dikonfirmasi dari memory pool. Kemudian, transaksi dimasukkan ke hashing untuk membentuk struktur
Merkle tree yang pada akhirnya akan menghasilkan Merkle root (atau root hash). Merkle root adalah hash tunggal yang mewakili semua hash sebelumnya dari tree tersebut, dengan kata lain semua transaksi yang dimasukkan ke dalam blok tersebut.
Root hash - bersamaan dengan hash dari blok sebelumnya dan angka acak yang disebut
nonce - kemudian dimasukkan ke dalam header blok. Kemudian, header blok dimasukkan ke hashing oleh miner, sehingga menghasilkan output berdasarkan komponen tersebut (root hash, hash blok sebelumnya, dan nonce) ditambah beberapa elemen lainnya. Output yang dihasilkan adalah hash blok yang akan berfungsi sebagai pengenal unik dari blok yang baru saja dihasilkan (blok kandidat).
Agar dianggap valid, output (hash blok) harus diawali dengan angka nol dalam jumlah tertentu (kurang dari nilai target yang ditentukan oleh protokol). Artinya, proses mining didasarkan pada beberapa percobaan (trial and error), karena node mining harus melakukan sejumlah fungsi hashing dengan berbagai nilai nonce hingga hash blok yang valid akhirnya dihasilkan. Hash blok yang dihasilkan adalah bukti bahwa miner melakukan pekerjaannya (oleh karena itu disebut
Proof of Work).
Setelah miner menemukan hash blok yang valid, blok kandidatnya akan disiarkan ke jaringan node lainnya yang akan memverifikasi keaslian hash tersebut. Jika semuanya baik, blok kandidat tersebut kemudian akan dicatatkan ke dalam
blockchain. Pada titik ini, setiap node yang memvalidasi akan memperbarui salinan data blockchain untuk menunjukkan blok yang baru saja ditambang, lalu miner tersebut akan mendapatkan reward blok.