Điều đáng sợ nhất trong cuộc tấn công sandwich là kẻ tấn công tính toán rõ ràng số tiền lãi trong bước tấn công đầu tiên.
Trọng tài bánh sandwich là một phương pháp chênh lệch giá gây tranh cãi, còn được gọi là tấn công bánh sandwich. Đây là một phương pháp tấn công sử dụng hoạt động chạy trước để tấn công các giao dịch của nạn nhân nhằm mục đích chênh lệch giá. Tại phiên chia sẻ công nghệ vào thứ Tư hàng tuần vào ngày 9 tháng 11 năm 2022, @daimajia, một lập trình viên từ Zhen Fund, đã phổ biến khoa học về MEV, các khoản vay nhanh và chênh lệch giá sandwich, đồng thời phân tích chênh lệch giá sandwich dựa trên sự cố tấn công DODO USDT/DAI như một trường hợp cụ thể, nhiều nội dung và nhiều thông tin hữu ích.
1. Khoa học phổ biến về MEV, các khoản vay nhanh và kinh doanh chênh lệch giá sandwich
1. MEV là gì?
MEV (Giá trị có thể trích xuất của thợ mỏ) đề cập đến giá trị có thể trích xuất tối đa. Trước đây nó còn được gọi là giá trị có thể trích xuất của thợ mỏ. Người khai thác có thể đóng gói các giao dịch và tạo các khối trong Ethereum và trong các khối mà họ tạo ra, người khai thác có thể bao gồm, loại trừ, sắp xếp các giao dịch, v.v. Ngoài phí giao dịch và phần thưởng khối, người khai thác cũng có thể thu được nhiều giá trị hơn thông qua các hoạt động trên và giá trị này là MEV.
Định nghĩa mới nhất về MEV trong chuỗi khối PoS là:
Tổng giá trị mà trình xác thực có thể trích xuất trên một khối (hoặc chuỗi khối) dựa trên trạng thái của môi trường và tất cả các hành động có sẵn
Trình xác nhận có thể thực hiện các hoạt động như sắp xếp lại, xem xét và chèn giao dịch. Họ cũng có thể kết hợp nhiều chiến lược thích hợp hơn, chẳng hạn như thay đổi dấu thời gian của khối, thao túng "tính ngẫu nhiên", thực thi các trình xác nhận bổ sung, v.v.
Nói chung, trình xác thực không thể thay đổi trạng thái môi trường của nó, bao gồm các quy tắc blockchain, mã hợp đồng thông minh trên blockchain, các bộ giao dịch trong nhóm bộ nhớ của nó, v.v.
2. Khoản vay nhanh
Khoản vay nhanh là một công cụ cho vay không bảo đảm được ra đời do tính nguyên tử và đặc điểm hoàn vốn của các giao dịch blockchain. Người dùng cần hoàn thành việc vay và trả nợ trong một giao dịch nguyên tử và không yêu cầu bất kỳ tài sản thế chấp nào. Hãy để người dùng có khả năng sử dụng số tiền khổng lồ với chi phí gần bằng 0.
Các khoản vay nhanh phải được hoàn trả trong cùng một giao dịch. Đối với các khoản vay nhanh, "quy trình giao dịch" có thể được coi là bao gồm ba phần: chấp nhận khoản vay, xử lý khoản vay và hoàn trả khoản vay, nhưng tất cả những điều này diễn ra ngay lập tức.
Giao dịch được gửi lên mạng, tạm thời cho bạn vay số tiền này và bạn có thể làm gì đó với số tiền đó (phần thứ hai của giao dịch) và miễn là tiền có thể được trả lại cho phần thứ ba kịp thời, bạn có thể làm bất cứ điều gì bạn muốn. Nếu tiền không quay trở lại kịp thời, mạng blockchain sẽ từ chối giao dịch, nghĩa là người cho vay sẽ lấy lại tiền. Trên thực tế, trong khái niệm blockchain, họ luôn có tiền.
Điều này giải thích tại sao người cho vay không yêu cầu bạn cung cấp tài sản thế chấp, việc hoàn trả tiền được thực hiện thông qua mã hợp đồng.
3. Kinh doanh chênh lệch giá sandwich
Sandwich chênh lệch giá, còn được gọi là tấn công sandwich, là một phương pháp tấn công sử dụng chạy trước để tấn công các giao dịch chênh lệch giá của nạn nhân.
Hoạt động chênh lệch giá dạng sandwich được bắt đầu bởi các robot chênh lệch giá. Khi robot chênh lệch giá phát hiện rằng một giao dịch có thể gây trượt giá tài sản kỹ thuật số, kẻ tấn công sẽ trả phí gas cao hơn để cạnh tranh quyền đóng gói của một khối. Khi thành công, robot chênh lệch giá ngay lập tức mua một lượng tài sản kỹ thuật số nhất định, buộc giá của tài sản đó tăng lên và sau đó bán tài sản kỹ thuật số mới mua sau khi giao dịch tấn công hoàn tất để đạt được chênh lệch giá miễn phí.
Kinh doanh chênh lệch giá sandwich không phải là một phương pháp chênh lệch giá hòa bình - phương pháp chênh lệch giá này phải bao gồm việc tấn công vào một người dùng nạn nhân nhất định và khiến nạn nhân mất tài sản.
Trong các giao dịch Ethereum, để giành quyền ưu tiên đóng gói, kẻ tấn công cần phải trả phí gas cao hơn. Điều này là do ETH áp dụng phương thức đặt giá thầu phí gas tối ưu, nghĩa là người dùng trả phí gas cao nhất có thể được ưu tiên. bưu kiện. . Để có cơ hội đầu tiên đóng gói các khối, những kẻ tấn công sẽ tạo ra sự cạnh tranh gay gắt về phí gas, nhưng vì phí gas của Ethereum được thanh toán cho mọi giao dịch (bất kể thành công hay thất bại). Vì vậy, khi những kẻ tấn công tham gia vào cuộc cạnh tranh luẩn quẩn, lợi ích của người dùng thông thường phải bị tổn hại.
2. Phân tích từng bước sự cố tấn công DODO USDT/DAI
Vào ngày 3 tháng 11 năm 2022, theo giờ Bắc Kinh, nền tảng giao dịch phi tập trung Ethereum DODO đã bị tấn công. Kẻ tấn công đã sử dụng các lỗ hổng hợp đồng để thường xuyên thay đổi mã thông báo và hoàn thành một cuộc tấn công sandwich. Tỷ lệ lãi-lỗ của quá trình này không quá phóng đại mà khá bất lực. Kẻ tấn công đã sử dụng khoản vay gốc hơn 3,5 triệu USDT trong một hoạt động và chỉ kiếm được 26,4 USDT. Toàn bộ quá trình thật đáng xấu hổ. như sau:
1. Bước đầu tiên của cuộc tấn công sandwich: giao dịch đầu tiên của kẻ tấn công FrontRun
Giao dịch được bắt đầu từ địa chỉ 0xf480, tương tác với một hợp đồng (hợp đồng của kẻ tấn công 1) được Etherscan đánh dấu là MEVbot, chuyển 12.840 USD vào hợp đồng (tức là tài khoản của chính anh ta), sau đó chuyển nó sang hợp đồng tiếp theo (hợp đồng của kẻ tấn công 1). ). Hợp đồng 2).
2. Bước 2: Sử dụng khoản vay nhanh để đổi Tether lấy DAI
Kẻ tấn công đã thực hiện một khoản vay ngắn hạn, vay 3,55 triệu đô la Mỹ từ Balancer và chuyển tiền đến địa chỉ, chuyển Tether sang nhóm USDT mã thông báo cam kết DODO, sau đó chuyển cho kẻ tấn công. Một khoản tiền sẽ được trả lại. là một sự hoán đổi (tức là trao đổi mã thông báo).
Trong lần hoán đổi này, kẻ tấn công đã chuyển 3,55 triệu USD bằng USDT và chuyển 3,53 triệu USD bằng DAI, do đó đổi số tiền trong tài khoản của kẻ tấn công từ Tether sang DAI.
3. Thường xuyên thay đổi token
1) Sử dụng Psm để đổi DAI lấy USDC
Tiếp theo, kẻ tấn công thực hiện một giao dịch chuyển tiền khác, chuyển DAI sang Hợp đồng công khai DssPsm là một hợp đồng đã hoàn tất việc quy đổi. Người dùng có thể chuyển DAI sang Psm và đổi nó lấy USDC.
Kẻ tấn công đã gửi 3538543 DAI đến Psm. Hợp đồng Psm đã chuyển tiền đến địa chỉ 0 (nghĩa là đã đốt tất cả DAI), sau đó chuyển lại 3538543 USDC cho kẻ tấn công.
2) USDC được chuyển sang USDT
Sau đó, kẻ tấn công đã sử dụng USDC đã trao đổi để thực hiện hoán đổi trong nhóm USDT/USDC của DODO: hợp đồng của kẻ tấn công đã trao 3,53 triệu USDC cho DODO và DODO đã trao 3,53 triệu USDT cho hợp đồng của kẻ tấn công.
4. Bước 3: Trích hoa hồng BackRun để hoàn thành vòng lặp khép kín
Kẻ tấn công sau đó đã chuyển 70 đô la khác từ DODO sang ví đa chữ ký (địa chỉ của DODOteam). Trong bước này, DODO đã rút tiền hoa hồng trong quá trình giao dịch. Cuối cùng, kẻ tấn công đã trả lại tất cả USDT (3551259) và khoản vay nhanh kết thúc.
3. Tóm tắt
Tổng cộng, kẻ tấn công đã trao đổi stablecoin hai lần trong hai nhóm DODO. Quá trình này là: 3551259 USDT - 3538543 DAI (bước này tạo ra mức trượt giá lớn) - 3538543 USDC - 3.538.419 USDT.
Có thể thấy rằng số USDT cuối cùng đã được trao đổi không đủ để hoàn trả số tiền đã cho vay bằng khoản vay nhanh. Chênh lệch giá là 3551259-3538149=12840. Tại thời điểm này, kẻ tấn công đã chuyển 12840 đô la Mỹ cho chính anh ta. bước đầu tiên có ích.
Tại thời điểm này, chúng ta sẽ có câu hỏi, chẳng phải kẻ tấn công đã mất số tiền 12.840 USD mà hắn đã ứng trước sao? Điều này nhằm mục đích gì?
Trên thực tế, hoạt động của kẻ tấn công (khi đổi USDT lấy DAI) đã khiến nhóm DODO mất cân bằng hơn. Anh ta đã sử dụng nhóm không cân bằng này để đổi lấy thêm USDT (quy trình chênh lệch giá) và sử dụng quy trình ngược lại để đảo ngược quá trình thu hoạch. Chi phí là 26,4 đô la Mỹ. (sau khi trừ hoa hồng từ Gas và DODO).
Do đó, chúng tôi thấy rằng thực sự có sự thiên vị của kẻ sống sót trong các cuộc tấn công như vậy. Thực tế có rất nhiều kẻ tấn công tìm thấy những cơ hội như vậy trên chuỗi và thực hiện các cuộc tấn công như vậy. Hầu hết chúng ta chỉ có thể thấy các trường hợp tấn công thành công và thường thì chúng thực hiện bánh sandwich. Các cuộc tấn công của robot sẽ bị đánh bại và nhiều robot sẽ bị các robot khác phân xử. Đây là lý do tại sao MEV hiện nay rất phức tạp.