Apakah itu output transaksi Bitcoin yang belum dibelanjakan (UTXO)?

Panduan pemula kepada model UTXO Bitcoin 📕
Output transaksi yang belum dibelanjakan (UTXO) ialah teknik yang digunakan oleh protokol Bitcoin untuk menjejaki baki semasa ia bergerak antara dompet kripto.
Apabila ia melibatkan penjejakan dan pengurusan baki kripto individu, protokol berasaskan blockchain biasanya menggunakan salah satu daripada dua model perakaunan yang berbeza.
Salah satunya dipanggil model Akaun/Baki. Projek seperti Ethereum, Tezos dan EOS menggunakan model ini untuk menjejaki baki apabila pengguna blockchain melaksanakan transaksi. Yang satu lagi dipanggil model Output Transaksi Belum Dibelanjakan (UTXO).
Bitcoin dan banyak mata wang kripto lain seperti Litecoin, Cardano dan Dogecoin menggunakan model UTXO.
Tetapi apakah sebenarnya ia, bagaimana ia berfungsi dan apakah kelebihan UTXO berbanding model Akaun/Baki?
Memahami model UTXO 💻
Sejarah
Adam Back dan mendiang Hal Finney adalah dua ahli kumpulan kriptografi Cypherpunk yang sering dikunjungi oleh pengarang kertas putih bitcoin Satoshi Nakamoto. Kedua-duanya dikreditkan dengan membangunkan model UTXO secara bebas antara tahun 1997 dan 2004 masing-masing.
Apabila pencipta Bitcoin Satoshi Nakamoto melancarkan protokol itu pada tahun 2009, ia menjadi sistem mata wang digital operasi pertama yang melaksanakan model UTXO.
Kedua-dua Hal Finney dan Adam Back telah lama disyaki sebagai Satoshi Nakamoto, walaupun ia tidak pernah dibuktikan dengan pasti.
UTXO sepintas lalu
Apabila anda menghantar bitcoin kepada seseorang, beberapa langkah berlaku secara programatik. Salah satu langkah terawal dalam proses transaksi adalah untuk dompet mata wang kripto anda mengimbas blockchain untuk jumlah dana yang anda miliki. Dana ini dikenali sebagai output transaksi yang belum dibelanjakan (UTXO).
Anda boleh menganggap UTXO sebagai wang baki daripada transaksi bitcoin sebelumnya.
Dana tersebut dianggap “belum dibelanjakan” kerana ia tersedia secara bebas untuk anda hantar kepada seseorang atau pindahkan ke dompet lain. Ia dipanggil “output transaksi” kerana ia dicipta daripada transaksi sebelumnya.
Jika anda membelanjakan $12 untuk makan tengah hari menggunakan wang kertas $20, anda akan mempunyai baki wang kertas $8. Dalam contoh ini, baki $8 akan menjadi output transaksi yang belum dibelanjakan. Ia akan kembali ke dompet anda sedia untuk digunakan bagi membeli sesuatu yang lain.
Beginilah cara UTXO bitcoin berfungsi. Apabila anda membuat transaksi, output daripada transaksi bitcoin sebelumnya, iaitu baki bitcoin anda, digunakan sebagai input untuk transaksi baharu.
Perbandingan utama lain antara transaksi tunai fizikal dan UTXO ialah kedua-duanya perlu dibelanjakan sepenuhnya dan tidak boleh dibahagikan. Jika anda mempunyai UTXO 5 bitcoin dan ingin menghantar 1 BTC kepada seseorang, anda perlu menghantar keseluruhan UTXO bernilai 5 bitcoin dan menerima UTXO baharu sebagai balasan bernilai 4 BTC tolak sebarang yuran.
Sama seperti contoh di atas di mana anda menyerahkan wang kertas $20 penuh untuk membayar makan tengah hari $10.
Apabila UTXO dibelanjakan, ia dianggap “digunakan” dan secara teknikalnya dikeluarkan daripada edaran.
Sebarang baki yang tinggal dijana sebagai UTXO baharu sepenuhnya. Bahagian sistem UTXO ini adalah bagaimana Bitcoin menyelesaikan masalah perbelanjaan berganda.
Sama seperti anda tidak boleh secara fizikal memberikan wang kertas $5 kepada pekedai dan kemudian memberikan wang kertas $5 yang sama kepada orang lain, pengguna bitcoin tidak boleh berjaya menggunakan output transaksi yang belum dibelanjakan yang sama dalam dua transaksi digital yang berasingan.
Apabila seseorang cuba membelanjakan UTXO yang sama dua kali, kedua-dua transaksi berakhir dalam mempool — sejenis bilik menunggu untuk transaksi yang belum selesai. Ia kekal di sini sehingga pelombong yang berjaya memenangi pertandingan proof-of-work menggabungkannya ke dalam blok baharu.
Anda boleh mengetahui lebih lanjut tentang proses ini dalam artikel Pusat Pembelajaran Kraken kami Apakah perlombongan bitcoin?
Walaupun kedua-dua transaksi digabungkan ke dalam dua blok berasingan dan diproses secara serentak, disebabkan oleh pengecapan masa, salah satu transaksi akan disahkan lebih awal daripada yang lain. Selepas beberapa pengesahan berlalu (blok baharu ditambahkan ke blockchain) nod lain akan menandakan transaksi kedua yang tidak sah dan menolaknya.
Transaksi coinbase
Satu-satunya masa transaksi bitcoin tidak mempunyai input adalah apabila BTC yang baru dicetak dicipta daripada perlombongan.
Dikenali sebagai transaksi coinbase, ini mewakili transaksi pertama dalam setiap blok baharu.
Setiap satoshi (sub-unit bitcoin) dalam edaran boleh dijejaki semula menggunakan lejar blockchain yang telus kepada transaksi coinbase masing-masing.
Mengapa Bitcoin menggunakan model UTXO?
Baki akaun
Untuk mengenal pasti baki pengguna, juga dikenali sebagai set UTXO, perisian dompet kripto mengimbas blockchain untuk mencari semua UTXO yang berkaitan dengan alamat dompet awam yang sepadan.
Jumlah keseluruhan semua UTXO memberikan akaun yang tepat tentang berapa banyak kripto yang dikawal oleh pemilik dompet.
Apabila UTXO dibelanjakan, alamat dompet awam penerima diberikan kepada jumlah tersebut dan UTXO baharu direkodkan pada blockchain setelah dilaksanakan.
Storan
UTXO Bitcoin direkodkan dalam pelbagai transaksi yang disimpan dalam blok pada blockchain Bitcoin. Walau bagaimanapun, maklumat ini tidak diindeks dengan jelas, jadi sukar untuk mencari dan mengumpul metadata dengan cepat.
Apabila menggunakan perisian dompet seperti klien Bitcoin Core, metadata UTXO disimpan dan diindeks menggunakan pangkalan data LevelDB. LevelDB ialah sistem storan sumber terbuka yang dicipta oleh Google pada tahun 2011 dan menjadikan pencarian UTXO lebih pantas.
Klien Bitcoin Core ialah perisian popular yang digunakan untuk menyambung ke rangkaian blockchain Bitcoin. Asalnya dicipta oleh Satoshi Nakamoto, Bitcoin Core kini diselenggara oleh komuniti pembangun sukarela.
UTXO secara terperinci 🚗
Pada tahap yang lebih teknikal, terdapat empat bahagian utama dalam transaksi:
- Versi: Ini memberitahu nod rangkaian versi perisian klien yang sedang digunakan. Versi yang berbeza mengikut peraturan yang berbeza untuk mengesahkan data transaksi.
- Masa Kunci (Locktime): Ini adalah jumlah masa yang menentukan kelajuan transaksi ditambahkan ke blockchain. Input ini menentukan masa paling awal yang mungkin untuk transaksi diproses oleh nod perlombongan.
- Input: Maklumat yang menunjuk kepada sumber dana atau transaksi sebelumnya di mana UTXO dihasilkan. Input juga mengandungi sesuatu yang dipanggil “skrip pembuka kunci”.
- Output: Maklumat mengenai nilai yang dipindahkan, dompet di mana pemilikan dana diberikan semula dan UTXO baharu yang terbentuk. Output juga mengandungi “skrip pengunci”.
Bagaimana UTXO berbeza daripada wang tunai fizikal
Perbezaan utama antara analogi wang kertas fizikal dan model UTXO ialah bitcoin dan aset kripto berasaskan UTXO lain tidak terikat oleh jumlah yang ditetapkan, iaitu $5, $10, $15, dsb. Sebarang jumlah bitcoin (sehingga lapan tempat perpuluhan) boleh menjadi output transaksi yang belum dibelanjakan.
Sebagai contoh, anda mungkin mempunyai baki 0.0003847 BTC daripada transaksi.
Jumlah ini akan menjadi UTXO baharu yang mesti dibelanjakan sepenuhnya jika digunakan dan tidak boleh dibahagikan kepada jumlah yang lebih kecil.
Katakan John mempunyai baki dompet kripto sebanyak 1 bitcoin. Baki dan komposisi baki tersebut adalah dua perkara yang berbeza, sama seperti anda mungkin mempunyai $100 dalam dompet anda tetapi ia boleh terdiri daripada empat wang kertas $20, dua wang kertas $5 dan satu wang kertas $10.
Katakan komposisi baki 1 BTC John terdiri daripada 5 output transaksi yang belum dibelanjakan yang berbeza.
- 0.138 BTC
- 0.1 BTC
- 0.004 BTC
- 0.73 BTC
- 0.028 BTC
John ingin menghantar 0.6 BTC kepada Jane. Untuk melakukan ini, perisian dompet John akan secara automatik mengumpulkan sebarang bilangan UTXO yang dikawalnya untuk menampung transaksi ini serta sebarang yuran pelombong yang terlibat untuk memprosesnya.
Dalam contoh ini, katakan perisian dompetnya secara automatik menghantar UTXO bitcoin John bernilai 0.73 BTC kepada Jane dan mengembalikan jumlah baki tolak yuran transaksi kepada John sebagai UTXO baharu.
Jumlah ini secara automatik dihantar ke alamat pertukaran; alamat berasingan yang dipautkan ke dompet kripto anda.
Skrip pengunci dan pembuka kunci 🔒
Apabila UTXO dicipta, ia dikunci menggunakan alamat dompet awam penerima. Untuk menggunakan UTXO itu sebagai input dalam transaksi baharu, ia perlu dibuka kuncinya terlebih dahulu menggunakan tandatangan digital pengirim.
Ini adalah satu lagi perkara penting untuk difahami tentang transaksi bitcoin. Apabila transaksi dibuat, bitcoin tidak dipindahkan secara digital dari satu akaun ke akaun lain. Sebaliknya, ia dibuka kuncinya, diberikan semula kepada pemilik baharu dan kemudian dikunci semula.
Ini bermakna hanya pemilik baharu boleh membuka kunci dana menggunakan tandatangan digital mereka dan memindahkannya ke tempat lain; kepada orang lain atau ke dompet lain di bawah kawalan mereka.
Skrip ialah bahasa pengaturcaraan yang digunakan oleh Bitcoin untuk memproses transaksi, termasuk mengunci dan membuka kunci UTXO.
- Skrip Pengunci (ScriptPubKey): Apabila UTXO dikunci, skrip pengunci (dikenali sebagai ScriptPubKey) menetapkan syarat-syarat yang perlu dipenuhi sebelum UTXO boleh digunakan sebagai input. Ini biasanya melibatkan pembuktian bahawa anda memiliki kunci peribadi yang sepadan dengan alamat dompet awam yang digunakan untuk mengunci UTXO dengan menyediakan tandatangan digital.
- Skrip Pembuka Kunci (ScriptSig): Untuk membuka kunci UTXO, anda perlu memenuhi syarat-syarat yang ditetapkan oleh skrip pengunci, iaitu menyediakan tandatangan digital yang membuktikan anda mengawal kunci peribadi yang sepadan dengan kunci awam yang digunakan untuk mengunci UTXO.
Ini menghalang orang lain daripada dapat mengakses dan membelanjakan dana tersebut.
Apakah itu habuk Bitcoin?
Habuk Bitcoin merujuk kepada UTXO yang mengandungi jumlah satoshi yang sangat kecil yang tinggal daripada transaksi sebelumnya.
Dengan sendirinya, jumlah BTC yang sangat kecil ini akan menelan kos yuran transaksi yang lebih tinggi untuk diproses daripada nilainya dan oleh itu ia sering berada di alamat pertukaran menunggu untuk digabungkan bersama UTXO lain dan dibelanjakan.
Apakah itu serangan dusting?
Serangan dusting merujuk kepada penipu yang menghantar habuk ke ratusan ribu alamat dompet yang berbeza. Idea di sebalik ini adalah untuk mengenal pasti sasaran berpotensi untuk serangan kejuruteraan sosial.
Penipu akan memerhatikan alamat yang mengandungi habuk yang mereka hantar, menunggu pemilik membuat transaksi yang menggabungkan UTXO daripada alamat berbeza yang dipautkan ke dompet mereka. Oleh kerana UTXO habuk sangat kecil, ada kemungkinan besar ia akan dikumpulkan bersama dengan yang lain dan digunakan sebagai input.
Setelah ini berlaku, penipu boleh mendapatkan gambaran tentang dana yang dimiliki seseorang. Mereka kemudian boleh memilih untuk menyematkan mesej pancingan data dalam transaksi yang menjemput pemilik untuk mengklik pautan yang memuat turun perisian hasad, atau melawat laman web palsu yang meniru halaman pendaratan yang sah dan meminta maklumat peribadi.
Sejauh mana bahayanya serangan dusting bitcoin?
Serangan dusting tidak memberikan penipu akses kepada dana anda.
Ia hanya berfungsi untuk mengecilkan alamat mana yang dikawal oleh dompet kripto tertentu.
Untuk meminimumkan risiko serangan dusting anda, sebaiknya jangan sekali-kali mengklik pautan atau melawat laman web yang dilampirkan pada transaksi habuk.
Mula membeli Bitcoin
Kini setelah anda mempelajari semua tentang model output transaksi yang belum dibelanjakan, adakah anda bersedia untuk meneruskan perjalanan kripto anda dan membeli bitcoin?
Semak panduan Pusat Pembelajaran Kraken kami untuk maklumat lanjut tentang Cara membeli Bitcoin (BTC) dan daftar untuk akaun dengan Kraken hari ini.