Sau khi Bitcoin cũ bị chia tách thành 2 đồng tiền là Bitcoin và Bitcoin Cash vào 01/08/2017, những thuật ngữ như Fork, Hard Fork, Soft Fork xuất hiện. Vậy chính xác Hard Fork là gì, Soft Fork là gì?
Tìm hiểu Blockchain cơ bản
Blockchain là một mạng lưới các nút phi tập trung cùng cộng tác để xác thực các giao dịch và lưu trữ thông tin. Bản chất phi tập trung của chuỗi khối công khai (ví dụ như: Bitcoin và Ethereum) đòi hỏi những người tham gia trong mạng phải thỏa thuận với nhau để có thể đi đến một trạng thái (sổ cái chung, trạng thái các khối và giao thức Blockchain) chia sẻ chung của Blockchain gọi là quá trình đồng thuận. Sự đồng thuận giữa các nút mạng dẫn đến một Blockchain duy nhất chứa dữ liệu (giao dịch) được xác minh mà mạng khẳng định là chính xác.
Tuy nhiên, do tính chất phi tập trung của Blockchain mà nó thường bị ảnh hưởng bởi độ trễ trong quá trình lan truyền, hoặc giao dịch bị mất trong quá trình truyền tải và thậm chí là tồn tại cả những nút thông tin độc hại cố tính truyền thông tin sai lệch…dẫn đến việc các nút trong mạng không thể đạt được sự đồng thuận nhất trí về trạng thái tương lai của Blockchain. Sự kiện này dẫn đến sự phân nhánh (fork), trong trường hợp này, chuỗi khối bị chia thành hai hoặc nhiều chuỗi đều hợp lệ và được chấp thuận bởi một phần nào đó của mạng lưới.
Sự phân tách này có thể diễn ra dưới 3 dạng:
- Phân tách tạm thời (Temporary Fork): xảy ra khi hai người khai thác khai thác được một khối mới tại cùng một thời điểm.
- Phân tách cứng (Hard Fork): khi giao thức Blockchain bị thay đổi mà không hỗ trợ khả năng tương thích ngược với giao thức cũ.
- Phân tách mềm (Soft Fork): khi giao thức Blockchain bị thay đổi sao cho vẫn hỗ trợ khả năng tương thích ngược với giao thức cũ
Hard Fork là gì?
Hard Fork là sự phân tách Blockchain do sự thay đổi giao thức hoặc chức năng trong phiên bản mới nhưng giao thức và chức năng mới này không tương thích với các phiên bản trước đó. Hay nói cách khác, các nút không cập nhật lên phiên bản mới sẽ không có khả năng xử lý các giao dịch hoặc đẩy các khối mới lên Blockchain. Hard ork có thể được sử dụng để thay đổi hoặc cải thiện một giao thức hiện có hoặc thậm chí để tạo ra một giao thức và Blockchain mới, độc lập.
Hard Fork có thể được coi là một bản nâng cấp phần mềm không tương thích với các phiên bản trước của nó. Chẳng hạn như việc bạn không thể chơi các trò chơi PS3 trên PS4 và ngược lại bạn cũng chẳng thể chơi các trò chơi PS4 trên PS3.
Khi xảy ra Hard Fork, tất cả những người tham gia trong mạng được yêu cầu bắt buộc phải nâng cấp lên phiên bản mới nhất của phần mềm để tiếp tục có thể xác minh và xác thực các khối giao dịch mới. Các khối sinh ra do các nút thuộc phiên bản cũ sẽ không hợp lệ trong phiên bản mới và ngược lại.
Ví dụ: Ngược lại với ví dụ trong trường hợp xảy ra Soft Fork, thay vì giảm kích thước khối, chúng ta muốn tăng kích thước khối Blockchain từ 1MB lên 3MB. Khi đó các nút cũ không cập nhật giao thức mới này vẫn có thể xử lý các giao dịch và đẩy các khối mới lên y hệt như cũ là 1MB. Tuy nhiên, nếu một nút đã được cập nhật phiên bản mới cố gắng đẩy một khối 2 MB lên Blockchain, thì các nút cũ hơn, không được cập nhật sẽ xem khối này là không hợp lệ và do đó sẽ từ chối nó.
Việc thực hiện Hard Fork là cực kỳ khó khăn, bởi nó gây ra nhiều sự không thống nhất trong mạng lưới, nhiều người sẽ không muốn cập nhật, trong khi nhiều người lại lại mong muốn tạo ra sự thay đổi. Khi đó những người muốn tham gia sẽ tự nguyện nâng cấp phần mềm của mình tuân theo các quy tắc mới, và loại bỏ phiên bản cũ. Trong khi những người không cập nhật vẫn sẽ khai thác trên chuỗi cũ. Điều này gây ra sự chia rẽ và tạo thành hai Blockchain độc lập khác nhau. Cả hai Blockchain sẽ có cộng đồng riêng và các nhà phát triển sẽ hoạt động theo cách mà họ tin là tốt nhất. Hard Fork có thể xảy ra hai trường hợp:
- Hard Fork có kế hoạch: Một Hard Fork được lên kế hoạch đơn giản là một bản nâng cấp cho giao thức đã được các nhà phát triển dự án làm rõ từ trước. Thông thường, trong trường hợp này có một sự đồng thuận cao giữa các nhà phát triển dự án và cộng đồng trước khi Hard Fork xảy ra. Một ví dụ của Hard Fork có kế hoạch là sự kiện Hard Fork của tiền ảo Monero xảy ra vào tháng 1 năm 2017. Hard Fork xảy ra để bổ sung một tính năng bảo mật mới được gọi là Giao dịch bí mật Vòng (RingCT).
- Hard Fork cạnh tranh: Trường hợp Hard Fork này xảy ra khi có sự bất đồng nghiêm trọng giữa các bên liên quan khác nhau trong dự án, có thể bao gồm: nhà phát triển dự án, người dùng mạng và người khai thác. Hard Fork cạnh tranh diễn ra vì một phần của cộng đồng tin rằng những thay đổi lớn trong giao thức sẽ tạo ra một Blockchain có tính năng vượt trội trong khi một phần khác thì không. Một ví dụ nổi tiếng về kiểu Hard Fork này là Hard Fork của Bitcoin tạo ra Bitcoin Cash. Một phần của cộng đồng đã tin rằng việc tăng kích thước khối Bitcoin từ 1MB lên 8MB sẽ cho phép xử lý các giao dịch trên mạng nhanh hơn. Do sự phân nhánh diễn ra dựa trên Blockchain gốc, vì vậy tất cả các giao dịch từ Blockchain ban đầu cũng được sao chép vào nhánh mới. Ví dụ: nếu bạn có 100 đồng tiền điện tử có tên là Coin A, thì khi xảy ra Hard Fork trên loại tiền điện tử này bạn sẽ tạo ra một loại tiền điện tử mới có tên là Coin B, và bạn cũng sẽ nhận được 100 xu Coin B tương ứng.
Tìm hiểu thêm:
- Short Bitcoin là gì? Cách đánh Short Bitcoin hiệu quả nhất
- Crypto Hedge Fund là gì? Có nên đầu tư Crypto Hedge Fund không?
- Phala Network (PHA) là gì? Chi tiết về đồng tiền ảo PHA
Temporary Fork là gì?
Khi nhiều người khai thác khai thác được một khối mới gần như cùng một thời điểm, toàn bộ mạng có thể sẽ không đạt được sự đồng thuận về việc lựa chọn khối mới để thêm vào blocckhain. Một số thành viên trong mạng có thể chấp nhận khối được khai thác bởi thành viên này, trong khi một số khác lại chấp nhận khối được khai thác bởi thành viên khác. Điều này dẫn đến sự xuất hiện của nhiều chuỗi các khối khác nhau tại thời điểm đó. Tình huống phát sinh do Blockchain có tính chất phi tập trung và do đó tồn tại độ trễ lan truyền dữ liệu trên mạng, do đó phải mất một thời gian nhất định để thông tin có thể lan truyền được trong toàn bộ mạng. Do đó một số thành viên có thể nhận được các phiên bản này, một số khác lại nhận được một số phiên bản khác trước, dẫn tới các ý kiến mâu thuẫn có thể tồn tại liên quan đến thứ tự thời gian của các sự kiện.
Trong trường hợp phân tách này, tồn tại hai hoặc nhiều chuỗi khối có cùng độ dài. Sự phân nhánh tạm thời có thể tự được giải quyết dựa trên các giao thức đồng thuận của mạng lưới Blockchain. Trong các hệ thống bằng chứng công việc như Bitcoin, các thợ mỏ sẽ tự chọn ra chuỗi khai thác của mình để tiếp tục khai thác khối tiếp theo. Và sau đó, sau một thời gian nhất định Blockchain dài nhất được xem là Blockchain “đúng”, và sẽ thắng, trong khi chuỗi ngắn hơn sẽ bị từ bỏ. Cuối cùng dẫn đến việc một trong các chuỗi bị chết (bị mồ côi) và không được khai thác tiếp tục nữa do phần lớn các nút đã chọn chuỗi khác để tiếp tục khai thác và thêm các khối mới vào để đồng bộ hóa. Điều này dẫn đến sự đồng thuận về trạng thái của chuỗi khối sau một thời gian ngắn. Do đó, nó được gọi là phân tách tạm thời hay Temporary Fork và sẽ hội tụ lại vào một thời điểm nào đó.
Blockchain về bản chất vẫn là các chương trình phần mềm hoạt động theo một chức năng được thế kế. Tuy nhiên, như chúng ta đã biết, phần mềm thì liên tục có khả năng có lỗi, liên tục đòi hỏi các yêu cầu mới về chức năng cũng như sự mở rộng. Và Blockchain cũng vậy. Nó luôn yêu cầu sự thay đổi tại nhiều thời điểm. Và khi có những sự thay đổi trong cách vận hành phần mềm Blockchain, sự thay đổi trong giao thức và cách thức vận hành của Blockchain chẳng hạn như thay đổi kích thước của khối trên Blockchain, tăng hoặc giảm phần thưởng khai thác…, chúng ta sẽ có hai dạng phân tách khác mạnh hơn, làm thay đổi sự phát triển của Blockchain đó vĩnh viễn đó là: Hard Fork và Soft Fork.
Soft Fork là gì?
Soft Fork là sự phân tách do sự cập nhật chức năng hoặc giao thức mới trên Blockchain nhưng sau khi thay đổi, vẫn tương thích ngược với giao thức và phiên bản cũ, tức là các trạng thái của của Blockchain vẫn được chấp nhận trong phiên bản mới. Điều đó có nghĩa là các nút không cập nhật vẫn có thể xử lý các giao dịch và đẩy các khối mới vào Blockchain như cũ, miễn là chúng không phá vỡ các quy tắc trong giao thức mới. Soft Fork không yêu cầu các nút trên mạng bắt buộc phải nâng cấp để duy trì sự đồng thuận, bởi vì tất cả các khối trên Blockchain Soft Fork đều tuân theo quy tắc đồng thuận cũ cũng như các quy tắc đồng thuận mới. Tuy nhiên, các khối được tạo bởi các nút tuân theo bộ quy tắc đồng thuận cũ sẽ vi phạm bộ quy tắc đồng thuận mới và do đó, có thể sẽ bị lỗi khi xác thực trên các nút đã cập nhật phiên bản mới.
Một ví dụ dễ hiểu, khi bạn sử dụng MS Excel 2003 trên máy tính của mình và bạn nhận được một bảng tính MS Excel 2015, bạn vẫn có thể mở nó vì MS Excel 2015 được tương thích ngược.
NHƯNG, vẫn có một số sự khác biệt. Bạn có thể sử dụng hầu như tất cả các tính năng của phiên bản cũ trên phiên bản mới nhưng sẽ có nhiều chức năng trong phiên bản mới không thể sử dụng được trên phiên bản cũ. Chẳng hạn với MS Excel, Trên phiên bản 2015 cho phép đưa các ảnh GIF vào trong bảng tính, tuy nhiên, nếu bạn mở bảng tính này ra thì bạn sẽ không thấy những ảnh GIF đó được hiện thị trong phiên bản 2005. Về cơ bản, bạn sẽ thấy tất cả các văn bản bình thường, nhưng với chức năng mở rộng, bạn sẽ không sử dụng được.
Trên Blockchain, giả sử chúng ta muốn giảm kích thước khối từ 3MB xuống 2MB. Trường hợp này, các nút sử dụng phiên bản cũ vẫn có thể xử lý các giao dịch và đẩy các khối mới có dung lượng 2MB trở xuống. Nhưng sẽ không thể xử lý và đẩy lên một khối có kích thước lớn hơn 2MB vào mạng. Các nút sử dụng phiên bản mới sẽ từ chối khối đó vì nó vi phạm các quy tắc mới.
Tại sao lại có Hard Fork và Soft Fork?
Hiện tượng phân nhánh đặc biệt là Hard Fork và Soft Fork thường xảy ra trên các Blockchain công cộng (public Blockchain). Sở dĩ như vậy là do tính chất nguồn mở của các Blockchain công cộng này. Khi nhiều cá nhân và tổ chức có mục tiêu khác nhau cùng tham gia vào mạng sẽ dẫn đến các vấn đề không đồng thuận về mục tiêu phát triển trung của toàn mạng, điều này dẫn đến sự phân nhánh. Đây là một phần tự nhiên không thể thiếu trong các Blockchain công cộng.
Khác với temporary fork chỉ xảy ra tạm thời và cuối cùng mạng vẫn sẽ đạt được trạng thái đồng thuận chung, Hard Fork và Soft Fork dẫn đến sự thay đổi vĩnh viễn trong các quy tắc cơ bản của giao thức trên Blockchain. Việc 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. Mã nguồn Blockchain được nâng cấp thường xuyên. Vì hầu hết các Blockchains công khai là nguồn mở, nó được phát triển bởi mọi người từ khắp nơi trên thế giới. Các cải tiến, vấn đề được tạo ra, giải quyết và các phiên bản mới được phát hành tại các thời điểm tương ứng.
- Thay đổi quy tắc cốt lõi trong giao thức, chẳng hạn như tăng kích thước khối, tăng, giảm phần thưởng khai thác, thay đổi giao thức đồng thuận,…
- Khắc phục sự cố bảo mật: Blockchain là một công nghệ tương đối mới so với các công nghệ truyền thống, do đó các nghiên cứu vẫn đang được tiến hành liên tục để xây dựng nền tảng cho nó. Vì vậy, trong quá trình nghiên cứu, không tránh được việc phát hiện ra các phiên bản bị lỗi hoặc chứa những lỗ hổng bảo mật nghiêm trọng. Và trong những trường hợp như vậy, việc cập nhật các bản vá, phiên bản mới là hết sức cần thiết. Điều này cũng có thể dẫn đến các vấn đề phân nhánh trên hệ thống Blockchain.
- Đảo ngược giao dịch: Trong trường hợp một số giao dịch trong một giai đoạn cụ thể là độc hại và vi phạm các cơ chế an toàn của Blockchain, cộng đồng tham gia mạng có thể làm mất hiệu lực tất cả các giao dịch này và đảo ngược lại chuỗi khối nhằm vô hiệu hóa các giao dịch này.
Lời kết:
Trên đây là bài viết “Fork, HardFork và SoftFork là gì?” hi vọng sẽ giúp bạn hiểu hơn về các khái niệm xung quanh Bitcoin thường gặp phải. Với những người mới tìm hiểu các thuật ngữ này sẽ khá là khó hiểu, chỉ những người đã có kinh nghiệm trong thị trường cryptocurrency và đào bitcoin mới hiểu rõ được vấn đề, vì thế mình nghĩ bạn cứ tìm hiểu dần nhé
Xem thêm:
- Top website mua bán Bitcoin và Allcoin tốt nhất
- Top sàn giao dịch Bitcoin hàng đầu Việt Nam và Thế Giới