MSTR Cat

Blockchain/Tahap II · Mekanisme/2.2 Transaksi/Pelajaran 1

Model UTXO

Mengapa Bitcoin tidak mempunyai akaun, dan bagaimana lejar mengetahui apa yang telah dibelanjakan

BahanPelayar web yang mempunyai akses kepada peneroka blok (contohnya, mempool.space)Alamat Bitcoin awam dengan beberapa UTXOBuku nota untuk merekodkan ID dan nilai output

Ingin tahu

  1. Apa yang berlaku pada baki apabila tiada akaun untuk dikemas kini?
  2. Bagaimanakah sebuah nod mengesahkan bahawa sesuatu input belum dibelanjakan tanpa memeriksa setiap transaksi sebelumnya?
  3. Mengapa sejarah penuh yang dibawa oleh sesuatu syiling menyukarkan pemiliknya untuk kekal tanpa nama?

Teroka

  1. Bitcoin tidak menggunakan model akaun seperti lejar bank dan Ethereum. Dalam sistem tersebut, baki disimpan di alamat dan dikemas kini secara langsung; menghantar dana akan menolak daripada satu baki dan menambah kepada baki yang lain. Bitcoin tidak mempunyai storan sedemikian. Sebaliknya, ia menggunakan struktur yang menyerupai wang tunai, di mana nilai hanya wujud sebagai unit-unit berasingan yang belum dibelanjakan. Tiada lejar pusat yang menjejak ‘jumlah keseluruhan Alice’; yang ada hanyalah satu set output individu yang kini tersedia untuk dibelanjakan.
  2. Unit-unit ini dikenali sebagai Unspent Transaction Outputs (UTXO). Setiap UTXO menyimpan jumlah tertentu dalam satoshi serta skrip penguncian yang menentukan siapa yang boleh membelanjakannya. Apabila transaksi berlaku, ia menggunakan UTXO secara keseluruhan sebagai input dan mencipta UTXO baharu sebagai output. Output yang dibelanjakannya keluar daripada set syiling yang boleh dibelanjakan (transaksi tersebut kekal dalam sejarah rantaian), manakala output baharu menyertai set itu. ‘Baki’ dompet bukanlah nombor yang disimpan, tetapi jumlah semua UTXO yang skrip penguncinya dapat dipenuhi oleh kunci peribadi dompet tersebut.
  3. Struktur ini memudahkan proses pengesahan bagi nod rangkaian. Memandangkan setiap input merujuk kepada output tertentu yang sebelumnya belum dibelanjakan, sebuah nod hanya perlu memastikan bahawa output tersebut wujud dalam keadaan semasa dan belum digunakan sebelum ini. Ia tidak perlu mengira semula baki global atau menyemak sejarah akaun yang rumit. Setiap nod penuh menyimpan ‘chainstate’, iaitu pada asasnya keseluruhan set UTXO yang aktif pada sesuatu masa. Ini membolehkan percubaan perbelanjaan berganda disahkan dengan pantas dan secara deterministik.
  4. Perbezaan dengan Ethereum menonjolkan satu pilihan reka bentuk yang penting. Ethereum menggunakan model akaun di mana setiap alamat mempunyai baki yang disimpan serta nonce (pembilang transaksi) untuk mencegah serangan replay. Mengemas kini sesuatu akaun memerlukan perubahan pada pepohon keadaan (state tree) secara global. Bitcoin pula mencipta output baharu dan bukannya mengubah baki secara langsung, yang bermakna syiling membawa sejarahnya, sekali gus menghubungkan transaksi lalu dengan pegangan semasa.
  5. Hubungan sejarah ini mempunyai implikasi yang besar terhadap privasi dan kebolehtukaran (fungibility). Memandangkan setiap input merujuk kembali kepada output sebelumnya, penganalisis dapat menjejak aliran dana melalui rantaian UTXO. Walaupun perkhidmatan pencampuran (mixing) dan teknik lain wujud, struktur asasnya menyukarkan hubungan antara asal-usul sesuatu syiling dengan pemegangnya sekarang diputuskan sepenuhnya. Ketelusan ini sering disebut dalam perdebatan tentang sama ada bitcoin benar-benar boleh ditukar ganti (fungible), kerana sesetengah peserta pasaran mungkin lebih memilih syiling ‘bersih’ yang sejarahnya kurang dapat dijejak.
  6. Untuk melihatnya secara praktikal, buka paparan kawalan syiling (coin control, atau ‘UTXO’) bagi dompet yang telah menerima beberapa pembayaran: ia menyenaraikan setiap output secara berasingan, dengan nilai dan ID transaksinya sendiri. Pada peneroka blok, halaman alamat menunjukkan perkara yang sama sebagai senarai output yang diterima, sebahagiannya telah dibelanjakan dan sebahagian lagi belum. Senarai output individu inilah representasi sebenar pemilikan on-chain; ‘baki’ yang ditunjukkan dalam antara muka hanyalah pengiraan di pihak klien yang diperoleh daripada set ini.

Fakta utama

  • Bitcoin tidak mempunyai akaun atau baki yang disimpan on-chain; pemilikan hanya terdiri daripada Unspent Transaction Outputs (UTXO).
  • Setiap UTXO mengandungi jumlah dalam satoshi serta skrip penguncian yang menetapkan syarat-syarat yang diperlukan untuk membelanjakannya.
  • Satu transaksi menggunakan UTXO secara keseluruhan sebagai input dan mencipta UTXO baharu sebagai output; output yang dibelanjakannya keluar daripada set UTXO.
  • Setiap nod penuh menyimpan ‘chainstate’, iaitu set lengkap semua output yang belum dibelanjakan pada masa ini, yang digunakan untuk pengesahan.
  • Baki yang dipaparkan pada dompet ialah pengiraan tempatan yang menjumlahkan nilai UTXO yang dikawal oleh kunci peribadinya, bukan nilai yang disimpan dalam blockchain.
  • Berbeza dengan model akaun Ethereum yang menggunakan nonce dan baki yang boleh diubah, model UTXO Bitcoin melayan syiling sebagai unit berasingan yang membawa sejarah, yang digantikan dan bukannya dikemas kini.

Latihan sembilan, enam, tiga, satu

9KumpulSenaraikan 9 aset atau mata wang digital yang berbeza. Catatkan sama ada setiap satu menggunakan sistem baki berasaskan akaun (seperti Ethereum) atau sistem output berasaskan UTXO (seperti Bitcoin).
6KelompokkanKumpulkan 9 item tersebut ke dalam 6 kategori berdasarkan cara setiap satu mengendalikan keadaan (state): baki yang boleh diubah, output yang tidak boleh diubah, model hibrid, lejar berpusat, atau lain-lain.
3SaringKurangkan 6 kumpulan tersebut kepada 3 sebab asas mengapa sesuatu protokol mungkin memilih UTXO berbanding akaun untuk struktur lejarnya.
1KristalkanTulis 1 ayat yang menerangkan bagaimana ketiadaan baki yang disimpan mengubah cara perbelanjaan berganda dihalang dalam Bitcoin berbanding perbankan tradisional.

Semakan fakta

Tarikh, angka dan dakwaan telah disemak berbanding dengan sumber yang diterbitkan yang disenaraikan di bawah.

Buka dalam akademi interaktif →

EN PT ES ZH JA KO RU DE FR