OP_RETURN Bitcoin: data carrier, nulldata, dan output yang tidak dapat dibelanjakan
Pelajari cara OP_RETURN mencatat data publik, alasan output tidak dapat dibelanjakan, perbedaan kebijakan relay Bitcoin Core 31.1 dari konsensus, serta perbedaannya dari inskripsi witness.
Dalam panduan iniOP_RETURN menyimpan data di skrip pengunci
Ringkasan singkat
OP_RETURN menambahkan data publik pada skrip output transaksi Bitcoin. Bitcoin Core menganggap output yang skripnya diawali OP_RETURN terbukti tidak dapat dibelanjakan dan tidak memasukkannya ke set UTXO. Batas relay saat ini merupakan kebijakan lokal node, bukan batas payload konsensus yang berlaku untuk seluruh jaringan.
OP_RETURN menyimpan data di skrip pengunci
Output Bitcoin berisi nilai dan skrip pengunci bernama scriptPubKey. Output OP_RETURN, yang juga diklasifikasikan sebagai nulldata, diawali opcode OP_RETURN dan dapat diikuti rangkaian byte yang di-push. Saat transaksi dimasukkan ke blok, byte itu tercatat secara publik sebagai bagian dari output. Pola ini bukan lapisan data terpisah, saldo token, atau pesan pribadi.
Mengapa output tidak dapat dibelanjakan lagi
OP_RETURN adalah opcode yang menyebabkan eksekusi gagal jika tercapai. Upaya membelanjakan output dengan skrip yang diawali opcode ini tidak dapat memenuhi skripnya. Karena itu Bitcoin Core mengklasifikasikannya sebagai tidak dapat dibelanjakan dan dapat langsung mengeluarkannya dari set UTXO, tanpa menyimpan koin yang tidak mungkin digunakan. Lihat script.h Bitcoin Core 31.1. Bitcoin Core 31.1 script implementation.
Ukuran skrip lebih besar daripada payload
Batas data carrier tidak selalu hanya menghitung byte data aplikasi. Skrip output mentah mencakup opcode OP_RETURN, instruksi push beserta encoding panjangnya, dan payload. Payload 80 byte dapat memerlukan skrip 83 byte: satu byte opcode, dua byte header OP_PUSHDATA1, dan 80 byte data. Panduan lama tentang “80 byte” sering merujuk pada payload, sedangkan pengaturan baru dapat mengukur seluruh skrip.
Kebijakan default data carrier Bitcoin Core 31.1
Bitcoin Core 31.1 mengaktifkan -datacarrier secara default. Nilai default -datacarriersize adalah 100.000 byte dan menghitung gabungan ukuran scriptPubKey mentah semua output data carrier dalam satu transaksi. Beberapa output NULL_DATA berbagi batas yang sama; opcode dan encoding push juga dihitung. Core 30.0 mengganti batas skrip lama 83 byte dengan batas gabungan 100.000 byte serta mengizinkan beberapa output; Core 31.1 mempertahankan kebijakan ini. Lihat opsi Core 31.1, implementasi kebijakan, dan catatan rilis 30.0.

Relay dan konsensus menjawab pertanyaan berbeda
Setiap node dapat menonaktifkan relay data carrier atau menurunkan batas lokalnya; node dan versi perangkat lunak lain bisa memakai pengaturan berbeda. Penolakan transaksi oleh mempool suatu node dapat berarti kebijakan lokalnya tidak meneruskan transaksi, bukan berarti konsensus melarangnya. Bitcoin Core menerapkan batas data saat memeriksa standardness dan memeriksa aturan konsensus secara terpisah ketika memvalidasi blok. Core consensus transaction checks. See Bitcoin Core 31.1 mempool standardness implementation.
Nilai output hilang; biaya transaksi dihitung terpisah
Output OP_RETURN dapat diberi nilai, tetapi nilai itu tidak dapat dipulihkan dan menjadi tidak dapat dibelanjakan secara permanen. Wallet biasanya memberi nilai nol. Jika 1.000 sat dialokasikan, nilainya tidak otomatis menjadi biaya miner. Biaya tetap jumlah nilai input dikurangi seluruh output. Byte skrip memakai bobot transaksi dan dapat menaikkan biaya pada tarif sat/vB yang sama. Lihat panduan biaya transaksi Bitcoin.
Beberapa output data tidak menggandakan batas
Bitcoin Core 31.1 mengizinkan beberapa output NULL_DATA standar, tetapi ukuran skripnya dijumlahkan ke batas transaksi yang sama. Membagi payload ke beberapa output tidak memperbesar kapasitas dan setiap output tambahan menambah data transaksi serta bobot blok. Relay juga bergantung pada bobot transaksi, biaya, dan kebijakan standardness lain. Penerimaan oleh satu wallet atau penjelajah blok tidak menjamin penyebaran ke seluruh jaringan.
OP_RETURN berbeda dari inskripsi Taproot dalam witness
Data OP_RETURN ada di scriptPubKey output saat transaksi dibuat. Data witness SegWit diserialisasi terpisah untuk setiap input; BIP 141 menjelaskannya sebagai data tumpukan per input. Pengeluaran melalui jalur skrip Taproot dapat mengungkap skrip dan control block di witness input. Perangkat lunak Ordinals dapat menafsirkan format envelope di sana sebagai inskripsi berdasarkan konvensi aplikasi, tetapi mekanismenya berbeda dari output nulldata. Lihat BIP 141, BIP 341, dan [panduan Bitcoin Ordinals dan inskripsi](/learn/bitcoin-ordinals-inscriptions-satoshi-numbering-witness-data-explained).
Periksa kebijakan, nilai, dan privasi sebelum menggunakan
Pastikan versi Bitcoin Core dan pengaturan lokal yang menjadi acuan. Hitung secara terpisah ukuran skrip output mentah lengkap, bobot total transaksi, nilai output yang tidak dapat dibelanjakan, dan biaya miner. Konsensus tidak memberi makna pada byte payload sembarang; pastikan protokol atau penerima mengenali format tersebut. Data yang dicatat di blockchain bersifat publik. Untuk memahami output dan kembalian, lihat panduan Bitcoin UTXO dan coin control.
Pertanyaan umum
Q1Apakah konsensus Bitcoin membatasi OP_RETURN hingga 80 byte data?
Tidak. Angka 80 byte adalah nilai payload dalam contoh kebijakan standardness lama, bukan batas konsensus universal. Bitcoin Core 31.1 memakai batas gabungan default 100.000 byte untuk skrip data mentah; tiap node dapat mengubah kebijakannya.
Q2Apakah OP_RETURN yang lebih besar menaikkan biaya transaksi?
Bisa. Byte skrip menambah bobot transaksi sehingga biaya dapat naik pada tarif sat/vB yang sama. Sat yang dialokasikan ke output tak dapat dibelanjakan hilang secara terpisah dan bukan biaya miner.
Q3Apakah OP_RETURN sama dengan inskripsi Ordinals?
Tidak. OP_RETURN berada di skrip output dan membuat output itu tidak dapat dibelanjakan. Inskripsi Taproot yang umum menempatkan konten pada data jalur skrip witness input, yang ditafsirkan perangkat lunak Ordinals menurut konvensinya.
Sumber dan bacaan lanjutan
Laporkan masalah
Kami akan menyiapkan email berisi tautan artikel ini. Mark menerima laporan setelah Anda mengirimkannya
Cek cepat
Sudah membaca panduannya? Uji diri dengan 3 pertanyaan
Pertanyaan 01
Apa yang diukur -datacarriersize default Bitcoin Core 31.1?
Pilih jawaban untuk melihat penjelasannya
Glosarium opsi
Kondisi ketika harga pelaksanaan opsi sangat dekat dengan harga pasar aset acuannya. Opsi mungkin belum memiliki nilai intrinsik yang berarti, tetapi masih dapat memiliki premi karena waktu dan ketidakpastian yang tersisa.
Baca panduan lengkapOpsi beliKontrak yang memberi pembeli hak untuk membeli aset acuan pada harga pelaksanaan sesuai persyaratannya. Penjual kontrak memikul kewajiban yang sepadan jika hak itu dilaksanakan dan ditetapkan kepadanya.
Baca panduan lengkapOpsi jualKontrak ini memberi pemegang hak, bukan kewajiban, untuk menjual aset acuan pada harga kesepakatan sebelum atau saat jatuh tempo sesuai ketentuan kontrak.
Baca panduan lengkap