Menengah Pelajaran 3 Baca 4 menit

Taxa, mempool, dan RBF: mengapa transaksi Anda terhenti

Tidak ada antrean tunggal dan tidak ada petugas. Ada lelang untuk ruang, dan ada dua cara untuk meningkatkan tawaran setelahnya.

Anda mengirimkan transaksi empat jam yang lalu dan uangnya belum sampai. Tidak ada orang yang memproses permintaan Anda, tidak ada layanan pelanggan, dan yang paling penting, tidak ada antrian. Yang ada adalah lelang untuk ruang, dan transaksi Anda tidak memberikan tawaran yang cukup.

Setiap node dalam jaringan menyimpan di memori transaksi yang valid yang belum masuk ke dalam blok. Penyimpanan ini disebut mempool, dan penting untuk memahami bahwa ini bersifat lokal: node Anda memiliki miliknya sendiri, saya memiliki milik saya, dan keduanya hampir tidak pernah identik. Tidak ada daftar tunggu resmi di mana pun di dunia.

Sebuah blok dapat memuat, dalam praktiknya, sedikit lebih dari satu juta unit ukuran, yang setara dengan antara dua hingga tiga ribu transaksi. Karena ruangnya tetap dan permintaannya tidak, penambang yang menyusun blok berikutnya memilih transaksi yang membayar lebih banyak per unit ruang yang ditempati. Itulah mengapa biaya diukur dalam satoshi per vByte, dan bukan dalam rupiah atau persentase.

Dari situ muncul fakta yang paling tidak intuitif tentang topik ini: biaya tidak bergantung pada nilai yang dikirim. Mengirim seribu bitcoin dalam transaksi yang ringkas bisa lebih murah daripada mengirim setengah rupiah dalam transaksi dengan tiga puluh input, karena yang dibayar adalah ruang yang ditempati dalam blok, persis seperti ongkos kirim yang dikenakan berdasarkan volume muatan dan bukan harga barangnya.

Yang dikenakan biaya adalah ruang di gerobak, bukan nilai barang di dalamnya.

Harga ruang ini sangat bervariasi. Pada bulan Desember 2017, ketika jaringan padat, biaya rata-rata untuk sebuah transaksi melebihi lima puluh dolar. Pada blok 840.000, yang ditambang pada 20 April 2024, para penambang mengumpulkan lebih dari 37 bitcoin hanya dari biaya — sebuah rekor, disebabkan oleh perlombaan untuk mencatat data pada blok tertentu tersebut. Pada malam yang tenang, transaksi yang sama hanya memerlukan biaya beberapa sen. Dompet Anda memeriksa blok terbaru dan ukuran mempool untuk menyarankan nilai, dan biasanya tepat.

Ketika salah, ada dua solusi. Yang pertama adalah mengganti transaksi dengan yang sama, tetapi dengan biaya lebih tinggi. Mekanisme ini disebut RBF, atau replace-by-fee, dan berfungsi karena transaksi yang tertunda belum final: selama masih di mempool, versi baru yang menggunakan input yang sama dan membayar lebih banyak diterima menggantikan yang lama.

Selama tukang pos belum datang, Anda bisa mengganti surat di kotak dengan yang lain.

Solusi kedua digunakan ketika penggantian tidak memungkinkan — karena transaksi disusun tanpa izin ini, atau karena yang menunggu adalah Anda, di sisi penerima. Ini disebut CPFP, anak membayar untuk ayah. Anda menggunakan output yang belum dikonfirmasi dalam transaksi kedua, membayar biaya tinggi di sana. Karena yang kedua bergantung pada yang pertama, penambang hanya bisa mendapatkan biaya besar itu jika menyertakan keduanya bersama-sama, dan itulah yang mereka lakukan.

Gerobak kedua membayar tol untuk keduanya, dan gerbang harus dibuka untuk keduanya bersama-sama.

Dan jika Anda tidak melakukan apa-apa? Tidak ada yang buruk terjadi. Koin tetap milik Anda, karena transaksi yang tidak dikonfirmasi tidak memindahkan apa pun — itu hanya sebuah proposal. Setelah beberapa waktu, biasanya dua minggu, node-node akan menghapus proposal dari memori karena kekurangan ruang, dan seolah-olah transaksi itu tidak pernah dibuat. Bagian-bagian yang akan digunakan tetap utuh, tersedia untuk transaksi baru.

Hanya ada satu cara untuk kehilangan uang dalam cerita ini, dan itu adalah cara yang biasa: menerima sesuatu sebagai pembayaran yang belum dikonfirmasi. Transaksi dalam mempool dapat diganti, dilupakan, atau tidak pernah ditambang. Konfirmasi adalah kedalaman, dan jalur pemula sudah menjelaskan mengapa.

Masih perlu melihat apa yang terjadi di sisi lain, ketika penambang akhirnya memilih transaksi dan menyusun blok. Ada delapan puluh byte header yang merangkum semuanya, dan sebuah angka yang diubah miliaran kali per detik. Pada pelajaran berikutnya, blok dari dalam.