MEVless, giải pháp cho MEV

Bài viết này được dịch máy
Xem bản gốc

Tấn công MEV (Tấn công giá trị rút tối đa) là hành vi blockchain khai thác quyền kiểm soát sắp xếp các giao dịch để kiếm thêm lợi nhuận bằng cách sắp xếp , chèn hoặc loại trừ các giao dịch cụ thể.

Tác giả: Vệ Văn Hầu

MEV là gì?

Tấn công MEV (Tấn công giá trị rút tối đa) là hành vi blockchain khai thác quyền kiểm soát sắp xếp các giao dịch để kiếm thêm lợi nhuận bằng cách sắp xếp , chèn hoặc loại trừ các giao dịch cụ thể.

Hình thức phổ biến nhất là tấn công sandwich, trong đó kẻ tấn công chèn các giao dịch của riêng chúng trước và sau lệnh mua vào của người dùng, thao túng giá để kiếm lời từ chênh lệch giá và khiến người dùng phải trả giá cao hơn. Các hình thức khác bao gồm chênh lệch giá trước và chênh lệch giá thanh lý.

Điều quan trọng cần lưu ý là tấn công sandwich và tấn công kiểu front-running về cơ bản gây bất lợi cho hệ sinh thái blockchain . Chúng kiếm lợi nhuận bằng cách đánh đổi lợi nhuận giao dịch của người dùng, không giống như chiến lược chênh lệch giá tam giác, vốn góp phần làm giảm thanh khoản blockchain . Tấn công sandwich và tấn công kiểu front-running gây tổn hại đến thanh khoản; khi không có giao dịch nào xảy ra, chúng sẽ biến mất. Do đó, tấn công sandwich và tấn công kiểu front-running có tác động tiêu cực đáng kể đến blockchain(đặc biệt là DeFi), khiến chúng trở thành một căn bệnh ung thư thực sự trong ngành.

Giao thức MEVless

tiền đề

MEVless phù hợp với các tình huống tấn công sau:

  • Tấn công sandwich
  • tấn công dẫn đầu

Chuỗi mà MEVless có thể áp dụng:
Ở đây, tôi không khuyến nghị sử dụng giao thức MEVless trên lớp chuỗi công khai L1 (đặc biệt là blockchain đa năng như ETH và Solana), vì MEVless yêu cầu những sửa đổi cụ thể đối với chính các khối, được thiết kế đặc biệt để chống MEV và có thể không phù hợp với các loại hình việc kinh doanh khác (đặc biệt là những loại hình không yêu cầu chống MEV). Tôi đề xuất đặt MEVless trên Chuỗi ứng dụng việc kinh doanh chuyên dụng hoặc L2, sau đó cuối cùng quyết toán sang ETH L1.

nguyên tắc

Nguyên lý đằng sau MEVless nằm ở việc hạn chế hành vi thợ đào liên quan đến việc sắp xếp thứ tự giao dịch. Cách tiếp cận của chúng tôi là ngăn không cho thợ đào nhìn thấy nội dung giao dịch cụ thể trong sắp xếp . Hơn nữa, bằng cách sắp xếp giao dịch mà không tiết lộ chi tiết giao dịch, ngay cả thợ đào cũng không thể quản lý chúng hiệu quả do thiếu hiểu biết về nội dung giao dịch thực tế.
Tấn công MEV cũng không thể thực hiện được. Sau khi sắp xếp, thứ tự cần được công bố trên mạng công cộng để nút và người dùng khác cũng có thể biết. Lúc này, thứ tự giao dịch đã được xác định và tích hợp vào khối. Do đó, khi gửi nội dung giao dịch cụ thể sau đó, nó sẽ buộc phải được thực hiện theo thứ tự đồng thuận này, và không còn chỗ cho các hoạt động MEV nữa.
Chúng tôi chia các khối trên Chuỗi thành hai loại:

  • Các khối tuần tự chỉ thực hiện ba nhiệm vụ: nhận băm giao dịch, trừ khoản thanh toán trước của người dùng và xác nhận thứ tự giao dịch. Khoảng thời gian giữa các khối tuần tự có thể ngắn hơn khoảng thời gian giữa các khối thực thi.
  • Việc thực hiện một khối không khác gì việc thực hiện một khối thông thường; nó chỉ đơn giản là thực hiện các giao dịch theo sắp xếp đã hứa trong khối được sắp xếp trước đó.

Hai loại khối này được tạo ra xen kẽ. Ví dụ, sau Khối Genesis, khối có số lẻ cao nhất là khối sắp xếp, và khối có số chẵn cao nhất là khối thực thi.

quá trình

Quy trình không có MEV
  1. Khối N (khối tuần tự) bắt đầu tạo các khối.
  2. Người dùng gửi mã băm giao dịch của họ lên Chuỗi và trả trước một khoản tiền. Khoản tiền trả trước này bao gồm hai phần:
    1) Phí Gas Hash Giao dịch: Đây là chi phí tính toán được sử dụng để lưu trữ và sắp xếp hash giao dịch. Chi phí này thường cố định và bắt buộc.
    2) Mẹo thưởng: Phí bổ sung do người dùng trả để đảm bảo giao dịch sắp xếp cao nhất có thể trong danh sách lệnh. Số tiền này không cố định và có thể tùy chọn.
  3. Sau khi nhận được mã băm giao dịch, nút Chuỗi sẽ hoàn tất các bước sau:
    • Kiểm tra xem tài khoản giao dịch có đủ tiền để thanh toán trước không.
    • Giá trị băm giao dịch được sắp xếp từ cao đến thấp dựa trên số tiền trả trước.
    • Trừ số tiền trả trước vào tài khoản giao dịch.
    • Các giao dịch theo thứ tự được lưu trữ dưới dạng cam kết theo khối và được công bố trên mạng P2P.
  4. Sau khi người dùng đăng ký và truy vấn hàm băm của giao dịch mới phát hành của họ, sau đó được cam kết với sắp xếp trên Chuỗi , người dùng sẽ gửi nội dung giao dịch chi tiết đến Chuỗi và DA (DA là tùy chọn).
  5. Việc sản xuất khối bắt đầu tại khối N+1 (khối thực thi).
  6. Sau khi nhận được thông tin chi tiết về giao dịch, nút Chuỗi sẽ hoàn tất các bước sau:
    • Truy xuất nội dung giao dịch từ DA (nếu tất cả sắp xếp trong khối trước đó có nội dung giao dịch tương ứng, hãy bỏ qua bước này).
    • Kiểm tra xem nội dung giao dịch có khớp với txHash đã sắp xếp trước đó hay không; nếu không khớp, hãy hủy giao dịch.
    • Thực hiện giao dịch theo thứ tự đã thỏa thuận trước đó.
    Quá trình này diễn ra theo chu kỳ.

Vai trò của DA (tùy chọn)

Trong trường hợp này, sau khi giao dịch được gửi đến Chuỗi, thợ đào có thể thấy giao dịch đó có lợi nhuận và cố tình giữ lại để tránh bị ghi lại trên Chuỗi, sau đó đợi người dùng lần giao dịch đó để thực hiện một cuộc tấn công khác.
Lúc này, lợi nhuận giao dịch của người dùng không chỉ bị xói mòn mà còn phải trả thêm một khoản trả trước do mã băm giao dịch đã gửi trước đó.
Do đó, chúng ta cần DA (chẳng hạn như ETH Blob) để đảm bảo các giao dịch do người dùng gửi đi được ghi lại trên Chuỗi. Bằng cách này, ngay cả khi một nút tạo khối cố tình giữ lại giao dịch, nút xác thực và nút đầy đủ khác vẫn sẽ nhận được nội dung giao dịch.
Giao dịch sau đó được thực hiện trong quá trình tạo khối tiếp theo. Theo cách này, để tránh sự không nhất quán giữa trạng thái của nó và trạng thái của nút khác, nút tạo khối buộc phải đưa giao dịch vào khối của nó.
Trong quy trình này, DA cung cấp một lớp bảo vệ bổ sung cho người dùng, nhưng không phải là tùy chọn bắt buộc. Nếu người dùng cảm thấy giao dịch đã được truyền tải đầy đủ đến đủ số lượng full nút trong mạng P2P, họ có thể chọn không sử dụng DA.
Việc giới thiệu DA cũng có thể ngăn chặn nhóm thợ đào của Chuỗi giữ lại các giao dịch của người dùng thông qua độc quyền chung.

Thuận lợi

  1. So với nhóm bộ nhớ crypto, giải pháp MEVless có chi phí thấp hơn, loại bỏ nhu cầu về các hoạt động giải mã tốn nhiều CPU và bộ nhớ.
    Chỉ các băm giao dịch được sắp xếp trước. Một băm chỉ dài 32 byte, hoặc thậm chí ngắn hơn. Sau khi hoàn tất việc sắp xếp, việc truyền tải sẽ có gánh nặng rất nhỏ lên băng thông mạng.
  2. So với PBS, MEVless áp đặt các ràng buộc bắt đầu từ quyền sắp xếp giao dịch, nguồn gốc của một cuộc tấn công MEV. Vì nó chặn thông tin tình báo của kẻ tấn công về thông tin giao dịch trước khi sắp xếp, nó loại bỏ các điều kiện tiên quyết để kẻ tấn công có thể thực hiện một cuộc tấn công MEV.
  3. Điều này tạo điều kiện cho việc thực thi phi tập trung và kết quả có thể kiểm chứng. Tất cả các bước liên quan đến việc chống lại các cuộc tấn công MEV đều được mã hóa cứng vào lớp mã. Miễn là full nút thực thi mã theo mã này, kết quả sẽ mang tính xác định, khiến việc khởi chạy các cuộc tấn công MEV thông qua các hoạt động hộp đen trở nên rất khó khăn.
  4. Không giống như nút mempool riêng tư, không công bố thứ tự giao dịch đã hứa cho tất cả nút để đạt được sự đồng thuận trước khi biết nội dung giao dịch cụ thể, MEVless công bố thứ tự giao dịch đã hứa cho toàn bộ mạng, cho phép tất cả nút đầy đủ đạt được sự đồng thuận trước khi ghi vào khối để đảm bảo rằng các giao dịch được thực hiện theo thứ tự đã hứa.

MEV suy đoán

Trước đây chúng ta đã thảo luận về các cuộc tấn công MEV tiêu chuẩn. Tuy nhiên, nếu kẻ tấn công không thể xem chi tiết giao dịch cụ thể và không thể nhắm mục tiêu vào các giao dịch cụ thể, chúng có thể sử dụng một phương pháp tấn công khác: tấn công MEV suy đoán.
Phương pháp tấn công này được thể hiện cụ thể như sau: Trong MEVless, kẻ tấn công có thể đặt bẫy trước và gửi hàm băm của giao dịch lên Chuỗi. Khi quá trình thực thi khối bắt đầu và mọi người gửi nội dung giao dịch của mình, kẻ tấn công có thể đánh giá và tính toán xem họ có lợi nhuận tấn công nào hay không dựa trên nội dung giao dịch do người dùng khác gửi. Nếu có, họ sẽ gửi nội dung giao dịch của riêng họ; nếu không, họ sẽ chọn từ chối gửi nội dung giao dịch của riêng mình, do đó thực hiện tấn công sandwich.
Cách tiếp cận này khó duy trì trong giao thức MEVless vì đầu cơ sẽ phát sinh chi phí. Khi kẻ tấn công thấy phương sắp xếp này không có lợi nhuận và quyết định từ bỏ việc gửi giao dịch, khoản thanh toán trước mà họ đã thực hiện khi gửi txHash sẽ bị lãng phí. Hơn nữa, kẻ tấn công càng cố gắng xếp hạng giao dịch của mình cao hơn thì...
Khi đó, chi phí trả trước mà anh ta phải trả sẽ càng cao.
Sau đó, một số độc giả có thể thắc mắc, nếu chính nút tạo khối khởi chạy cuộc tấn công MEV, thì khoản thanh toán trước này về cơ bản là tự trao cho kẻ tấn công, hoàn toàn bù đắp chi phí tấn công. Trong trường hợp này, chúng ta nên giải quyết như thế nào?

Tối ưu hóa lớp đồng thuận

Thật vậy, khi một nút sản xuất khối khởi động một cuộc tấn công MEV, số tiền trả trước sẽ được bù đắp bằng phần thưởng khối của nó, do đó không có lãng phí chi phí tấn công. Cách tiếp cận của chúng tôi để làm suy yếu phương pháp đầu cơ này là khiến thợ đào không thể dự đoán liệu họ có phải là người sản xuất khối tiếp theo hay không, do đó làm tăng đáng kể chi phí đầu cơ của họ. Để đạt được điều này, chúng tôi cần thêm thiết kế sau vào lớp đồng thuận:

  • Truy cập đồng thuận: bằng chứng đốt token L1. Mọi người phải đốt một số token L1 (ETH/USDT/USDC) trên L1 để có quyền tham gia nhóm thợ đào.
  • Đồng thuận khối: VDF dựa trên hàm băm L1. Chúng tôi sử dụng hàm băm của khối mới nhất trên ETH L1 làm đầu vào, tạo các giá trị đầu ra ngẫu nhiên bằng VDF và so sánh các giá trị đầu ra của tất cả thợ đào . Nút nào đạt được giá trị tối đa (giá trị đầu ra * số lượng token L1 đốt ) sẽ trở thành nút tạo khối cho vòng này.
  • Đồng thuận cuối cùng: Các khối được tạo ra trong các bước trên sẽ được tải lên ETH L1 theo chu kỳ 3 khe ETH, và fork có giá trị lớn nhất (giá trị đầu ra * số token L1 đốt ) sẽ được chọn làm nhánh hoàn tất. Sau khi hoàn tất trên ETH, nhánh này không thể được khôi phục.

Hơn nữa, thiết kế đồng thuận này hiệu quả hơn trong việc chống lại MEV khi phi tập trung tăng lên, vì càng có nhiều thợ đào thì mỗi nút thợ đào càng khó dự đoán liệu mình có phải là nút tạo khối tiếp theo hay không và rủi ro MEV đầu cơ của họ càng cao.

Tuyên bố miễn trừ trách nhiệm: Là blockchain, các bài viết được đăng trên trang web này chỉ thể hiện quan điểm cá nhân của tác giả và khách truy cập, không phản ánh quan điểm của Web3Caff. Thông tin trong bài viết chỉ mang tham khảo và không cấu thành bất kỳ lời khuyên hay ưu đãi đầu tư nào. Vui lòng tuân thủ luật pháp và quy định hiện hành của quốc gia hoặc khu vực của bạn.

Chào mừng bạn đến với cộng đồng Web3Caff chính thức : Tài khoản Twitter | Tài khoản Twitter nghiên cứu Web3Caff | Nhóm độc giả WeChat | Tài khoản chính thức WeChat

Nguồn
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
Thêm vào Yêu thích
Bình luận