Daftar isi
Saat Anda diminta untuk memperbarui aplikasi perbankan digital di smartphone, Anda mungkin tidak perlu berpikir dua kali. Bahkan mungkin ponsel Anda diperbarui secara otomatis tanpa disadari. Lagipula, ini adalah proses yang perlu – jika Anda tidak menginstal perangkat lunak versi terbaru, Anda berisiko ditolak untuk mengakses layanannya.
Dalam
mata uang kripto open-source, semuanya sangat berbeda. Anda tidak perlu membaca setiap baris kode yang mendukung
Bitcoin untuk menggunakannya, tetapi memiliki pilihan untuk melakukannya adalah hal penting. Tidak ada hierarki di sini, dan tidak ada bank yang bisa mendorong pembaruan dan mengubah hal-hal yang diinginkan. Akibatnya, menerapkan fitur baru di jaringan blockchain merupakan tantangan tersendiri.
Dalam artikel ini, kita akan membahas bagaimana jaringan mata uang kripto dapat ditingkatkan, meskipun tanpa otoritas pusat. Untuk melakukannya, digunakan dua mekanisme berbeda: hard fork dan soft fork.
Untuk memahami cara kerja fork, penting untuk terlebih dahulu memahami para partisipan yang terlibat dalam proses pengambilan keputusan (atau
tata kelola) jaringan.
Dalam Bitcoin, Anda dapat melihat perbedaan antara tiga kelompok bagian peserta secara luas – pengembang, penambang, dan pengguna
full node. Ini adalah pihak-pihak yang benar-benar berkontribusi pada jaringan.
Light node (yaitu dompet di ponsel, laptop Anda, dll.) digunakan secara luas, tetapi tidak benar-benar sebagai “partisipan” jika berbicara mengenai jaringan.
Pengembang
Pengembang atau developer bertanggung jawab dalam membuat dan memperbarui kode. Siapa pun dapat berkontribusi pada proses ini. Kode tersedia bagi umum, sehingga mereka dapat mengirimkan perubahan untuk ditinjau oleh pengembang lain.
Penambang
Penambang atau miner adalah pihak yang mengamankan jaringan. Mereka menjalankan kode mata uang kripto dan mengorbankan sumber daya untuk menambahkan blok baru ke blockchain. Dalam jaringan Bitcoin, misalnya, mereka melakukannya via
Proof of Work. Penambang diberi reward dalam bentuk
block reward atas upaya ini.
Pengguna full node
Full node merupakan tulang punggung jaringan mata uang kripto. Node memvalidasi, mengirim, dan menerima
blok dan transaksi serta memelihara salinan
blockchain.
Anda akan sering menemukan tumpang tindih dalam kategori ini. Misalnya, Anda bisa menjadi pengembang dan pengguna full node, atau penambang dan pengguna full node. Atau Anda bisa menjadi ketiganya sekaligus atau tidak ketiganya sama sekali. Faktanya, banyak pengguna kripto yang tidak mengambil salah satu dari peran ini. Sebaliknya, mereka memilih untuk menggunakan light node atau layanan tersentralisasi.
Melihat uraian di atas, Anda bisa menganggap bahwa pengembang dan penambang membuat keputusan terhadap jaringan. Para pengembang membuat kode – tanpa mereka, Anda tidak akan memiliki perangkat lunak untuk dijalankan dan tidak ada yang memperbaiki bug atau menambahkan fitur baru. Penambang mengamankan jaringan – tanpa persaingan
penambangan yang sehat, chain dapat dibajak, atau dihentikan.
Namun, jika kedua kategori ini berusaha memaksa sisa jaringan untuk mengikuti kemauan mereka, itu tidak akan berakhir dengan baik. Bagi banyak orang, kekuatan sebenarnya berada di full node. Full node merupakan fungsi jaringan opt-in, yang berarti bahwa pengguna dapat memilih perangkat lunak apa yang mereka jalankan.
Sebagai gambaran, para pengembang tidak membobol rumah Anda dan memaksa Anda untuk mengunduh binari
Bitcoin Core dengan todongan pistol. Jika penambang menunjukkan sikap “ikut saya atau ikut orang lain” untuk memaksakan perubahan yang tidak diinginkan terhadap pengguna, well, pengguna mungkin akan mengikuti orang lain.
Pihak-pihak ini bukanlah penguasa yang sangat kuat – mereka justru penyedia layanan. Jika orang memutuskan untuk tidak menggunakan jaringan, maka
koin akan kehilangan nilainya. Hilangnya nilai berdampak langsung pada penambang (reward akan berkurang nilainya dalam dolar). Sedangkan untuk pengembang, pengguna akan mengabaikan mereka dengan sekejap.
Jika Anda amati, perangkat lunak ini sepertinya tidak berpemilik. Anda dapat mengedit apa pun yang diinginkan, dan, jika orang lain menjalankan perangkat lunak Anda yang dimodifikasi, Semua pihak dapat berkomunikasi. Dalam hal ini, Anda melakukan fork terhadap perangkat lunak dan membuat jaringan baru.
Fork perangkat lunak terjadi pada titik di mana perangkat lunak disalin dan dimodifikasi. Proyek asli tetap hidup, tetapi sekarang terpisah dari yang baru, yang mengambil arah yang berbeda. Misalkan tim situs web konten kripto favorit Anda memiliki perbedaan pendapat yang besar mengenai cara melakukan sesuatu. Salah satu bagian dari tim mungkin mereplikasi situs ke domain yang berbeda. Tetapi di kemudian hari, mereka akan memposting berbagai jenis konten dari yang asli.
Proyek-proyek membangun landasan dan sejarah yang sama. Sama seperti satu jalan yang kemudian terbelah menjadi dua, sekarang ada perbedaan permanen di masing-masing jalan.
Perhatikan bahwa hal semacam ini banyak terjadi dalam proyek-proyek
open-source, dan telah terjadi sejak lama sebelum kemunculan
Bitcoin atau
Ethereum. Namun, perbedaan antara hard fork dan soft fork adalah salah satu yang unik, hanya ada di lingkungan blockchain. Mari kita membahasnya lebih dalam.
Meskipun memiliki nama yang mirip dan pada akhirnya mencapai tujuan yang sama, hard fork dan soft fork sangat berbeda. Mari kita lihat satu per satu.
Apa itu hard fork?
Hard fork merupakan pembaruan perangkat lunak yang tidak kompatibel ke belakang atau backward-incompatible. Umumnya, terjadi ketika node menambahkan aturan baru dengan cara yang bertentangan dengan aturan node lama. Node baru hanya dapat berkomunikasi dengan node lain yang mengoperasikan versi baru. Akibatnya, blockchain terbelah, menciptakan dua jaringan terpisah: satu dengan aturan lama, dan satu dengan aturan baru.
Node menjadi biru saat diperbarui. Node lama yang berwarna kuning menolaknya, sedangkan yang biru saling terhubung.
Jadi sekarang ada dua jaringan yang berjalan secara paralel. Keduanya akan terus menyebarkan
blok dan transaksi, tetapi tidak lagi bekerja di
blockchain yang sama. Semua node memiliki blockchain yang identik sampai di titil fork (dan sejarahnya tetap sama), tetapi akan memiliki blok dan transaksi yang berbeda setelahnya.
Karena ada sejarah yang sama, Anda akan mendapatkan koin di kedua jaringan jika Anda menyimpannya sebelum fork. Misalkan Anda memiliki 5 BTC ketika terjadi fork di Blok 600.000. Anda dapat membelanjakan 5 BTC tersebut di chain lama di Blok 600.001, tetapi koin tersebut belum dibelanjakan di Blok 600.001 di blockhain baru. Dengan asumsi kriptografi belum berubah,
private key Anda masih menyimpan lima koin di jaringan yang fork yang baru.
Contoh hard fork adalah fork 2017 yang terjadi pada Bitcoin, terfragmentasi menjadi dua chain terpisah – yang asli, Bitcoin (BTC), dan yang baru, Bitcoin Cash (BCH). Fork terjadi setelah banyak berdebat mengenai pendekatan terbaik dalam meningkatkan
skalabilitas. Para pendukung Bitcoin Cash ingin meningkatkan ukuran
blok, sementara pendukung Bitcoin menentang perubahan tersebut.
Peningkatan ukuran blok membutuhkan modifikasi aturan. Ini sebelum soft fork
SegWit (lebih lanjut mengenai ini sebentar lagi), jadi, node hanya akan menerima blok yang lebih kecil dari 1MB. Jika Anda membuat blok 2MB yang dinyatakan valid, node lain masih akan menolaknya.
Yang dapat menerima blok-blok tersebut adalah node yang telah mengubah perangkat lunaknya untuk mengijinkan blok yang ukurannya melebihi 1MB. Tentu saja, itu akan membuat node tersebut tidak kompatibel dengan versi sebelumnya, jadi hanya node dengan modifikasi protokol yang sama yang dapat berkomunikasi.
Apa itu soft fork
Soft fork merupakan peningkatan yang kompatibel ke belakang atau backward-compatible, yang berarti bahwa node yang ditingkatkan masih dapat berkomunikasi dengan node yang tidak ditingkatkan. Yang bisanya Anda lihat dalam soft fork adalah penambahan aturan baru yang tidak bertentangan dengan aturan lama.
Misalnya, pengurangan ukuran blok dapat diimplementasikan dengan soft-forking. Mari kita sekali lagi menggunakan Bitcoin untuk mengilustrasikan poin ini: meskipun ada batasan seberapa besar blok itu, tidak ada batasan seberapa kecilnya. Jika Anda hanya ingin menerima blok di bawah ukuran tertentu, Anda hanya perlu menolak yang lebih besar.
Namun, hal ini tidak secara otomatis memutuskan Anda dari jaringan. Anda masih berkomunikasi dengan node yang tidak menerapkan aturan itu, tetapi Anda menyaring beberapa informasi yang mereka berikan kepada Anda.
Contoh nyata yang baik dari soft fork adalah fork
Segregated Witness (SegWit) yang telah disebutkan sebelumnya, yang terjadi tidak lama setelah pemisahan Bitcoin/Bitcoin. SegWit merupakan pembaruan yang mengubah format blok dan transaksi, tetapi dibuat dengan cerdik. Node lama masih dapat memvalidasi blok dan transaksi (pemformatan tidak melanggar aturan), tetapi tidak akan memahaminya. Beberapa bidang hanya dapat dibaca ketika node beralih ke perangkat lunak yang lebih baru, yang memungkinkan node tersebut mengurai data tambahan.
Bahkan dua tahun setelah aktivasi SegWit, belum semua node ditingkatkan. Ada keuntungan untuk melakukannya, tetapi tidak ada urgensi, karena tidak ada perubahan yang berpotensi memecah jaringan.
Pada dasarnya, kedua jenis fork di atas mencapai tujuan yang berbeda. Hard fork yang kontroversial dapat memecah belah sebuah komunitas, tetapi hard fork yang direncanakan memungkinkan kebebasan memodifikasi perangkat lunak dengan semua orang menyepakati perjanjian.
Soft fork adalah pilihan yang lebih ramah. Secara umum, Anda lebih terbatas dalam apa yang dapat Anda lakukan karena perubahan baru tidak bisa bertentangan dengan aturan lama. Karena itu, jika pembaruan dapat dibuat sedemikian rupa sehingga tetap kompatibel, Anda tidak perlu mengkhawatirkan jaringan yang terpecah belah.
Hard fork dan soft fork sangat penting untuk keberhasilan jangka panjang jaringan blockchain. Keduanya membantu kita untuk membuat perubahan dan peningkatan dalam sistem terdesentralisasi, meskipun tanpa otoritas pusat.
Fork membantu blockchain dan mata uang kripto untuk mengintegrasikan fitur baru saat dikembangkan. Tanpa mekanisme ini, kita membutuhkan sistem tersentralisasi dengan kendali top-down. Jika tidak, kita akan terjebak dengan aturan yang sama persis selamanya.