Koin, saldo, dan akun: mengapa «berapa yang saya punya» punya tiga jawaban berbeda

·6 mnt baca·Oleh SSP Editorial Team
Sampul SSP Academy: model UTXO, saldo akun, dan sewa di Solana

Koin, saldo, dan akun: mengapa «berapa yang saya punya» punya tiga jawaban berbeda

Bukalah dompet yang mendukung beberapa rantai, dan bila Anda mengamati dengan cermat, akan tampak sesuatu yang ganjil. Saldo Bitcoin dan saldo Ethereum sama-sama hanya angka di layar, tapi di bawahnya keduanya dihitung dengan cara yang sama sekali berbeda — dan di Solana ada lagi susunan ketiga.

Ini bukan remeh-temeh. Ia menjelaskan mengapa biaya Bitcoin bergantung pada riwayat transaksi Anda, mengapa sebuah transaksi Ethereum bisa gagal dan tetap memakan uang, dan mengapa sebuah akun Solana tak bisa begitu saja dikosongkan sampai nol.

Model UTXO: Anda memiliki koin, bukan saldo

Bitcoin tak punya akun dan tak menyimpan saldo. Yang disimpannya adalah sekumpulan keluaran transaksi yang belum dibelanjakan — UTXO — dan masing-masing adalah bongkahan nilai tersendiri yang terkunci oleh suatu syarat pembelanjaan.

Bayangkan uang tunai. Anda tak punya «47 ribu» di saku; Anda punya selembar dua puluh ribuan, dua lembar sepuluh ribuan, selembar lima ribuan, dan dua keping seribuan. Untuk membayar 23 ribu, Anda menyerahkan yang dua puluh dan yang lima, lalu menerima kembalian 2 ribu. Anda tak bisa merobek selembar uang jadi dua.

UTXO bekerja persis begitu. Masing-masing harus dibelanjakan utuh. Untuk membayar 0,3 BTC dari keluaran 1 BTC, dompet Anda menghabiskan seluruh 1 BTC itu dan menciptakan dua keluaran baru: 0,3 untuk penerima, dan sekitar 0,7 kembali kepada Anda sebagai kembalian. UTXO 1 BTC tadi lenyap.

Maka «saldo» Anda adalah angka turunan — dompet Anda menyisir rantai mencari keluaran yang terkunci oleh syarat yang bisa Anda penuhi, lalu menjumlahkannya. Tak ada satu pun tempat di blockchain Bitcoin yang mencatat bahwa Anda memiliki jumlah tertentu.

Tiga akibat menyusul, dan ketiganya praktis:

Biaya bergantung pada riwayat Anda, bukan cuma pada jumlahnya. Biaya ditagih per byte, dan setiap masukan yang Anda belanjakan menambah byte. Membayar 50 ribu dari satu UTXO besar itu murah; membayar 50 ribu yang sama dengan menggabungkan tiga puluh UTXO mungil itu mahal, karena transaksinya secara fisik lebih besar. Itulah sebabnya menggabungkan UTXO saat biaya sedang rendah itu berfaedah.

Kembalian adalah keluaran sungguhan yang harus pergi ke suatu tempat. Setiap dompet mengurusnya secara otomatis, tapi itulah mekanisme di balik heuristik alamat kembalian yang dipakai para analis rantai untuk menautkan alamat-alamat Anda satu sama lain.

Pembelanjaan secara alami paralel. UTXO yang berbeda saling bebas, jadi tak ada yang memaksa transaksi Anda ke dalam urutan yang kaku.

Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Zcash, Ravencoin, dan Flux semuanya bekerja begini. Ini model yang lebih tua, dan model di mana «bukan kunci Anda, bukan koin Anda» paling harfiah benar — tak ada akun, hanya koin dengan syarat yang menempel padanya.

Model akun: Anda memiliki saldo, dan sebuah pencacah

Ethereum membuang itu semua dan memakai sesuatu yang lebih menyerupai buku besar bank. Rantainya menyimpan sebuah keadaan: pemetaan raksasa dari alamat ke saldo (dan, untuk kontrak, ke data tersimpan). Mengirim 0,3 ETH mengurangi 0,3 dari satu angka dan menambahkannya ke angka lain. Tanpa masukan, tanpa keluaran, tanpa kembalian.

Itu lebih sederhana, dan itulah yang membuat kontrak pintar bisa dijalankan — sebuah kontrak butuh penyimpanan tetap yang bisa ia baca dan tulis, hal yang canggung bila dunia tersusun dari koin-koin terpisah.

Tapi model akun memunculkan persoalan yang tak dimiliki UTXO. Kalau sebuah transaksi hanya berbunyi «kurangi 0,3 dari Ani», siapa pun yang melihatnya bisa menyiarkannya berulang-ulang dan menguras akunnya. Penawarnya adalah nonce: pencacah untuk tiap akun, disertakan dalam setiap transaksi, yang harus naik tepat satu. Transaksi nomor 7 baru bisa ditambang setelah nomor 6, dan hanya sekali.

Nonce itulah sebabnya rantai EVM berperilaku sebagaimana adanya:

Transaksi Anda terurut secara ketat. Satu transaksi yang tersangkut menghambat semua transaksi berikutnya dari alamat yang sama, sebab semuanya tak bisa diproses di luar urutan.

Biaya tetap dibayar bahkan ketika sebuah transaksi gagal. Gas membayar komputasi yang diupayakan, bukan komputasi yang berhasil. Panggilan kontrak yang dibatalkan tetap menghabiskan kerja para validator, jadi tetap memakan biaya. Ini terus-menerus mengejutkan orang, dan merupakan perbedaan nyata dari dunia UTXO, di mana transaksi tak sah cukup tak pernah terkonfirmasi dan tak berbiaya apa pun.

Mengelola nonce adalah infrastruktur sungguhan. Bagi dompet biasa hal ini tak terlihat. Bagi multisig, di mana dua perangkat harus bersepakat sebelum penyiaran, nonce harus dipesan, dilacak, dan dilepaskan — itulah sebabnya penanganan nonce menjadi tema berulang dalam penandatanganan dua perangkat, bukan sekadar detail penerapan.

Ethereum, Polygon, BSC, Avalanche, Base, dan XDC semuanya memakai model ini.

Solana: akun yang membayar sewa

Solana juga berbasis akun, tapi dengan belokan yang membuat orang lengah.

Di Solana, pada dasarnya semuanya adalah akun — dompet Anda, tiap token yang Anda pegang, data tiap program. Dan karena akun-akun itu menempati memori validator, mereka harus menyimpan saldo minimum agar tetap hidup. Itulah pembebasan sewa: setorkan cukup banyak dan akun bertahan tanpa batas waktu; jatuh di bawahnya dan ia bisa diambil kembali.

Efek praktisnya, memegang token SPL menuntut akun token tersendiri, diisi sedikit SOL, sebelum siapa pun bisa mengirimkan token itu kepada Anda sama sekali. Menerima tidaklah gratis. Ini tak lazim dan layak dipahami sebelum Anda membutuhkannya, karena «saya sudah kirim tokennya tapi tak ada yang sampai» kerap hanyalah akun token yang belum ada.

Mengapa dompet multi-rantai harus memodelkan ketiganya

Dompet yang mendukung rantai-rantai ini tak bisa memakai satu pengertian internal tentang «saldo». Ia butuh:

  • Untuk rantai UTXO: sekumpulan keluaran, masing-masing dengan jumlah dan skrip, plus logika pemilihan koin yang memutuskan mana yang dibelanjakan.
  • Untuk rantai EVM: satu angka saldo plus sebuah nonce, dan antrean yang menghormati urutan.
  • Untuk Solana: sebuah saldo, sekumpulan akun token terkait, dan kesadaran akan batas minimum sewa.

Arsitektur keamanannya pun harus menyesuaikan. Di rantai UTXO, dua-dari-dua milik SSP adalah sebuah skrip: keluaran P2WSH yang menuntut dua tanda tangan untuk dibuka, ditegakkan oleh aturan skrip rantai itu sendiri. Di rantai EVM tak ada sistem skrip setara untuk akun biasa, sehingga multisig diwujudkan lewat abstraksi akun — akun kontrak pintar yang logika validasinya menuntut kedua tanda tangan. Di Solana, ia adalah alamat turunan program, dikendalikan oleh sebuah program di rantai.

Tiga mekanisme yang sama sekali berbeda, satu gagasan yang menghadap pengguna: tak ada yang bergerak tanpa kedua perangkat. Justru karena penerapan di bawahnya sama sekali tak mirip, jaminan itu harus ditegakkan ulang, dan diaudit ulang, di tiap rantai alih-alih dianggap terbawa sendirinya.

Apa artinya ini bagi Anda

Ketika biaya Bitcoin terasa tinggi untuk pembayaran kecil, lihatlah masukan Anda. Jumlahnya kurang penting dibanding dari berapa keping ia tersusun.

Ketika sebuah transaksi Ethereum tersangkut, transaksi berikutnya dari alamat yang sama terjebak di belakangnya. Itu nonce, bukan kerusakan. Membereskan yang pertama membuka antreannya.

Ketika transaksi EVM yang gagal tetap menagih Anda, model itu sedang bekerja sebagaimana dirancang. Simulasi membantu menghindarinya — itulah sebabnya menyimulasikan sebelum menandatangani lebih berharga di rantai berbasis akun ketimbang di rantai UTXO.

Ketika transfer token Solana «lenyap», periksa keberadaan akun token. Tak ada yang hilang; tujuannya mungkin memang belum ada.

Tak satu pun dari ini keanehan dompet tertentu. Semuanya akibat sebuah keputusan rancangan yang diambil tiap rantai bertahun-tahun lalu, dan begitu Anda bisa melihat sedang berada di model yang mana, banyak perilaku yang tadinya membingungkan menjadi bisa diramalkan.

Bagikan artikel ini

Artikel terkait