Hard Fork dan soft fork adalah dua dari sekian istilah yang sangat populer digunakan dalam dunia cryptocurrency. Tetapi mempergunakan suatu istilah tanpa memahami arti sebenarnya adalah hal yang memalukan, maka ada baiknya 2 hal ini kita perbincangkan di sini.
(Silahkan baca tentang apa itu Cryptocurrency di sini)
(Silahkan baca tentang apa itu Cryptocurrency di sini)
Fork atau ancaman darinya, tampaknya telah menjadi fitur mapan dari lanskap cryptocurrency. Tapi apa itu? Kenapa ini bisa jadi persoalan besar? Dan apa perbedaan antara hard fork dengan soft fork?
Sebuah "fork", dalam istilah pemrograman, adalah modifikasi kode sumber terbuka (open source). Biasanya kode bercabang mirip dengan aslinya, tetapi dengan modifikasi penting, dan dua "prongs" yang bisa hidup berdampingan. Kadang-kadang fork digunakan untuk menguji suatu proses, tetapi dalam pembicaraan cryptocurrency, ia lebih sering digunakan untuk mengimplementasikan perubahan mendasar, atau untuk menciptakan aset baru dengan karakteristik yang sama (tetapi tidak sama) dengan aslinya.
Tidak semua fork terjadi dengan disengaja. Dengan basis kode sumber terbuka yang tersebar luas, sebuah fork dapat terjadi tanpa sengaja ketika tidak semua node mereplikasi informasi yang sama. Biasanya fork ini diidentifikasi dan diselesaikan, namun, dan sebagian besar fork cryptocurrency terjadi adalah karena ketidak sepakatan atas karakteristik bawaan.
Satu hal yang perlu diingat tentang fork adalah bahwa mereka memiliki "sejarah bersama." Catatan transaksi pada masing-masing rantai (lama dan baru) adalah identik sebelum terjadinya perpecahan tersebut.
Sebuah "fork", dalam istilah pemrograman, adalah modifikasi kode sumber terbuka (open source). Biasanya kode bercabang mirip dengan aslinya, tetapi dengan modifikasi penting, dan dua "prongs" yang bisa hidup berdampingan. Kadang-kadang fork digunakan untuk menguji suatu proses, tetapi dalam pembicaraan cryptocurrency, ia lebih sering digunakan untuk mengimplementasikan perubahan mendasar, atau untuk menciptakan aset baru dengan karakteristik yang sama (tetapi tidak sama) dengan aslinya.
Tidak semua fork terjadi dengan disengaja. Dengan basis kode sumber terbuka yang tersebar luas, sebuah fork dapat terjadi tanpa sengaja ketika tidak semua node mereplikasi informasi yang sama. Biasanya fork ini diidentifikasi dan diselesaikan, namun, dan sebagian besar fork cryptocurrency terjadi adalah karena ketidak sepakatan atas karakteristik bawaan.
Satu hal yang perlu diingat tentang fork adalah bahwa mereka memiliki "sejarah bersama." Catatan transaksi pada masing-masing rantai (lama dan baru) adalah identik sebelum terjadinya perpecahan tersebut.
Ada dua jenis utama dari program Fork: keras dan lunak.
Hard Fork - Garpu keras
Garpu yang keras adalah perubahan ke protokol yang membuat versi lama menjadi tidak valid. Jika versi yang lebih lama terus berjalan, maka mereka akan berakhir dengan protokol yang berbeda dan dengan data yang berbeda dari versi yang lebih baru. Hal ini dapat menyebabkan kebingungan dan kemungkinan kesalahan yang signifikan.
Dengan bitcoin, hard fork akan diperlukan untuk mengubah parameter penentu seperti ukuran blok, kesulitan teka-teki kriptografi yang perlu dipecahkan, batas untuk informasi tambahan yang dapat ditambahkan, dll. Perubahan ke salah satu aturan ini akan menyebabkan blok diterima oleh protokol baru tetapi ditolak oleh versi lama dan dapat menyebabkan masalah serius - bahkan mungkin sampai pada resiko kehilangan dana.
Misalnya, jika batas ukuran blok harus ditingkatkan dari 1MB menjadi 4MB, maka blok 2MB akan diterima oleh node yang menjalankan versi baru, tetapi ditolak oleh node yang menjalankan versi yang lebih lama.
Katakanlah bahwa blok 2MB ini divalidasi oleh node yang diperbarui dan ditambahkan ke blockchain. Bagaimana jika blok berikutnya divalidasi oleh node yang menjalankan versi protokol yang lebih lama? Akan ada percobaan untuk menambahkan bloknya ke blockchain, tetapi akan mendeteksi bahwa blok terbaru tidak valid. Jadi, itu akan mengabaikan blok itu dan melampirkan validasi barunya ke yang sebelumnya. Tiba-tiba Anda memiliki dua blockchain, satu dengan blok versi lama dan yang lebih baru, dan yang lainnya dengan blok versi yang lebih lama. Rantai mana yang tumbuh lebih cepat akan bergantung pada node mana yang mendapatkan blok berikutnya untuk divalidasi, dan pada akhirnya bisa menjadi perpecahan tambahan. Adalah mungkin bahwa dua (atau lebih) rantai dapat tumbuh secara paralel tanpa batas.
Ini adalah fork yang sulit, dan itu memiliki potensi untuk berantakan. Ini juga berisiko, karena mungkin bahwa bitcoin yang dihabiskan di blok baru kemudian dapat dihabiskan lagi di blok lama (karena pedagang, dompet, dan pengguna yang menjalankan kode sebelumnya tidak akan mendeteksi pengeluaran pada kode baru, yang mereka anggap tidak valid).
Satu-satunya solusi adalah untuk satu cabang ditinggalkan untuk mendukung yang lain, yang melibatkan beberapa penambang yang kehilangan (transaksi itu sendiri tidak akan hilang, mereka hanya akan dialokasikan kembali). Atau, semua node perlu beralih ke versi yang lebih baru pada saat yang sama, yang sulit untuk dicapai dalam sistem yang terdesentralisasi dan tersebar luas.
Atau, perpecahan dari bitcoin (yang telah terjadi) seperti pada bitcoin cash, bitcoin gold, dll.
Hard fork ini membuat cryptocurrency seperti punya anak, dan biasanya ketika terjadi hard fork cryptocurrency maka koin anak itu akan dibagikan gratis beberapanya kepada pemegang koin induk.
Soft Fork - Garpu yang lembut
Soft fork masih bisa bekerja dengan versi yang lebih lama.
Jika, misalnya, protokol diubah dengan cara yang mengencangkan aturan, yang mengimplementasikan perubahan riasan atau yang menambahkan fungsi yang tidak memengaruhi struktur dengan cara apa pun, maka blok versi baru akan bisa diterima oleh node versi lama. Bukan sebaliknya, meskipun: versi yang lebih baru, "lebih ketat" akan menolak blok versi lama.
Dalam bitcoin, idealnya penambang versi lama akan menyadari bahwa blok mereka ditolak, dan akan ditingkatkan. Semakin banyak penambang yang meningkatkan, maka rantai dengan blok-blok yang sebagian besar baru menjadi yang terpanjang, yang akan semakin memperburuk blok versi lama, yang akan mengarah pada peningkatan penambang, dan sistem mengoreksi diri. Karena blok versi baru diterima oleh node lama dan yang ditingkatkan, blok versi baru akhirnya menang.
Misalnya, komunitas memutuskan untuk mengurangi ukuran blok menjadi 0,5 MB dari batas saat ini 1 MB. Node versi baru akan menolak blok 1MB, dan akan dibangun di blok sebelumnya (jika ditambang dengan versi kode yang diperbarui), yang akan menyebabkan fork sementara.
Ini adalah soft fork, dan itu sudah terjadi beberapa kali. Awalnya, Bitcoin tidak memiliki batas ukuran blok. Memperkenalkan batas 1MB dilakukan melalui soft fork, karena aturan baru "lebih ketat" daripada yang lama. Fungsi bayar ke script hash, yang meningkatkan kode tanpa mengubah struktur, juga berhasil ditambahkan melalui soft fork. Amandemen jenis ini biasanya hanya membutuhkan sebagian besar penambang untuk meningkatkannya, yang membuatnya lebih layak dan tidak terlalu mengganggu.
Soft fork tidak membawa risiko pengeluaran ganda yang mengganggu hard fork, karena pedagang dan pengguna yang menjalankan node lama akan membaca blok versi baru dan versi lama.
Untuk contoh perubahan yang membutuhkan soft fork, lihat di "softfork wishlist".
0 komentar: