Kiến thức Crypto 11 Tháng 5, 2026 · 19 phút đọc

Fork là gì: Phân biệt Hard Fork, Soft Fork và GitHub Fork

Fork là một trong những khái niệm xuất hiện ở hai lĩnh vực hoàn toàn khác nhau nhưng cùng chia sẻ một nguyên lý: phân nhánh từ nguồn gốc chung để phát triển độc lập. Trên […]

LU
luckyhold
Biên tập

Fork là một trong những khái niệm xuất hiện ở hai lĩnh vực hoàn toàn khác nhau nhưng cùng chia sẻ một nguyên lý: phân nhánh từ nguồn gốc chung để phát triển độc lập. Trên GitHub, theo định nghĩa chính thức của GitHub Docs, fork là bản sao cá nhân của repository người khác trên tài khoản của bạn — nền tảng cho toàn bộ văn hóa open source hiện đại với hơn 150 triệu developer tham gia. Trong blockchain, fork là sự kiện mạng lưới thay đổi giao thức, tạo ra hai nhánh chuỗi độc lập — điển hình là Bitcoin Cash ra đời ngày 1/8/2017 tại block 478,559. Bài này giải thích cả hai loại fork từ nguyên lý đến ví dụ thực tế, kèm phân tích hard fork vs soft fork và rủi ro nhà đầu tư cần biết.

Nguyên lý Fork: Khi Phần Mềm Cần Phân Nhánh

Nguyên lý Fork: Khi Phần Mềm Cần Phân Nhánh
Git fork tạo nhánh độc lập từ cùng nguồn gốc — nguyên lý chia tách phần mềm.

Fork (phân nhánh) là kỹ thuật tách một hệ thống đang chạy thành hai phiên bản độc lập — từ một điểm xuất phát chung, mỗi nhánh có thể phát triển theo hướng riêng mà không ảnh hưởng lẫn nhau. Nguyên lý này xuất phát từ hệ điều hành Unix, nơi lệnh fork() tạo ra một tiến trình con từ tiến trình cha, và được kế thừa vào cả quản lý mã nguồn lẫn giao thức blockchain.

Fork nghĩa là gì và từ đâu đến?

GitHub Docs định nghĩa fork là “tạo bản sao cá nhân của repository người khác trên tài khoản GitHub của bạn, cho phép thay đổi tự do mà không ảnh hưởng đến project gốc.” Đây là nền tảng của toàn bộ mô hình đóng góp open source hiện đại.

Trong hệ điều hành Unix/Linux, fork() là system call tạo tiến trình con — tiến trình mới kế thừa toàn bộ trạng thái của tiến trình cha nhưng chạy độc lập. Git và GitHub mượn thuật ngữ này để mô tả hành động sao chép repository. Từ đó, cộng đồng blockchain cũng dùng “fork” để chỉ sự phân nhánh giao thức.

Ba ngữ cảnh dùng fork phổ biến nhất hiện nay:

  1. GitHub/Git fork — sao chép repository để đóng góp open source
  2. Blockchain soft fork — nâng cấp giao thức tương thích ngược
  3. Blockchain hard fork — thay đổi giao thức tạo chuỗi mới hoàn toàn

Mỗi loại có cơ chế và hậu quả khác nhau, nhưng cùng chia sẻ nguyên lý: một nguồn gốc, hai con đường.

Fork vs Clone — hai khái niệm developer thường nhầm

Fork và clone đều tạo bản sao của repository, nhưng có điểm khác biệt cốt lõi về nơi bản sao tồn tại và mối liên kết với nguồn gốc:

Tiêu chí Fork Clone
Nơi lưu trữ Trên tài khoản GitHub của bạn Trên máy local của bạn
Liên kết với repo gốc Có — có thể tạo Pull Request Không có liên kết GitHub
Mục đích chính Đóng góp cho project người khác Làm việc offline với bất kỳ repo nào
Sync với upstream Có thể sync qua “Sync fork” Phải cấu hình remote thủ công
Hiển thị trên GitHub Công khai trong profile của bạn Không hiển thị

Workflow chuẩn của GitHub là fork trước, sau đó clone fork về local để làm việc. Bỏ bước fork và clone thẳng repo gốc thì không thể tạo Pull Request — lỗi phổ biến nhất với developer mới.

Fork trong Git và GitHub: Đóng Góp Cho Mã Nguồn Mở

Fork trong Git và GitHub: Đóng Góp Cho Mã Nguồn Mở
GitHub có 150 triệu người dùng đóng góp qua mô hình fork và Pull Request.

GitHub là nền tảng lưu trữ hơn 420 triệu repository và có hơn 150 triệu người dùng — con số này phần lớn được thúc đẩy bởi văn hóa fork và Pull Request. Repository được fork nhiều nhất là “datasharing” với 242,600 fork tính đến 2025, phản ánh quy mô của cộng đồng open source toàn cầu.

Cách fork hoạt động trên GitHub

Fork trên GitHub tạo ra một bản sao hoàn chỉnh của repository — bao gồm toàn bộ lịch sử commit, branches, và issues — trong tài khoản cá nhân của bạn. Bản fork này tồn tại độc lập: bạn có thể push code, tạo branch, thậm chí xóa file mà không ảnh hưởng đến repo gốc.

Điểm đặc biệt là bản fork duy trì một “upstream link” với repo gốc. Link này cho phép bạn:

  • Tạo Pull Request để đề xuất thay đổi lên repo gốc
  • Sync fork để nhận cập nhật mới từ maintainer
  • So sánh các commit giữa fork và upstream

Theo báo cáo Octoverse 2025 của GitHub, India lần đầu tiên vượt Mỹ về tổng số contributor open source — phần lớn nhờ mô hình fork & PR làm hạ thấp rào cản đóng góp.

Quy trình Fork → Branch → Commit → Pull Request

GitHub Docs mô tả quy trình đóng góp open source chuẩn gồm 6 bước:

  1. Fork repository — nhấn nút “Fork” trên GitHub để tạo bản sao trong tài khoản của bạn
  2. Clone fork về localgit clone https://github.com/YOUR-USERNAME/REPO.git
  3. Tạo branch mớigit checkout -b fix/ten-bug (KHÔNG làm việc trực tiếp trên main)
  4. Thực hiện thay đổi và commitgit commit -m "fix: mô tả cụ thể thay đổi"
  5. Push branch lên forkgit push origin fix/ten-bug
  6. Tạo Pull Request — từ GitHub UI, chọn “Compare & pull request” để gửi thay đổi cho maintainer review

Maintainer nhận PR, review code, có thể yêu cầu chỉnh sửa, và cuối cùng merge vào repo gốc. Đây là workflow chi phối hầu hết 420 triệu dự án trên GitHub — từ Linux kernel đến framework nhỏ của cá nhân.

Sync fork với upstream và quản lý lâu dài

Sau khi fork, repo gốc tiếp tục có commit mới. Nếu không đồng bộ, fork của bạn sẽ tụt hậu — gây merge conflict khi tạo PR. GitHub cung cấp nút “Sync fork” để kéo commit mới từ upstream về nhánh main của fork.

Qua CLI, sync bằng lệnh:

git remote add upstream https://github.com/ORIGINAL-OWNER/REPO.git
git fetch upstream
git merge upstream/main

Repository được fork nhiều nhất là “Spoon-Knife” — tutorial chính thức của GitHub với 157,065 fork. Đây là repo bài tập fork đầu tiên mà mọi developer mới trên GitHub đều làm — minh chứng cho việc fork là kỹ năng cốt lõi, không phải nâng cao.

Fork trong Blockchain: Hard Fork và Soft Fork

Fork trong Blockchain: Hard Fork và Soft Fork
Bitcoin Cash ra đời ngày 1/8/2017 — hard fork điển hình tăng block size lên 8 MB.

Fork trong blockchain xảy ra khi cộng đồng thay đổi giao thức (bộ quy tắc) mà mạng lưới vận hành. Không như GitHub fork chỉ ảnh hưởng đến code, blockchain fork ảnh hưởng trực tiếp đến tiền tệ, quyền lợi holder, và toàn bộ network với hàng nghìn node trên thế giới.

Soft fork là gì — nâng cấp tương thích ngược

Coinbase định nghĩa soft fork là “nâng cấp tương thích ngược — ngay cả khi một số node không áp dụng phiên bản mới, chúng vẫn có thể nhận ra và xác thực giao dịch theo giao thức đã cập nhật.” Node cũ và node mới cùng tồn tại trên một chuỗi duy nhất.

SegWit (Segregated Witness) là soft fork nổi tiếng nhất trên Bitcoin, kích hoạt ngày 24/8/2017. River.com giải thích cơ chế: SegWit tách dữ liệu giao dịch thành hai phần — dữ liệu gốc (sender/receiver) và phần “witness” chứa chữ ký số. Phần witness chỉ được tính bằng 1/4 kích thước thực, cho phép nhét thêm giao dịch vào mỗi block mà không cần tăng giới hạn 1 MB. Kết quả: throughput tăng mà không tạo chuỗi mới, node cũ vẫn hoạt động bình thường.

Soft fork phù hợp khi cộng đồng đồng thuận cao về hướng nâng cấp nhưng cần thời gian chuyển đổi dần dần — không buộc tất cả phải upgrade ngay lập tức.

Hard fork là gì — khi blockchain tách làm đôi

Fidelity định nghĩa hard fork là “thay đổi không tương thích ngược đối với giao thức blockchain, yêu cầu tất cả node phải nâng cấp lên phiên bản mới.” Node cũ không công nhận block mới là hợp lệ — kết quả là chuỗi tách vĩnh viễn thành hai nhánh độc lập.

Hard fork xảy ra vì hai lý do chính:

  • Không đồng thuận kỹ thuật — cộng đồng bất đồng về hướng phát triển (như Bitcoin vs Bitcoin Cash)
  • Khắc phục khủng hoảng — cần can thiệp khẩn cấp để phục hồi tiền bị hack (như Ethereum vs Ethereum Classic)

Sau hard fork, tồn tại hai blockchain riêng biệt với lịch sử chung đến điểm phân nhánh, nhưng phát triển độc lập từ đó trở đi.

Bitcoin Cash và Ethereum Classic — hai case study thực tế

Bitcoin Cash (BCH) là hard fork Bitcoin tiêu biểu nhất. Bitcoin Cash ra đời ngày 1/8/2017 tại block số 478,559 — thời điểm nhóm phát triển tăng kích thước block lên 8 MB thay vì 1 MB của Bitcoin. Mục tiêu: tăng tốc độ giao dịch để BCH có thể cạnh tranh như phương tiện thanh toán hàng ngày.

So sánh kỹ thuật sau hard fork:

Tiêu chí Bitcoin (BTC) Bitcoin Cash (BCH)
Block size 1 MB (2–4 MB với SegWit) 8 MB → 32 MB hiện tại
Tốc độ xử lý 5–7 TPS 100–200 TPS
Phí giao dịch Cao hơn do tắc nghẽn Thấp hơn do block lớn
Cộng đồng Lớn hơn nhiều Nhỏ hơn

Phemex phân tích rằng Bitcoin Cash đạt thông lượng 100–200 TPS nhờ block 32 MB — gấp 32 lần Bitcoin. Tuy nhiên, cộng đồng và thanh khoản của BTC vẫn vượt trội BCH đáng kể.

Ethereum Classic (ETC) là case study khác về hard fork do khủng hoảng. Vụ hack The DAO ngày 17/6/2016 rút ra hơn 3,6 triệu ETH — tương đương ~$150 triệu tại thời điểm đó. Cộng đồng Ethereum đứng trước lựa chọn: hard fork để hoàn trả tiền cho nạn nhân, hay giữ nguyên nguyên tắc “code is law”?

Ethereum hard fork được thực hiện ngày 20/7/2016 tại block số 192,000 — phần lớn cộng đồng theo chuỗi mới (Ethereum/ETH). Nhóm thiểu số từ chối fork tiếp tục dùng chuỗi gốc, tạo thành Ethereum Classic (ETC) — blockchain tuân thủ nguyên tắc “code is law” dù lịch sử có giao dịch hack.

Những Điều Ít Người Biết Khi Fork Xảy Ra

Những Điều Ít Người Biết Khi Fork Xảy Ra
Hơn 100 fork Bitcoin tồn tại trong lịch sử; không phải fork nào cũng có giá trị.

Phần lớn bài viết về fork dừng lại ở định nghĩa và ví dụ. Nhưng với nhà đầu tư crypto và developer thực chiến, hai vấn đề dưới đây mới là điều quyết định xem fork có ảnh hưởng thực sự đến họ không.

Nhà đầu tư nhận coin gì sau hard fork?

Hard fork tạo ra chuỗi mới — và thường đi kèm với coin mới. Nguyên tắc cơ bản: nếu bạn giữ coin trong ví tự quản lý (non-custodial wallet) tại thời điểm fork, bạn có quyền sở hữu số coin tương đương trên cả hai chuỗi.

Lịch sử Bitcoin cho thấy mức độ phức tạp: tính đến 2025, có hơn 70 fork Bitcoin đang hoạt động, và hơn 100 fork nếu tính cả các fork đã ngừng hoạt động. Không phải fork nào cũng có giá trị — phần lớn là “airdrop coin” vô giá trị, tận dụng snapshot của chuỗi Bitcoin để phân phát token.

Monero (XMR) là ví dụ phức tạp hơn: hard fork tại block 1,546,000 để chống ASIC miner tạo ra 4 đồng coin mới — hai phiên bản Monero Classic, Monero 0 và Monero Original. Chỉ Monero gốc (XMR) duy trì giá trị và cộng đồng lâu dài.

Bitcoin SV (BSV) là trường hợp cảnh báo: xuất phát từ hard fork Bitcoin Cash tháng 11/2018, BSV bị delisted khỏi Binance, Kraken và nhiều sàn lớn giai đoạn 2019–2023 do tranh cãi pháp lý liên quan đến Craig Wright — coin vẫn tồn tại kỹ thuật nhưng mất hầu hết thanh khoản.

Khuyến nghị thực tế: trước bất kỳ hard fork quan trọng nào, chuyển coin ra khỏi sàn giao dịch tập trung vào ví tự quản lý. Sàn có thể không hỗ trợ chuỗi mới, hoặc hỗ trợ nhưng giữ lại coin fork mà không thông báo rõ.

Replay attack — rủi ro ít ai đề cập sau hard fork

Replay attack là vấn đề kỹ thuật nghiêm trọng xảy ra ngay sau hard fork: một giao dịch hợp lệ trên chuỗi A có thể bị “phát lại” trên chuỗi B, khiến người dùng mất coin ở cả hai chuỗi dù chỉ muốn gửi ở một chuỗi.

Cơ chế: sau hard fork, cả hai chuỗi dùng chung định dạng giao dịch đến điểm phân nhánh. Kẻ tấn công bắt được giao dịch trên chuỗi A và phát lại y nguyên lên chuỗi B — chuỗi B xác nhận vì giao dịch hợp lệ về mặt kỹ thuật.

Giải pháp là “replay protection” — cơ chế phân biệt giao dịch giữa hai chuỗi. Ethereum Classic (ETC) và Ethereum The Merge (ETH) đều triển khai replay protection ngay sau fork. Bitcoin Cash triển khai SIGHASH_FORKID — flag trong chữ ký giao dịch giúp chuỗi BCH từ chối giao dịch BTC và ngược lại.

Nếu một hard fork không có replay protection, tốt nhất là chờ vài ngày đến vài tuần trước khi thực hiện bất kỳ giao dịch nào — đây là bài học từ nhiều fork nhỏ trong lịch sử Bitcoin.

Hai loại fork — GitHub và blockchain — cùng chia sẻ triết lý phân nhánh, nhưng hậu quả hoàn toàn khác. GitHub fork có thể bị xóa bất kỳ lúc nào mà không ảnh hưởng ai; blockchain hard fork để lại dấu vết vĩnh viễn trên cả hai chuỗi. Với developer, hiểu fork giúp đóng góp open source hiệu quả hơn; với nhà đầu tư crypto, hiểu hard fork vs soft fork là điều kiện cần để bảo vệ tài sản khi mạng lưới thay đổi giao thức — đặc biệt khi Bitcoin đã có hơn 100 fork trong lịch sử và các blockchain lớn tiếp tục nâng cấp thường xuyên.

Câu hỏi thường gặp

Hard fork và soft fork khác nhau thế nào về tương thích với node cũ?

Hard fork yêu cầu tất cả node nâng cấp — node cũ không nhận block từ chuỗi mới. Soft fork cho phép node cũ tiếp tục hoạt động vì block mới vẫn hợp lệ với giao thức cũ.

Bitcoin Cash (BCH) ra đời từ hard fork Bitcoin vào ngày nào và tại block số bao nhiêu?

BCH được tạo ngày 1/8/2017 tại block số 478,559 khi nhóm phát triển tăng block size lên 8 MB — gấp 8 lần Bitcoin (1 MB) để tăng tốc độ giao dịch.

Fork trên GitHub khác clone ở điểm nào quan trọng nhất với developer?

Fork tạo bản sao trên tài khoản GitHub và duy trì liên kết với repo gốc để gửi Pull Request. Clone chỉ tải repo về máy local, không có liên kết GitHub hay khả năng đề xuất thay đổi.

Ethereum Classic (ETC) ra đời từ sự kiện nào và bao nhiêu ETH bị hack kích hoạt hard fork?

ETC sinh ra từ hard fork Ethereum ngày 20/7/2016 sau khi hack The DAO rút đi 3,6 triệu ETH (~$150M). Nhóm từ chối nâng cấp tiếp tục dùng chuỗi gốc, tạo thành Ethereum Classic.

Nhà đầu tư crypto có nhận được coin mới sau hard fork không?

Có — nếu giữ coin trong ví tự quản lý (non-custodial wallet) trước thời điểm fork, bạn thường nhận coin mới tương đương trên chuỗi tách ra. Sàn giao dịch quyết định riêng có hỗ trợ hay không.

SegWit là hard fork hay soft fork và được kích hoạt khi nào trên Bitcoin?

SegWit là soft fork, kích hoạt ngày 24/8/2017. Nó tách dữ liệu chữ ký (witness) khỏi dữ liệu giao dịch — phần witness chỉ tính 1/4 kích thước thực, tăng sức chứa block mà không đổi giới hạn 1 MB.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *