Blockchain/Tahap II · Mekanisme/2.2 Transaksi/Pelajaran 2
Input dan output
Anatomi sesuatu transaksi: outpoint, skrip dan yuran tersirat
BahanPeneroka blok seperti mempool.space atau blockchain.comKalkulator untuk menjumlahkan nilai satoshi
Ingin tahu
- Bagaimanakah sesuatu transaksi membuktikan bahawa ia berhak membelanjakan nilai yang dicipta oleh transaksi lain?
- Jika tiada medan khusus untuk yuran, bagaimanakah pelombong tahu dengan tepat berapa yang dibayar kepada mereka?
- Mengapa transaksi pertama dalam setiap blok luar biasa dari segi struktur?
Teroka
- Transaksi Bitcoin ialah struktur data yang mempunyai nombor versi dan nLockTime, tetapi terasnya terdiri daripada input dan output. Sesuatu input tidak mengandungi nilai; ia menunjuk kepada nilai. Setiap input merujuk kepada output tertentu sebelumnya menggunakan outpoint: txid 32 bait bagi transaksi sumber ditambah indeks 4 bait yang mengenal pasti output mana dalam transaksi itu yang dibelanjakan. Rujukan ini menghubungkan transaksi-transaksi menjadi satu rantaian.
- Setiap input juga membawa data pembuka kunci serta medan nSequence. nSequence mengawal kunci masa (time-lock) dan isyarat replace-by-fee. Data pembuka kunci, yang disimpan dalam scriptSig bagi transaksi legasi atau dalam bahagian witness bagi SegWit, menyediakan bukti kriptografi yang diperlukan untuk memenuhi syarat output yang dirujuk. Di sinilah tandatangan kunci peribadi berada.
- Output ialah tempat nilai berada. Setiap output menetapkan jumlah dalam satoshi menggunakan integer 8 bait serta skrip penguncian (scriptPubKey) yang menentukan siapa yang boleh membelanjakannya kelak. Satu transaksi boleh mempunyai beberapa input dan output, tetapi jumlah input mesti sekurang-kurangnya sama dengan jumlah output.
- Yuran tidak disimpan di mana-mana. Ia diperoleh daripada pengiraan: perbezaan antara jumlah nilai yang digunakan oleh input dan jumlah nilai yang dicipta oleh output. Baki ini diberikan kepada pelombong yang memasukkan transaksi tersebut ke dalam blok. Jika kedua-dua jumlah itu sama, yuran ialah sifar; jika output melebihi input, transaksi tersebut tidak sah.
- Transaksi coinbase ialah pengecualian yang membuktikan peraturan tersebut. Ia mempunyai satu input khas tanpa outpoint sebelumnya, yang secara berkesan mencipta nilai baharu daripada tiada. Outputnya membawa subsidi blok (kini 3.125 BTC) ditambah semua yuran yang dikutip daripada transaksi lain dalam blok tersebut. Txid bagi mana-mana transaksi ialah hash SHA-256 berganda bagi data bersirinya, tidak termasuk maklumat witness.
- Buka peneroka blok dan cari blok 170, yang dilombong pada 12 Januari 2009. Selain coinbase, blok itu mengandungi satu transaksi: Satoshi Nakamoto menghantar 10 BTC kepada Hal Finney. Input tunggalnya membelanjakan output coinbase 50 BTC daripada blok 9. Ia mempunyai dua output: 10 BTC kepada Finney dan 40 BTC kembali kepada Satoshi. Input dan output masing-masing berjumlah 50 BTC, jadi yurannya sifar; transaksi awal sering tidak membayar apa-apa kerana blok mempunyai ruang yang luas.
Fakta utama
- Input merujuk kepada output sebelumnya melalui outpoint yang terdiri daripada txid dan indeks output.
- Yuran transaksi ialah perbezaan antara jumlah nilai input dan jumlah nilai output.
- Output mengandungi nilai 8 bait dalam satoshi serta skrip penguncian (scriptPubKey).
- Input mengandungi data pembuka kunci (tandatangan) dan medan nSequence untuk kunci masa atau isyarat RBF.
- Transaksi coinbase mencipta bitcoin baharu melalui input khas tanpa outpoint sebelumnya.
- Txid ialah hash SHA-256 berganda bagi transaksi bersiri, tidak termasuk data witness.
Latihan sembilan, enam, tiga, satu
9KumpulPeriksa 9 transaksi terkini pada alat peneroka blok. Untuk setiap satu, catatkan bilangan input, bilangan output, dan yuran dalam satoshi.
6KelompokkanKumpulkan 9 transaksi tersebut kepada 6 kumpulan mengikut struktur: satu input satu output, satu input dua output, banyak input satu output (penyatuan), satu input banyak output (pembayaran berkelompok), banyak input banyak output, atau lain-lain.
3SaringKurangkan 6 kumpulan tersebut kepada 3 sebab mengapa sesuatu transaksi mempunyai beberapa input atau beberapa output.
1KristalkanTulis 1 ayat tentang mengapa Bitcoin boleh membiarkan yuran tersirat dan bukannya menyatakannya.
Semakan fakta
Tarikh, angka dan dakwaan telah disemak berbanding dengan sumber yang diterbitkan yang disenaraikan di bawah.