Apa itu Compact Block Dalam Bitcoin? Dan Bagaimana Bisa Bermanfaat Untuk Bitcoin
Apa itu Compact Block. Setiap transaksi baru yang tercipta, selanjutnya disiarkan ke dalam jaringan. Setelah transaksi tersebut dimasukkan ke dalam block baru berikutnya, maka block baru itu akan disiarkan kembali ke jaringan. Lalu di relay lagi hingga seluruh seluruh full node dalam jaringan mendengar, dan mengunduhnya.
Proses tersebut, dianggap tidak efisien dan memakan bandwidth lebih banyak. Tentu akibatnya, ada lonjakan bandwidth yang harus ditanggung masing masing full node saat mereka menerima block baru. Maka pada Core Bitcoin yang baru, versi 0.13.0, ditambahkan Compact Block. Namun apa itu Compact Block sebenarnya?
Compact Block adalah sebuah metode untuk mengurangi jumlah beban bandwidth yang digunakan untuk menyebarkan block baru kepada seluruh full node. Compact Block ini, diusulkan dalam BIP152 dengan judul “Compact Block Relay”.
Cara yang digunakan adalah dengan mengirim rincian block antar peer dalam jaringan. Rincian block tersebut berisi header block berukuran maksimal 80 byte, txids yang telah diperpendek untuk mencegah serangan ddos, dan juga transaksi yang belum dimiliki oleh node-node lain di jaringan.
Jika node tersebut telah menerima rincian block tersebut, maka node tersebut bisa mulai membangun block tersebut dengan informasi yang telah diterima berdasarkan transaksi-transaksi di mempool. Jika memang node tersebut masih belum mempunyai rincian transaksi lain, maka ia juga bisa memintanya kepada node lain.
Menariknya, compact block ini juga mempunyai fungsi yang berbeda pada full node yang mempunyai bandwidth besar maupun tidak. Di dalam proposalnya, ada beberapa type operasi, yakni Legacy Relaying, high bandwidth Relaying, dan low bandwidth Relaying.
High Bandwidth Relaying, full node dapat langsung mengirimkan block baru tanpa harus meminta persetujuan terlebih dahulu. Namun, type ini akan membutuhkan bandwidth yang lebih besar karena antara dua peer tersebut akan mengirimkan block yang sama diwaktu yang sama juga. Tentu pengiriman block itu sedikit lebih cepat.
Low Bandwidth Relaying, pada tipe ini, node dapat meminimalkan penggunaan bandwidth saat ada block baru. Node tersebut meminta block baru tersebut dapat dikirimkan dalam compact mode. Lalu peer node yang diminta tersebut akan mengirimkan header, txid, dan transaksi-transaksi yang diprediksi belum dimiliki oleh node itu. Lalu berdasarkan data tersebut, node yang bersangkutan dapat memulai membangun block.
Legacy Relaying, pada mode ini, setelah sebuah block divalidasi oleh node, ia kemudian mengirimkan ke node B yang memintanya. Node B mengirimkan permintaan berupa get data dari block baru, dan node A akan mengrimkan data block baru tersebut.