Apa itu UTXO?

UTXO bermaksud Keluaran Transaksi Tidak Dikeluarkan (TX). Pada dasarnya, ini adalah jumlah perubahan cryptocurrency yang anda terima dari setiap transaksi. Namun, untuk menjelaskan lebih jauh, pertama-tama kita harus menguraikan bagaimana transaksi kripto biasa berfungsi. Mari gunakan Bitcoin untuk contoh kita kerana ia adalah cryptocurrency yang paling terkenal menggunakan UTXO.

Contoh Transaksi UTXO

Apabila anda melihat dompet Bitcoin anda, anda akan melihat baki. Untuk contoh ini, mari kita tetapkan pada 100 bitcoin. Walaupun anda memerhatikan dengan adil satu baki, dana anda sebenarnya terdiri daripada beberapa UTXO. Anda mungkin mempunyai empat UTXO bernilai 25 bitcoin setiap satu, dua UTXO bernilai 50, atau satu set UTXO bernilai 37, 18, 40, dan 5 bitcoin. Jumlah tertentu tidak penting, tetapi jumlahnya mesti ditambah dengan jumlah baki anda, dalam kes ini, 100.

Sebagai contoh, mari kita anggap bahawa anda sedang membeli kereta baru. Awak bekerja keras; anda layak mendapatkannya. Dengan stereotaip Lambo, anda memutuskan Porche yang berharga 35 bitcoin. Nah, dompet anda hanya mengandungi UTXO yang masing-masing bernilai 15, 17, 28, dan 40 bitcoin. Anda tidak mempunyai satu yang bernilai tepatnya 35 bitcoin.

Mustahil untuk membahagi UTXO, jadi tidak ada cara untuk membayar 35 bitcoin yang tepat yang anda berhutang.

Sebaliknya, anda membelanjakan 40 bitcoin UTXO. Sebagai gantinya, rangkaian menghasilkan dua UTXO baru: satu bernilai 35 bitcoin, satu bernilai 5 bitcoin. Pengedar kereta menerima UTXO 35 bitcoin sementara anda menerima UTXO 5 bitcoin sebagai perubahan.

Anda juga mungkin menghabiskan UTXO 17 dan 28 bitcoin dan menerima 10 bitcoin sebagai perubahan anda. Urus niaga boleh menggunakan gabungan UTXO; namun, anda tidak mempunyai kawalan yang mana.

Sama seperti anda dapat membahagikan UTXO ke dalam keadaan yang berasingan, anda juga dapat menggabungkannya dalam transaksi yang lebih besar, menjadikannya lebih sedikit di rangkaian.

Bagaimana dengan Yuran Transaksi?

Bayaran transaksi juga termasuk dalam urus niaga dan dikurangkan dari UTXO yang anda terima sebagai perubahan. Persamaannya kelihatan seperti ini:

UTXO baru = (Jumlah UTXO dalam transaksi) – (Jumlah transaksi) – (Bayaran transaksi)

Meneruskan contoh terbaru kami dengan bayaran transaksi satu bitcoin:

UTXO Baru = (17 + 18) – (35) – (1) = 9 bitcoin

Masalah Kepentingan dan Potensi UTXO

Melaksanakan UTXO sangat memudahkan kaedah perakaunan blockchain. Daripada perlu mengesan dan menyimpan setiap transaksi, agar tidak kurang, kita hanya perlu mengesan duit yang belum habis, juga dikenali sebagai UTXO.

Anda lihat, setiap duit syiling dalam ekosistem Bitcoin hanya dapat dibelanjakan sekali. Jadi, setiap bitcoin dalam dompet sekarang tidak dibelanjakan kerana:

  1. Seorang pelombong menerimanya sebagai hadiah perlombongan, atau
  2. Ia dicetak semasa transaksi. (Ingat contoh kita dari tadi?)

UTXO sangat penting dalam mencegah serangan berbelanja dua kali ganda, dan mereka menghalang anda daripada menghabiskan duit syiling yang tidak ada. Nod rangkaian merekod dan menyelenggara pangkalan data yang mengandungi setiap UTXO (iaitu, duit yang belum habis) tersedia untuk perbelanjaan. Sekiranya anda cuba menghantar transaksi dengan duit syiling yang tidak ada dalam pangkalan data itu, node akan menolaknya.

Masalah Penyimpanan Berpotensi

Nod menyimpan pangkalan data UTXO dalam RAM, jadi penting untuk menjaga set data pada ukuran yang dapat dikendalikan. Ketika berkembang, kos menjalankan nod penuh bertambah seiring dengannya. Sekiranya menjalankan nod penuh menjadi terlalu mahal, kita dapat melihat pemusatan lebih jauh dalam rangkaian Bitcoin di antara beberapa orang kaya yang mampu menjalankannya.

Saiz Pangkalan Data UTXO Bitcoin Sepanjang Masa melalui Blockchain

Saiz Pangkalan Data UTXO Bitcoin Sepanjang Masa melalui Blockchain

Risiko pemusatan ini adalah salah satu hujah utama menentang peningkatan saiz blok Bitcoin. Pembangun Bitcoin Gavin Andresen menerangkannya dengan baik dalam artikelnya UTXO uh-oh…:

“Blok satu megabait adalah ruang untuk kira-kira 100 juta transaksi 500 byte setiap tahun. Sekiranya masing-masing meningkatkan set UTXO sebanyak 500 bait, itu akan meningkatkan set UTXO 50 gigabait setahun. ”

Ukuran blok satu megabait menetapkan had atas sejauh mana pangkalan data UTXO dapat berkembang setiap tahun. Dia meneruskan:

“Membolehkan lebih banyak urus niaga tanpa perubahan lain kemungkinan akan mempercepat pertumbuhan set UTXO, menjadikannya lebih mahal, lebih cepat, untuk menjalankan node pengesahan sepenuhnya.”

Oleh itu, kami tidak mengurangkan kata-kata Andresen: Artikelnya sebenarnya memihak kepada peningkatan ukuran blok. Dia berpendapat bahawa impak pada ukuran set UTXO tidak drastik seperti yang dipercaya oleh orang lain. Dan, memandangkan kerumitan penyelesaian penskalaan lapisan kedua, kita perlu menerapkan blok yang lebih besar dalam jangka masa terdekat sebelum penyelesaian tersebut dilaksanakan dalam jangka panjang.

Penyelesaian

Syukurlah, terdapat beberapa penyelesaian untuk masalah penyimpanan yang berpotensi. Pertama, nod tidak perlu menyimpan keseluruhan pangkalan data UTXO dalam RAM. Mereka boleh memilih untuk menyimpan sebahagiannya dalam cakera padat (SSD) atau cakera keras berputar yang lebih murah. Walaupun jenis storan ini menyebabkan masa pengesahan yang lebih lambat untuk setiap simpul, seharusnya tidak ada masalah selagi masih berada di bawah waktu blok rata-rata sepuluh minit.

Selain itu, pembangun Bitcoin terus meningkatkan mekanisme transaksi untuk mengoptimumkan pangkalan data UTXO.

Akhirnya, Segregated Witness (Segwit) dan penyelesaian penskalaan yang serupa secara tidak langsung memperlambat pertumbuhan pangkalan data UTXO. Menarik terus dari Dokumentasi Teras Bitcoin:

“Segwit memperbaiki keadaan di sini dengan membuat data tanda tangan, yang tidak mempengaruhi ukuran set UTXO, harganya 75% lebih rendah daripada data yang mempengaruhi ukuran set UTXO. Ini diharapkan dapat mendorong pengguna untuk menyukai penggunaan transaksi yang meminimumkan impak pada set UTXO untuk meminimumkan biaya, dan mendorong pembangun untuk merancang kontrak pintar dan fitur baru dengan cara yang juga akan meminimumkan dampak pada set UTXO. “

Kesimpulan: Alternatif UTXO?

Kami secara konsisten menggunakan Bitcoin dalam contoh kami hari ini, tetapi terdapat banyak cryptocurrency lain yang melaksanakan UTXO, termasuk Bitcoin Cash, Litecoin, dan Komodo antara lain.

Terdapat juga banyak cryptos lain yang menggunakan mekanisme perakaunan lain. Ethereum, misalnya, mempunyai model transaksi berdasarkan akaun. Mekanisme ini secara amnya memberikan penjimatan ruang yang lebih baik dan kod yang lebih mudah untuk digunakan; namun, anda kehilangan tahap privasi transaksi dan menghadapi kemungkinan masalah skalabiliti di jalan.

Sekiranya anda bertanya kepada sebilangan sepuluh pembangun crypto mengenai kaedah perakaunan terbaik, kemungkinan anda akan mendapat sepuluh respons berbeza. Ini adalah topik yang diperdebatkan di seluruh komuniti yang masih belum mempunyai penyelesaian yang sempurna. Oleh kerana kerumitan, kemungkinan tidak akan pernah berlaku.