Hardfork Mainnet Testnet
Hardfork Mainnet Testnet

Trong công nghệ blockchain, chúng ta đã gặp nhiều các thuật ngữ Hardfork, Mainnet, Testnet. Trong bài này, chúng ta cùng tìm hiểu về chúng nhé.

  • HARDFORK

Trước hết, “fork” trong phần mềm có nghĩa là một bản nâng cấp. Trong blockchain, một fork được định nghĩa theo nhiều cách khác nhau như sau:

  1. Là điều xảy ra khi một blockchain chuyển hướng thành 2 con đường khác nhau: 1 nhánh đi theo bản cũ, 1 nhánh đi theo phiên bản mới
  2. Một sự thay đổi giao thức
  3. Một trạng thái xảy ra khi 2 hoặc nhiều khối có cùng một chiều cao khối

Phân loại fork

Fork có thể chia làm 2 dạng: tự nhiên hoặc có chủ đích

Các fork tự nhiên xảy ra khi 2 hoặc nhiều máy đào cùng tìm ra (giải mã) một khối gần như 1 lúc. 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 thay thế. Mạng lưới sẽ từ bỏ các khối không nằm trong chuỗi dài nhất (các khối mồ côi).

Các fork có chủ đích được chia làm 2 loại:

  1. Hardfork: Là một sự thay đổi quy tắc trong mạng. Khi đó các phần mềm xác nhận theo quy tắc cũ sẽ thấy các khối mới tạo ra theo quy tắc mới là không hợp lệ. Tất cả các nút có nghĩa phải nâng cấp phần mềm để hoạt động theo quy tắc xác thực mới.

Bitcoin Cash – Một Hardfork tiêu biểu của Bitcoin vào tháng 8/2018

Việc phân tách xảy ra khi một số nút vẫn theo quy tắc cũ, còn 1 số nút theo quy tắc mới. Ví dụ, Ethereum đã khá khó khăn trong việc đồng thuận các nhà đầu tư trong The DAO, vốn đã bị hack bởi các lỗ hổng bảo mật. Hai chuỗi được tạo ra là Ethereum và Ethereum Classic. Ngoài ra, để ngăn chặn sự phân tách vĩnh viễn, các nút theo phần mềm mới vẫn có thể quay trở lại các quy tắc cũ, như trường hợp phân tách Bitcoin vào 03/2013.

2. Softfork: Khác với Hardfork,trong các fork mềm, các khối mới được tạo ra theo quy tắc mới vẫn có thể được xác thực bởi phần mềm cũ. Tuy vậy, fork mềm vẫn có thể phân tách chuỗi, tạo ra các khối không hợp lệ bởi các quy tắc mới.

  • MAINNET & TESTNET

Mainnet là một khái niệm được nhắc nhiều hơn cả trong các dự án ICO. Hai khái niệm Mainnet và Testnet thường được dùng cho các nhà phát triển hơn. Chúng ta – những nhà đầu tư – cũng thử nghiên cứu chúng như các nhà lập trình viên xem sao nhé!

Như chúng ta đã biết, mỗi đồng tiền ảo đều chạy trên nền tảng blockchain, bao gồm rất nhiều các chuỗi khối, các chuỗi khối này liên kết với nhau bằng mã hóa và tạo thành 1 mạng lưới (Network). Network cho chúng ta truy xuất mọi giao dịch từ mới nhất đến cũ nhất.

Trong thực tế, người ta chạy song song 2 mạng lưới: Mainnet (mạng chính thức), và Testnet (mạng thử nghiệm). Cái chúng ta đang giao dịch hàng ngày là trên mạng chính thức Mainnet. Còn Testnet cũng hoạt động song song, cùng 1 phần mềm như Mainnet nhưng có thêm các tùy chỉnh khác, đây là nơi các nhà phát triển thử nghiệm, kiểm tra lỗi hay viết thêm các tính năng mới trước khi đưa chúng vào mạng chính thức Mainnet cho công chúng.