Block Header adalah catatan singkat di awal blok Bitcoin. Isinya mencakup sidik jari blok sebelumnya, sidik jari gabungan transaksi, serta informasi untuk memverifikasi Proof of Work. Data pembayaran disimpan di bagian lain dalam blok.
Bayangkan blok sebagai paket berisi transaksi dan header sebagai catatan pengantarnya. Header tidak memuat daftar penerima atau jumlah pembayaran. Sebagai gantinya, ada sidik jari kriptografis: nilai pendek yang dihitung dari data untuk mendeteksi perubahan. Salah satunya menunjuk ke blok sebelumnya. Yang lain, disebut Merkle root, merangkum pengenal transaksi dalam blok ini. Dengan begitu, header menghubungkan isi tertentu dengan posisi tertentu dalam riwayat. Namun, ini bukan salinan mini transaksi: isi aslinya tidak bisa dibaca kembali dari sidik jari. [1] [4]
Penambang menyusun calon blok lalu mencari hash yang sesuai, yaitu sidik jari yang ditafsirkan sebagai angka. Angka itu harus lebih kecil atau sama dengan target yang ditetapkan. Pencarian ini disebut Proof of Work: penambang berulang kali mengubah data dan menghitung ulang karena hasil yang sesuai tidak bisa langsung diprediksi. Variabel yang paling dikenal adalah nonce, angka bantu di dalam header. Untuk mendapatkan lebih banyak kemungkinan, penambang dapat mengubah data Coinbase Transaction, transaksi khusus yang dibuatnya di awal blok. Merkle root pun berubah dan menghasilkan header berbeda. Node lain kemudian bisa menghitung ulang dengan cepat untuk memeriksa hasilnya. [1] [3] [4]
Rangkaian header memungkinkan kita mengikuti hubungan antarblok dan memeriksa kerja terkait tanpa mengunduh seluruh transaksi. Namun, bayangkan blok dengan Proof of Work sah yang memuat upaya membelanjakan dana orang lain tanpa tanda tangan yang diperlukan. Memeriksa header saja tidak akan mengungkap masalah itu. Karena itu, Full Node juga memeriksa transaksi, tanda tangannya, keluaran belum terpakai yang tersedia, dan imbalan yang diizinkan. Header yang sah tidak menjamin seluruh blok sah. [2]
Kolom nBits menentukan target yang harus dipenuhi hash. Ini merupakan pengodean ringkas target, bukan angka “difficulty” yang ditampilkan penjelajah blok. Node juga memeriksa apakah target mengikuti aturan untuk posisi tersebut dalam rantai. Penambang pun tidak bebas memilih waktu. Waktunya harus lebih akhir dari median 11 blok sebelumnya, yaitu nilai tengah setelah waktunya diurutkan, dan tidak boleh terlalu jauh di masa depan. Meski begitu, angka ini bukan waktu persis setiap pembayaran atau pengukur durasi penambangan. [2] [3]
Urutan dan ukuran kolom tetap: version menggunakan 4 byte, hash header sebelumnya 32, Merkle root 32, time 4, nBits 4, dan nonce 4. Totalnya 80 byte berapa pun jumlah transaksi. Pengenal blok dihasilkan dengan menerapkan SHA-256 dua kali pada header yang dikodekan persis demikian. Kolom angka menggunakan little-endian, yaitu byte paling rendah nilainya ditempatkan lebih dahulu; hash memiliki urutan byte internal yang berbeda dari tampilan pengenal pada umumnya. Untuk menghitung sendiri, kita tidak bisa sekadar menyambung nilai sebagaimana ditampilkan penjelajah blok. [1] [4]
Untuk gambaran yang lebih utuh, baca entri ini bersama Block, Proof of Work, Merkle Tree, Nonce. Entri ini juga dirujuk dari Block, Hash, SHA-256, Merkle Tree.