Fork (blockchain)

Phân nhánh (fork) là một thuật ngữ trong blockchain, thường mang những nghĩa sau:

- "sự kiện khi một blockchain phân thành hai nhánh riêng rẽ "
- "một sự thay đổi trong giao thức", hoặc
- tình huống "xảy ra khi hai hoặc nhiều khối có cùng chiều cao khối"

Việc phân nhánh xảy ra dựa trên nguyên tắc của blockchain là lịch sử của chuỗi dữ liệu sẽ được kiểm định bằng một tập các quy tắc chung. Khi các nút thành viên của blockchain không thống nhất về các quy tắc đồng thuận này, dữ liệu sẽ bị phân nhánh thành các chuỗi khác nhau. Hầu hết các phân nhánh tồn tại trong thời gian ngắn, nhưng một số ít fork tiếp tục hoạt động và tạo ra blockchain mới. Các nhánh tồn tại ngắn hạn là do khó đạt được sự đồng thuận nhanh chóng trong một hệ thống phân tán. Trong khi các fork vĩnh viễn (theo nghĩa thay đổi giao thức) đã được sử dụng để thêm các tính năng mới vào blockchain, chúng cũng có thể được sử dụng để đảo ngược tác động của việc hack, chẳng hạn như trường hợp với Ethereum và Ethereum Classic, hoặc ngăn chặn các lỗi thảm khốc trên blockchain như trường hợp của đợt fork bitcoin vào ngày 6 tháng 8 năm 2010.

Việc phân nhánh blockchain đã được thảo luận nhiều trong vấn đề về khả năng mở rộng của bitcoin.

== Các loại phân nhánh ==
Phân nhánh có thể là một sự kiện ngẫu nhiên hoặc "có chủ đích" . Fork ngẫu nhiên xảy ra khi hai hoặc nhiều thợ đào tìm thấy một khối gần như cùng một lúc. Sự phân tách nhánh được giải quyết khi (các) khối tiếp theo được thêm vào và một trong các chuỗi trở nên dài hơn (các) chuỗi khác và được nhận dạng là chuỗi chính. Mạng loại bỏ các khối không nằm trong chuỗi dài nhất (chúng được gọi là các khối "mồ côi" ).

Các Fork có chủ đích lại chia làm vài loại:

=== Hard fork ===
"Hard fork" là một sự thay đổi quy tắc mà các khối được tạo ra theo quy tắc mới sẽ bị phần mềm cũ xem là không hợp lệ. Trong trường hợp xảy ra hard fork, tất cả các nút hoạt động theo các quy tắc mới cần phải nâng cấp phần mềm của chúng. Nếu một nhóm các nút tiếp tục sử dụng phần mềm scũ trong khi các nút khác sử dụng phần mềm mới, sự phân tách vĩnh viễn có thể xảy ra.

Ví dụ, Ethereum đã bị hard fork vào năm 2016 để "cứu" các nhà đầu tư vào The DAO, trước đó bị tấn công bằng cách khai thác một lỗ hổng trong mã nguồn hợp đồng thông minh. Trong lần này, fork dẫn đến sự phân tách và tạo ra chuỗi Ethereum và Ethereum Classic. Một ví dụ khác là vào năm 2014, khi cộng đồng Nxt được yêu cầu phê duyệt một hard fork lùi lại các bản ghi blockchain để giảm thiểu tác động của việc đánh cắp 50 triệu NXT từ một sàn giao dịch tiền điện tử lớn. Đề xuất hard fork đã bị cộng đồng từ chối và một số tiền đã được thu hồi sau khi đàm phán và thanh toán tiền chuộc cho hacker. Ngoài ra, để ngăn chặn sự phân tách vĩnh viễn, phần lớn các nút sử dụng phần mềm mới có thể quay trở lại các quy tắc cũ, như trường hợp phân tách bitcoin vào ngày 12 tháng 3 năm 2013.

Một ví dụ về hard fork gần đây hơn là việc phân tách Bitcoin tạo ra Bitcoin Cash vào năm 2017. Quy tắc được thay đổi là khối lượng giao dịch mỗi giây mạng phục vụ cho người dùng 

=== Soft Fork ===
Một soft fork là một lần cập nhật phần mềm khi các phiên bản mới không vi phạm các quy luật đồng thuận trong bản cũ. Điều này có thể khiến các nút cũ chấp nhận dữ liệu có vẻ không hợp lệ đối với các nút mới hoặc trở nên không đồng bộ nhưng người dùng không nhận thấy.

== Xem thêm ==
- Danh sách các fork bitcoin