Blockchain/Tahap IV · Kedalaman protokol/4.1 Script/Pelajaran 6
Kestandardan dan dasar
Perbezaan antara apa yang diterima oleh rangkaian dan apa yang disalurkan oleh nod anda
BahanKod sumber Bitcoin Core (policy/policy.cpp)Siri 'Waiting for confirmation' oleh Bitcoin OptechPeneroka blok yang memaparkan skrip mentah
Ingin tahu
- Mengapakah transaksi yang sah kadangkala ditolak oleh dompet sebelum sempat sampai kepada pelombong?
- Apakah yang berlaku jika rakan niaga menjalankan perisian yang berbeza daripada anda, tetapi kedua-duanya 'betul'?
- Bagaimanakah menjauhkan opcode yang tidak digunakan daripada laluan relay dapat melindungi naik taraf pada masa hadapan?
Teroka
- Peraturan konsensus mentakrifkan kesahan; ia menentukan apa yang boleh muncul dalam blok dan diterima oleh setiap nod. Kestandardan ialah dasar tempatan yang berasingan yang menentukan transaksi mana yang disalurkan oleh sesebuah nod kepada rakan sebayanya dan disimpan dalam memory pool (mempool) nod tersebut. Sesuatu transaksi boleh sah sepenuhnya di bawah konsensus tetapi tidak standard mengikut dasar relay lalai. Apabila pengguna menyiarkan transaksi sedemikian, nod mereka sendiri mungkin membuangnya serta-merta, walaupun secara teknikalnya pelombong boleh memasukkannya.
- Jenis output standard dihadkan dengan ketat untuk melindungi nod daripada serangan penafian perkhidmatan (denial-of-service) dan kehabisan sumber. Ini termasuk P2PKH, P2SH, P2WPKH, P2WSH, P2TR, skrip bare multisig yang kecil (sehingga tiga kunci), dan output data OP_RETURN bersaiz tertentu. Skrip yang menggunakan opcode yang dikhaskan atau tidak diketahui, atau melebihi had saiz, tidak disalurkan secara lalai. Penapisan ini memastikan mempool kekal terurus dan menghalang pihak berniat jahat daripada membanjiri rangkaian dengan sampah yang kompleks dan mahal dari segi pengiraan.
- Dasar tidak statik; ia berubah mengikut pelaksanaan nod. Pada tahun 2025, pembangun Bitcoin Core memutuskan untuk melonggarkan had saiz lalai bagi output data OP_RETURN. Perubahan ini mencetuskan perdebatan dalam kalangan pengendali nod, sebahagiannya menentang peluasan itu dan beralih kepada perisian alternatif seperti Bitcoin Knots untuk mengekalkan had legacy yang lebih ketat. Perbezaan ini menunjukkan bahawa kestandardan ialah tetapan tempatan: dua nod yang menjalankan versi atau fork yang berbeza boleh menyalurkan subset transaksi sah yang berbeza tanpa melanggar konsensus.
- Transaksi yang tidak standard tetapi sah masih boleh disahkan jika ia memintas sepenuhnya rangkaian relay lalai. Pelombong pernah menawarkan perkhidmatan penyerahan terus, yang membolehkan pengguna menghantar transaksi terus ke dalam blok mereka tanpa mengira dasar nod. Jika sesebuah dompet bergantung pada penolakan kestandardan untuk keselamatan—dengan andaian skrip yang kelihatan tidak sah tidak akan tersebar—ia menghadapi risiko: rakan niaga yang menggunakan akses terus kepada pelombong boleh menyebabkan transaksi itu disahkan. Ini mewujudkan percabangan dalam tingkah laku, bukan dalam kebenaran, yang berpotensi membawa kepada pergerakan dana yang tidak dijangka atau kehilangan dana.
- Kestandardan bertindak sebagai injap keselamatan untuk naik taraf soft fork pada masa hadapan. Dengan menguatkuasakan peraturan yang lebih ketat sekarang—seperti menganggap opcode NOP boleh naik taraf yang dikhaskan sebagai tidak standard semasa relay—protokol memastikan peralihan yang lancar apabila sesuatu naik taraf mengetatkan peraturan konsensus. Oleh sebab transaksi yang menggunakan opcode dikhaskan itu tidak disalurkan atau dilombong secara lalai, hanya sedikit atau tiada langsung yang wujud apabila soft fork memberi makna kepada opcode tersebut, jadi peraturan baharu tidak membatalkan apa-apa yang menjadi sandaran orang ramai, dan pelombong yang belum dinaik taraf tidak mungkin melombong blok yang ditolak oleh peraturan baharu.
- Baca sendiri semakan dasar tersebut: dalam kod sumber Bitcoin Core, policy/policy.cpp mengandungi IsStandard dan IsStandardTx, yang menyenaraikan jenis output yang diterima dan had saiz; siri 'Waiting for confirmation' oleh Bitcoin Optech menerangkan alasan di sebaliknya. Bandingkan dengan peraturan konsensus dalam kod pengesahan, dan perhatikan betapa lebih sempitnya peraturan relay.
Fakta utama
- Peraturan konsensus mentakrifkan kesahan; kestandardan mentakrifkan tingkah laku relay.
- Jenis output standard termasuk P2PKH, P2SH, P2WPKH, P2WSH, P2TR, dan bare multisig kecil.
- Dasar melindungi nod daripada serangan penafian perkhidmatan dengan menapis skrip yang kompleks atau besar.
- Transaksi tidak standard boleh disahkan melalui perkhidmatan penyerahan terus kepada pelombong.
- Bitcoin Core melonggarkan had saiz OP_RETURN pada tahun 2025, menyebabkan sesetengah pengguna beralih kepada perisian lain.
- Kestandardan menapis opcode yang dikhaskan untuk memudahkan naik taraf soft fork pada masa hadapan.
Latihan sembilan, enam, tiga, satu
9KumpulSenaraikan 9 jenis atau format skrip output berbeza yang pernah digunakan dalam sejarah Bitcoin. Bagi setiap satu, catatkan sama ada ia kini dianggap standard oleh dasar nod lalai.
6KelompokkanKumpulkan 9 itu kepada 6 kategori berdasarkan kerumitan strukturnya: hash kunci ringkas, skrip yang dibalut, native witness, berbilang pihak yang kompleks, penyisipan data, dan legacy/eksperimen.
3SaringKurangkan 6 kumpulan itu kepada 3 sebab teras mengapa nod mengenakan had kestandardan pada struktur khusus ini.
1KristalkanTulis 1 ayat yang menerangkan bagaimana perbezaan dasar tempatan boleh menyebabkan transaksi yang sah dari segi konsensus tetapi tidak sah dari segi relay tersebar terus kepada pelombong.
Semakan fakta
Tarikh, angka dan dakwaan telah disemak berbanding dengan sumber yang diterbitkan yang disenaraikan di bawah.