Block Template adalah kumpulan informasi untuk menyusun calon blok baru dalam jaringan Bitcoin. Setelah itu, penambang mencari bukti kerja yang valid atas header-nya, ringkasan singkat data blok. Template menghubungkan transaksi pilihan, imbalan, dan aturan penyusunan. Mendapatkannya tidak berarti blok sudah ditambang atau diterima jaringan.
Setiap blok baru dibangun di atas pendahulu tertentu. Template menunjukkannya melalui previousblockhash, sidik jari unik pendahulu tersebut, sedangkan height menyatakan posisi calon blok dalam rantai. Kolom lain mencakup version, versi header; bits, bentuk ringkas target yang harus dipenuhi hasil penambangan; serta informasi waktu. Ini adalah bahan untuk menyusun blok tertentu, bukan daftar pembayaran yang berdiri sendiri. Transaksi yang sama di atas pendahulu berbeda sudah menjadi tugas yang berbeda. [1]
Anna menerima bitcoin lalu menggunakannya untuk membayar. Jika kedua transfer hendak masuk ke blok yang sama, transaksi yang memberikan dana kepada Anna harus muncul sebelum transaksi yang membelanjakannya. BIP 22, dokumen teknis yang menjelaskan format template, mendefinisikan kolom depends untuk hubungan ini: kolom tersebut merujuk entri sebelumnya dalam daftar transactions dengan penomoran mulai dari satu. Daftar ini tidak mencakup coinbase, transaksi pertama khusus yang menetapkan imbalan penambang. Jika depends tidak ada, ketergantungannya belum diketahui, bukan dipastikan tidak ada. Perangkat lunak tidak boleh menganggap informasi yang hilang sebagai daftar kosong. [1]
Imbalan mencakup bitcoin yang baru diterbitkan menurut aturan ketinggian blok tersebut dan biaya transaksi yang benar-benar dimasukkan. Bitcoin Core v29.0 yang dirujuk juga menghitungnya dengan cara ini. Perangkat lunak ini memverifikasi blok dan transaksi serta dapat menyiapkan template penambangan. Dalam contoh buatan kita, transaksi menyumbang 10000 sats; menghapus transaksi independen dengan biaya 3000 sats menyisakan 7000 sats biaya. Sats adalah satuan kecil bitcoin. Kolom coinbasevalue menunjukkan imbalan maksimum yang boleh dialokasikan penambang untuk dirinya berdasarkan pilihan transaksi semula. Jika pilihan itu berubah, jumlahnya perlu dihitung ulang. Perhitungan harus menggunakan biaya sebenarnya, bukan jumlah yang dihitung untuk isi lama. [4] [1]
Blok juga memuat sidik jari kriptografis untuk memeriksa datanya. BIP 141 menjelaskan witness commitment, pengikat kriptografis terhadap data witness, yang mencakup antara lain tanda tangan pembukti izin membelanjakan dana. Nilainya diturunkan dari pengenal wtxid yang menyertakan data tersebut. Bitcoin Core 29 menyediakan default_witness_commitment untuk template yang tidak diubah. Setelah transaksi terkait atau urutannya berubah, pengikat itu harus diperiksa atau dihitung ulang. Merkle root, sidik jari gabungan transaksi dalam header, juga harus dihitung dari pengenal TXID akhir, termasuk pengenal coinbase yang telah diubah. Segel lama tidak cocok untuk isi yang sudah berubah. [5] [3]
Ruang blok terbatas, dan penambang memilih isinya. Bitcoin Core v29.0 menilai paket transaksi yang saling terkait, bobotnya sebagai ukuran beban data, dan sigops, yaitu operasi pemeriksaan tanda tangan yang dihitung untuk batas blok. Pengaturan blockmaxweight dan blockmintxfee memengaruhi ukuran blok yang disusun dan tarif biaya yang disyaratkan. Ini merupakan kebijakan pemilihan. Pembayaran yang dilewati karena kebijakan tersebut belum tentu melanggar aturan jaringan. Pengaturan penambang juga tidak menaikkan batas jaringan yang diperiksa node lain. [4] [3]
Dalam BIP 23, mutable mencantumkan perubahan yang diizinkan server, misalnya penyesuaian waktu atau penambahan transaksi. Ini adalah kesepakatan untuk memakai template tertentu. Izin server tidak menghapus konsensus, yakni aturan keabsahan yang diperiksa peserta jaringan lain secara mandiri. Pendahulu, waktu, kesulitan, dan transaksi tetap harus benar. Akses ke template juga tidak berarti setiap alat penambangan yang terhubung boleh bebas mengubah isinya; hal itu bergantung pada susunan sistem dan tugas yang diterima. [2]
Penambang lain dapat memperpanjang rantai saat perhitungan berlangsung. Untuk melanjutkan di atas blok terbaru yang diterima, mengganti sidik jari pendahulu pada template lama saja tidak cukup. Sebagian transaksi mungkin sudah dikonfirmasi, sementara ketinggian dan kondisi lain berubah. BIP 23 menjelaskan expires sebagai batas waktu kerja dan prevblock sebagai izin memakai pekerjaan itu dengan pendahulu berbeda. Izin ini pun tidak menggantikan pemeriksaan: transaksi, imbalan, dan seluruh konteks baru perlu dinilai kembali. [2]
Kesalahan dalam rancangan sebaiknya ditemukan sebelum pencarian panjang dimulai. Mode proposal menurut BIP 23 memungkinkan rancangan diperiksa tanpa Proof of Work yang valid, yakni tanpa hasil yang sudah ditemukan untuk membuktikan kerja komputasi yang diperlukan. Penilaian positif tidak berarti blok telah ditemukan, disiarkan, atau dijamin mendapat tempat permanen dalam rantai. Artinya rancangan lolos pemeriksaan awal terkait. Blok yang selesai tetap harus menjalani validasi yang sesuai saat diserahkan, termasuk bukti kerjanya. [2]
Untuk gambaran yang lebih utuh, baca entri ini bersama Mining Pool, Block Header, Extranonce, Merkle Tree, Bitcoin, Bitcoin Core. Entri ini juga dirujuk dari Transaksi coinbase, ASIC Miner, Mining Pool, Nonce.