Fork là gì? Sự khác biệt giữa Hard fork và Soft fork
BÀI LIÊN QUAN
Dự án blockchain là gì? Các dự án Blockchain nổi bật tại Việt NamĐiện toán đám mây và blockchain có chế độ bảo mật như thế nào?Tìm hiểu về ứng dụng của công nghệ Blockchain hiện nayFork là gì?
Trong blockchain, fork, tạm dịch là “phân nhánh”, được định nghĩa theo nhiều cách khác nhau, gồm
- “sự kiện một blockchain phân nhánh thành 2 nhánh riêng biệt”
- “sự thay đổi trong giao thức”
- tình huống "khi hai hoặc nhiều khối có cùng chiều cao"
Việc phân nhánh xảy ra trên nguyên tắc của blockchain: lịch sử chuỗi dữ liệu sẽ được kiểm định bằng một tập những quy tắc chung. Khi các node thành viên trong blockchain không thống nhất các quy tắc đồng thuận này, dữ liệu sẽ phân nhánh thành các chuỗi khác nhau và hầu hết tồn tại trong thời gian ngắn, chỉ một số ít fork hoạt động tiếp và tạo ra blockchain mới. Các nhánh tồn tại ngắn hạn bởi khó đạt sự đồng thuận trong một hệ thống phân tán trong thời gian ngắn.
Cách Fork hoạt động
Fork hoạt động bằng cách đưa các thay đổi tới giao thức phần mềm của blockchain. Chúng thường được kết hợp với việc tạo ra các mã thông báo mới. Các cách chính để tạo tiền điện tử mới là tạo chúng từ đầu (creat from scratch*) hoặc 'fork' chuỗi khối tiền điện tử hiện có.
*"creat from scratch" là làm mà không cần bất kỳ thành phần hoặc vật liệu nào chuẩn bị trước
Trong đó, tạo mã thông báo mới từ đầu là phương pháp phổ biến nhất. Phương pháp này liên quan đến việc ‘sao chép và dán’ mã hiện có, mã này sau đó được sửa đổi và khởi chạy dưới dạng mã thông báo mới.
Một ví dụ của phương pháp này là Litecoin, khởi đầu là một bản sao của Bitcoin. Những người sáng lập đã thực hiện các thay đổi đối với mã, mọi người đã bị thuyết phục bởi nó và hiện nó đã trở thành một loại tiền điện tử phổ biến.
Phương pháp thay thế là phân nhánh blockchain hiện có. Với phương pháp này, các thay đổi được thực hiện đối với blockchain hiện tại thay vì bắt đầu từ đầu. Trong trường hợp này, hai phiên bản của blockchain được tạo ra khi mạng lưới chia tách.
Có thể thấy một ví dụ về điều này với việc tạo ra Bitcoin Cash vào tháng 8 năm 2017. Các ý kiến khác nhau xung quanh tương lai của Bitcoin đã dẫn đến việc tạo ra một loại tiền điện tử mới (Bitcoin cash) từ tiền điện tử ban đầu (Bitcoin).
Phân loại Fork
Phân nhánh có thể là Accidental fork hoặc Intentional fork.
Accidental fork
Tại mọi thời điểm, hàng nghìn thợ đào đang cạnh tranh để tạo ra một khối mới. Với rất nhiều hoạt động khai thác diễn ra cùng một lúc, đôi khi có hai hoặc nhiều thợ đào cùng lúc khai thác một khối mới. Khi điều này xảy ra, một Accidental fork (phân nhánh ngẫu nhiên) được tạo ra. Vấn đề được giải quyết khi các khối mới được thêm vào một trong các chuỗi. Khi điều đó xảy ra, mạng lưới tiếp tục hoạt động trên chuỗi dài hơn thay vì chuỗi ngắn hơn.
Intentional fork
Khi Intentional fork (phân nhánh có chủ đích) được thực hiện, mạng lưới sẽ không kết hợp lại trên một chuỗi duy nhất. Loại fork này được các nhà phát triển blockchain sử dụng để thực hiện các thay đổi đối với giao thức.
Ví dụ: Các nhà phát triển có thể sử dụng Intentional fork để tăng kích thước khối, giảm thời gian khối hoặc thậm chí triển khai một thuật toán đồng thuận hoàn toàn mới. Một phân nhánh có chủ đích có thể cứng (Hard fork) hoặc mềm (Soft fork). Sự khác biệt của chúng là khả năng tương thích với các chuỗi khác nhau và các ứng dụng của chúng.
Sự khác biệt giữa Hard fork và Soft fork
Hard fork là gì?
Việc tạo ra Bitcoin Cash từ Bitcoin đã nhắc đến ở trên là một ví dụ về Hard fork. Hard fork là một sự thay đổi triệt để đối với phần mềm, yêu cầu tất cả người dùng phải nâng cấp lên phiên bản mới nhất để sử dụng. Hard fork xảy ra khi các node mới không chấp nhận phiên bản giao thức cũ hơn, khiến các block hợp lệ trở thành không hợp lệ hoặc ngược lại.
Chẳng hạn, trên PS4 bạn không thể chơi các trò chơi PS3 và, ngược lại, bạn cũng không thể chơi PS4 trên PS3.
Hard fork gây ra sự phân kỳ vĩnh viễn nếu không phù hợp với phiên bản mới sẽ dẫn đến 2 nhánh của blockchain: Một là tuân theo phiên bản giao thức cũ, hai là tuân theo phiên bản mới của blockchain.
Việc thực hiện Hard Fork vô cùng khó khăn, bởi nó gây ra sự không thống nhất trong mạng lưới, có thể nhiều người sẽ không muốn cập nhật, trong khi số khác lại muốn tạo ra sự thay đổi.
Soft fork là gì?
Không giống như Hard fork, Soft fork là sự phân tách khi blockchain được nâng cấp chịu trách nhiệm xác thực các giao dịch. Tuy nhiên, các node không được cập nhật sẽ vẫn tương thích với các khối mới nhưng điều này chỉ hoạt động một chiều. Blockchain được nâng cấp sẽ không nhận ra các node phiên bản cũ.
Để một Soft fork hoạt động, phần lớn các thợ đào cần phải nâng cấp blockchain. Càng nhiều thợ đào chấp nhận các quy tắc mới thì mạng lưới càng an toàn. Soft fork đã được sử dụng trên cả blockchain Bitcoin và Ethereum. Chúng thường được dùng để thực hiện nâng cấp phần mềm (chẳng hạn như BIP 66 trong trường hợp Bitcoin).
Chẳng hạn, khi đang sử dụng MS Excel 2003 trên máy tính và nhận được bảng tính MS Excel 2015, bạn vẫn có thể mở MS Excel 2015 vì nó được tương thích ngược.
Sự khác biệt
- Soft fork là một quá trình tương thích ngược, trong khi Hard fork là một quá trình không tương thích ngược;
- Bản chất của Soft fork là có thể đảo ngược, trong khi Hard fork là không thể đảo ngược;
- Hard fork tạo ra 2 blockchain, trong khi Soft fork đến cuối cùng sẽ kết hợp việc phân tách thành một;
- Hard fork yêu cầu tất cả thợ đào xác nhận các quy tắc mới, còn Soft fork thì có thể hoạt động tốt với đa số thợ đào;
- Hard fork an toàn và riêng tư hơn Soft fork;
- Soft fork có thể thêm các chức năng và thuộc tính mới vào một blockchain nhưng Hard fork sẽ thay đổi toàn bộ quy tắc của nó;
- Hard fork thay đổi những đặc điểm của blockchain, trong khi, Soft fork giúp sửa đổi chúng.
- Trong quá trình đảo ngược, một Soft fork an toàn hơn một Hard fork.
- Sard fork yêu cầu một Hark fork cho quá trình có thể đảo ngược, trong khi Hard fork không yêu cầu điều đó.
Hiểu một cách ngắn gọn, Soft fork là một loại "bản cập nhật phần mềm" (giống như hệ điều hành của điện thoại thông minh của bạn) và hard fork là một hệ điều hành hoàn toàn mới (giống như Linux và Mac OS là sự phát triển của nền tảng UNIX, nửa thế kỷ trước).
Nhìn chung, cả hard fork và soft fork đều vô cùng cần thiết trong thế giới tiền điện tử. Chúng đều có vai trò quan trọng trong việc thực hiện các nhiệm vụ khác nhau trong một blockchain. Hầu hết các nhà khai thác thích Hard fork hơn, vì chúng hạn chế các rủi ro, tuy nhiên, Hard fork chiếm nhiều tài nguyên tính toán và được coi là có hại cho tương lai của tiền điện tử.
Bất chấp những rủi ro cố hữu, Soft fork cung cấp một giải pháp nhanh hơn nhiều để nâng cấp phần mềm trên blockchain mà không cần sử dụng quá nhiều tài nguyên tính toán.
Mục đích của Fork
Hard Fork và Soft Fork đều dẫn đến sự thay đổi vĩnh viễn quy tắc cơ bản của giao thức trên Blockchain. Điều này có thể xảy ra vì nhiều lý do, như:
- Hệ thống blockchain muốn bổ sung các chức năng mới
- Thay đổi quy tắc cốt lõi trong giao thức, ví dụ như tăng kích thước khối, thay đổi giao thức đồng thuận, tăng, giảm phần thưởng khai thác,…
- Khắc phục sự cố bảo mật: Do blockchain là một công nghệ tương đối mới, các nghiên cứu vẫn đang liên tục tiến hành nhằm xây dựng nền tảng cho nó. Khi phát hiện ra các phiên bản lỗi hay chứa những lỗ hổng bảo mật nghiêm trọng, việc cập nhật những bản vá, phiên bản mới là việc hết sức cần thiết.
- Đảo ngược giao dịch: Trong một số trường hợp cụ thể, nếu giao dịch đó độc hại và vi phạm cơ chế an toàn của blockchain, cộng đồng tham gia mạng lưới có thể đảo ngược lại blockchain và vô hiệu hoá tất cả giao dịch đó.
Tại sao Fork quan trọng?
Hầu hết các loại tiền kỹ thuật số được quản lý bởi các nhóm phát triển độc lập có trách nhiệm sửa đổi và cải thiện mạng lưới, chẳng hạn như những thay đổi đối với các giao thức internet để cải thiện việc duyệt Internet. Do đó, Fork có thể làm cho tiền điện tử trở nên an toàn hơn hoặc bổ sung các chức năng khác là điều sẽ xảy ra.
Bên cạnh đó, các nhà phát triển tiền điện tử mới cũng có thể sử dụng fork để tạo ra các đồng tiền và hệ sinh thái hoàn toàn mới.
Fork trong thực tế
Trong blockchain, việc phân nhánh xảy ra khá thường xuyên. Thực tế, chúng là một trong những cách tạo ra các loại tiền điện tử mới. Một số loại tiền tệ phổ biến là sản phẩm của fork như Bitcoin Cash, đợt fork Bitcoin Cash đã thay đổi giới hạn kích thước khối từ 1 thành 8 MB và sau đó là 32 MB.
Fork cũng có thể được dùng để đảo ngược tác động của hack. Chẳng hạn, Ethereum đã được hard fork vào tháng 10 năm 2016 khi toàn bộ các nhà đầu tư vào The DAO bị tấn công qua lỗ hổng trong mã của Ethereum. Đợt fork đó đã dẫn đến sự phân tách tạo ra chuỗi Ethereum và Ethereum Classic. Hay đợt fork vào ngày 06/08/2010 đã ngăn chặn các lỗi thảm khốc trên blockchain.
Bởi vì chúng có khả năng chia cộng đồng blockchain thành hai nhóm, các Hard fork thường ở phía sau các Soft fork trong quá trình phát triển. Ban đầu, người ta nghĩ rằng giao thức SegWit của Bitcoin sẽ yêu cầu một đợt Hard fork để thay đổi cấu trúc cơ bản của các giao dịch. Tuy nhiên, các nhà phát triển đã tìm ra một giải pháp tương thích và triển khai SegWit với một Soft fork. Cho đến ngày nay, các node chưa được cập nhật lên SegWit vẫn tham gia vào mạng Bitcoin phân nhánh mềm.
Kết luận
Fork sẽ hữu ích cho bất kỳ ai sở hữu tiền điện tử. Trong trường hợp tiền điện tử bạn sở hữu phải trải qua đợt hard fork, kiến thức này sẽ giúp bạn quyết định chi nhánh nào bạn nên áp dụng và hỗ trợ trong việc lựa chọn nhà cung cấp ví hoặc người giám sát tiền điện tử của bạn.
Những thuật ngữ này có thể chỉ phù hợp với người đã có kinh nghiệm về tiền điện tử và đào coin, nhưng sẽ tương đối khó hiểu với những người mới. Hi vọng bài viết này sẽ giúp bạn hiểu hơn về những khái niệm xung quanh Crypto thường gặp phải.