Bất kể PoW của Bằng chứng khối lượng công việc, PoS của Bằng chứng công bằng hay DPoS của Bằng chứng công bằng được ủy quyền, miễn là có vấn đề đồng thuận, về mặt lý thuyết, không thể tránh được các cuộc tấn công 51%, kẻ tấn công kiểm soát mạng chính thông qua các khối có thể đảo ngược 51%. dẫn đến hoa kép.

kiến thức nền tảng

Là một hệ thống lưu trữ dữ liệu công cộng phân tán phi tập trung, blockchain không có tổ chức quản lý trung tâm để quản lý. Thay vào đó, nó được duy trì bởi các nút phân tán bằng giao thức mã hóa và mỗi nút duy trì toàn bộ hệ thống phải được đảm bảo thông qua. giao thức đồng thuận cơ bản. Blockchain có những cách sử dụng thực tế khác nhau trong các tình huống thực tế khác nhau, chẳng hạn như chuỗi công khai, chuỗi riêng tư và chuỗi liên minh. Các chuỗi khác nhau sử dụng các thuật toán đồng thuận khác nhau, chẳng hạn như đồng thuận PoW được Bitcoin sử dụng và đồng thuận PoW được Ethereum sử dụng. sự đồng thuận được EOS sử dụng và tính bảo mật liên quan đến các thuật toán đồng thuận khác nhau là khác nhau.

Bài viết này sẽ nêu chi tiết các rủi ro tấn công có trong các giao thức đồng thuận PoW được Bitcoin và Ethereum sử dụng.

Cơ chế đồng thuận PoW

Đầu tiên chúng ta hãy xem giao thức đồng thuận PoW là gì.

Từ góc độ của hệ thống sổ cái phi tập trung, mỗi nút tham gia hệ thống phải giữ một sổ cái hoàn chỉnh, nhưng mỗi nút không thể giữ các tài khoản cùng một lúc vì các nút ở các môi trường khác nhau và nhận được thông tin khác nhau. Do đó, cần có sự đồng thuận để tiếp cận. nút nào có quyền giữ tài khoản. Các chuỗi khối Bitcoin và Ethereum giải quyết vấn đề nhất quán của hệ thống kế toán phi tập trung thông qua kế toán cạnh tranh, tức là một cơ chế sử dụng sức mạnh tính toán của mỗi nút, tức là “sức mạnh tính toán” để cạnh tranh quyền kế toán. là “khai thác”.​

Tuy nhiên, trong một hệ thống phi tập trung, ai có quyền quyết định kết quả của cuộc cạnh tranh? Hệ thống chuỗi khối Bitcoin và Ethereum được thực hiện thông qua cơ chế đồng thuận được gọi là Bằng chứng công việc (PoW).

PoW (Proof of Work), nghĩa là "Bằng chứng công việc". Nói một cách đơn giản, PoW là một chứng chỉ xác nhận rằng bộ phận làm việc đã thực hiện một khối lượng công việc nhất định. Bộ phận làm việc cần phải thực hiện một số công việc khó khăn nhất định để có được kết quả và người xác minh sử dụng kết quả đó để kiểm tra xem bộ phận làm việc đã thực hiện công việc tương ứng hay chưa.

Khi khai thác thông qua sự đồng thuận bằng chứng công việc, cần phải tuân theo ba quy tắc:

  • Chỉ một người có thể ghi tài khoản thành công trong một khoảng thời gian

  • Cạnh tranh để giành được quyền kế toán duy nhất bằng cách giải các câu đố về mật mã (tức là bằng chứng công việc)

  • Các nút khác xác minh và sao chép kết quả kế toán

  

Ví dụ: với chuỗi "blockchain", yêu cầu về khối lượng công việc mà chúng tôi đưa ra là chúng tôi có thể nối một chuỗi giá trị nguyên được gọi là nonce sau chuỗi này và thực hiện thao tác băm SHA256 trên chuỗi được nối nếu kết quả băm thu được (được biểu thị bằng hệ thập lục phân). form) bắt đầu bằng vài số 0, sau đó quá trình xác minh được thông qua. Để đạt được mục tiêu bằng chứng công việc này, chúng tôi cần liên tục tăng giá trị nonce và thực hiện thao tác băm SHA256 trên chuỗi mới thu được.

Hash (giá trị của Hash trước đó, bộ thông tin bản ghi giao dịch) = 29329385BNDH749 Hash (giá trị Hash trước đó, bộ thông tin bản ghi giao dịch, số ngẫu nhiên nonce) = 000029329385BNDH749

Ví dụ: hàm băm của chiều cao khối 512884 trong Bitcoin là:

000000000000000000188d44fd53064469b17c3590a0c4df8e90626d11e25a69

Bằng chứng công việc cần thiết để tạo khối này thông qua kế toán là phép tính băm 16**18, đây là một khối lượng tính toán rất lớn.

tấn công 51%

Sau khi giới thiệu ngắn gọn các nguyên tắc đơn giản về đóng gói khối thông qua kế toán và PoW, chúng ta hãy quay lại câu hỏi của chúng ta, cuộc tấn công 51% là gì và cuộc tấn công chi tiêu gấp đôi là gì?

Cuộc tấn công chi tiêu gấp đôi chỉ đơn giản đề cập đến một cuộc tấn công trong đó mã thông báo được sử dụng thông qua nhiều phương thức thanh toán, có nghĩa là cùng một loại tiền tệ được chi tiêu nhiều lần. Có nhiều cách để phát động cuộc tấn công chi tiêu gấp đôi, bao gồm các hình thức sau:

  • tấn công 51%

  • Tấn công chủng tộc

  • Vector 76 tấn công

  • cuộc tấn công lịch sử thay thế

Điều đó có nghĩa là, nếu kẻ tấn công kiểm soát hơn 50% sức mạnh tính toán của toàn bộ mạng, hắn có thể thực hiện chi tiêu gấp đôi thông qua cuộc tấn công 51%.

Ở đây chúng tôi chỉ phân tích quá trình tấn công 51%.

Tấn công 51% hay còn gọi là tấn công đa số. Cuộc tấn công này đạt được chi tiêu gấp đôi bằng cách kiểm soát sức mạnh tính toán của mạng. Nếu kẻ tấn công kiểm soát hơn 50% sức mạnh tính toán trong mạng, thì trong khoảng thời gian anh ta kiểm soát sức mạnh tính toán, anh ta có thể đảo ngược khối, thực hiện các giao dịch ngược và đạt được chi tiêu gấp đôi.

Trong giao thức đồng thuận PoW, hệ thống blockchain cho phép nhiều chuỗi phân nhánh tồn tại cùng một lúc và mỗi chuỗi có thể tuyên bố với thế giới bên ngoài rằng nó đúng. Tuy nhiên, có một nguyên tắc hiệu quả lâu dài nhất trong khái niệm thiết kế của blockchain: “Không có vấn đề gì. Tại thời điểm nào thì chuỗi dài nhất được coi là chuỗi chính có nhiều công việc nhất?”

Hãy mô phỏng ngắn gọn quá trình tấn công 51%:

Nếu có kẻ tấn công như vậy, nó cố tình phát giao dịch đầu tiên đến một nửa mạng và phát giao dịch thứ hai cho nửa mạng còn lại, sau đó có chính xác hai người khai thác ở cả hai bên để có được quyền kế toán gần như giống nhau thời gian và quyền kế toán tương ứng của họ là Khối được phát cho mọi người. Bạn có thể chọn bất kỳ sổ cái nào vào thời điểm này, sổ cái thống nhất ban đầu đã được chia đôi.

Tiếp theo, nếu người khai thác tiếp theo chọn tiếp tục hạch toán dựa trên A thì nhánh A sẽ dài hơn nhánh B. Theo quy tắc của blockchain, nhánh dài nhất sẽ được công nhận, nhánh ngắn sẽ bị bỏ đi và sổ cái vẫn sẽ được ghi nhận. be sẽ trở về một và chỉ có một giao dịch hợp lệ.

Lúc này, nhánh A được công nhận và giao dịch tương ứng được xác nhận. Nếu kẻ tấn công lấy được sản phẩm, anh ta ngay lập tức biến thành thợ mỏ và giành được hai quyền kế toán liên tiếp, sau đó thêm hai khối vào nhánh B.

Khi đó chi nhánh B trở thành chi nhánh được công nhận. Lúc này, chi nhánh A bị hủy bỏ. Giao dịch ở chi nhánh A không còn được thiết lập. Đồng tiền thanh toán của kẻ tấn công ở chi nhánh A có hiệu lực trở lại, nhưng kẻ tấn công đã lấy được hàng hóa A. cuộc tấn công chi tiêu đã được hoàn thành thành công. Vấn đề là khi nhánh B tụt lại phía sau thì rất khó để buộc nó vượt qua nhánh A trên thực tế và xác suất thành công là rất thấp. Tuy nhiên, nếu kẻ tấn công kiểm soát hơn 50% sức mạnh tính toán của nhánh B. toàn bộ mạng lưới, thì dù có tụt lại phía sau, Rất nhiều, và việc anh ta đuổi kịp chỉ còn là vấn đề thời gian. Đây chính là “cuộc tấn công 51%” đã đề cập ở trên.

Phân tích trường hợp tấn công 51% của Bitcoin Gold

Trong thế giới thực của blockchain, đã có nhiều khoản chi tiêu gấp đôi do các cuộc tấn công 51%.

Ví dụ: vấn đề chi tiêu gấp đôi trong Bitcoin Gold (BTG coin) là một cuộc tấn công 51%. Quá trình tấn công như sau:

  1. Kẻ tấn công kiểm soát hơn 51% sức mạnh tính toán trên mạng Bitcoin Gold. Trong thời gian kiểm soát sức mạnh tính toán, anh ta đã gửi một lượng BTG nhất định vào ví của mình trên sàn giao dịch. Chúng tôi đặt tên cho chi nhánh này là A.

  2. Đồng thời, anh ta gửi số BTG này đến một ví khác mà anh ta kiểm soát. Chúng tôi đặt tên cho chi nhánh này là B.

  3. Sau khi giao dịch tại chi nhánh A được xác nhận, kẻ tấn công ngay lập tức bán BTG và nhận tiền mặt. Lúc này, nhánh A trở thành chuỗi chính.

  4. Sau đó, kẻ tấn công khai thác trên nhánh B. Vì nó kiểm soát hơn 51% công suất tính toán nên kẻ tấn công có xác suất cao giành được quyền kế toán, do đó, độ dài của nhánh B sẽ sớm vượt quá chuỗi chính (tức là độ dài của nhánh B). A), khi đó nhánh B sẽ trở thành chuỗi chính và các giao dịch trên nhánh A sẽ được khôi phục để khôi phục dữ liệu về trạng thái chính xác cuối cùng.

  5. Nói cách khác, nhánh A được khôi phục về trạng thái trước khi kẻ tấn công thực hiện giao dịch đầu tiên và BTG mà kẻ tấn công trước đó đã chuyển thành tiền mặt lại nằm trong tay hắn.

  1. Cuối cùng, kẻ tấn công gửi những BTG này đến một ví khác của hắn. Bằng cách này, kẻ tấn công đã kiểm soát hơn 51% sức mạnh tính toán để đạt được "chi tiêu gấp đôi" cho cùng một mã thông báo.

Theo báo cáo dữ liệu blockchain của cuộc tấn công này, kẻ tấn công đã đảo ngược thành công 22 khối. Địa chỉ Bitcoin Gold liên quan đến cuộc tấn công này đã nhận được hơn 388.200 BTG. Giả sử rằng tất cả các giao dịch này đều liên quan đến chi tiêu gấp đôi, kẻ tấn công có thể lên tới 18,6 triệu USD. giá trị tiền có thể đã bị đánh cắp từ sàn giao dịch

Ngoài vấn đề chi tiêu gấp đôi xảy ra trong Bitcoin Gold, còn có rất nhiều trường hợp tấn công chi tiêu gấp đôi do tấn công 51% gây ra:

  • Đồng tiền kỹ thuật số ẩn danh đã từng khai thác độc hại hơn 35 triệu #xvg chỉ trong vài giờ, trị giá khoảng 1,75 triệu USD.

  • Tiền điện tử monacoin của Nhật Bản rõ ràng đã bị tấn công khấu trừ khối sau khi một thợ đào đạt được tới 57% sức mạnh băm của mạng.

  • Tin tức chính thức về Litecoin Cash (LCC), LCC đã bị tấn công 51%.

  • Tiền kỹ thuật số #zen cũng đã bị tấn công 51%.

  • Gần đây, Ethereum Classic #etc đã bị tấn công 51%.