Advertisement
Hard fork và soft fork là hai khái niệm đều đề cập đến quá trình thực hiện những thay đổi mới đối với mã của dự án blockchain. Vậy sự khác biệt giữa hai khái niệm này là gì? Hãy cùng Ecoinomic.io đi tìm câu trả lời.
Fork là gì?
Fork, trong thuật ngữ lập trình, là một sửa đổi mã nguồn mở. Thông thường, mã phân nhánh tương tự như mã gốc, nhưng có những sửa đổi quan trọng và hai “nhánh” thoải mái cùng tồn tại. Đôi khi một fork được sử dụng để kiểm tra một quá trình, nhưng với tiền điện tử, nó thường được sử dụng để thực hiện một thay đổi cơ bản hoặc để tạo ra một tài sản mới với các đặc điểm tương tự (nhưng không bằng) như ban đầu.
Không phải tất cả các fork đều có chủ ý. Với một cơ sở mã nguồn mở được phân phối rộng rãi, một đợt fork có thể vô tình xảy ra khi không phải tất cả các node đều sao chép cùng một thông tin.
Một điều cần lưu ý với fork là chúng có một “lịch sử chung”. Hồ sơ giao dịch trên mỗi chain (cũ và mới) giống hệt nhau trước khi chia tách.
Hard Fork là gì?
Hard fork là một sự kiện mà một blockchain được “chia” thành hai blockchain riêng biệt chạy song song với nhau, mỗi blockchain có các thông số khác nhau từ một chuỗi chung trước đó. Nếu các phiên bản cũ hơn tiếp tục chạy, chúng sẽ kết thúc với một giao thức khác và với dữ liệu khác với phiên bản mới hơn. Điều này có thể dẫn đến sự nhầm lẫn đáng kể và các lỗi có thể xảy ra.
Với bitcoin, một hard fork sẽ là cần thiết để thay đổi các thông số xác định như kích thước khối, thuật toán độ khó khai thác, giới hạn thông tin bổ sung có thể được thêm vào, v.v. Việc thay đổi bất kỳ quy tắc nào trong số này sẽ khiến các khối được chấp nhận bởi giao thức mới nhưng bị từ chối bởi các phiên bản cũ hơn và có thể dẫn đến các vấn đề nghiêm trọng – thậm chí có thể mất tiền.
Ví dụ: nếu giới hạn kích thước khối được tăng từ 1MB lên 4MB, một khối 2MB sẽ được chấp nhận bởi các node chạy phiên bản mới, nhưng bị từ chối bởi các node chạy phiên bản cũ hơn.
Giả sử bạn có hai blockchains, một blockchains có cả các block phiên bản cũ hơn và mới hơn, và một blockchains khác chỉ có các block phiên bản cũ hơn. Chuỗi nào phát triển nhanh hơn sẽ phụ thuộc vào việc các nút nào được xác thực các khối tiếp theo và cuối cùng có thể có thêm các phần tách. Khả thi là hai (hoặc nhiều) chain có thể phát triển song song vô thời hạn.
Một hard fork có khả năng rất lộn xộn. Nó cũng có rủi ro, vì có thể bitcoin được chi tiêu trong một khối mới sau đó có thể được chi tiêu lại vào một khối cũ (vì người bán, ví và người dùng chạy mã trước đó sẽ không phát hiện ra việc chi tiêu cho mã mới mà họ cho là không hợp lệ).
Giải pháp duy nhất là cho một nhánh bị bỏ rơi để ủng hộ nhánh kia, liên quan đến một số thợ đào bị mất (bản thân các giao dịch sẽ không bị mất, họ sẽ chỉ được phân bổ lại). Hoặc, tất cả các node sẽ cần phải chuyển sang phiên bản mới hơn cùng một lúc, điều này rất khó đạt được trong một hệ thống phi tập trung, lan truyền rộng rãi.
Soft fork là gì?
Một soft fork về cơ bản là trái ngược với một hard fork, theo đó những thay đổi mới được thực hiện vẫn tương thích ngược với các phiên bản cũ hơn.
Ví dụ: Nếu một giao thức được thay đổi theo cách thắt chặt các quy tắc, thực hiện một thay đổi thẩm mỹ hoặc thêm một chức năng không ảnh hưởng đến cấu trúc của blockchain theo bất kỳ cách nào, thì các khối phiên bản mới sẽ được các node phiên bản cũ chấp nhận. Tuy nhiên, không phải ngược lại: phiên bản mới hơn, “chặt chẽ hơn” sẽ từ chối các khối phiên bản cũ.
Trong bitcoin, các thợ đào phiên bản cũ sẽ nhận ra các khối của họ đang bị từ chối và sẽ buộc phải nâng cấp. Khi nhiều thợ đào nâng cấp lên phiên bản mới nhất, chain với các khối chủ yếu là mới trở thành dài nhất, do đó, làm tăng số lượng khối phiên bản cũ được tạo ra và khiến nhiều thợ đào nâng cấp hơn. Quá trình này đảm bảo hệ thống tự điều chỉnh.
Ví dụ, giả sử cộng đồng đã quyết định giảm kích thước khối xuống còn 0,5MB từ giới hạn lý thuyết hiện tại là 4MB (với các khối SegWit.) Các node phiên bản mới sẽ từ chối các khối có giới hạn cũ và sẽ xây dựng trên khối trước đó (nếu nó được khai thác với phiên bản cập nhật của mã), điều này sẽ gây ra một sự chia nhánh tạm thời
Soft Fork không mang rủi ro chi tiêu gấp đôi gây khó khăn cho Hard Fork, vì người bán và người dùng chạy các node cũ sẽ đọc cả khối phiên bản mới và cũ.
Đề xuất: Tổng Quan Về Binance? Hướng Dẫn Toàn Tập Đăng Ký Tài Khoản Binance Cho Người Mới
Sự khác biệt giữa hard fork và soft fork
Về cơ bản, cả hai loại fork đều phục vụ các mục đích khác nhau. Các hard fork diễn ra liên tục có thể chia rẽ một cộng đồng, nhưng các hard fork khi được lên kế hoạch trước có khả năng cho phép sửa đổi phần mềm với sự đồng ý của mọi người. Song Hard fork không phải là cách duy nhất để nâng cấp phần mềm đằng sau một loại tiền điện tử.
Ngược lại, soft fork được coi là giải pháp thay thế an toàn hơn có khả năng tương thích ngược, có nghĩa là các node không nâng cấp lên phiên bản mới hơn sẽ vẫn xem chuỗi là hợp lệ. Một soft fork có thể được sử dụng để thêm các tính năng và chức năng mới không thay đổi các quy tắc mà một blockchain phải tuân theo. Soft fork thường được sử dụng để triển khai các tính năng mới ở cấp độ lập trình.