Dalam teknologi blockchain, hard fork dan soft fork adalah dua kaedah berbeza untuk menaik taraf dan mengemas kini protokol rangkaian. Mereka mempunyai perbezaan ketara dalam pelaksanaan, yang mempengaruhi struktur dan operasi rangkaian blockchain.
Hard Fork - "Hard fork" merujuk kepada perubahan dalam peraturan di mana versi baharu rangkaian tidak lagi serasi dengan versi lama, menghasilkan dua cabang blockchain (selari dan tidak terjejas antara satu sama lain).
Soft Fork - "Soft fork" merujuk kepada perubahan dalam peraturan di mana nod yang melaksanakan peraturan baharu masih boleh berinteraksi dengan nod yang belum menerima perubahan tersebut. Versi baharu rangkaian kekal serasi dengan versi lama.
Hard Fork | Soft Fork |
cth. 2016 DAO | cth. 2017 Segwit |
Versi lama tidak serasi dengan rangkaian baharu. | Rangkaian baharu serasi dengan yang lama. |
Protokol Berbeza | Sama |
Analisis Situasi
Hard Fork Soft Fork
Sebagai contoh, jika separuh daripada nod rangkaian ingin mengembangkan saiz blok daripada 2MB kepada 3MB, menghantar blok 3MB kepada nod versi lama akan mengakibatkan penolakan kerana nod versi lama mempunyai peraturan yang menetapkan 2MB sebagai saiz blok maksimum. Dalam senario ini, protokol rangkaian terbahagi kepada dua, setiap satu menggunakan mata wang yang berbeza. Semua baki akaun diklon daripada rekod asal ke rantaian baharu. Pengguna dengan 20BTC sebelum fork akan mempunyai akaun dengan 20BTC dan satu lagi dengan 20 BTC baharu pada kedua-dua rantaian
Sebagai contoh, jika saiz blok asal ialah 2MB, dan kini separuh daripada nod rangkaian melaksanakan sekatan baharu saiz blok 1MB dan menganggap blok yang lebih besar sebagai tidak sah, nod versi lama masih boleh menerima atau menyiarkan blok. Dalam kes ini, rangkaian baharu boleh merangkumi semua nod tanpa dihadkan oleh versi peraturan. Segregated Witness (SegWit) Bitcoin ialah contoh soft fork. Fork ini dengan bijak memperkenalkan format baharu untuk blok dan transaksi. Nod yang belum dikemas kini boleh terus menerima maklumat blok tetapi tidak mengambil bahagian dalam mengesahkan transaksi baharu
