1. Model apa yang saat ini digunakan dalam rantai tersebut?
Chain ternama seperti Ethereum, EOS, dan Solana semuanya menggunakan model akun. Bahkan bisa dikatakan lebih dari 90% proyek menggunakan model akun, sementara hanya beberapa proyek mapan yang menggunakan model UTXO, seperti BTC dan DOGE. , LTC tentunya beberapa proyek yang relatif baru juga menggunakan model ini, seperti FUEL yang menggunakan skema OP di Layer2.
2. Apa yang dimaksud dengan model akun?
Sederhananya, ini adalah sistem rekening bank, seperti transfer antar bank, Alipay, transfer WeChat, dll., semuanya termasuk dalam model akun. Izinkan saya memberi Anda sebuah contoh:
Jika A memiliki 100 dan B memiliki 100
Pada saat ini, A mentransfer 50 yuan ke B.
Manifestasi dalam sistem adalah
A -50, B +50
Jadi keseimbangan mereka
A 50, B 150
Ini adalah transfer.
Misalkan lagi A masih memiliki 100, dan dia ingin mentransfer 1 yuan ke 100 pemegang akun baru.
Saat ini, A perlu mentransfer 1 yuan ke 100 orang pada saat yang sama
ke 1
A -1, orang pertama +1
Jadi keseimbangan mereka
A 99, orang pertama 1
Transaksi ke-2
A -1, orang ke-2 +1
Jadi keseimbangan mereka
A 98, orang ke-2 1
Transaksi ke-3
A -1, orang ke-3 +1
Jadi keseimbangan mereka
A 97, orang ketiga 1
Dan sebagainya
......
Nomor 100
A -1, orang ke-100 +1
Jadi keseimbangan mereka
Orang ke 0,100 1
Secara teori, 100 transfer perlu dilakukan, dan transfer berikutnya harus diselesaikan sebelum transfer sebelumnya. Jika tidak, saldo akun tidak dapat dijamin konsisten, dan akan terjadi kebingungan apakah ada beberapa transfer atau apakah saldo cukup untuk transfer.
Secara teori, semakin banyak transaksi, semakin besar pula waktu yang dibutuhkan untuk eksekusi.
3. Apa itu model UTXO?
Seperti yang telah disebutkan sebelumnya, banyak merek arus utama lama menggunakan UTXO, dan Bitcoin, cikal bakal lingkaran ini, juga menggunakan model UTXO. Ngomong-ngomong, mata uang digital legal DCEP yang dikeluarkan negara kita juga didasarkan pada model UTXO, jadi model ini pasti memiliki fitur-fitur uniknya.
UTXO adalah singkatan dari Unspent Transaction Output, yang berarti "keluaran transaksi yang belum dibelanjakan". Modelnya agak mirip dengan sistem kas dalam kehidupan sehari-hari. Misalnya:
A mempunyai dompet (dompet asli) yang berisi uang kertas 1 yuan, 10 yuan, dan 100 yuan.
A ingin memberikan 1 yuan kepada B, C, dan D masing-masing.
A Ada tiga cara
Cara pertama: ambil 1 yuan dan berikan ke B.
Cara kedua: berikan C 10 yuan dan dapatkan kembalian 9 yuan.
Pilihan ketiga: berikan D uang 100 yuan dan dapatkan kembali 99 yuan.
Ketiga metode ini dapat menyelesaikan transaksi ini.
Kembali ke rantai, bayangkan setiap denominasi uang di sini sebenarnya adalah UTXO pada rantai tersebut. UTXO yang digunakan tidak ditransfer, melainkan terus-menerus dihancurkan dan dibangun kembali. Misalnya:
A mentransfer uang ke C menggunakan metode kedua. UTXO dengan nilai nominal 10 yuan akan dihancurkan, dan sistem akan mencetak ulang UTXO dengan nilai nominal 1 yuan dan UTXO dengan nilai nominal 9 yuan. Uang 1 yuan akan diberikan kepada C, dan uang 9 yuan akan dikembalikan kepada A.
Metode ketiga sama saja. Uang 100 yuan dihancurkan, lalu dicetak satu lembar UTXO dengan nilai nominal 1 yuan dan satu lembar UTXO dengan nilai nominal 99 yuan. Uang 1 yuan diberikan kepada D, dan uang 99 yuan dikembalikan kepada A.
Inilah perbedaan antara metode transfer UTXO dan model akun. Yang lebih menakjubkan lagi, model UTXO dapat mentransfer secara paralel. Karena saldo tersedia melalui UTXO yang terdesentralisasi, setiap denominasi dapat ditransfer ke orang yang berbeda secara bersamaan. Ketiga metode di atas dapat diselesaikan secara bersamaan dalam satu transaksi karena tidak ada masalah konsistensi akun. Setiap UTXO dihitung secara independen.
Ketika kita membandingkan model akun di atas, setiap transaksi harus bergantung pada penyelesaian transaksi sebelumnya, dan kesenjangan kinerjanya dapat dibayangkan. Hal ini membuat kita mengerti mengapa mata uang digital bank sentral menggunakan model UTXO, jika tidak, bagaimana Shenzhen dapat mengirimkan 10 juta RMB digital ke 50.000 dompet?
Mari kita kembali ke contoh di atas.
A memiliki 100, dan dia ingin mentransfer 1 yuan kepada 100 nasabah baru yang telah membuka akun.
UTXO dengan nilai nominal 100 dapat dibagi menjadi 100 UTXO dengan nilai nominal 1 yuan, dan kemudian didistribusikan langsung ke 100 orang dalam satu transaksi, yang diselesaikan secara instan.
Singkatnya, anggaplah nilai nominal UTXO sebagai uang tunai yang lebih fleksibel yang terus-menerus dihancurkan dan dibangun kembali pada rantai.
Jika Anda ingin mengetahui berapa banyak uang di alamat dompet ini, Anda perlu menghitung jumlah UTXO dengan saldo dan menjumlahkannya.
4. Keuntungan dan kerugian model akun dan UTXO
Keuntungan model akun:
Kontrak disimpan di Akun dalam bentuk kode, dan Akun tersebut memiliki statusnya sendiri. Model ini memiliki kemampuan pemrograman yang lebih baik, lebih mudah dipahami oleh pengembang, dan memiliki rentang skenario yang lebih luas.
Biaya transaksi batch rendah. Bayangkan sebuah mining pool membayar biaya penanganan kepada penambang. Karena setiap Input dan Output di UTXO memerlukan skrip Witness atau skrip Locking yang terpisah, transaksi itu sendiri akan sangat besar, dan verifikasi tanda tangan serta penyimpanan transaksi akan menghabiskan sumber daya berharga di rantai tersebut. Model Akun dapat mengurangi biaya secara signifikan melalui kontrak.
Kerugian model akun:
Transaksi model akun tidak memiliki dependensi, sehingga masalah replay perlu dipecahkan. Bagaimana Ethereum memecahkan masalah ini? Kita tahu bahwa Ethereum menggunakan metode nilai Nonce yang unik. Terdapat kolom Nonce di setiap transaksi Tx. Untuk setiap pengguna, Nonce ini tidak dapat diulang, sehingga menghindari serangan replay.
Untuk implementasi Lightning Network/Raiden Network, Plasma, dll., bukti pengguna memerlukan mekanisme Pembuktian yang lebih kompleks, dan migrasi status dari sub-rantai ke rantai utama memerlukan protokol yang lebih kompleks.
Keunggulan UTXO:
Perhitungannya dilakukan di luar rantai, dan transaksi itu sendiri merupakan hasil sekaligus bukti. Node hanya perlu memverifikasi, dan tidak ada perhitungan tambahan yang diperlukan untuk transaksi tersebut, dan tidak ada penyimpanan status tambahan. Perhitungan UTXO keluaran transaksi itu sendiri diselesaikan di dalam dompet, sehingga beban perhitungan transaksi sepenuhnya ditanggung oleh dompet, yang mengurangi beban pada rantai sampai batas tertentu.
Kecuali untuk transaksi Coinbase, input transaksi selalu terhubung ke UTXO. Transaksi tidak dapat diputar ulang, dan urutan serta dependensi transaksi mudah diverifikasi, serta mudah dibuktikan apakah transaksi telah dikonsumsi.
Model UTXO bersifat stateless dan lebih mudah diproses secara bersamaan.
Untuk transaksi tipe P2SH, privasinya lebih baik. Input dalam transaksi tidak saling terkait, dan teknologi seperti CoinJoin dapat digunakan untuk meningkatkan privasi.
Kekurangan UTXO:
Beberapa logika kompleks mustahil diimplementasikan, dan kemampuan pemrogramannya buruk. Untuk logika kompleks atau kontrak yang perlu menyimpan status, implementasinya sulit, dan tingkat pemanfaatan ruang status relatif rendah.
Ketika inputnya besar, skrip saksi juga akan bertambah. Tanda tangan itu sendiri menghabiskan lebih banyak CPU dan ruang penyimpanan.
5. Apa perbedaan singkat antara model akun dan UTXO?
Saldo Akun
Model akun: Anda dapat melihat dengan jelas berapa banyak uang yang ada di akun tersebut.
Model UTXO: Hitung jumlah UTXO di bawah alamat, dan hasil penjumlahannya adalah saldo.
Ketika jumlah transaksi meningkat secara eksponensial
Model akun: Akan menjadi semakin sulit.
Model UTXO: secara alami mendukung konkurensi tinggi.
Dari perspektif kontrak pintar/pengembang
Model akun sesuai dengan kebiasaan logis pengembang dan relatif mudah untuk menulis logika
Pemrograman skrip UTXO relatif rumit


