Pengertian Fork, Soft Fork, Hard Fork pada Bitcoin
Pengertian Forking
Forking (pencabangan) merupakan kejadian di mana 2 blok dengan nomor blok yang sama tercipta dalam waktu yang bersamaan.
Gambar 2. Forking
Gambar 2 menunjukkan kejadian forking. Berhubung Bitcoin bekerja dalam sistem voting, maka kejadian forking tentu saja bisa terjadi. Saat 2 blok tercipta dalam waktu yang bersamaan, maka mas ing-masing penambang akan memilih blok mana yang mereka ikuti untuk membuat blok berikutnya.
Dalam kasus normal, biasanya fork hanya terdiri atas 1 blok. Keti ka blok tersebut tidak berhasil menjadi bagian dari blockchain, maka blok tersebut akan menjadi stale block yang tidak valid dan dibuang dari blockchain. Sementara blok-blok berikutnya yang tersambung dengan stale block akan menjadi orphan block (blok yatim piatu). Seluruh transaksi yang ada di dalam stale block dan orphan block yang tadinya berstatus confirmed (terkonfirmasi) akan kembali men jadi unconfirmed (belum terkonfirmasi) dan akan dimasukkan ke da lam antrean untuk dimasukkan ke dalam blok berikutnya.
Gambar 3. Stale Block dan Orphan Block
Selain kasus fork di atas, terdapat juga kemungkinan fork karena terjadi perubahan protokol atau sistem Bitcoin yang dihasilkan dari perubahan konsensus. Dalam proses menuju sistem baru, terdapat 2 kemungkinan yang bisa terjadi, yakni soft fork dan hard fork.
Pengertian Soft Fork
Soft fork merupakan kejadian di mana node-node yang belum melakukan upgrade dapat menerima sebuah blok yang dibentuk dengan menggunakan aturan lama, tetapi node-node yang telah di upgrade tidak dapat menerima blok baru tersebut karena melanggar aturan baru dalam sistem yang telah diupgrade. Hal ini bisa saja terja di karena sistem baru memiliki aturan yang lebih ketat dibandingkan dengan sistem lama. Oleh karena itu blok-blok baru yang dibentuk dengan menggunakan sistem baru tetap dapat diterima oleh node yang menjalankan sistem lama.
Dengan demikian, meskipun node-node baru tidak mengalami masalah, namun node-node dengan sistem lama akan mengalami problem karena blok yang mereka proses tidak dapat diterima oleh mayoritas node yang memilih untuk mengupgrade sistem mereka ke versi yang lebih baru.
Gambar 4. Soft Fork
Pengertian Hard Fork
Hal yang berbeda terjadi dalam hard fork. Pada hard fork, node lama dan node baru tidak dapat saling mengupdate informasi blok baru oleh sebab perbedaan protokol yang cukup besar sehingga ti dak ada lagi kompatibilitas di antara sistem lama dan sistem baru. Akibatnya dapat muncul cabang yang cukup panjang apabila node lama belum mengupgrade sistem ke versi yang terbaru sesuai den gan konsensus yang telah dicapai.
Gambar 5. Hard Fork
Merkle Tree
Transaksi-transaksi yang terdapat di dalam sebuah blok disusun dalam bentuk merkle tree (pohon merkle) secara bertingkat. Pertama-tama, transaksi-transaksi tersebut akan dpasang-pasangkan kemudian setiap pasang akan dihitung nilai hash nya. Nilai hash tersebut akan dipasangkan kembali dengan nilai hash yang lain untuk mendapatkan sebuah nilai hash yang baru, demikian seterusnya sampai didapatkan sebuah nilai hash yang disebut dengan merkle root.
Gambar 6. Merkle Tree
Berhubung setiap transaksi harus dipasang-pasangkan untuk menghitung merkle root, maka semestinya transaksinya berjumlah genap. Namun jika berjumlah ganjil, transaksi yang tidak memiliki pasangan akan dipasangkan dengan dirinya sendiri.
Terdapat keuntungan penggunaan merkle tree ini dalam hal mem verifikasi sebuah blok. Sebagai contoh struktur merkle tree pada Gambar 2, untuk memverifikasi transaksi D, sebuah node tidak perlu menyalin seluruh transaksi A, B, D, dan E melainkan cukup menyalin informasi C, AB, dan EEEE untuk menghasilkan merkle root. Hal inilah yang menyebabkan munculnya node yang tidak memiliki salinan lengkap atas blockchain yang kemudian disebut simplified payment verification (SPV).
Sumber Tulisan : e-Book "Bitcoin Tingkat Lanjut" , Karya Dimaz Ankaa Wijaya
Baca juga : Pihak Yang Terlibat Dalam Bitcoin, disini
Tidak ada komentar