Securityadvancedarticle20 min read

Hack MonoX Finance: cuộc tấn công lừa đảo giá trị 31 triệu USD | VCC

Ngày 30 tháng 11 năm 2021, hacker của monox finance đã rút khoảng 31 triệu đô la từ MonoX Finance – một sàn giao dịch phân tán đã đặt toàn bộ kiến trúc của mình vào một ý tưởng thông minh. Thay vì yêu cầu các nhà cung cấp thanh khoản nạp các cặp token (như Uniswap), MonoX cho phép họ nạp một

Vietcardano teamTeam

Đội ngũ biên tập VietCardanoCommunity — các chuyên gia blockchain và Cardano, cung cấp nội dung giáo dục và nghiên cứu chuyên sâu cho cộng đồng.

Published 14 tháng 9, 2026

Ngày 30 tháng 11 năm 2021, hacker của monox finance đã rút khoảng 31 triệu đô la từ MonoX Finance – một sàn giao dịch phân tán đã đặt toàn bộ kiến trúc của mình vào một ý tưởng thông minh. Thay vì yêu cầu các nhà cung cấp thanh khoản nạp các cặp token (như Uniswap), MonoX cho phép họ nạp một token duy nhất. Một hồ chứa cho mỗi token, với một phần LP ảo. Nó tiết kiệm vốn. Nó cũng tạo ra một vòng lặp chết người: giá của MONO – token nằm ở trung tâm của mọi giao dịch – được tính từ chính hồ chứa mà kẻ tấn công có thể giao dịch. Với việc bơm MONO từ khoảng 5 đô la lên hơn 8.000 đô la trong một giao dịch duy nhất, kẻ tấn công đã thuyết phục quy trình rằng họ đã nạp 16 triệu đô la MONO. Quy trình, tin tưởng vào toán học bị phình lên của chính nó, đã trao 16 triệu đô la WETH và WBTC thực tế làm giá trả lại. Không có khoản vay nhanh. Không có việc đánh cắp private key. Chỉ có giá định kỳ và thực hiện nguyên tử.

MonoX đã xây dựng gì và tại sao nó là một mục tiêu hấp dẫn

MonoX Finance được ra mắt vào năm 2021 như một nhà tạo thị trường tự động "một mặt". Trên Uniswap, việc cung cấp thanh khoản cho WETH/WBTC đòi hỏi phải nạp cả hai token. Trên MonoX, bạn chỉ cần nạp một token – WETH vào nhóm WETH, WBTC vào nhóm WBTC, MONO vào nhóm MONO. Mỗi nhóm theo dõi số dư của một token và nguồn cung token LP ảo (vToken). Các giao dịch được chuyển qua MONO như một bên trung gian: WETH → MONO → WBTC. Điểm mạnh của nó là hiệu quả về vốn – LP kiếm được phí mà không có mất mát tạm thời từ tài sản kèm theo.

Vào cuối tháng 11 năm 2021, MonoX giữ tổng giá trị khoảng 64 triệu USD bị khóa trên Ethereum và Polygon. Ba đặc điểm làm cho nó có thể khai thác một cách bất thường. Thứ nhất, giá của MONO được định giá theo mô hình kho chứa đơn – giá của MONO không được thiết lập bởi một oracle bên ngoài mà được tính toán nội bộ theo công thức tổng số dư kho MONO / tổng cung vToken. Thứ hai, MONO có liquidity thấp – chỉ có khoảng 2 triệu USD trong kho MONO so với hơn 60 triệu USD trong các kho khác, do đó một giao dịch MONO nhỏ đã làm thay đổi giá trị nội bộ một cách mạnh mẽ. Thứ ba, quy trình là atom – việc cung cấp và tiêu thụ được thực hiện trong một giao dịch duy nhất, do đó kiểm tra giá tại cấp khối không bao giờ thấy đỉnh giá tạm thời.

Diagram - MonoX single-asset pool architecture: one pool per token with MONO as intermediary, and the circular getPrice() that reads from the pool it trades

Lịch sử: Hai giao dịch, 31 triệu USD, không có lợi nhuận

Toàn bộ cuộc tấn công – cả hai chuỗi, toàn bộ việc rút tiền – mất khoảng 30 phút. Không có bất kỳ cuộc đàm phán nào diễn ra.

30 tháng 11, 2021, 08:43 UTC — Người tấn công thực hiện giao dịch khai thác đầu tiên trên Ethereum (block 13702061). Trong một cuộc gọi atom, họ đã đẩy giá nội bộ của MONO từ ~$5 lên ~$8,200 và rút 192 WETH và 36 WBTC – tương đương khoảng 18,2 triệu đô la với ETH ~$4,400 và BTC ~$57,000.

30 tháng 11, 2021, 09:15 UTC — Một giao dịch khai thác thứ hai trên Polygon (block 21464005) lặp lại cùng một kỹ thuật, tiêu thụ WMATIC, WETH, WBTC và USDC – khoảng 12,8 triệu USD. Cấu hình Polygon có các nhóm bổ sung; kẻ tấn công chuyển tiền kiếm được sang Ethereum trong vòng hai giờ thông qua bridge Polygon PoS.

30 tháng 11, 2021, ~10:00 UTC — Đội ngũ MonoX đã tạm dừng tất cả các hợp đồng (thao tác pause() trên Monoswap), xác nhận lỗ hổng, công bố địa chỉ của kẻ tấn công và yêu cầu các sàn giao dịch tập trung và các nhà tổng hợp DEX đưa các khoản tiền bị nhiễm vào danh sách đen. Hiển thị TVL trên giao diện trước đã bị đóng băng ở mức ~32 triệu USD — các pool không chứa MONO hoặc có độ sâu không đủ để khai thác.

30 tháng 11, 2021, ~12:00 UTC — PeckShield và SlowMist đã công bố các phân tích độc lập về nguyên nhân gốc, cả hai đều chỉ ra hàm getPrice() là thủ phạm. Cộng đồng xác nhận không có bất kỳ khoản tiền nào được trả lại.

30 tháng 11, 2021, +6 giờ — Người tấn công bắt đầu rửa tiền: ~2 triệu USD được đổi thành ETH thông qua 1inch và gửi vào Tornado Cash trong 10 đợt, mỗi đợt 100 ETH.

1 tháng 12, 2021 — MonoX đã công bố bản post-mortem chính thức, xác nhận lỗi về định giá kho chứa tài sản duy nhất và công bố kế hoạch bồi thường được tài trợ bằng việc mua lại tài sản, cấp quyền sử dụng các token của nhóm và token mới MONO v2.

Timeline - MonoX hack timeline Nov 30 2021: two exploit transactions across Ethereum and Polygon, pause, analysis, and laundering within 6 hours

Số liệu: Từ đâu mà 31 triệu USD đến và đi đâu

Vào thời điểm bị tấn công (ETH ~$4,400, BTC ~$57,000, MATIC ~$1.80), số tiền 31 triệu USD được chia theo chuỗi theo một mẫu có thể cho thấy kẻ tấn công chỉ chọn các pool nơi MONO là tài sản đối trọng có độ sâu đủ:

Dây chuỗiĐược đánh cắp (khoảng)Token quan trọng
Ethereum~$18,2 triệuWETH 192, WBTC 36, cộng với các dự trữ LINK/UNI/ổn định
Polygon~$12.8 triệuWMATIC ~2,1 triệu, WETH ~150, WBTC ~20, USDC ~3 triệu USD
Tổng~$31 triệu30,8–31,4 triệu đô la tùy theo giá chụp nhanh

Trước khi bị tấn công, TVL là ~64 triệu USD. Người tấn công đã rút ~48% trong hai giao dịch. ~32 triệu USD còn lại nằm trong các pool không sử dụng MONO làm trung gian hoặc có độ sâu quá thấp để hấp thụ khoản tiền gửi MONO bị tăng giá với tỷ lệ có lợi nhuận.

Kinh tế học của kẻ tấn công kể một câu chuyện thứ hai:

  • Hacker EOA (Ethereum): 0xD5173Ba4a98BF67A665840c3fC1F5ad27e4cA1E5
  • Tiền vốn ban đầu: ~3,900 MONO (~$20K với giá trước khi tấn công), được mua trên Uniswap vài tuần trước khi tấn công – không cần khoản vay khẩn cấp

Một so sánh hữu ích: vụ tấn công monox 31 triệu USD là nhỏ so với Poly Network (611 triệu USD) năm 2021 hoặc Ronin (625 triệu USD) năm 2022, nhưng tỷ lệ giữa kỹ thuật và tiền thưởng của nó nằm trong số cao nhất trong DeFi – 10.000 USD vào, 31 triệu USD ra, không có khoản vay nhanh, không sử dụng sức mạnh brute force.

Nguyên nhân: định giá vòng tròn – Oracle tự định giá cho mình

Nhược điểm về manipulation giá trong MonoX không phải là một trường hợp manipulation oracle truyền thống. Trong hầu hết các cuộc tấn công oracle (Mango Markets 100 triệu USD, Cream Finance 130 triệu USD), kẻ tấn công đã manipulate một nguồn giá ngoại bộ – giá Chainlink, TWAP của Uniswap, nhóm Curve – và giao thức nạn nhân tin tưởng vào nguồn đó. MonoX không có nguồn giá ngoại bộ để manipulate. Giá của nó chính là nhóm.

Thiết kế kho chứa AMM đơn

Mỗi kho MonoX chứa một token và một token LP ảo:

  • WETH Pool: giữ số dư WETH + nguồn vWETH

Quỹ đổi qua đường dẫn thông qua MONO: WETH → MONO → WBTC. Tỷ lệ chuyển đổi cho mỗi đoạn phụ thuộc vào giá của MONO, được tính như sau:

` MONO price = MONO pool token balance / vMONO total supply `

Tuy nhiên, cả số trên và số dưới đều sống trong một kho MONO – cùng kho mà kẻ tấn công có thể giao dịch. Đây là một công thức oracle vòng lặp: giá được tính từ kho mà giá được sử dụng để định giá.

Kỹ thuật tấn công nguyên tử hai bước

Bước 1 — Bơm MONO vào trong hồ chứa của nó. Người tấn công thay đổi ~2,000 MONO trong hồ chứa MONO. Vì hồ chứa có độ sâu thấp (~2 triệu USD), dòng tiền lớn này làm tăng số dư của token MONO so với nguồn cung vToken. getPrice() đọc số dư mới và trả về ~8,200 USD cho mỗi MONO — tăng lên 1,640 lần. Điều này xảy ra trong cùng một giao dịch; không có khối nào đã được xác nhận, vì vậy không có người quan sát bên ngoài hoặc thiết bị phân đoạn nào nhìn thấy sự tăng đột biến này.

Bước 2 — Dùng MONO bị pha trộn. Trong cùng một giao dịch (atom — hoặc cả hai bước đều thành công hoặc cả hai đều bị hủy), kẻ tấn công gọi swap hoặc addLiquidity để gửi MONO và rút WETH/WBTC. Thông qua giao thức, MONO được gửi vào được định giá theo giá $8,200 đã bị pha trộn: 2,000 MONO × $8,200 = "giá trị" 16.4 triệu USD. Nó phát hành 16.4 triệu USD WETH/WBTC với giá thị trường thực. Kẻ tấn công đã trả ~10,000 USD cho 2,000 MONO trên Uniswap vài tuần trước; giao thức xem đó là 16 triệu USD.

Khi lặp lại chuỗi một lần nữa (nhân viên tấn công đã thực hiện nó hai lần mỗi chuỗi), tổng số tiền là 31 triệu USD.

Tại sao các kiểm tra hiện có thất bại

MonoX có một bảo vệ priceThreshold so sánh giá hiện tại của MONO với giá của khối trước đó và sẽ quay trở lại nếu sự thay đổi vượt quá một giới hạn. Nó thất bại vì lý do cấu trúc:

Máy bơm và xả đều diễn ra trong một giao dịch duy nhất. Threshold kiểm tra giá khối N so với giá khối N-1. Tuy nhiên, máy bơm (MONO từ $5 lên $8,200) và xả (nhận WETH/WBTC) đều diễn ra trong các chức năng nội bộ trong một giao dịch ở khối N. Threshold chỉ nhìn thấy trạng thái cuối cùng sau khi xả – giá của MONO đã được sửa đổi một phần do việc rút tiền – không phải là đỉnh giá $8,200 giữa các giai đoạn. Kiểm tra sự thay đổi từ khối này sang khối khác không thể phát hiện các hành vi gian lận trong giao dịch.

Đây là cùng một lỗ hổng về tính nguyên tử đã được khai thác trong Harvest Finance (24 triệu USD, 2020) và được hiểu từ năm 2019 – nhưng MonoX vẫn được phát hành mà không có bảo vệ trong giao dịch.

Diagram - MonoX root cause: attacker pumps MONO from $5 to $8,200 inside its own pool, then deposits inflated MONO to drain WETH and WBTC at real prices — all in one atomic transaction

Tại sao Oracle Single-AMM thất bại (và tại sao không cần khoản vay flash)

Mẫu tấn công single amm pool trong MonoX khác với việc điều chỉnh giá cho vay flash bằng cách khiến nó trở nên khó phát hiện và rẻ hơn để thực hiện.

Trong một cuộc tấn công oracle cho vay flash thông thường, kẻ tấn công vay triệu đô la, đổ chúng vào một bể DEX để điều chỉnh giá, khai thác một nạn nhân đọc giá DEX đó, sau đó trả nợ – tất cả trong một giao dịch duy nhất. Dấu vân tay là rõ ràng: một khoản vay lớn, một giao dịch lớn, tương tác với nạn nhân, và một khoản trả nợ. Theo dõi những tín hiệu cho vay flash sẽ phát hiện ra điều này.

MonoX không cần bất kỳ điều đó. Người tấn công đã sở hữu MONO – đã mua với giá rẻ trên Uniswap vài tuần trước, khi MONO được giao dịch với giá từ 1 đến 5 USD như một token quản trị có giá trị thấp. Cách thức giao dịch trong cuộc tấn công trông giống như một giao dịch thay đổi lớn được theo sau bởi việc bổ sung nguồn cung – không vay, không trả, không có hồ sơ bên ngoài. Một thiết bị phát hiện cho vay flash sẽ không phát hiện bất kỳ điều gì bất thường.

Ba lựa chọn thiết kế đã làm tăng nguy cơ:

  1. Hồ MONO nông sâu so với các hồ nạn nhân sâu. Hồ MONO chứa ~2 triệu USD; các hồ WETH và WBTC mỗi hồ chứa 20 triệu USD trở lên. Xả một hồ nông sâu để tăng giá trị của một hồ sâu là cấu hình có độ đòn bẩy cao nhất – đầu vào nhỏ, đầu ra lớn. Đội ngũ đã nắm giữ 60% nguồn cung MONO nhưng chưa phân bổ nguồn vào hồ MONO theo tỷ lệ thích hợp.
  1. Không có điểm tham chiếu giá bên ngoài. Mặt khác với Uniswap v3 (TWAP) hoặc Curve (Chainlink), MonoX không có nguồn giá thứ hai để kiểm tra. Thông qua, giao thức tin tưởng vào các nguồn dự trữ của riêng mình như là sự thật cơ bản. Khi các nguồn dự trữ bị can thiệp, không có oracle phản đối nào để nói "MONO không phải là 8.200 USD."
  1. Halborn đánh giá mức độ nguy hiểm là thấp. Kiểm tra trước khi tấn công của Halborn (tháng 9 năm 2021) đã xác định nguyên nhân: "Tính toán giá dựa trên trạng thái của kho nội bộ và có thể bị lừa đảo nếu lượng tiền của MONO thấp". Nó được đánh giá là thấp/thông tin vì MONO có lượng tiền lớn trên các DEX ngoại bộ vào thời điểm kiểm tra. Tuy nhiên, lượng tiền ngoại bộ không quan trọng khi giá được đọc từ các khoản dự trữ nội bộ – kẻ tấn công giao dịch với kho nội bộ, không phải kho ngoại bộ. Mô hình mức độ nguy hiểm cân nhắc "có lượng tiền ở đâu không?" thay vì "giá được đọc từ đâu?"

Người tấn công và việc rửa tiền

Khác với người dùng mũ xám của Poly Network đã hoàn trả 611 triệu đô la sau 13 ngày đàm phán trên chuỗi, kẻ tấn công của thương vụ hack monox không bao giờ tham gia. Không có tin nhắn. Không có trả lại. Không có tuyên bố của người dùng mũ trắng.

Kinh tế học trên chuỗi cho thấy một bức tranh về sự tính toán trước:

  • Tiền vốn: Người tấn công EOA được tài trợ thông qua việc rút tiền từ Tornado Cash khoảng hai tuần trước khi thực hiện cuộc tấn công, bảo đảm tính an onym của vốn đầu tư ban đầu.
Diagram - MonoX fund flow: $31M stolen across Ethereum and Polygon, bridged, then laundered via Tornado Cash and FixedFloat with zero funds returned

Tác động và hậu quả

Trả lời của MonoX nhanh về việc ngăn chặn, nhưng chậm về việc phục hồi.

Kiểm soát (số giờ): Các hợp đồng bị tạm dừng trong khoảng ~75 phút. Địa chỉ của kẻ tấn công được công bố. Các yêu cầu đen danh các sàn giao dịch CEX/DEX được gửi. Không có thêm tiền bị mất - việc tạm dừng có hiệu lực vì lỗ hổng yêu cầu hợp đồng Monoswap phải được tạm dừng.

Sau khi chết (24 giờ): Đội ngũ đã công bố một báo cáo sự cố trung thực xác nhận lỗi giá tròn, ghi nhận công lao của PeckShield và SlowMist trong việc phân tích nguyên nhân, và nêu ra cách khắc phục: thay thế getPrice() bằng các nguồn giá Chainlink cộng với một bảo vệ TWAP, và loại bỏ khả năng định giá bất kỳ tài sản nào từ kho riêng của nó.

Hoàn trả (tuần–tháng): MonoX đã công bố kế hoạch hoàn trả cho các LP thông qua mua lại tài sản (tương đương khoảng 5 triệu USD có sẵn ngay lập tức), mã token của nhóm và mã token mới MONO v2. Trong thực tế, tài sản của công ty đã bù đắp cho <20% thiệt hại ban đầu; phần còn lại được thực hiện theo lịch trình hoàn trả kéo dài nhiều tháng. Nhiều LP đã chấp nhận bồi thường một phần; một số đã nộp đơn kiện. Đến giữa năm 2022, tổng giá trị giao dịch (TVL) của MonoX đã giảm từ 64 triệu USD xuống dưới 2 triệu USD khi dòng tiền trốn đi.

Đổi vị trí: MonoX v2 được phát hành trên Polygon với oracle Chainlink và một cuộc kiểm toán lại của Halborn. Kho báu lỗi Immunefi được tăng lên tối đa 250.000 USD. Thông qua tiếp tục hoạt động ở quy mô nhỏ nhưng chưa bao giờ lấy lại TVL trước khi bị hack – một số phận chung của các giao thức DeFi mất ~50% TVL trong một cuộc khai thác duy nhất.

Tác động của ngành công nghiệp: Sự hack này đã trở thành một phần không thể thiếu trong danh sách kiểm tra của các tổ chức kiểm toán. Trail of Bits, OpenZeppelin và CertiK đều thêm "không bao giờ định giá tài sản từ kho pool mà nó giao dịch" như một phát hiện quan trọng. Nó đã ảnh hưởng trực tiếp đến việc áp dụng TWAP và Chainlink như là bắt buộc cho bất kỳ thiết kế tài sản đơn lẻ hoặc lưu lượng tiền tệ tập trung nào.

5 biện pháp phòng vệ có thể ngăn chặn cuộc tấn công MonoX

Mỗi biện pháp phòng vệ dưới đây đều có sẵn trước tháng 11 năm 2021. Mỗi biện pháp riêng lẻ đều có thể ngăn chặn hoặc hạn chế sự khai thác.

Checklist - 5 defense layers that would have stopped MonoX: external oracle, TWAP, intra-tx circuit breaker, depth-proportional limits, and correct audit severity

1. Không bao giờ định giá một tài sản từ kho pool mà nó giao dịch – hãy sử dụng một oracle bên ngoài. Giá của MONO phải đến từ Chainlink, Uniswap TWAP hoặc trung bình của nhiều nguồn – không bao giờ là tổng số dư kho pool / nguồn cung vToken. Một oracle bên ngoài không thể được "bơm" bằng cách giao dịch chống lại kho pool nạn nhân. MonoX v2 đã áp dụng Chainlink; mỗi lần kiểm toán kể từ đó đều cho thấy định giá tự động là nguy hiểm.

2. Sử dụng giá trung bình TWAP hoặc giá trung bình, không phải giá hiện tại. Mặc dù có một kho ngoại bộ làm oracle, nhưng giá hiện tại có thể bị điều khiển trong một giao dịch. Giá trung bình theo trọng số thời gian (TWAP) trong 15-30 phút yêu cầu kẻ tấn công duy trì việc bơm – điều này có thể tốn rất nhiều chi phí hoặc bị áp dụng trước khi nạn nhân đọc được nó. TWAP của Uniswap v3 được thiết kế chính xác cho mục đích này.

3. Máy tách trong giao dịch. priceThreshold ở cấp khối của MonoX kiểm tra sự thay đổi giá giữa các khối. Nó cũng phải kiểm tra trong một giao dịch: nếu giá của MONO thay đổi >10% giữa các cuộc gọi nội bộ trong một giao dịch, thì phải quay lại. Điều này ngăn chặn việc bơm và rửa nguyên tử bất kể thời gian của khối. Harvest đã đề xuất sửa đổi tương tự vào năm 2020.

4. Các giới hạn rút tiền theo độ sâu. Đặt giới hạn cho mỗi giao dịch rút tiền bằng một phần nhỏ của TVL của kho (ví dụ, ≤5% cho mỗi giao dịch, ≤15% cho mỗi khối). Mặc dù giá có thể bị điều khiển, nhưng kẻ tấn công chỉ có thể rút một lượng nhỏ trước khi thiết bị ngăn chặn hoạt động. Giới hạn tốc độ biến một vụ trộm trị giá 31 triệu USD thành một sự bất thường trị giá 1 triệu USD, kích hoạt quá trình điều tra.

5. Độ nghiêm trọng của kiểm toán: xem "giá từ nguồn dự trữ riêng" là mức nghiêm trọng, không phải mức thấp. Halborn đã xác định đúng vector nhưng đánh giá nó là mức thấp vì có nguồn tiền tệ MONO bên ngoài. Câu hỏi về độ nghiêm trọng chính xác không phải là "có nguồn tiền tệ ở đâu không?" mà là "có thể điều khiển nguồn giá thông qua hợp đồng nạn nhân hay không?" Nếu có, nó là mức nghiêm trọng — nguồn tiền tệ bên ngoài sâu hay nông đều không quan trọng. Các khung kiểm toán hiện nay đã ghi điểm rõ ràng về lịch trình nguồn giá.

Những câu hỏi thường gặp

Số tiền bị đánh cắp trong vụ tấn công vào MonoX Finance là bao nhiêu? Khoảng 31 triệu đô la – ~18,2 triệu đô la trên Ethereum (WETH 192, WBTC 36, cộng với các khoản dự trữ khác) và ~12,8 triệu đô la trên Polygon (WMATIC, WETH, WBTC, USDC). TVL trước khi bị tấn công là ~64 triệu đô la, do đó kẻ tấn công đã tiêu hết ~48% trong hai giao dịch. Con số này được đưa ra liên tục là 31 triệu đô la trong các báo cáo sau vụ tấn công của MonoX, PeckShield, SlowMist và Rekt.

Hệ thống lừa đảo của MonoX Finance hoạt động như thế nào? Người tấn công đã khai thác giá định kỳ trong thiết kế kho chứa tài sản đơn lẻ của MonoX. Giá của MONO được tính bằng cách chia số dư trong kho MONO / cung lượng vToken – cả hai giá trị nằm trong kho MONO chính nó. Người tấn công đã đổi ~2.000 MONO thành kho MONO nông, làm tăng giá trong kho lên từ ~5 USD đến ~8.200 USD (1.640 lần). Trong giao dịch atom tương tự, họ đã nạp MONO có giá trị theo giá tăng và rút WETH/WBTC với giá thị trường thực. Thông qua đó, quy trình cho rằng nó đã nhận được 16 triệu USD của MONO và phát hành 16 triệu USD tài sản cứng; chi phí thực tế là ~10.000 USD.

MonoX có sử dụng oracle không? Không — đó là vấn đề. MonoX định giá MONO từ nguồn dự trữ của riêng nó (bằng cách đọc số dư MONO / nguồn cung vToken), không từ một oracle bên ngoài như Chainlink hoặc TWAP. Không có nguồn cung bên ngoài để điều chỉnh; nguồn là oracle. Sau vụ hack, MonoX v2 thay thế cách này bằng các nguồn cung giá từ Chainlink cộng với các biện pháp bảo vệ TWAP.

Có phải khoản vay flash được sử dụng trong vụ tấn công MonoX không? Không. Mặc dù khác với hầu hết các cuộc tấn công mạo hiểm oracle (Cream 130 triệu USD, Mango 100 triệu USD), kẻ tấn công không sử dụng khoản vay flash. Họ đã mua ~3.900 MONO trên Uniswap vài tuần trước với giá 1-5 USD và sử dụng số dư đã nắm giữ trước đó để tăng cường nguồn vốn. Điều này làm cho cuộc tấn công rẻ hơn và khó phát hiện hơn – không có dấu vân của khoản vay/nhận lại lớn, chỉ là một cuộc trao đổi lớn trông bình thường trên bề mặt.

Quan hệ tài chính bị đánh cắp đã được lấy lại chưa? Không. Mặc dù Poly Network (100% số tiền 611 triệu USD đã được hoàn trả) hoặc Euler (~90% số tiền 197 triệu USD đã được hoàn trả), không có số tiền nào được hoàn trả trong vụ tấn công MonoX. Người tấn công ngay lập tức đã làm sạch ~2 triệu USD thông qua Tornado Cash và chậm rãi thay đổi số tiền còn lại thông qua FixedFloat. Không có bất kỳ cuộc đàm phán nào. MonoX đã hoàn trả một phần cho các LP từ kho (~5 triệu USD) cộng với các token của nhóm vesting, nhưng nhiều LP không được hoàn trả đầy đủ.

Có bất kỳ vụ hack giống như MonoX xảy ra sau đó không? Có — mô hình định giá một tài sản từ kho riêng của nó vẫn tiếp tục tái diễn. Một số trường hợp nổi bật bao gồm Inverse Finance (15,6 triệu USD, 2022 — thủ thuật TWAP trên INV), Mango Markets (100 triệu USD, 2022 — thủ thuật oracle trên MNGO perp) và Platypus Finance (8,5 triệu USD, 2023 — tránh kiểm tra khả năng thanh toán bằng cách tự định giá LP). Tất cả đều học được bài học của MonoX: bất kỳ lúc nào một giao thức định giá một tài sản từ một kho mà nó cũng giao dịch chống lại, giá cả đó có thể bị điều khiển theo định nghĩa.

Kết luận

Hack của monox finance vẫn là minh chứng sạch nhất về định giá vòng lặp của DeFi. Người tấn công không cần khoản vay flash, private key hoặc lỗi reentrancy. Họ cần 10.000 USD của MONO, một bể sâu và hiểu rằng "giá = số dư của bể / cung cấp" có nghĩa là giá của bể tự định. Một giao dịch đã đưa MONO lên 1.640 lần trong bể của chính nó; giao dịch tương tự đã gửi MONO bị phình lên và rút 16 triệu USD của WETH và WBTC với giá thực. Hai chuỗi, hai giao dịch, 31 triệu USD, không có gì trở về. Dạy bài học kỹ thuật là tuyệt đối: đừng định giá tài sản từ bể mà nó giao dịch, và đừng tin vào giá hiện tại có thể tăng 1.640 lần trong một cuộc gọi nguyên tử. Dạy bài học về con người thì yên tĩnh hơn: Halborn đã tìm thấy lỗi, đánh giá nó là thấp và quy trình vẫn được triển khai. Sự khác biệt giữa "rủi ro được biết đến" và "rủi ro đã được sửa chữa" là 31 triệu USD.

Tags:

monox finance hackmonox 31 millionprice manipulation defisingle amm pool exploitmonox protocol hack