Nguồn gốc: Paradigm
Tác giả gốc: Georgios Konstantopoulos, Vitalik Buterin
Bản tổng hợp gốc: ETH Chinese Station
Gần đây đã có cuộc thảo luận về khả năng những người khai thác áp dụng một ứng dụng khách Ethereum đã được sửa đổi chưa tồn tại, chủ yếu là để những người khai thác có thể nhận hối lộ để thực hiện việc tổ chức lại chuỗi khối trong phạm vi ngắn. (Trường hợp sử dụng chính để tạo ra các khoản hối lộ như vậy là tấn công các giao thức DeFi).
Trong bài viết này, chúng tôi sẽ giải thích lý do tại sao vectơ tấn công này bị phá vỡ sau khi sáp nhập Ethereum 2.0. Thêm khó thực thi.
Quy tắc lựa chọn nĩa là một hàm, được khách hàng đánh giá. Hàm này lấy tập hợp khối và các thông báo được xem khác làm đầu vào, sau đó xuất nội dung của "chuỗi có thẩm quyền" cho khách hàng. Quy tắc lựa chọn nhánh là cần thiết vì có thể có sẵn nhiều chuỗi hợp lệ (tức là nếu cùng một khối cha có hai khối con cạnh tranh được phát hành cùng một lúc).
Tổ chức lại (reorg) là một sự kiện như vậy - khu vực ban đầu thuộc về người có thẩm quyền chuỗi Khối này không còn là một phần của chuỗi chuẩn vì một khối cạnh tranh đã đánh bại nó. Tính hữu hạn là tình huống trong đó các quy tắc lựa chọn phân nhánh ủng hộ một khối mạnh đến mức khối đó không thể được tổ chức lại về mặt toán học (hoặc ít nhất là không khả thi về mặt kinh tế).
Trong một số quy tắc lựa chọn ngã ba (chẳng hạn như Tendermint), việc kết hợp lại là không thể; chỉ mở rộng chuỗi hiện có bằng cách thêm bất kỳ khối nào đã được hoàn thiện thông qua sự đồng thuận BFT (Giao thức đồng thuận dung sai lỗi của Byzantine). Việc tổ chức lại là phổ biến trong số các quy tắc lựa chọn ngã ba khác.

Trong một chuỗi khối PoW như Ethereum, điều gì chúng ta thường thấy là "quy tắc chuỗi dài nhất" (hay chính xác hơn là "quy tắc có tổng độ khó khai thác cao nhất"). Điều này có nghĩa là khi khách hàng nhìn thấy hai blockchain, họ sẽ chọn blockchain có tổng độ khó cao nhất (nghĩa là tổng độ khó của tất cả các khối trong chuỗi).
p>
Để lấy ví dụ, giả sử rằng độ khó của khối có thể là 100 hoặc 110, hãy tưởng tượng kịch bản sau:

p>
1. Chúng tôi bắt đầu đồng bộ hóa từ khối 1 với độ khó 100.
2 đều đạt được Khối 2a và 3a với độ khó 100 , chúng tôi nhúng chúng vào blockchain của mình để tạo thành một nhánh với tổng độ khó là 300.
3. Khối 3b đến với độ khó 110 và tuyên bố 2a là khối mẹ của nó, tạo thành một nhánh với tổng độ khó là 310. Quy tắc chọn nhánh sẽ thấy rằng chuỗi "nặng nhất" hiện tại là nhánh thứ hai, sau đó chọn chuỗi đó để thay thế. Tình huống này là sự sắp xếp lại 1 khối vì chỉ có khối 3a được thay đổi. Lưu ý rằng các khối không bị loại bỏ trực tiếp, vì các khối mới đến có thể khiến việc lựa chọn nhánh chuyển sang chọn nhánh đầu tiên.
4. Cả hai khối 2b và 3c đều đạt được độ khó 110, tạo thành độ khó tổng cộng của 320 Phuộc mới. Điều này có nghĩa là các quy tắc lựa chọn ngã ba bây giờ sẽ sử dụng 2b thay vì 2a và 3c thay vì 3b. Cả hai khối 2a và 3b đều nằm trong chuỗi có thẩm quyền trước đó. Việc tổ chức lại này thuộc về 2 khối.
Người đọc sẽ có thể thấy logic phát triển như thế nào. Nếu một khối 4a mới xuất hiện và xác nhận 3a là khối mẹ của nó thì quy tắc lựa chọn nhánh sẽ chuyển sang chọn nhánh đầu tiên, v.v.
Tái tổ hợp trong phạm vi ngắn thường xảy ra do sự chậm trễ. Công cụ khai thác A và công cụ khai thác B có thể tìm thấy một khối hợp lệ cùng một lúc, nhưng vì khối được phát trong mạng p2p nên một phần của mạng có thể nhìn thấy khối của công cụ khai thác A trước và một phần khác của mạng có thể nhìn thấy khối của công cụ khai thác B trước tiên. Nếu hai khối có độ khó giống nhau thì sẽ bằng nhau và khách hàng sẽ chọn ngẫu nhiên hoặc chọn khối nào nhìn thấy đầu tiên. Thông thường, khi thợ mỏ thứ ba C xây dựng một khối lên trên khối do thợ mỏ A hoặc B xây dựng, khối còn lại sẽ bị lãng quên. Đôi khi xui xẻo có thể dẫn đến việc tổ chức lại 2-5 khối. Việc tổ chức lại lâu hơn thời gian đó hầu như luôn là do lỗi mạng nghiêm trọng, lỗ hổng máy khách hoặc các cuộc tấn công độc hại.
Việc tổ chức lại trong phạm vi ngắn không gây tử vong nhưng vẫn mang lại một số hậu quả có hại nghiêm trọng cho mạng:
p>
· Chi phí nút: Khi việc tổ chức lại xảy ra, do một nhánh mới cần được chuyển đổi, các giao dịch hoặc chỉnh sửa trạng thái có thể cần phải được thực hiện lại và nút sẽ có một số chi phí về Bộ nhớ và ổ đĩa.
· Trải nghiệm người dùng giảm: Có thể sắp xếp lại có nghĩa là người dùng cần chờ lâu hơn để đảm bảo an toàn. để được “xác nhận”. Một trường hợp sử dụng phụ quan trọng của tính năng này là khi các doanh nghiệp như sàn giao dịch cần đợi lâu hơn trước khi chấp nhận tiền gửi.
· Sự không chắc chắn của bối cảnh giao dịch: Khi người dùng gửi một giao dịch, họ thậm chí còn ít chắc chắn hơn trong bối cảnh nào giao dịch sẽ được thực hiện (ví dụ: N khối mới nhất sẽ được khôi phục). Rõ ràng, điều này làm cho các giao dịch DeFi dễ gặp phải những thất bại không mong muốn, kết quả giao dịch kém hơn mong đợi hoặc việc rút MEV có hại.
· Dễ bị tấn công 51% hơn: trong trường hợp chuỗi dài nhất được sử dụng làm chuỗi quy tắc lựa chọn ngã ba Trong hệ thống, nếu chuỗi khối được tổ chức lại từ việc chọn B1 đến B2, thì độ khó của B1 không còn mang lại tính bảo mật cho chuỗi. Những kẻ tấn công không cần phải đánh bại tất cả những người khai thác trung thực nữa, họ chỉ cần đánh bại một phần những người khai thác trung thực chưa được tổ chức lại. Nếu việc tổ chức lại xảy ra thường xuyên, điều này làm cho các cuộc tấn công trở nên dễ dàng hơn nhiều.
Trong trường hợp xấu nhất, việc tổ chức lại thường xuyên sẽ làm vô hiệu hoàn toàn tính năng của blockchain đảm bảo giải quyết và ngăn chặn nó tiếp tục. Thông thường, đối với các nhà sản xuất khối, chiến lược “khả năng tương thích khuyến khích” nên là mở rộng chuỗi dài nhất. Nhưng điều gì sẽ xảy ra nếu trạng thái sau khi một khối được thực thi mang lại lợi nhuận bất thường (ví dụ: phí giao dịch cao hoặc MEV chỉ có thể được rút bằng cách xây dựng một khối mới ngay sau khối đó). Vấn đề này trước đây đã được thảo luận khi thảo luận về "Bitcoin không có phần thưởng khối" và vấn đề khai thác ích kỷ, và ngày nay nó cũng đã được thảo luận về vấn đề "MEV liên quan đến DeFi trong hệ sinh thái Ethereum".
Trong những trường hợp này có động cơ mạnh mẽ để cố gắng cạnh tranh với những người khác, cạnh tranh khối "đánh cắp" phí, thay vì mở rộng chuỗi có thẩm quyền. Trong ví dụ bên dưới, trạng thái sau thực thi của khối 1 rất có lãi và khối 2a đã được khai thác. Tuy nhiên, không phải một mà là ba nhà sản xuất khối. đã chọn tiếp tục khai thác ở khối 1 thay vì khối 2a (để có được MEV được tiết lộ sau khối 1), có thể mở rộng cho bất kỳ số nhà sản xuất khối nào

Rõ ràng, mô hình như vậy mở ra cơ hội cho các cuộc tấn công 51% độc hại. Chúng tôi gọi tình huống mà các thợ mỏ tham gia vào chiến lược khai thác được cơ cấu lại này là "sự hợp lý thiển cận" bởi vì quyết định làm như vậy có thể hợp lý trong ngắn hạn. Tuy nhiên, họ rõ ràng (người đặt cược) hoặc ngầm định (thợ đào) đang lạc quan về ETH. (vì phí giao dịch và phần thưởng khối được tính bằng ETH), điều này có nghĩa là các cuộc tấn công làm giảm niềm tin của người dùng vào Ethereum sẽ mâu thuẫn với lợi ích tốt nhất của họ và do đó không thể chấp nhận được về lâu dài.
Trong sự đồng thuận của Nakamoto PoW Trong thuật toán, các khối được hoàn thiện "liên tục" trong fork Lựa chọn đầu tiên, khi một khối được khai thác, một khối cạnh tranh có thể tổ chức lại nó. Nếu một khối được đóng gói thành công vào chuỗi có thẩm quyền, sẽ có một thợ mỏ khác xây dựng khối thứ hai trên khối này sau (trung bình) 13 giây. Tại thời điểm này, một chuỗi cần có hai khối cạnh tranh khi ngày càng có nhiều khối được xây dựng, khó khăn trong việc tổ chức lại chuỗi sẽ tiếp tục tăng lên, nhưng chuỗi beacon thực hiện giao thức bằng chứng cổ phần được gọi là Gasper. , và quy tắc lựa chọn nhánh của nó được gọi là LMD-GHOST Khác với Nakamoto PoW, trong Gasper, có hai vai trò liên quan đến việc sản xuất khối:
· Người đề xuất: Người xác nhận chịu trách nhiệm đề xuất các khối
· Người chứng nhận: Nó bao gồm một nhóm người xác nhận bỏ phiếu cho khối sẽ trở thành người đứng đầu chuỗi có thẩm quyền. Phiếu bầu của người chứng nhận được gọi là "chứng thực", đó là những gì họ trao cho khối". Kiểm soát người chứng minh có nghĩa là kiểm soát các quy tắc lựa chọn ngã ba.
Cứ 12 giây lại có một vị trí, thể hiện cơ hội đề xuất một khối. Trong mỗi vị trí, sẽ có một thuật toán xáo trộn để chọn một ủy ban một cách ngẫu nhiên. Ủy ban này bao gồm khoảng 1/32 tổng số người xác nhận trong mỗi ủy ban sẽ đóng vai trò là người đề xuất và phần còn lại sẽ là Người xác minh đóng vai trò là người chứng minh. . Những người chứng minh đồng thời bỏ phiếu cho các khối mà họ tin rằng nên được đưa vào chuỗi chuẩn. Bởi vì ủy ban được thành lập thông qua việc lấy mẫu giả ngẫu nhiên nên kẻ tấn công không có cách nào đưa tất cả những người xác thực của họ vào một vị trí duy nhất.
Hiện tại, beacon chain có khoảng 196.000 trình xác thực, nghĩa là trong mỗi vị trí Số lượng thành viên ủy ban là khoảng 6125. Do đó, việc tổ chức lại dù chỉ một khối là vô cùng khó khăn vì kẻ tấn công chỉ kiểm soát một số trình xác thực không thể đánh bại hàng nghìn trình xác thực đa số trung thực.
Để hiểu rõ hơn lý do tại sao lại như vậy, Chúng ta hãy xem ví dụ sau: có 2 vị trí và 24 trình xác thực, 9 trong số đó là độc hại. Những người xác nhận được chia thành 2 ủy ban và sau khi xáo trộn ngẫu nhiên, đối thủ khó có thể kiểm soát 50% số lượng ủy ban mà họ được giao, chứ đừng nói đến việc tổ chức lại.

Chính thức hơn, một tác nhân độc hại với p% số tiền cam kết lượng Xác suất có hơn 50% tác nhân kiểm soát một ủy ban có trình xác nhận cỡ N tuân theo phân phối nhị thức (trong đó k = N/2):

Sau khi tính toán xác suất của nhiều giá trị cầm cố, chúng tôi nhận được kết quả sau bảng:

Bây giờ chúng ta hiểu rằng nếu kẻ tấn công muốn tổ chức lại trực tiếp thì hắn cần kiểm soát 50% tổng số người xác thực.
Nếu bạn kiểm soát được 25-49% số người chứng minh (xem bài viết này, hoặc bản tóm tắt ở đây), bộ điều khiển vẫn có thể thực hiện một số cuộc tấn công nhỏ hơn. Tuy nhiên, có những bản sửa lỗi cho những cuộc tấn công này có thể được thực hiện một cách âm thầm, mang lại khả năng bảo mật vô điều kiện gần 50%.
Cuối cùng, việc tổ chức lại trong phạm vi dài là không thể bởi vì tất cả các khu vực sâu hơn hai kỷ nguyên trước đó. được coi là "hoàn tất", có nghĩa là không thể khôi phục chúng. Nếu kẻ tấn công khiến hai khối xung đột được hoàn tất (ví dụ: kiểm soát 67% khối lượng đặt cược), hệ thống cần quay lại và phục hồi thông qua can thiệp xã hội.
Bây giờ chúng ta đã hiểu sự khác biệt giữa các lựa chọn ngã ba khác nhau như thế nào Việc tái tổ chức diễn ra theo các quy tắc có thể được hiểu thông qua một ví dụ lý thuyết trò chơi đơn giản và khi nào việc người khai thác hoặc người xác thực chạy phần mềm để thực hiện việc tổ chức lại nhằm kiếm lợi nhuận là hợp lý.
p>
Chúng ta có thể mô tả từng tình huống một cách không chính thức bằng ma trận chi trả, trong đó "nổi loạn" có nghĩa là "tải xuống và sử dụng phần mềm thực hiện việc tổ chức lại." Lợi nhuận là "thiển cận" và không tính đến hậu quả lâu dài.
Trong PoW chuỗi dài nhất, ngay cả trong bộ trình xác nhận Nó cũng vậy một số ít người có thể đạt được sự tái cơ cấu ngắn hạn. Sẽ luôn có một khối không thường xuyên có trạng thái sau thực thi mang lại lợi nhuận bất thường và thậm chí cơ hội thành công 1-10% cũng đáng để cố gắng cạnh tranh với các khối phụ hiện có của khối đó.
Người khai thác có thể tạo thành một nhóm khai thác cỡ trung bình, chờ đợi tìm cơ hội tạo 2-3 khối liên tục trong tương lai hoặc gửi một phần thu nhập của họ đến một hợp đồng mà bất kỳ ai cũng có thể yêu cầu, để hối lộ những người khai thác khác cũng chạy phần mềm tương tự để xây dựng chuỗi khối của họ, giúp nó đánh bại chuỗi quyền lực hiện có.
Do đó, một số thợ mỏ có thể cố gắng chạy ứng dụng khách reorg.

Trong Gasper, có thể tổ chức lại các vị trí 1-64, nhưng yêu cầu kẻ tấn công kiểm soát phần lớn toàn bộ bộ trình xác thực (vì chúng không thể tập trung tiền gửi vào một vị trí cụ thể, do đó số tiền đặt cược của chúng cần phải lớn đủ để được chọn ngẫu nhiên vào ô chúng muốn tấn công). Việc áp dụng phần mềm khai thác tái tổ hợp ít được sử dụng trừ khi có rất nhiều người xác nhận khác cũng áp dụng nó.
Vì vậy, nếu 51% người xác thực hơi vị tha hoặc lười biếng, thì về cơ bản là không chắc chắn rằng mọi người sẽ chạy phần mềm khai thác tái tổ hợp.

Trong Tendermint, mọi thứ thậm chí còn đơn giản hơn: việc tổ chức lại là hoàn toàn không thể và bất kỳ hoạt động triển khai nào vi phạm quy tắc quyết toán cho một vị trí sẽ yêu cầu hơn một phần ba số trình xác thực bị cắt bỏ. Tương tự như trường hợp của Gasper, điều này cũng có nghĩa là gần như chắc chắn rằng sẽ không có ai chạy phần mềm khai thác tái tổ hợp.

Từ Như chúng ta có thể thấy ở trên, mặc dù có thể sử dụng "reorg geth" trong cả ba trường hợp, nhưng quy tắc lựa chọn ngã ba dựa trên ý tưởng chứng minh song song dẫn đến sự cân bằng trung thực ổn định hơn quy tắc lựa chọn ngã ba Nakamoto.
Trong bối cảnh Ethereum, biện pháp phòng ngừa hiệu quả nhất là tăng tốc hơn nữa đẩy mạnh công tác sáp nhập, đặc biệt là nhanh chóng phát triển khả năng đạt được sự “hợp nhất khẩn cấp” có thể chấp nhận được để chuyển Ethereum thành cơ chế PoS. Việc hợp nhất vội vàng mang lại rủi ro cao và phá hủy cơ sở hạ tầng, nhưng nếu nhiều thợ mỏ bắt đầu tổ chức lại chuỗi thì cần có một cam kết đáng tin cậy để chống lại hành vi đó.
Thời điểm kết thúc sáp nhập là thời điểm lớn nhất rủi ro, bởi vì thợ mỏ vẫn thống trị hệ thống, nhưng thời gian của họ không còn nhiều. Tuy nhiên, có hai yếu tố giảm thiểu rủi ro này:
· Người khai thác Ethereum thường vừa là ( i) người khai thác trên các blockchain khác và/hoặc (ii) các thành viên có năng lực khác của cộng đồng Ethereum, do đó, động lực để hành xử tốt vẫn tiếp tục tồn tại.
· Khi sáp nhập đến gần, chi phí và rủi ro khi thực hiện sáp nhập khẩn cấp sẽ giảm. Việc tiến hành sáp nhập khẩn cấp nhiều tháng trước ngày sáp nhập dự kiến có thể gây ra nhiều rắc rối. Việc tiến hành hợp nhất khẩn cấp hai tuần trước ngày hợp nhất dự kiến sẽ cung cấp các cài đặt tham số cho máy khách mà nhà điều hành trình xác thực đã tải xuống.
Sau khi sáp nhập, việc tổ chức lại việc xác minh sẽ trở thành vấn đề nhỏ hơn vì chỉ có một người xác nhận duy nhất hoặc những người chứng minh Nhóm nhỏ không thể tổ chức lại một khối một mình. Một cuộc tấn công tổ chức lại thành công đòi hỏi phải giải quyết vấn đề phối hợp khi có đa số người xác nhận tham gia đồng thời. Tuy nhiên, vẫn còn một số rủi ro nhỏ. Nếu bạn muốn cải thiện hơn nữa tính bảo mật, Ethereum có thể điều chỉnh thêm các quy tắc lựa chọn phân nhánh để nâng yêu cầu tổ chức lại các cuộc tấn công lên mức tối đa theo lý thuyết là 50% hoặc chuyển sang một vị trí trực tiếp để đạt được sự đồng thuận cuối cùng;
Lời cảm ơn: Cảm ơn Dan Robinson, Anish Agnihotri, Kevin Pang, Dave White và MEVIntern vì những nhận xét của họ về bản dự thảo của bài viết này.
Liên kết gốc
Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm Telegram thảo luận: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia