Nhóm này sử dụng Stable Math (một mô hình StableSwap dựa trên Curve) và bất biến D biểu thị "tổng giá trị ảo" của nhóm. Giá của BPT (Mã thông báo LP của Pool) xấp xỉ: [Hình ảnh giá BPT] Từ công thức trên, có thể thấy rằng nếu D có thể được làm nhỏ hơn trên giấy tờ (ngay cả khi không có khoản tiền nào thực sự bị mất), giá của BPT sẽ rẻ hơn. BTP đại diện cho một phần của nhóm, được sử dụng để tính toán số lượng dự trữ nhóm mà kẻ tấn công có thể có được khi rút thanh khoản. Do đó, nếu kẻ tấn công có thể có được nhiều BPT hơn, chúng có thể kiếm lời khi rút thanh khoản. Phân tích tấn công Lấy giao dịch tấn công trên Arbitrum làm ví dụ, hoạt động batchSwap có thể được chia thành ba giai đoạn: Giai đoạn 1: Kẻ tấn công trao đổi BPT lấy tài sản cơ sở để điều chỉnh chính xác số dư của một trong các mã thông báo (cbETH) thành ranh giới làm tròn (số lượng = 9). Bước này đặt nền tảng cho tổn thất chính xác trong giai đoạn tiếp theo. Giai đoạn hai: Kẻ tấn công đã sử dụng một số lượng được chế tạo cẩn thận (= 8) để hoán đổi giữa một tài sản cơ sở khác (wstETH) và cbETH. Do làm tròn xuống khi điều chỉnh số lượng token, Δx được tính toán nhỏ hơn một chút (từ 8,918 xuống 8), dẫn đến việc ước tính thấp Δy và bất biến D nhỏ hơn (được suy ra từ mô hình StableSwap của Curve). Vì giá BPT = D / totalSupply, giá BPT đã bị giảm một cách giả tạo. Giai đoạn Ba: Kẻ tấn công đảo ngược tài sản cơ sở trở lại BPT, khôi phục số dư trong nhóm đồng thời hưởng lợi từ giá BPT giảm – thu được nhiều token BPT hơn. Cuối cùng, kẻ tấn công sử dụng một giao dịch chốt lời khác để rút thanh khoản, qua đó sử dụng BPT dư ra để mua các tài sản cơ sở khác (cbETH và wstETH) trong nhóm để kiếm lời. Giao dịch tấn công: leaf="">https://app.blocksec.com/explorer/tx/arbitrum/0x7da32ebc615d0f29a24cacf9d18254bea3a2c730084c690ee40238b1d8b55773
Các giao dịch có lợi nhuận:
https://app.blocksec.com/explorer/tx/arbitrum/0x4e5be713d986bcf4afb2ba7362525622acf9c95310bd77cd5911e7ef12d871a9
Tham khảo:
[1] https://x.com/Phalcon_xyz/status/1985262010347696312
[2] https://x.com/Phalcon_xyz/status/1985302779263643915
[3] https://docs-v2.balancer.fi/concepts/pools/composable-stable.html