Tấn công 51% attack là gì ?

Thuật toán đồng thuận của Bitcoin (Proof of Work – Bằng chứng công việc) có nhiệm vụ đảm bảo rằng các thợ đào (miner) chỉ được phép xác nhận một block mới chứa các giao dịch nếu như nhận được sự đồng thuận từ phần lớn các node trong hệ thống về độ chính xác của hash block đó (ví dụ: hash block chứng minh được rằng miner đã thực hiện đủ công việc, tìm ra một lời giải thích hợp cho bài toán của block đó). Quy trình khai thác (trong các hệ thống nền tảng PoW) này cần có sự đầu tư khá lớn về điện năng và năng lượng tính toán, do đó hiệu suất của một miner sẽ được dựa trên khối lượng năng lực tính toán mà người đó sở hữu, còn được biết đến với tên gọi hash power hay hash rate. Trong hệ thống như vậy tồn tại rất nhiều node khai thác đến từ nhiều khu vực khác nhau, các node này cạnh tranh lẫn nhau trong việc tìm ra các block hash hợp lệ mới với mục đích nhận được phần thưởng là các đơn vị Bitcoin mới được sinh ra . 

Image-40

Vậy một khi hash rate không còn mang tính phân tán nữa thì điều gì sẽ xảy ra? Nếu trong trường hợp một thực thể đơn lẻ hay một tổ chức nào đó có khả năng thu thập được hơn 50% năng lượng tính toán của cả hệ thống thì sẽ thế nào? Đây chính là hệ quả mà chúng tôi gọi là hình thức tấn công 51% hay còn còn là majority attack.

Tấn công 51% là gì?

Tấn công 51% (51% Attack) thường được biết như một cuộc tấn công vào hệ thống Blockchain, thực hiện bởi một nhóm các thợ mỏ kiểm soát được 50% hashrate khai thác của mạng lưới. Mục đích của tấn công 51% làm cho các giao dịch mới không thể xác nhận gây nghẽn mạng, nghiêm trọng hơn giao dịch sẽ bị đảo ngược nếu kẻ tấn công kiểm soát hoàn toàn mạng lưới.

Tấn công 51% không thể thay đổi được các khối cũ trong hệ thống Blockchain, do đó sẽ không phá huỷ được Bitcoin hay các loại tiền điện tử khác, nhưng sẽ để lại một thiệt hại khá lớn.

Chiếm 51% có thể làm gì?

Thứ nhất, họ có thể “kiểm duyệt” giao dịch với động cơ không trong sáng. Chẳng hạn, không sắp xếp vào block tất cả giao dịch gửi đến địa chỉ của Amazon. Điều này thì không cần chiếm 51%, cứ có số % lớn đủ gây ảnh hưởng là có thể làm được.

Thứ hai, họ có thể tiêu 1 khoản tiền 2 lần (double spending).

Mỗi khi đào được 1 block hợp lệ, máy đào ngay lập tức phát tán đi khắp mạng lưới. Các máy đào khác khi nhận được sẽ xác nhận, lưu lại, rồi chuyển sang đào block tiếp theo.

Bởi vì đường truyền có độ trễ nên khi bạn đào được 1 block thì cũng mất mấy giây mới truyền tới máy đào khác cách nửa vòng trái đất. Điều gì xảy ra khi trong thời gian đó máy bên kia cũng đào được? Khi đó xảy ra hiện tượng fork tạm thời: blockchain lưu ở 1 số node có sự khác biệt so với blockchain lưu ở các node còn lại.

Để giải quyết, 1 quy định được đưa ra: bên nào dài hơn bên ấy hợp lệ. Ban đầu thì độ dài của blockchain ở 2 nhánh là bằng nhau. Tuy nhiên, sau một thời gian, nhánh nào được đào bởi tập hợp máy đào có hash rate lớn hơn sẽ dài hơn. Khi đó, các node sẽ đồng loạt chuyển sang dùng bản dài hơn, và nhánh ngắn hơn không còn ý nghĩa. Sẽ chẳng còn máy đào nào phí công đào cái nhánh bỏ đi đó nữa.

Đối tượng máy đào chiếm 51% hash rate có thể tiêu 1 khoản tiền 2 lần theo cách như sau:

  • Thực hiện 1 giao dịch chuyển tiền để mua 1 xe máy điện Klara, tạm gọi là giao dịch A
  • Âm thầm thực hiện đào các block, nhưng cố tình bỏ qua giao dịch A kia. Đào được 1 block thì không truyền cho các máy đào khác mà âm thầm đào tiếp trong bóng tối. Ta tạm gọi là nhánh tối
  • Ở nhánh sáng, các máy đào khác xác nhận giao dịch A. Phía cửa hàng sau khi thấy giao dịch thành công, đợi 1 thời gian ngắn cho block đủ sâu, rồi giao hàng
  • Lúc này, nhánh tối đã dài hơn nhánh sáng. Sau khi nhận được xe Klara, đối tượng mới thực hiện phát tán nhánh tối ra mạng lưới. Các node đồng loạt chấp nhận nhánh tối, do nó dài hơn. Trong nhánh tối không có giao dịch A, nên tiền vẫn còn trong tài khoản. Trong khi hàng thì đã nhận rồi!
Image-38

Như vậy là đối tượng có xe Klara đi mà không mất tiền, sau đó lại dùng tiền đó để tiêu tiếp. Mặc dù cửa hàng đã đợi cho block được xác nhận đủ lâu mới giao hàng nhưng vẫn không tránh được cú lừa này.

Hơn nữa, do đào nhánh tối hoàn toàn một mình, đối tượng chiếm toàn bộ tiền thưởng!

Về mặt lý thuyết, nếu có đủ sức mạnh, có thể kiên nhẫn đào lại toàn bộ block trong quá khứ để nhận hết phần thưởng. Tuy nhiên, làm như vậy giá trị của đồng coin tương ứng sẽ rớt thảm, tiền thưởng đó sẽ không thấm vào đâu so với chi phí đào.

Trên thực tế, tấn công 51% chưa xảy ra lần nào với Bitcoin và Ethereum. Vào năm 2014, ghash.io có lúc vượt 50% hash rate của Bitcoin. Tuy nhiên, sau đó nó tự nguyện giảm xuống và hứa sẽ không bao giờ vượt quá 40%, vì sự lành mạnh của mạng lưới là một đảm bảo về quyền lợi của máy đào. Các blockchain nhỏ hơn thì không được may mắn như thế. Do chi phí để chiếm phần lớn hash rate không quá lớn, đã có nhiều cuộc tấn công 51% được ghi nhận (như đối với Bitcoin Gold, Verge, v.v.).

Chiếm 51% hash rate còn có thể làm được 1 số điều khác, nhưng 2 điều đã nói ở trên là cơ bản nhất.

Một số cuộc tấn công 51%

Krypton và Shift

Krypton và Shift, hai blockchain dựa trên ethereum, đã chịu 51% tấn công vào tháng 8/2016.

Bitcoin Gold

Vào tháng 5 năm 2018, Bitcoin Gold, một đồng coin hard fork từ Bitcoin đã bị tấn công 51%. Hacker đã kiểm soát một lượng lớn năng lượng băm của Bitcoin Gold để ngay cả khi Bitcoin Gold liên tục cố gắng tăng ngưỡng giao dịch, những kẻ tấn công đã có thể chi tiêu gấp đôi trong vài ngày, cuối cùng đã đánh cắp Bitcoin Gold trị giá hơn 18 triệu đô la .

Ethereum Classic

Vào đầu tháng 1 năm 2019, một cuộc tấn công 51 % cũng sảy ra với Ethereum Classic