Báo cáo nghiên cứu chuyên sâu: Sự kiện tấn công hacker vào giao thức Resolv, ai là người cuối cùng trả giá?
- Quan điểm cốt lõi: Stablecoin USR của giao thức Resolv bị tấn công, kẻ tấn công lợi dụng lỗ hổng then chốt trong hàm đúc tiền của nó, đã đúc ra một lượng khổng lồ USR với chi phí cực thấp và thoái vốn, làm lộ ra rủi ro an ninh hệ thống tồn tại trong kiến trúc stablecoin delta neutral khi theo đuổi hiệu quả vốn tối đa, do thiếu đệm thế chấp và sự phụ thuộc vào thành phần off-chain.
- Yếu tố then chốt:
- Kẻ tấn công chỉ đầu tư khoảng 100.000 USD USDC, thông qua lỗ hổng đúc tiền (có thể là rò rỉ khóa của người ký off-chain hoặc thiếu kiểm tra số tiền) đã đúc ra 80 triệu USR trị giá khoảng 80 triệu USD từ không khí.
- Kẻ tấn công đã thoái vốn khoảng 25 triệu USD bằng cách bán tháo USR trên các pool thanh khoản như Curve, khiến giá USR giảm xuống mức thấp nhất là 2,5 cent trong vòng 17 phút, gây ra sự sụp đổ của pool thanh khoản.
- Theo thiết kế giao thức, tổn thất trước tiên được gánh chịu bởi pool bảo hiểm lớp RLP (lớp sau), nhưng việc mất neo giá USR dẫn đến việc các vị thế đòn bẩy cao lặp đi lặp lại trên các giao thức cho vay như Morpho bị thanh lý, gây ra tổn thất thứ cấp.
- Sự kiện này làm lộ ra điểm yếu cơ bản của stablecoin delta neutral: người ký off-chain trở thành mặt tấn công tập trung, và thiết kế "hiệu quả vốn 1:1" thiếu đệm an toàn, lỗ hổng logic đúc tiền sẽ xuyên thủng trực tiếp hệ thống.
- Cuộc tấn công này đã ảnh hưởng đến nhiều giao thức DeFi như Curve, Morpho, Fluid, Euler, thể hiện đặc tính khả năng kết hợp của DeFi có thể khuếch đại rủi ro trong thời kỳ khủng hoảng.
Tác giả gốc: Bōcài Bōcài (X: @bocaibocai_)
Tóm tắt cốt lõi
Phương thức tấn công: Kẻ tấn công chỉ sử dụng khoảng 100.000 USD USDC, lợi dụng lỗ hổng then chốt trong hàm đúc tiền USR - có thể là oracle bị thao túng, khóa của người ký ngoài chuỗi bị rò rỉ, hoặc thiếu kiểm tra số tiền giữa yêu cầu và thực thi - đã đúc ra 80 triệu USR (trị giá khoảng 80 triệu USD) từ không khí, sau đó nhanh chóng đổi thành tài sản thực.
Con đường arbitrage: Kẻ tấn công bán ra từng đợt số USR đúc trái phép vào các pool thanh khoản như Curve Finance, khiến giá USR giảm xuống mức thấp nhất là 2,5 cent, tích lũy thu về khoảng 25 triệu USD trong sự hỗn loạn mất neo, sau đó chuyển đổi số tiền arbitrage thành ETH để rút ra.
Phân bổ tổn thất: Theo logic thiết kế của kiến trúc rủi ro hai lớp Resolv, khoản thiếu hụt tài sản thế chấp do cuộc tấn công này gây ra trước tiên được chịu bởi những người nắm giữ pool bảo hiểm RLP (giá RLP sẽ giảm theo giá trị tài sản ròng của giao thức), trong khi người nắm giữ USR về lý thuyết được bảo vệ trước khi giao thức tạm dừng việc mua lại; tuy nhiên, các vị thế vòng lặp đòn bẩy (Looping) trên USR tại các giao thức cho vay như Morpho đã bị thanh lý cưỡng chế do mất neo, gây ra tổn thất thứ cấp.
Giao thức liên đới: Các giao thức DeFi chịu ảnh hưởng chính bao gồm: Curve Finance (pool thanh khoản USR/USDC sụp đổ ngay lập tức), Morpho (vị thế đòn bẩy sử dụng USR làm tài sản thế chấp kích hoạt thanh lý), Fluid và Euler (cũng tồn tại vị thế vòng lặp USR/RLP).
Cảnh báo ngành: Sự kiện này tiết lộ một điểm yếu cơ bản của stablecoin delta trung tính - điểm kết hợp giữa logic đúc tiền và chữ ký ngoài chuỗi/oracle là mặt tấn công mong manh nhất của hệ thống, bất kỳ thiết kế hiệu quả vốn nào theo kiểu "1 đô la đúc ra 1 đô la" đều phải dựa trên tiền đề kiểm toán an ninh hợp đồng cực kỳ nghiêm ngặt.
I. RESOLV VÀ USR: HIỂU HỆ THỐNG NÀY, MỚI HIỂU ĐƯỢC CUỘC TẤN CÔNG NÀY
Trước khi thảo luận về cuộc tấn công, chúng ta phải hiểu rõ USR hoạt động như thế nào - bởi vì kẻ tấn công đã lợi dụng phần tinh tế nhất và cũng mong manh nhất trong thiết kế của nó.
Cơ chế cốt lõi của USR: Stablecoin Delta Trung tính
USR không phải là stablecoin được hỗ trợ bởi tiền gửi ngân hàng như USDT, cũng không phải là stablecoin thế chấp vượt mức như DAI. Nó là stablecoin delta trung tính - một kiến trúc đạt được rủi ro ròng trung tính thông qua "một tay nắm giữ ETH spot + một tay short hợp đồng vĩnh cửu ETH" [Chú thích 1].
Logic như sau:
Khi bạn gửi 1 USD ETH để đúc 1 USR, giao thức Resolv đồng thời mở một vị thế short ETH với khối lượng tương đương trên thị trường hợp đồng vĩnh cửu. ETH tăng, spot kiếm lời, hợp đồng thua lỗ; ETH giảm, hợp đồng kiếm lời, spot thua lỗ - hai bên bù trừ, giá trị tài sản ròng luôn xấp xỉ 1 USD. Điều này tách USR khỏi giá ETH, đồng thời duy trì neo 1:1 với USD [Chú thích 2].
Ưu điểm của kiến trúc này là hiệu quả vốn cực cao: bạn chỉ cần 1 USD ETH là có thể đúc ra 1 USR, không cần thế chấp vượt mức. Nguồn thu nhập đến từ funding rate của vị thế phòng ngừa rủi ro (phí mà phe long trả cho phe short) và lợi nhuận từ staking ETH, do đó người nắm giữ USR có thể nhận được lợi suất hàng năm khoảng 5-6%, phiên bản staking stUSR còn có lãi suất cao hơn [Chú thích 3].

Kiến trúc hai lớp: Cách ly rủi ro giữa USR và RLP
Để giải quyết vấn đề "ai sẽ gánh chịu rủi ro vận hành giao thức", Resolv đã thiết kế cấu trúc token hai lớp:
Lớp USR (ưu tiên cao): Người nắm giữ được hưởng sự bảo vệ neo ổn định, tổn thất không do họ chịu;
Lớp RLP (lớp thứ cấp): Người nắm giữ RLP đóng vai trò "pool bảo hiểm" của giao thức, chịu rủi ro thị trường, rủi ro đối tác (như funding rate liên tục âm) và rủi ro hợp đồng tiềm ẩn, để đổi lấy lợi nhuận cao hơn (20-40% hàng năm) [Chú thích 4].
Quy tắc rất rõ ràng: Bất kỳ tổn thất nào, trừ vào RLP trước, sau đó mới đến USR. Khi tỷ lệ thế chấp của USR giảm xuống dưới 110%, việc mua lại RLP sẽ tự động bị đóng băng, ưu tiên bảo vệ người nắm giữ USR [Chú thích 5].
Đây là tiền đề then chốt để hiểu việc phân bổ tổn thất trong cuộc tấn công này.
Trọng tâm tấn công: Hàm đúc tiền cuối cùng đã gặp vấn đề gì?
Đây là mắt xích quan trọng nhất hiện tại và cũng là mắt xích có thông tin không đầy đủ nhất. Dữ liệu trên chuỗi đã xác nhận một điều: Kẻ tấn công đã "mua" được 50 triệu USD USR với 100.000 USD USDC [1]. Tỷ lệ đúc 1:500 này có nghĩa là việc kiểm tra số tiền đúc của hợp đồng đã hoàn toàn thất bại.
Quỹ tiền mã hóa D2 Finance đưa ra ba giả thuyết về con đường tấn công có thể xảy ra [Chú thích 9]:
Giả thuyết A: Oracle bị thao túng (Oracle Manipulation). Giá đúc USR phụ thuộc vào price oracle. Nếu kẻ tấn công có thể tạm thời hạ giá oracle trong một giao dịch (ví dụ: thông qua flash loan để bán phá giá), khiến hợp đồng nghĩ rằng giá trị tài sản người dùng gửi vào cao hơn, thì có thể đúc ra lượng USR vượt mức [Chú thích 6].
Giả thuyết B: Khóa của người ký ngoài chuỗi bị rò rỉ (Off-Chain Signer Compromise). Quy trình đúc tiền của Resolv bao gồm một bước xác minh chữ ký ngoài chuỗi - yêu cầu đúc tiền của người dùng cần được ký bởi dịch vụ backend của giao thức mới có thể thực thi. Nếu khóa ký này bị đánh cắp, kẻ tấn công có thể giả mạo lệnh đúc hợp lệ với số tiền bất kỳ, bỏ qua mọi hạn chế trên chuỗi [2].
Giả thuyết C: Thiếu kiểm tra số tiền giữa yêu cầu và thực thi (Validation Gap). Quy trình đúc tiền được chia thành hai bước: "gửi yêu cầu" và "thực thi đúc tiền". Nếu hợp đồng khi thực thi không kiểm tra nghiêm ngặt xem số tiền thực thi cuối cùng có khớp với số tiền yêu cầu hay không, kẻ tấn công có thể thay đổi tham số sau khi gửi yêu cầu và trước khi thực thi, để thực hiện việc đúc vượt mức.
Tính đến thời điểm viết báo cáo, Resolv chính thức vẫn chưa công bố phân tích nguyên nhân gốc rễ (RCA) đầy đủ về lỗ hổng, do đó mức độ ưu tiên của ba giả thuyết trên vẫn chưa thể xác nhận cuối cùng.
Đánh giá từ hiệu quả tấn công, khả năng xảy ra Giả thuyết B (khóa người ký bị rò rỉ) hoặc Giả thuyết C (thiếu logic xác minh) cao hơn - bởi vì việc thao túng oracle thường cần nhiều vốn và khó đạt được độ lệch giá cực đoan như vậy; trong khi 80 triệu USR được đúc ra, số vốn thực tế kẻ tấn công bỏ ra cực kỳ hạn chế, phù hợp hơn với đặc điểm "bỏ qua kiểm tra hợp đồng".
Kẻ tấn công thu tiền mặt như thế nào: Một kịch bản rút lui DeFi mang tính kinh điển
Sau khi có được 80 triệu USR, thách thức mà kẻ tấn công phải đối mặt là: Làm thế nào để biến stablecoin đúc giả thành giá trị thực?
D2 Finance gọi đây là "con đường thu tiền mặt của hacker DeFi mang tính kinh điển": Kẻ tấn công gửi USR thành từng đợt đến nhiều giao thức thanh khoản, ưu tiên bán ra một lượng lớn vào pool USR/USDC của Curve Finance (pool thanh khoản lớn nhất của USR, khối lượng giao dịch hàng ngày 3,6 triệu USD) [Chú thích 10].
Bởi vì thanh khoản của Curve là có hạn, khi 80 triệu USR đột ngột tràn vào, pool bị đập xuyên thủng hoàn toàn - giá USR trong 17 phút đã giảm từ 1 USD xuống 2,5 cent. Kẻ tấn công không kỳ vọng bán hết với giá 1 USD, mà dần dần chuyển đổi thành USDC/USDT trong khoảng giá 0,25 USD ~ 0,5 USD, cuối cùng chuyển đổi số tiền arbitrage thành ETH để hoàn tất việc rút ra.
PeckShield ước tính, số tiền mặt thu về cuối cùng là khoảng 25 triệu USD [Chú thích 11] - xét đến tổn thất trượt giá do một lượng lớn USR được bán ở mức giá cực thấp, con số này có nghĩa là tỷ lệ rút thực tế của kẻ tấn công là khoảng 30% (25 triệu/80 triệu). 7 phần còn lại của "giá trị" đã biến mất trong mức trượt giá khổng lồ khi thanh khoản cạn kiệt.

III. SAU KHI MẤT NEO: ĐIỀU GÌ ĐÃ XẢY RA VỚI USR, RLP VÀ HỆ THỐNG THẾ CHẤP
Tỷ lệ thế chấp của USR sụp đổ ngay lập tức
Khi hoạt động bình thường, USR được hỗ trợ 1:1 bởi ETH + vị thế phòng ngừa rủi ro. Nhưng sau khi 80 triệu USR không có thế chấp được đúc vào hệ thống, tài sản thực tương ứng với toàn bộ nguồn cung USR xa mới đủ để mua lại theo tỷ lệ 1:1 - tỷ lệ thế chấp giảm mạnh xuống dưới 100%.
Điều này trực tiếp kích hoạt cơ chế bảo vệ ở lớp RLP - về lý thuyết, giao thức sẽ đóng băng việc mua lại RLP, ưu tiên bảo vệ người nắm giữ USR. Nhưng đồng thời, do bản thân USR đã mất neo (giao dịch trên thị trường thứ cấp với giá khoảng 0,87 USD), người nắm giữ USR cũng phải đối mặt với tổn thất khi bán ra theo giá thị trường.


