Phân tích sơ bộ về sự cố tấn công Balancer V2

Bài viết này được dịch máy
Xem bản gốc

Vào ngày 3 tháng 11, giao thức Balancer V2 và các dự án fork của nó đã bị tấn công trên nhiều Chuỗi, gây ra thiệt hại nghiêm trọng hơn 120 triệu đô la. BlockSec đã đưa ra cảnh báo sớm ngay khi có cơ hội [1] và đưa ra kết luận phân tích sơ bộ [2]. Đây là một cuộc tấn công cực kỳ phức tạp. Phân tích sơ bộ của chúng tôi cho thấy nguyên nhân gốc rễ là kẻ tấn công đã thao túng bất biến, do đó làm sai lệch phép tính giá của BPT (Mã thông báo nhóm Balancer) -- tức là mã thông báo NHÀ CUNG CẤP THANH KHOẢN của ool -- để có thể kiếm lời trong một nhóm ổn định thông qua hoạt động batchSwap.

Thông tin bối cảnh

1. Tỷ lệ và Làm tròn

Để chuẩn hóa các chữ số thập phân của token khác nhau, hợp đồng Balancer sẽ:

  • nâng cấp: Nâng cấp số dư và số tiền lên độ chính xác nội bộ thống nhất trước khi thực hiện tính toán;

  • giảm quy mô: Giảm kết quả xuống độ chính xác ban đầu và thực hiện làm tròn theo hướng (ví dụ: đầu vào thường được làm tròn lên để đảm bảo nhóm không bị lấp đầy quá mức; đường dẫn đầu ra thường bị cắt cụt xuống).

Kết luận: Trong cùng một giao dịch, hướng làm tròn không đối xứng được sử dụng ở các giai đoạn khác nhau có thể dẫn đến độ lệch nhỏ có hệ thống khi được thực hiện nhiều lần theo các bước rất nhỏ.

2. Giá của D và BPT

Nhóm ổn định có thể cấu hình [3] của giao thức Balancer V2 và giao thức fork đã bị ảnh hưởng bởi cuộc tấn công lần . Nhóm ổn định được sử dụng cho tài sản dự kiến ​​sẽ duy trì tỷ lệ trao đổi chặt chẽ 1:1 (hoặc được trao đổi theo tỷ giá hối đoái đã biết), cho phép trao đổi số lượng lớn mà không gây ra cú sốc giá đáng kể, do đó tài sản .

  • Nhóm sử dụng Stable Math (mô hình StableSwap dựa trên Curve), trong đó bất biến D biểu thị "tổng giá trị ảo" của nhóm.

  • Giá ước tính của BPT (Pool's NHÀ CUNG CẤP THANH KHOẢN Token) là:

Công thức trên cho thấy nếu D đượ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ự được rút), giá BPT sẽ rẻ hơn . BTP đại diện cho thị phần của nhóm và được sử dụng để tính toán số lượng dự trữ nhóm có thể thu được khi rút thanh khoản. Do đó, nếu kẻ tấn công có thể thu đượ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 đổ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 đó token (cbETH) đến điểm tới hạn (số lượng = 9) để làm tròn. Bước này mở đường cho việc mấ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 tính toán 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 chia tỷ lệ số lượng token, Δx được tính toán nhỏ hơn một chút (từ 8,918 xuống 8), khiến Δy bị đánh giá thấp và bất biến D (được suy ra từ mô hình StableSwap của Curve) cũng nhỏ hơn. Vì giá BPT = D / tổng nguồn cung, giá BPT bị giảm một cách giả tạo.

Giai đoạn 3: Kẻ tấn công hoán đổi ngược tài sản cơ bản trở lại BPT, khôi phục số dư trong nhóm đồng thời hưởng lợi từ mức giá BPT giảm - thu được nhiều mã thông báo BPT hơn.

Cuối cùng, kẻ tấn công đã sử dụng một giao dịch có lợi nhuận khác để rút thanh khoản, do đó sử dụng BPT bổ sung để mua tài sản cơ bản khác (cbETH và wstETH) trong Pool và do đó kiếm lời.

Tấn công giao dịch :

https://app.blocksec.com/explorer/tx/arbitrum / Arbitrum

Giao dịch có lợi nhuận:

https://app.blocksec.com/explorer/tx/arbitrum / Arbitrum

Thẩm quyền giải quyết:

[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

Nguồn
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
Thêm vào Yêu thích
Bình luận