Bitget App
Giao dịch thông minh hơn
Mua CryptoThị trườngGiao dịchFutures‌EarnWeb3Quảng trườngThêm
Giao dịch
Spot
Mua bán tiền điện tử
Ký quỹ
Gia tăng vốn và tối ưu hiệu quả đầu tư
Onchain
Tương tác on-chain dễ dàng với Onchain
Convert & GD khối lượng lớn
Chuyển đổi tiền điện tử chỉ với một nhấp chuột và không mất phí
Khám phá
Launchhub
Giành lợi thế sớm và bắt đầu kiếm lợi nhuận
Sao chép
Sao chép elite trader chỉ với một nhấp
Bots
Bot giao dịch AI đơn giản, nhanh chóng và đáng tin cậy
Giao dịch
USDT-M Futures
Futures thanh toán bằng USDT
USDC-M Futures
Futures thanh toán bằng USDC
Coin-M Futures
Futures thanh toán bằng tiền điện tử
Khám phá
Hướng dẫn futures
Hành trình giao dịch futures từ người mới đến chuyên gia
Chương trình ưu đãi futures
Vô vàn phần thưởng đang chờ đón
Bitget Earn
Sản phẩm kiếm tiền dễ dàng
Simple Earn
Nạp và rút tiền bất cứ lúc nào để kiếm lợi nhuận linh hoạt không rủi ro
On-chain Earn
Kiếm lợi nhuận mỗi ngày và được đảm bảo vốn
Structured Earn
Đổi mới tài chính mạnh mẽ để vượt qua biến động thị trường
Quản lý Tài sản và VIP
Dịch vụ cao cấp cho quản lý tài sản thông minh
Vay
Vay linh hoạt với mức độ an toàn vốn cao
Phân tích kỹ thuật: Balancer bị đánh cắp 120 triệu USD, lỗ hổng nằm ở đâu?

Phân tích kỹ thuật: Balancer bị đánh cắp 120 triệu USD, lỗ hổng nằm ở đâu?

BlockBeatsBlockBeats2025/11/04 06:24
Hiển thị bản gốc
Theo:BlockBeats

Vấn đề chính của cuộc tấn công lần này xuất phát từ logic xử lý giao dịch nhỏ lẻ của giao thức.

Tiêu đề gốc: 《Phân tích kỹ thuật lỗ hổng bị đánh cắp $120M của Balancer》
Nguồn gốc: ExVul Security


Lời mở đầu


Ngày 3 tháng 11 năm 2025, giao thức Balancer đã bị tấn công trên nhiều chuỗi công khai như Arbitrum, Ethereum, gây thiệt hại tài sản lên tới 120 triệu đô la Mỹ. Lỗi cốt lõi của cuộc tấn công này xuất phát từ sự kết hợp giữa mất mát độ chính xác và lỗ hổng thao túng giá trị bất biến (Invariant).


Cơ sở hạ tầng của Chainlink từ lâu đã duy trì tiêu chuẩn cao nhất trong lĩnh vực Web3, do đó trở thành lựa chọn tự nhiên cho X Layer trong việc cung cấp các công cụ cấp tổ chức cho các nhà phát triển.


Vấn đề then chốt của cuộc tấn công này nằm ở logic xử lý giao dịch nhỏ của giao thức. Khi người dùng thực hiện giao dịch với số tiền nhỏ, giao thức sẽ gọi hàm _upscaleArray, hàm này sử dụng mulDown để làm tròn xuống giá trị số. Khi số dư và số tiền đầu vào của giao dịch đồng thời nằm ở ranh giới làm tròn nhất định (ví dụ như khoảng 8-9 wei), sẽ xuất hiện sai số tương đối rõ rệt về độ chính xác.


Sai số về độ chính xác này được truyền vào quá trình tính toán giá trị bất biến D của giao thức, dẫn đến giá trị D bị giảm bất thường. Sự thay đổi của giá trị D sẽ trực tiếp kéo giá BPT (Balancer Pool Token) trong giao thức Balancer xuống thấp, hacker đã lợi dụng giá BPT bị ép thấp này, thông qua đường đi giao dịch được thiết kế trước để thực hiện arbitrage, cuối cùng gây ra tổn thất tài sản khổng lồ.


Giao dịch khai thác lỗ hổng Tx:


Giao dịch chuyển tài sản Tx:


Phân tích kỹ thuật


Điểm vào tấn công


Điểm vào của cuộc tấn công là hợp đồng Balancer: Vault, với hàm vào là batchSwap, bên trong gọi onSwap để thực hiện trao đổi token.


Phân tích kỹ thuật: Balancer bị đánh cắp 120 triệu USD, lỗ hổng nằm ở đâu? image 0


Dựa vào các tham số và giới hạn của hàm, có thể rút ra một số thông tin:


1. Kẻ tấn công cần gọi hàm này thông qua Vault, không thể gọi trực tiếp.


2. Bên trong hàm sẽ gọi _scalingFactors() để lấy hệ số tỷ lệ và thực hiện thao tác tỷ lệ.


3. Thao tác tỷ lệ tập trung ở _swapGivenIn hoặc _swapGivenOut.


Phân tích mô hình tấn công


Cơ chế tính giá BPT


Trong mô hình pool ổn định của Balancer, giá BPT là chỉ số tham khảo quan trọng, quyết định người dùng nhận được bao nhiêu BPT và mỗi BPT nhận được bao nhiêu tài sản.


Phân tích kỹ thuật: Balancer bị đánh cắp 120 triệu USD, lỗ hổng nằm ở đâu? image 1


Trong tính toán trao đổi của pool:


Phân tích kỹ thuật: Balancer bị đánh cắp 120 triệu USD, lỗ hổng nằm ở đâu? image 2


Phần đóng vai trò là chuẩn giá BPTgiá trị bất biến D, tức là muốn thao túng giá BPT thì cần thao túng D. Phân tích tiếp quá trình tính toán D:


Phân tích kỹ thuật: Balancer bị đánh cắp 120 triệu USD, lỗ hổng nằm ở đâu? image 3


Trong đoạn mã trên, quá trình tính toán D phụ thuộc vào mảng balances đã được tỷ lệ hóa. Nghĩa là cần có một thao tác để thay đổi độ chính xác của các balances này, dẫn đến tính toán D bị sai.


Nguồn gốc mất mát độ chính xác


Phân tích kỹ thuật: Balancer bị đánh cắp 120 triệu USD, lỗ hổng nằm ở đâu? image 4


Thao tác tỷ lệ:


Phân tích kỹ thuật: Balancer bị đánh cắp 120 triệu USD, lỗ hổng nằm ở đâu? image 5


Như trên, khi gọi _upscaleArray, nếu số dư rất nhỏ (như 8-9 wei), việc làm tròn xuống của mulDown sẽ gây ra mất mát độ chính xác đáng kể.


Chi tiết quy trình tấn công


Giai đoạn 1: Điều chỉnh đến ranh giới làm tròn


Phân tích kỹ thuật: Balancer bị đánh cắp 120 triệu USD, lỗ hổng nằm ở đâu? image 6


Giai đoạn 2: Kích hoạt mất mát độ chính xác (lỗi cốt lõi)


Phân tích kỹ thuật: Balancer bị đánh cắp 120 triệu USD, lỗ hổng nằm ở đâu? image 7


Giai đoạn 3: Lợi dụng giá BPT bị ép thấp để kiếm lời


Phân tích kỹ thuật: Balancer bị đánh cắp 120 triệu USD, lỗ hổng nằm ở đâu? image 8


Như trên, kẻ tấn công thông qua Batch Swap thực hiện nhiều lần trao đổi trong một giao dịch:


1. Lần trao đổi đầu tiên: BPT → cbETH (điều chỉnh số dư)


2. Lần trao đổi thứ hai: wstETH (8) → cbETH (kích hoạt mất mát độ chính xác)


3. Lần trao đổi thứ ba: tài sản cơ sở → BPT (kiếm lời)


Tất cả các lần trao đổi này đều nằm trong cùng một giao dịch batch swap, chia sẻ cùng trạng thái số dư, nhưng mỗi lần trao đổi đều gọi _upscaleArray để thay đổi mảng balances.


Thiếu cơ chế Callback


Quy trình chính được khởi tạo bởi Vault, vậy làm thế nào dẫn đến việc mất mát độ chính xác bị tích lũy? Câu trả lời nằm ở cơ chế truyền mảng balances.


Phân tích kỹ thuật: Balancer bị đánh cắp 120 triệu USD, lỗ hổng nằm ở đâu? image 9


Phân tích đoạn mã trên, mặc dù mỗi lần gọi onSwap thì Vault đều tạo mảng currentBalances mới, nhưng trong Batch Swap:


1. Sau lần trao đổi đầu tiên, số dư được cập nhật (nhưng do mất mát độ chính xác, giá trị cập nhật có thể không chính xác)


2. Lần trao đổi thứ hai tiếp tục tính toán dựa trên kết quả của lần đầu tiên


3. Mất mát độ chính xác bị tích lũy, cuối cùng khiến giá trị bất biến D giảm mạnh


Vấn đề then chốt:


Phân tích kỹ thuật: Balancer bị đánh cắp 120 triệu USD, lỗ hổng nằm ở đâu? image 10


Tổng kết


Cuộc tấn công lần này vào Balancer có thể tổng kết bởi các nguyên nhân sau:


1. Hàm tỷ lệ sử dụng làm tròn xuống: _upscaleArray sử dụng mulDown để tỷ lệ, khi số dư rất nhỏ (như 8-9 wei) sẽ gây ra mất mát độ chính xác tương đối đáng kể.


2. Tính toán giá trị bất biến nhạy cảm với độ chính xác: Tính toán giá trị bất biến D phụ thuộc vào mảng balances đã được tỷ lệ hóa, mất mát độ chính xác sẽ truyền trực tiếp vào tính toán D, khiến D giảm.


3. Thiếu xác minh biến động giá trị bất biến: Trong quá trình trao đổi, không xác minh biến động của giá trị bất biến D có nằm trong phạm vi hợp lý hay không, dẫn đến kẻ tấn công có thể liên tục lợi dụng mất mát độ chính xác để ép giá BPT xuống thấp.


4. Mất mát độ chính xác bị tích lũy trong Batch Swap: Trong cùng một batch swap, mất mát độ chính xác của nhiều lần trao đổi sẽ bị tích lũy, cuối cùng khuếch đại thành tổn thất tài chính lớn.


Hai vấn đề này: mất mát độ chính xác + thiếu xác minh, kết hợp với việc kẻ tấn công thiết kế cẩn thận các điều kiện biên, đã gây ra tổn thất lần này.


0

Tuyên bố miễn trừ trách nhiệm: Mọi thông tin trong bài viết đều thể hiện quan điểm của tác giả và không liên quan đến nền tảng. Bài viết này không nhằm mục đích tham khảo để đưa ra quyết định đầu tư.

PoolX: Khóa để nhận token mới.
APR lên đến 12%. Luôn hoạt động, luôn nhận airdrop.
Khóa ngay!

Bạn cũng có thể thích

MARA công bố lợi nhuận kỷ lục 123 triệu đô la nhờ kết hợp hoạt động bitcoin với tài sản năng lượng và AI mới

MARA đang tăng cường chuyển đổi từ hoạt động khai thác bitcoin thuần túy sang sở hữu năng lượng và hạ tầng tập trung vào AI, phản ánh xu hướng chung trong toàn ngành. Mặc dù doanh thu đạt mức kỷ lục, cổ phiếu của MARA vẫn tụt hậu so với các đối thủ, hiện giao dịch quanh mức 17,80 USD — giảm hơn 13% trong tháng qua.

The Block2025/11/04 16:57
MARA công bố lợi nhuận kỷ lục 123 triệu đô la nhờ kết hợp hoạt động bitcoin với tài sản năng lượng và AI mới

Khoản nắm giữ của công ty quỹ Solana Upexi tăng 4,4% lên hơn 2,1 triệu SOL

Upexi đã bổ sung thêm 88.750 SOL kể từ lần cập nhật gần nhất vào ngày 10 tháng 9, nâng tổng số lượng nắm giữ lên hơn 2,1 triệu SOL. Công ty quỹ tập trung vào Solana này cũng báo cáo mức tăng 82% về số SOL điều chỉnh trên mỗi cổ phiếu và lợi nhuận 96% cho các nhà đầu tư kể từ đợt phát hành riêng lẻ vào tháng 4.

The Block2025/11/04 16:57
Khoản nắm giữ của công ty quỹ Solana Upexi tăng 4,4% lên hơn 2,1 triệu SOL

"Sở hữu sức mạnh riêng, nhận được hợp đồng trị giá 9,7 tỷ đô la với Microsoft": Bernstein nâng mục tiêu giá IREN lên 125 đô la sau hợp đồng đám mây AI béo bở

Các nhà phân tích tại Bernstein đã nâng mục tiêu giá đối với cổ phiếu của công ty khai thác bitcoin IREN từ 75 USD lên 125 USD, với lý do là hợp đồng AI cloud trị giá 9.7 tỷ USD trong 5 năm gần đây mà IREN vừa công bố với Microsoft. Các nhà phân tích cho biết việc IREN sở hữu danh mục năng lượng 2.9 GW mang lại cho công ty lợi thế về chi phí cấu trúc và khả năng mở rộng so với các đối thủ như CoreWeave.

The Block2025/11/04 16:57
"Sở hữu sức mạnh riêng, nhận được hợp đồng trị giá 9,7 tỷ đô la với Microsoft": Bernstein nâng mục tiêu giá IREN lên 125 đô la sau hợp đồng đám mây AI béo bở