Tôi đã audit một trong những pool lớn nhất của giao thức LRT EigenLayer phiên bản fork. Kết quả: 3 lỗ hổng nghiêm trọng. Nhưng điều thú vị không phải bug, mà là hành vi của LP.
Trong 7 ngày qua, TVL của pool giảm từ 120 triệu USD xuống còn 72 triệu USD. Mất 40%. Ai đang rút tiền? Và tại sao họ rút đúng lúc trước khi tôi publish report?
Hook Ngày 15/5, một địa chỉ ví whale rút 15,000 ETH khỏi pool LRT trên Arbitrum. Không phải giao dịch thông thường – họ dùng smart contract tách lệnh thành 200 giao dịch nhỏ, mỗi giao dịch 75 ETH, chạy song song qua 10 relay khác nhau. Mục tiêu: tránh slippage và không để MEV bot phát hiện. Tôi phát hiện điều này khi phân tích dữ liệu mempool của mình.
Context Pool này là một biến thể của Restaking trên EigenLayer, cho phép người dùng gửi ETH nhận lại LRT token, sau đó farm thêm điểm từ nhiều AVS (Actively Validated Services). APY danh nghĩa ~25%, nhưng thực tế khi tính phí gas và chi phí cơ hội, net APY chỉ ~8-12%. TVL cao chủ yếu nhờ airdrop farming kỳ vọng.
Tôi đã phân tích hợp đồng thông minh của pool này từ tháng 4. Phát hiện một lỗi trong hàm withdraw(): nếu người dùng gọi requestWithdrawal và sau đó claimWithdrawal trong cùng một block, hợp đồng sẽ tính sai số lượng LRT cần burn, dẫn đến mint thêm token mới. Tôi đã báo cáo riêng cho team, họ fix trong 2 ngày. Nhưng điều tôi quan tâm là: liệu có ai đó đã exploit lỗi này trước khi fix?
Core – Phân Tích Dòng Lệnh Tôi viết script Python để truy vết tất cả giao dịch requestWithdrawal và claimWithdrawal trong khoảng thời gian từ khi pool launch đến khi fix. Kết quả: có 3 địa chỉ thực hiện pattern khả nghi.
Địa chỉ A: 0x7a…c3d – thực hiện 12 lần request và claim trong cùng block, mỗi lần cách nhau 1-2 block. Lợi nhuận thu được: ~120 ETH từ mint thêm. Địa chỉ này đã rút toàn bộ tiền trước khi tôi publish report 3 ngày. Trùng hợp? Tôi không tin.
Địa chỉ B: 0x9e…f1a – một bot MEV chuyên dụng. Nó không exploit lỗi withdraw, mà lợi dụng cơ chế deposit và withdraw không có cooldown để sandwich attack LP. Trong 7 ngày, bot này kiếm 45 ETH từ chênh lệch giá LRT/ETH. Hành vi của nó giải thích một phần TVL giảm: LP bị MEV ăn thịt, họ rút lui.
Địa chỉ C: 0x4b…2d8 – đây mới là vấn đề thực sự. Một smart contract lạ, không public source code, thực hiện deposit và withdraw liên tục, tạo ra volume khủng, làm tăng APR cho pool, thu hút thêm LP. Nhưng khi phân tích kỹ, tôi thấy nó không hề có lợi nhuận thực. Nó chỉ đốt gas để tạo ảo giác thanh khoản. Đây là một dạng Sybil attack để farm airdrop. 2 ngày trước, contract này rút toàn bộ 5,000 ETH, khiến pool mất thanh khoản đột ngột, gây ra hiệu ứng domino.
Contrarian Báo cáo chính thức từ team pool nói rằng TVL giảm do “thị trường đi ngang, người dùng chốt lời”. Nhưng dữ liệu on-chain cho thấy: người dùng không chốt lời, họ bỏ chạy vì mất niềm tin. Lý do thực sự: sự hiện diện của bot MEV và Sybil attacker đã phá vỡ cơ chế incentive. Khi LP thấy lợi nhuận bị bot cướp mất, họ rút. Khi Sybil attacker rút, TVL giảm thêm, gây panic.
Góc nhìn trái chiều: Không phải tất cả đều xấu. Chính sự rút lui này làm sạch pool khỏi những kẻ lợi dụng. Sau khi TVL giảm, APR thực tế cho LP trung thành tăng từ 8% lên 15% (vì phần thưởng không đổi). Nhưng liệu có đủ LP ở lại để duy trì pool? Câu trả lời là không, nếu team không có biện pháp ngăn chặn MEV.
Takeaway Mỗi lệnh có một câu chuyện. Câu chuyện của pool này là: TVL không phải tài sản, đó là trách nhiệm. Nếu bạn xây pool mà không có cơ chế chống MEV và chống Sybil, bạn đang mời gọi kẻ xấu đến hút máu. Bạn có dám audit contract trước khi deposit? Hay bạn chỉ nhìn vào APY?
Dữ liệu tôi thu thập đã được chia sẻ với cộng đồng copy trading của mình. Kết quả: 200 người đã rút khỏi pool này từ tuần trước. Còn bạn, bạn làm gì khi nhìn thấy một pool với APR 25%?
