Trả lời nhanh: Tấn công 51% (51% attack) xảy ra khi một bên kiểm soát hơn một nửa sức mạnh đào (hash rate) của mạng Proof of Work, hoặc hơn một nửa lượng coin stake ở mạng Proof of Stake. Họ có thể viết lại các khối gần nhất, chi tiêu kép và chặn giao dịch. Họ không lấy được coin trong ví của người khác.
Điểm chính
- Mục tiêu thực tế của kẻ tấn công là chi tiêu kép (double spend), không phải phá hỏng toàn bộ sổ cái.
- Mạng nhỏ dùng chung thuật toán đào với mạng lớn là mục tiêu quen thuộc: Bitcoin Gold và Ethereum Classic đều từng bị tấn công.
- Rủi ro rơi vào bên nhận thanh toán, nhất là sàn và đơn vị nhận nạp. Số lần xác nhận (confirmation) là biện pháp phòng chính.
- Con số 51% là mốc dễ nhớ. Với số lần xác nhận thấp, kẻ tấn công có hash rate thấp hơn vẫn có xác suất thành công.
Mục lục
- Tấn công 51% là gì và vì sao gọi là “51%”?
- Tấn công 51% diễn ra như thế nào?
- Kẻ tấn công làm được gì và không làm được gì?
- Những vụ tấn công 51% có thật nào đã xảy ra?
- Vì sao mạng nhỏ dễ bị tấn công hơn mạng lớn?
- Tấn công 51% trong Proof of Stake khác gì?
- Bên nhận thanh toán nên phòng ngừa thế nào?
- Về phía thiết kế mạng, giảm rủi ro bằng cách nào?
- Tấn công 51% khác gì với các tấn công gần giống?
- Khi nào nên lo và khi nào không?
- Câu hỏi thường gặp
Tấn công 51% là gì và vì sao gọi là “51%”?
Trong blockchain, quy tắc chung là mọi node chấp nhận chuỗi hợp lệ có nhiều công sức nhất. Với Proof of Work, “nhiều công sức nhất” thường là chuỗi tích luỹ nhiều phép băm nhất. Nếu một thực thể sở hữu phần lớn hash rate, họ có thể tự đào một chuỗi riêng nhanh hơn phần còn lại của mạng cộng lại. Khi công bố chuỗi đó, các node sẽ chuyển sang chuỗi của họ. Theo mô tả của Gemini Cryptopedia, nhóm kiểm soát từ 51% hash rate trở lên có thể tổ chức lại (reorg) blockchain chừng nào còn giữ đa số. Khi đã reorg được, họ thực hiện chi tiêu kép.
Mốc 51% chỉ là cách nói gọn của “đa số”. Về toán học, kẻ tấn công không cần vượt 50% để có xác suất thành công. Nếu tỷ lệ hash rate của họ là q (với q nhỏ hơn 0,5), xác suất đuổi kịp một chuỗi đã có k khối xác nhận xấp xỉ (q/(1-q)) mũ k. Con số này giảm rất nhanh khi k tăng. Ngược lại, khi q vượt 0,5 thì xác suất đuổi kịp tiến tới 100%, dù chờ bao nhiêu xác nhận cũng không còn tác dụng. Mô hình này được nhắc trong nghiên cứu của Gervais và cộng sự về quan hệ giữa độ sâu xác nhận và xác suất tấn công thành công.
Với mạng Proof of Stake, “quyền lực” là lượng coin được stake. Phần sau bài sẽ nói chỗ khác biệt này.
Tấn công 51% diễn ra như thế nào?
Kịch bản kinh điển là chi tiêu kép. Các bước dưới đây chỉ mô tả ở mức khái niệm để bạn hiểu rủi ro, không phải hướng dẫn thực hiện:
- Kẻ tấn công gửi một khoản coin lớn cho một sàn hoặc người bán. Giao dịch này được đưa vào chuỗi công khai.
- Cùng lúc, họ đào một chuỗi riêng, không công bố. Trong chuỗi riêng đó, số coin trên được chuyển về một địa chỉ do chính họ kiểm soát, hoặc giao dịch kia không có mặt.
- Bên nhận thấy đủ số xác nhận, ghi có và trả hàng, hoặc cho phép rút một tài sản khác.
- Kẻ tấn công công bố chuỗi riêng. Vì chuỗi này có nhiều công sức hơn, mạng chuyển sang chuỗi mới. Giao dịch gốc trở thành “mồ côi” (orphaned) và biến mất khỏi lịch sử chính thức.
- Bên nhận đã giao hàng, còn coin vẫn nằm trong tay kẻ tấn công.

Cơ chế này giải thích vì sao thời gian giữa các khối ảnh hưởng đến rủi ro. Chuỗi có block time ngắn hoặc chuỗi ít công sức thì mỗi xác nhận “rẻ” hơn, nên cần chờ nhiều xác nhận hơn mới tương đương mức an toàn.
Kẻ tấn công làm được gì và không làm được gì?
Nhiều bài viết gây hiểu nhầm rằng kẻ nắm 51% có thể “làm gì cũng được”. Thực tế quyền lực này có giới hạn rõ, vì các quy tắc xác thực nằm ở từng node chứ không nằm ở thợ đào.
| Việc | Có thể không? | Lý do |
|---|---|---|
| Chi tiêu kép giao dịch của chính mình | Có | Chuỗi riêng dài hơn thay thế chuỗi công khai |
| Chặn hoặc trì hoãn giao dịch của người khác | Có | Không đưa giao dịch đó vào khối do mình đào |
| Ngăn thợ đào khác nhận phần thưởng | Có, trong thời gian giữ đa số | Chuỗi của họ trở thành chuỗi chính |
| Lấy coin từ ví người khác | Không | Cần chữ ký từ private key của chủ ví |
| Tạo coin vượt quy định giao thức | Không | Node đầy đủ từ chối khối vi phạm luật |
| Sửa lịch sử rất xa | Rất khó | Phải đào lại toàn bộ các khối từ điểm sửa trở đi |
Vì vậy, các nguồn như BlockchainWork Insider cũng nhấn mạnh rằng tấn công 51% không phá huỷ được Bitcoin hay các đồng tiền số khác. Tuy vậy, thiệt hại tài chính và niềm tin vẫn có thể rất lớn.
Một điểm cần phân biệt: quyền lực này không cho phép “đổi luật”. Nếu kẻ tấn công muốn thay đổi quy tắc, đó là việc của nâng cấp giao thức, chẳng hạn hard fork và soft fork. Các node không nâng cấp vẫn từ chối khối vi phạm quy tắc cũ.
Những vụ tấn công 51% có thật nào đã xảy ra?
Theo Gemini Cryptopedia, Ethereum Classic bị tấn công năm 2019 và 2020, còn Bitcoin Gold bị tấn công năm 2018 và 2020. Cùng nguồn này cho biết chưa có bằng chứng về một vụ tấn công 51% thành công trên Bitcoin. Bảng dưới tổng hợp các vụ có số liệu được báo cáo.
| Mạng | Thời điểm | Quy mô được báo cáo | Chi tiết đáng chú ý |
|---|---|---|---|
| Bitcoin Gold (BTG) | Tháng 5/2018 | Khoảng 18 triệu USD chi tiêu kép | Nghiên cứu kiến trúc bảo mật blockchain trên arXiv ghi nhận 76 giao dịch chi tiêu kép, chủ yếu nhắm vào sàn |
| Bitcoin Gold (BTG) | Tháng 1/2020 | Khoảng 72.000 USD qua hai lần reorg | The Next Web dẫn ước tính của một nhà phát triển rằng mỗi cuộc tấn công tốn khoảng 1.200 USD thuê hash rate trên NiceHash |
| Ethereum Classic (ETC) | 31/7/2020 | Khoảng 800.000 ETC, khoảng 5,8 triệu USD theo Coinbase | Coinbase tìm thấy 15 cặp giao dịch chi tiêu kép trong đợt reorg |
| Ethereum Classic (ETC) | 5/8/2020 | Khoảng 460.000 ETC, khoảng 3,2 triệu USD theo Coinbase | Reorg làm 4.244 khối thành khối mồ côi, chuỗi tấn công có 4.353 khối |
Hai chi tiết từ các vụ này đáng chú ý với người làm vận hành:
- Sau các vụ tấn công Bitcoin Gold, theo The Next Web, Binance đã nâng yêu cầu xác nhận khi rút BTG lên 20. Đó là cách phản ứng trực tiếp: kéo dài thời gian chờ để chuỗi bí mật phải dài hơn.
- Theo CoinDesk, sau vụ ETC thứ hai, Bitfly (đơn vị sở hữu Ethermine) và Binance tạm dừng thanh toán, rút và nạp ETC. Các nhà phát triển ETC khuyến nghị sàn và pool tăng đáng kể thời gian xác nhận.
Con số thiệt hại do các nguồn báo cáo có thể lệch nhau tuỳ thời điểm quy đổi giá và cách tính (ví dụ 5,6 triệu hay 5,8 triệu USD cho vụ ETC đầu tháng 8/2020). Hãy xem đây là bậc độ lớn, không phải số kế toán chính xác.
Vì sao mạng nhỏ dễ bị tấn công hơn mạng lớn?
Chi phí tấn công tỷ lệ thuận với tổng hash rate của mạng. Bitcoin có hash rate cực lớn, nên theo Gemini, việc kiểm soát đa số cần chi phí và phối hợp khổng lồ, đến mức triệt tiêu động cơ tài chính. Các nhánh tách ra từ Bitcoin và Ethereum thì khác: chúng thường được đào theo cách tương tự mạng gốc nhưng có hash rate thấp hơn nhiều. Ethereum Classic, Bitcoin Gold và Verge nằm trong nhóm này theo một nghiên cứu đăng trên ScienceDirect.
Có hai yếu tố làm rủi ro cao hơn mức bạn nghĩ:
- Hash rate có thể thuê. Kẻ tấn công không nhất thiết phải mua máy đào. Vụ Bitcoin Gold tháng 1/2020 được ước tính tốn khoảng 1.200 USD mỗi lần nhờ thuê hash rate theo giờ. Khi thuật toán đào của một đồng coin trùng với đồng coin lớn hơn, thợ đào có thể chuyển hướng sức mạnh sang mạng nhỏ.
- Giá trị giao dịch đủ lớn để bõ công. Động cơ chỉ có khi tổng giá trị có thể chi tiêu kép vượt chi phí thuê. Những khoản nạp lớn vào sàn chính là mục tiêu, đúng như TNW ghi nhận về việc kẻ chi tiêu kép thường nhắm vào sàn.
Vì vậy, so sánh an toàn giữa hai mạng không nên chỉ nhìn “PoW hay không”, mà nhìn chi phí để chiếm đa số so với giá trị giao dịch đang được bảo vệ. Để hiểu vì sao việc tìm khối tốn công, bạn có thể đọc thêm về đào coin và cách cạnh tranh hash rate.
Tấn công 51% trong Proof of Stake khác gì?
Ở mạng Proof of Stake, quyền ghi khối gắn với lượng coin khoá làm tài sản đảm bảo. Theo FPT Shop, kẻ tấn công cần kiểm soát hơn 50% tổng số coin được stake. Có ba khác biệt đáng nói:
- Không thể thuê theo giờ như hash rate. Muốn có đa số stake, kẻ tấn công phải mua hoặc huy động lượng coin rất lớn. Việc mua vào cũng đẩy giá lên.
- Có thể bị phạt trực tiếp. Nhiều giao thức PoS có cơ chế cắt giảm stake (slashing) với hành vi gian lận bị chứng minh được, nên kẻ tấn công có thể mất đúng loại tài sản đã dùng để tấn công. Chi tiết nằm ở bài về cơ chế đồng thuận.
- Ngưỡng đáng lo không chỉ là 50%. Với các giao thức hoàn tất khối (finality) theo kiểu Byzantine, ngưỡng thường quanh một phần ba hoặc hai phần ba, nên một bên nắm hơn một phần ba có thể làm chậm việc hoàn tất dù chưa đủ đa số. Chi tiết ngưỡng phụ thuộc từng giao thức.
Cũng cần lưu ý rằng các mạng nhỏ dùng PoS hoặc chọn một nhóm cố định người xác thực lại có vấn đề khác: nếu vài đơn vị nắm phần lớn quyền, “đa số” có thể đạt được bằng thương lượng chứ không cần tấn công kỹ thuật.
Bên nhận thanh toán nên phòng ngừa thế nào?
Người chịu rủi ro lớn nhất là bên chấp nhận giao dịch: sàn, cổng thanh toán tiền mã hoá, doanh nghiệp nhận coin của một mạng nhỏ. Phòng ngừa tập trung vào việc quyết định khi nào coi giao dịch là cuối cùng.

Các biện pháp cụ thể mà bên nhận có thể áp dụng:
- Đặt số xác nhận theo từng mạng, không dùng một con số chung. Mạng có hash rate thấp cần ngưỡng cao hơn nhiều so với Bitcoin. Ví dụ minh hoạ: nếu một mạng thuê được hash rate với vài trăm đô la một giờ, ngưỡng xác nhận nên được tính để chuỗi bí mật đủ dài khiến việc thuê trở nên không có lãi.
- Tăng ngưỡng theo giá trị. Khoản nạp nhỏ có thể chờ ít xác nhận, khoản lớn chờ nhiều hơn hoặc xét duyệt thủ công.
- Theo dõi reorg. Các node của bạn ghi lại độ sâu reorg. Reorg vài khối là bình thường ở nhiều mạng, nhưng reorg hàng trăm hay hàng nghìn khối, như vụ ETC với hơn 4.000 khối, là tín hiệu cần dừng nạp và rút. Việc này cần chạy node đầy đủ riêng, vì node nhà cung cấp bên thứ ba có thể đã loại bỏ lịch sử cũ.
- Theo dõi hash rate. Hash rate giảm mạnh là dấu hiệu chi phí chiếm đa số đang rẻ đi. CoinDesk ghi nhận hash rate ETC giảm gần 20% ngay sau đợt tấn công.
- Cẩn trọng khi gom nhiều mạng qua cầu nối. Nghiên cứu trên ScienceDirect mô tả kịch bản reorg ở một chuỗi rồi khai thác cầu nối để chi tiêu kép sang chuỗi khác.
Một chi tiết kỹ thuật từ vụ ETC: theo Coinbase, client Parity OpenEthereum ở chế độ pruned coi các khối quá cũ là “ancient” và từ chối reorg. Cấu hình node khác nhau nên có thể thấy các phiên bản lịch sử khác nhau, và khi đối soát bạn cần biết node của mình đang chạy chế độ nào.
Về phía thiết kế mạng, giảm rủi ro bằng cách nào?
Nếu bạn xây một chuỗi riêng hoặc chọn nền tảng, các hướng giảm rủi ro thường gặp gồm:
- Dùng thuật toán đồng thuận không thể thuê dễ dàng. Chọn thuật toán đào riêng, khác với mạng lớn, khiến thợ đào không chuyển hướng sức mạnh nhanh được.
- Giới hạn độ sâu reorg. Một số mạng đặt điểm chốt (checkpoint) hoặc từ chối reorg quá sâu. Cái giá là có thể chia mạng thành hai nhánh khi có tranh chấp thật.
- Chuyển sang cơ chế danh tính được biết trước. Mạng nội bộ doanh nghiệp thường dùng PBFT hoặc Proof of Authority, trong đó số người xác thực là có hạn và biết rõ. Tấn công 51% hash rate gần như không còn ý nghĩa, nhưng rủi ro chuyển sang việc đa số người xác thực thông đồng hoặc bị xâm nhập.
Các hướng này không miễn phí. Mỗi cách làm giảm mức phi tập trung hoặc làm tăng chi phí vận hành, nên bài toán luôn là đánh đổi giữa an toàn, tốc độ và mức độ mở của mạng.
Tấn công 51% khác gì với các tấn công gần giống?
| Loại | Cần gì | Kết quả chính |
|---|---|---|
| Tấn công 51% | Đa số hash rate hoặc stake | Reorg, chi tiêu kép, kiểm duyệt giao dịch |
| Chi tiêu kép kiểu Finney, race attack | Không cần đa số, nhưng nhắm vào giao dịch chưa xác nhận | Lừa bên nhận chấp nhận 0 xác nhận |
| Eclipse attack | Cô lập một node khỏi phần còn lại của mạng | Node bị cô lập thấy lịch sử sai |
| Selfish mining | Một phần hash rate đủ lớn | Chiếm phần thưởng không tương xứng bằng cách giấu khối |
Gemini Cryptopedia xếp Finney attack, race attack và tấn công 51% vào nhóm chi tiêu kép có thể “đảo ngược” giao dịch. Điểm khác là tấn công 51% đảo ngược cả những giao dịch đã được xác nhận, miễn là kẻ tấn công giữ đa số đủ lâu. Hai loại kia chủ yếu hại những bên chấp nhận thanh toán chưa xác nhận.
Khi nào nên lo và khi nào không?
Nên quan tâm nếu doanh nghiệp bạn nhận hoặc lưu giữ tài sản của mạng PoW nhỏ, vận hành cổng nạp rút, hoặc đang so sánh nền tảng blockchain cho dự án. Câu hỏi cần trả lời là: ai có thể chiếm đa số và chi phí thế nào.
Ít cần lo hơn khi bạn chỉ dùng mạng lớn với hash rate rất cao và chờ đủ xác nhận, hoặc khi bạn dùng mạng cấp phép (permissioned) nơi số người xác thực đã biết. Khi đó rủi ro chủ yếu chuyển sang lỗi hợp đồng, lộ khoá và gian lận nội bộ, chứ không phải đa số hash rate. Với người học, nên đọc tiếp bài về các loại cơ chế đồng thuận để thấy mỗi cơ chế chống lại loại tấn công nào.
Câu hỏi thường gặp
Tấn công 51% có đánh cắp được coin trong ví của tôi không?
Không. Để chuyển coin từ ví của bạn cần chữ ký tạo bằng khoá bí mật của bạn. Kẻ nắm đa số chỉ chi tiêu kép được các khoản của chính họ và chặn giao dịch của người khác.
Bitcoin đã từng bị tấn công 51% chưa?
Theo Gemini Cryptopedia, chưa có bằng chứng về một vụ tấn công 51% thành công trên Bitcoin. Lý do chính là chi phí và mức phối hợp cần để kiểm soát lượng hash rate lớn như vậy. Điều này không đảm bảo cho tương lai, chỉ phản ánh tình hình đã ghi nhận.
Cần chính xác 51% mới tấn công được không?
Không. Con số 51% là ngưỡng bảo đảm thành công về lý thuyết. Dưới ngưỡng đó, kẻ tấn công vẫn có xác suất đuổi kịp chuỗi, và xác suất giảm khi số xác nhận tăng. Vì vậy bên nhận thanh toán đặt ngưỡng xác nhận thay vì tin vào một mốc phần trăm.
Số xác nhận bao nhiêu là đủ?
Không có con số chung. Con số phụ thuộc hash rate của từng mạng, giá trị giao dịch và chi phí thuê sức mạnh đào. Sau các vụ tấn công, Binance từng nâng ngưỡng rút BTG lên 20 xác nhận, nhưng đó là quyết định riêng cho mạng đó, không phải chuẩn cho mọi đồng coin.
Proof of Stake có miễn nhiễm với tấn công 51% không?
Không miễn nhiễm. Nó đổi tài nguyên cần chiếm từ hash rate sang lượng coin stake, và thêm cơ chế phạt với hành vi gian lận. Mạng có stake tập trung vào vài bên hoặc giá trị coin thấp vẫn có rủi ro đa số.
Tấn công 51% có hợp pháp không?
Về nguyên tắc, chi tiêu kép nhằm chiếm đoạt tài sản của bên nhận là hành vi gian lận và có thể bị xử lý theo pháp luật hình sự ở nhiều nước, trong đó có Việt Nam. Việc áp dụng điều khoản cụ thể phụ thuộc từng vụ việc và đánh giá của cơ quan có thẩm quyền, nên nếu gặp sự cố bạn cần hỏi luật sư thay vì tự suy diễn.
Bài viết thuộc chuyên mục Blockchain cơ bản trên VBPO Tech Blog, trang tin tức và kiến thức công nghệ cho doanh nghiệp Việt Nam về AI, dữ liệu, blockchain, chuyển đổi số và tự động hoá.