Chiến thắng "Một thỏa thuận"
Tác giả: NEST Enthusiast_Cửu Chương Tianwen
Tác giả: NEST Enthusiast_Cửu Chương TianwenNếu bạn hỏi tôi những cuộc tấn công nào là không thể tránh khỏi trên blockchain, tôi sẽ trả lời:Tấn công gây nhiễu và tấn công 51%.
Lần tới chúng ta sẽ nói về cuộc tấn công 51% và hôm nay chúng ta sẽ chỉ nói về cuộc tấn công chặn.
Cái gọi là cuộc tấn công chặn là sử dụng các giao dịch để chiếm các khối, do đó các giao dịch khác không thể được đóng gói.Ai đó so sánh một cuộc tấn công gây nhiễu với một khối trên chuỗi khốitấn công DDOS
: Không tìm kiếm kẽ hở của hệ thống mà chiếm dụng tài nguyên theo kiểu “tuân thủ” và tắt hệ thống. Cả hai đều có những điểm tương đồng, có thể được trừu tượng hóa: một là "tuân thủ", nghĩa là cuộc tấn công được hệ thống cho phép; hai là không dễ bị tổn thương, nghĩa là bất kỳ hệ thống nào cũng có thể bị tấn công, bất kể nó hoàn hảo đến đâu. là; Tài nguyên hệ thống, những thứ khác bị loại trừ một cách thụ động.
Xem xét kỹ hơn các tính năng này, có vẻ như đây không phải là vấn đề kỹ thuật thuần túy cũng không phải là vấn đề bảo mật thuần túy. Tấn công gây nhiễu là một vấn đề kinh tế, hoặc một vấn đề trò chơi. Lấy mạng Ethereum làm ví dụ, trước tiên chúng tôi nghiên cứu logic tối ưu của việc chặn các cuộc tấn công, sau đó nghiên cứu các ý tưởng chống lại các cuộc tấn công chặn.
Giả sử rằng giới hạn gas trên của một khối là 10 triệu và giao dịch đơn lẻ nhỏ nhất là 20.000, có hai tùy chọn để chặn một khối: thứ nhất là chặn khối có số lượng lớn các khu vực giao dịch nhỏ với giá gas cao; thứ hai là Sử dụng một giao dịch lớn với gasprice cao (ở đây, lớn và nhỏ được đo bằng gaslimit, và giao dịch lớn là giao dịch chiếm toàn bộ khối càng nhiều càng tốt, chẳng hạn như gaslimit là 10 triệu) để chặn. Ví dụ: gasprice là 1000 (gasprice được đảm bảo đóng gói nhanh chóng cũng trong vòng 1000 lần khi mạng 312 Ethereum bị tắc nghẽn), thì chi phí gas được tính theo hai sơ đồ là như nhau, đây là kết quả tính toán từ chúng tôi quan điểm riêng.
Nhưng từ quan điểm của những người khai thác và đối thủ cạnh tranh, có sự khác biệt giữa hai bên.Hãy bắt đầu với các đối thủ cạnh tranh, tức là các nhà giao dịch muốn vượt qua các cuộc tấn công chặn.
Nếu là giao dịch nhỏ, đối thủ cạnh tranh có thể sử dụng gasprice cao hơn để đóng gói trước kẻ tấn công, ví dụ: nếu bạn sử dụng gasprice 2000 để cạnh tranh, về nguyên tắc, nó phải được xếp trước nhiều giao dịch nhỏ với gasprice của 1000; nhưng đối với một giao dịch lớn, các đối thủ cạnh tranh có thể bị chặn vì những người khai thác xem xét sự kết hợp của việc tối đa hóa gas hơn là giao dịch có mức gasprice cao nhất. Điều này là do tổng gas của các giao dịch lớn là 10 triệu * 1000 và gas bao gồm các giao dịch nhỏ là 20.000 * 2000 + các giao dịch khác. Các giao dịch còn lại ở đây là giao dịch của bên thứ ba tùy chọn và giá gas thường thấp hơn. Trong hai kết hợp giao dịch này, những người khai thác hợp lý sẽ chọn kết hợp các giao dịch lớn, do đó, ngay cả khi đối thủ cạnh tranh có gasprice cao hơn, họ sẽ bị loại do gas của một giao dịch thấp hơn. Do đó, về hiệu quả của việc ngăn chặn các cuộc tấn công, các giao dịch lớn với gasprice cao sẽ có lợi hơn.Theo tình hình giao dịch hiện tại của mạng Ethereum, phí xử lý cho một giao dịch lớn gấp 1000 lần gasprice là 1000w*1000=10 ETH, do một khối bị chặn nên chi phí chặn trong 10 phút là 500 ETH.Nếu các ưu đãi bên ngoài đủ lớn (các ưu đãi bên ngoài là phần thưởng khác với hành vi hiện tại), việc chặn trong 1 giờ là 3000 ETH, điều này có thể đáng giá.
Lưu ý rằng giá xăng gấp 1000 lần chỉ dựa trên giả định thống kê, không dựa trên ứng dụng trên chuỗi.Hãy xem xét một ứng dụng trên chuỗi, chẳng hạn như DeFi, có nền kinh tế phụ thuộc vào các khối, nghĩa là trong N khối, một giao dịch cần được hoàn thành, nếu không sẽ gây ra tổn thất X ETH. Nếu ứng dụng không thực hiện bất kỳ thiết kế nào, theo giả định trước đó, một cuộc tấn công chặn 10*N ETH có thể gây ra tổn thất X ETH. Dưới đây là một số tình huống: 1. Mất X ETH có thể trở thành lợi ích của kẻ tấn công, sau đó khi X>10N, cuộc tấn công là một động cơ hoàn toàn hợp lý. 2. Mất X ETH không thể biến thành lợi nhuận của kẻ tấn công, sau đó tình huống này giống như X
< 10N, nó trở thành một hành động độc hại: khiến nội dung chảy ra khỏi ứng dụng bằng cách phá hủy tính hợp lệ của ứng dụng.
Hai tình huống này nên được xem xét riêng biệt, nhưng trong cả hai trường hợp, điều cốt lõi là làm thế nào để cuộc tấn công ngăn chặn trở nên vô hiệu: luôn có một giao dịch có thể được hoàn thành trước khi điều kiện quan trọng được kích hoạt, đó là cái mà chúng tôi gọi là "chiến thắng của một giao dịch".
Đối với trường hợp đầu tiên, ứng dụng cần được thiết kế theo hai cách: thứ nhất, kích thước của N nên được tăng lên N1 theo quy mô kinh tế hoặc các điều kiện bất thường nhất định; thứ hai, thu nhập khuyến khích để hoàn thành giao dịch nên được tăng lên: đối với ví dụ: thu nhập để hoàn thành giao dịch là ETH được nâng cấp lên b ETH, trong đó b>a và b>10eth, nghĩa là chi phí chặn một khối trở thành bETH và tổng chi phí thay đổi từ 10*NETH thành b *N1ETH, miễn là b*N1ETH>X, thì Khuyến khích bên ngoài để tấn công là không hợp lệ.Đối với trường hợp thứ hai, cách tốt nhất để đối phó với các cuộc tấn công độc hại là sắp xếp mộtcơ chế tắt máy, có hai nghĩa:Một là cấp số nhân của chi phí do cuộc tấn công gây ra, khiến kẻ tấn công không thể đạt được mục tiêu, do đó từ bỏ cuộc tấn công.Ví dụ, thiết kế hệ số beta của hệ thống NEST hiện là hệ thống tắt máy tích hợp đầu tiên thiết kế trong ngành công nghiệp blockchain. Chúng ta có thể học hỏi từ nó, chẳng hạn như cho phép số khối quan trọng N tăng theo chuỗi
. Thứ hai, khả năng thực thi của ứng dụng được tự động điều chỉnh theo độ khó của "chiến thắng của giao dịch", khi việc hoàn thành "chiến thắng của giao dịch" trở nên rất cấp bách, ứng dụng có thể bị vô hiệu hóa tạm thời, khiến kẻ tấn công mất mục tiêu của cuộc tấn công. Hai sự sắp xếp này đòi hỏi các nghiên cứu phân loại sâu hơn về các điều kiện biên do tính mở của chúng.Tất nhiên, phân tích trên giả định rằng những người khai thác hoàn toàn hợp lý và chỉ xem xét thu nhập gas đóng gói, bất kể danh sách đen có thể xảy ra, tự nguyện hy sinh một phần lợi ích của họ để chống lại các cuộc tấn công bị chặn, v.v.
Thông qua các sắp xếp nhân bản này, mục đích chống tấn công cũng có thể đạt được một cách gián tiếp, nhưng chúng tôi thích thiết kế về mặt ứng dụng hơn.Do ứng dụng hiện tại trên chuỗi vẫn đang trong giai đoạn khám phá nên chưa ai nghiêm túc xem xét việc tấn công và phòng thủ các cuộc tấn công chặn, điều này rất bất lợi cho sự phát triển của các ứng dụng trong tương lai. sẽ không xảy ra trong ngành DeFi.


