OP_CHECKTEMPLATEVERIFY adalah instruksi yang diusulkan untuk Bitcoin Script, bahasa untuk menyatakan syarat membelanjakan bitcoin. Instruksi ini akan memeriksa apakah data transaksi tertentu sesuai dengan rencana yang disiapkan sebelumnya, yaitu templat. Rencana tersebut diwakili sidik jari kriptografis pendek bernama hash. Hash ini bukan tanda tangan atau sidik jari seluruh transaksi; BIP119 menentukan cakupannya secara tepat.
Anna ingin menyiapkan dana untuk dibagi kelak antara Peter dan Eva. Ia tidak ingin hanya mengandalkan janji orang yang menyimpan uangnya. Dalam Bitcoin, dana yang belum dibelanjakan dicatat sebagai output transaksi, disebut UTXO; masing-masing memuat jumlah dana dan syarat penggunaannya. CTV dapat menambahkan rencana pembagian tertentu ke syarat tersebut. Ketika output dibelanjakan, node, yaitu perangkat lunak yang memeriksa aturan jaringan, akan memastikan transaksi baru mengikuti rencana. Penerima lain atau jumlah yang berbeda dari ketentuan akan gagal dalam pemeriksaan. Jeremy Rubin menjelaskan proposal ini dalam BIP119, yang mendapat nomor BIP pada 2020. [1] [3]
Templat menentukan susunan transfer: berapa output terdahulu yang dirujuk oleh input dan output baru apa yang harus dibuat. Untuk output baru, templat menetapkan jumlah dana serta script, yakni syarat pembelanjaan selanjutnya. Lebih rinci, BIP119 juga mencakup versi transaksi; nLockTime, field untuk batasan waktu seluruh transaksi; field input nSequence, yang dapat memengaruhi kunci waktu; dan indeks input yang sedang diperiksa. Jika ada scriptSig, script input yang menyediakan data pembelanjaan, yang tidak kosong, hash seluruh field scriptSig juga disertakan. Jadi ini bukan sekadar daftar penerima: mengubah field lain yang tercakup juga menghasilkan templat berbeda. Rujukan ke koin lama tertentu dan nilainya merupakan pertanyaan terpisah yang dijelaskan di bawah. [1]
Byte adalah satuan umum untuk ukuran data. Pemeriksaan yang diusulkan memakai hash templat 32 byte yang dihitung dengan SHA256. Node menghitung sidik jari yang sama dari transaksi yang membelanjakan output dan menolak ketidakcocokan. Tanda tangan digital membuktikan otorisasi pembayaran menggunakan kunci privat, sebuah nilai angka rahasia, tanpa mengungkap kunci itu. Bagian script lainnya dapat meminta tanda tangan; CTV tidak menggantikannya dalam semua keadaan. Panjang argumen lain tidak menjalankan pemeriksaan ini dan disisihkan untuk perluasan mendatang, meski kebijakan penerusan dapat menolaknya. Argumen yang keliru tidak otomatis berarti koin terkunci dengan aman. [1] [4] [12]
Contoh berikut menggunakan sats, satuan bitcoin yang paling kecil. Hash templat tidak secara langsung mencakup outpoint, yaitu rujukan ke UTXO tertentu yang dibelanjakan, maupun nilai inputnya. Namun jumlah input tetap ditentukan. Misalkan hanya satu input diizinkan dan total output 99.000 sats. Input 100.000 sats menyisakan 1.000 sats sebagai biaya. Input di bawah total output tidak cukup untuk membiayai transaksi. Jika input lebih besar sementara output sama, yang naik adalah biaya, bukan kembalian yang dibuat otomatis. [6] [9]
Templat dapat mewajibkan perpindahan ke output berikutnya dengan script berisi penundaan dan jalur pemulihan. Dengan begitu, vault dapat menyediakan waktu untuk merespons penarikan yang tidak diinginkan. CTV bukan seluruh sistem keamanan: kunci, syarat output berikutnya, pemantauan, dan konfirmasi pemulihan tepat waktu tetap penting. Sebagian batasan dapat dibuat dengan transaksi yang ditandatangani sebelumnya, tetapi tuntutan kerja sama dan penghapusan kuncinya berbeda. [8] [5]
Blok mengelompokkan transaksi dalam satu kumpulan yang ditambahkan ke riwayat bersama. Dalam pengendalian kemacetan yang diusulkan, output pertama mengikat dana pada pembagian selanjutnya. Output masing-masing penerima dapat muncul dalam transaksi lanjutan, misalnya saat jaringan lebih sepi. Penerima memerlukan data rencana dan cara untuk menggunakan haknya. Ini berbeda dari pembayaran biasa yang sudah terkonfirmasi ke alamat mereka dan tidak membuat ruang blok yang terbatas menjadi tak terhingga. [7] [11]
Dompet adalah aplikasi atau perangkat untuk menerima dan mengirim bitcoin. Anna dapat menyiapkan rencana jauh sebelum pembayaran dipublikasikan, saat biaya masa depan belum diketahui. Output yang sudah ditetapkan tidak memungkinkan ia mengurangi dana kembalian ke dompet sesukanya lalu menawarkan selisihnya kepada penambang. Konstruksi itu perlu menyediakan cara menambah biaya. Salah satunya CPFP yang disiapkan dengan tepat: transaksi lanjutan membelanjakan output transaksi awal dan menawarkan biaya yang mendorong penambang memasukkan keduanya. Pilihan lain ialah templat yang sejak awal mengizinkan input tambahan. Input itu tidak bisa begitu saja ditambahkan ke templat yang hanya mengizinkan satu input. Mempool adalah kumpulan transaksi belum terkonfirmasi milik sebuah node; diterima di dalamnya tidak menjamin masuk ke blok. [2] [6] [10]
CTV sendiri memeriksa templat tertentu; ini bukan bahasa umum untuk membaca dan membandingkan seluruh data transaksi secara bebas. Ia dapat mendukung rencana bercabang untuk transaksi mendatang, tetapi tidak sama dengan Covenants rekursif umum. Gabungan dengan instruksi lain yang diusulkan bisa menawarkan lebih banyak kemampuan. Periksa apakah suatu demonstrasi hanya memakai CTV atau satu paket perubahan. [1] [2]
Pada pemeriksaan 17 Oktober 2026, BIP119 berstatus Draft, yaitu proposal yang masih dikembangkan. Proposal ini akan memberi fungsi pemeriksaan baru pada OP_NOP4, instruksi yang sekarang tidak memiliki efek saat validasi blok. Pengetatan aturan bersama seperti ini disebut Soft Fork. Namun, dokumen itu sendiri tidak menentukan aktivasi. Penerbitan BIP tidak membuat opcode menjadi instruksi yang benar-benar diberlakukan; kode, dukungan pengembang, atau dompet demonstrasi juga tidak membuktikan penerapan di jaringan utama Bitcoin, mainnet. Untuk setiap demonstrasi, perlu diketahui jaringan, aturan, dan proposal lain yang menjadi ketergantungannya. [1]
Sebelum aturan diterapkan, mencantumkannya dalam script saja tidak memberikan perlindungan yang diharapkan; konsensus dan penolakan mempool adalah hal berbeda. Bahkan dengan dukungan CTV, satu templat wajib tanpa jalur alternatif dapat mengunci output yang kekurangan dana. Namun setoran kecil baru tidak otomatis memblokir UTXO lain yang sudah didanai dengan benar. Rancangan aman perlu memeriksa nilai, biaya, cadangan, dan semua jalur pemulihan. [1] [4] [6]
Untuk gambaran yang lebih utuh, baca entri ini bersama Covenants, Timelock, Aturan konsensus, Bitcoin Script, UTXO, CPFP (Child Pays for Parent). Entri ini juga dirujuk dari Covenants, Bitcoin Vault, OP_CAT, Ark.