Giới thiệu
Khi ứng dụng ngân hàng yêu cầu bạn cập nhật trên điện thoại, bạn thường không cần phải suy nghĩ gì để thực hiện điều này. Thậm chí, điện thoại của bạn có thể tự động cập nhật và bạn không hề nhận ra. Xét cho cùng, đó là một quá trình cần thiết - nếu bạn không cài đặt phiên bản mới nhất của phần mềm, bạn có nguy cơ bị từ chối truy cập vào các dịch vụ của phần mềm đó.
Ai là người đưa ra quyết định trong mạng blockchain?
Nhà phát triển
Các nhà phát triển (lập trình viên) chịu trách nhiệm tạo và cập nhật code. Đối với hầu hết các đồng tiền mã hóa, bất kỳ ai cũng có thể đóng góp vào quá trình này. Code có sẵn và công khai, vì vậy họ có thể gửi các thay đổi để các nhà phát triển khác xem xét.
Thợ đào
Những người dùng node đầy đủ
Thông thường, người dùng có thể đảm nhận các vai trò chồng chéo. Ví dụ: bạn có thể vừa là một nhà phát triển và vừa là một người dùng node đầy đủ, hoặc vừa là một thợ đào và vừa là người dùng node đầy đủ. Bạn còn có thể thuộc cả ba nhóm trên. Nhưng trên thực tế, có nhiều người dùng tiền mã hóa không đảm nhận bất kỳ vai trò nào trong số này. Thay vào đó, họ chọn sử dụng các node nhẹ hoặc các dịch vụ tập trung.
Các nhà phát triển không đột nhập vào nhà của bạn và ép buộc bạn tải xuống các dòng code nhị phân Bitcoin Core ngay từ đầu. Nếu những thợ đào áp dụng thái độ “phải làm theo tôi hoặc không được dùng nữa” để buộc người dùng thay đổi những thứ không mong muốn, thì người dùng sẽ không sử dụng dịch vụ.
Fork là gì?
Việc fork diễn ra tại một điểm mà phần mềm được sao chép và sửa đổi. Dự án ban đầu vẫn tiếp tục, nhưng bây giờ nó tách biệt với dự án mới, theo một hướng khác. Giả sử rằng một nhóm dự án web chia sẻ nội dung về tiền mã hóa có bất đồng lớn về cách hoạt động. Một thành viên của nhóm có thể sao chép trang web lên một tên miền khác. Nhưng về sau, họ sẽ đăng các loại nội dung khác với nội dung gốc.
Các dự án mới và cũ được xây dựng trên một nền tảng chung và có chung một lịch sử. Giống như một con đường sau này chia làm hai, bây giờ họ có một sự khác biệt vĩnh viễn trên con đường đi của mình.
So sánh hard fork với soft fork
Mặc dù hai khái niệm này nghe khá giống nhau và cuối cùng phục vụ cùng một mục đích, nhưng có sự khác biệt đáng kể giữa hard fork và soft fork. Chúng ta hãy cùng tìm hiểu.
Hard fork là gì?
Hard fork là các bản cập nhật phần mềm "không tương thích ngược" (backward-incompatible). Thông thường, những điều này xảy ra khi các node thêm các quy tắc mới theo cách xung đột với các quy tắc của các node cũ. Các node mới chỉ có thể giao tiếp với những node khác cùng vận hành phiên bản mới. Kết quả là blockchain được tách ra, tạo thành hai mạng riêng biệt: một với các quy tắc cũ và một với các quy tắc mới.
Các node chuyển sang màu xanh lam khi chúng được cập nhật. Các node màu vàng cũ hơn từ chối chúng, trong khi các node màu xanh lam kết nối với nhau.
Vì vậy, lúc này chúng ta có hai mạng chạy song song. Cả hai sẽ tiếp tục tạo ra các khối và giao dịch, nhưng chúng không còn hoạt động trên cùng một blockchain nữa. Tất cả các node đều có một blockchain giống hệt nhau cho đến thời điểm fork (và lịch sử đó vẫn còn), nhưng chúng sẽ có các khối và giao dịch khác nhau sau đó.
Việc tăng kích thước khối yêu cầu sửa đổi các quy tắc. Điều này xảy ra trước khi có soft fork SegWit (bạn sẽ biết thêm về điều này sau), vì vậy các node sẽ chỉ chấp nhận các khối nhỏ hơn 1MB. Nếu bạn đã tạo một khối 2MB hợp lệ, các node khác vẫn sẽ từ chối nó.
Chỉ các node đã thay đổi phần mềm của họ để cho phép các khối có kích thước vượt quá 1MB mới có thể chấp nhận các khối đó. Tất nhiên, điều đó sẽ làm cho chúng không tương thích với phiên bản trước, vì vậy chỉ các node đã cùng sửa đổi giao thức mới có thể giao tiếp với nhau.
Soft fork là gì?
Tuy nhiên, để làm như vậy bạn không cần ngắt kết nối khỏi mạng. Bạn vẫn giao tiếp với các node không triển khai các quy tắc đó, nhưng bạn lọc ra một số thông tin mà chúng chuyển cho bạn.
Ngay cả hai năm sau khi kích hoạt SegWit, không phải tất cả các node mạng Bitcoin đều đã cập nhật nó. Có những lợi ích để làm như vậy, nhưng cũng không có gì khẩn cấp thực sự vì không có sự thay đổi đột phá về mạng.
Hard fork và soft fork – phương pháp nào tốt hơn?
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 được lên kế hoạch trước cho phép sửa đổi phần mềm với sự đồng ý của mọi người.
Soft fork là một lựa chọn nhẹ nhàng hơn. Nhìn chung, với hình thức này bạn bị hạn chế hơn trong những gì bạn có thể làm vì những thay đổi mới của bạn không thể mâu thuẫn với các quy tắc cũ. Điều này cũng có thể hiểu rằng, nếu bản cập nhật của bạn có thể được tạo theo cách mà nó vẫn tương thích, bạn không cần phải lo lắng về việc phân mảnh mạng.
Tổng kết
Hard fork và soft fork là yếu tố quan trọng đối với sự thành công lâu dài của các mạng blockchain. Chúng cho phép chúng ta thực hiện các thay đổi và nâng cấp trong các hệ thống phi tập trung, mặc dù thiếu một cơ quan tập trung.
Các bản fork có thể giúp cho các blockchain và tiền mã hóa tích hợp các tính năng mới khi công nghệ dần phát triển. Nếu không có những cơ chế này, chúng ta sẽ cần một hệ thống tập trung với sự kiểm soát từ trên xuống. Nếu không, chúng ta sẽ bị mắc kẹt với các quy tắc giống nhau trong suốt thời gian tồn tại của giao thức.