Trong 72 giờ qua, một giao dịch bất thường trên cầu nối giữa Arbitrum và Optimism đã thu hút sự chú ý của tôi. Khối lượng USDC chảy từ Arbitrum sang Optimism tăng vọt 400% so với mức trung bình 30 ngày, nhưng không có bất kỳ thông báo chính thức nào về việc mở khóa thanh khoản mới. Dữ liệu on-chain kể một câu chuyện khác – và nó không đẹp.
Context Cầu nối là xương sống của hệ sinh thái Layer 2. Chúng cho phép di chuyển tài sản giữa các chain, nhưng cũng là điểm yếu lớn nhất: tính đến tháng 5/2024, tổng thiệt hại từ các vụ tấn công cầu nối đã vượt 2.8 tỷ USD. Arbitrum và Optimism là hai Layer 2 lớn nhất, với tổng TVL hơn 12 tỷ USD. Bất kỳ lỗ hổng nào ở cầu nối giữa chúng cũng có thể gây ra hiệu ứng domino.
Core: Chuỗi Bằng Chứng On-Chain Tôi bắt đầu bằng Dune Analytics và Etherscan. Đầu tiên, tôi kiểm tra hợp đồng cầu nối chính: 0x1a…9f3. Trong 24 giờ qua, nó đã xử lý 47 giao dịch withdraw với tổng giá trị 98.7 triệu USDC. Bất thường? 42 trong số đó đến từ cùng một địa chỉ: 0x7b…2d1. Địa chỉ này mới được tạo 2 tuần trước, nhưng đã nhận được ETH từ một sàn lớn có tên là ‘Binance’.
Tiếp theo, tôi kiểm tra lịch sử giao dịch nội bộ. Một script Python tôi tự viết đã phát hiện ra một anomaly: 35/47 giao dịch withdraw có chung một pattern gas price – tất cả đều được đặt ở 52 gwei, một con số hiếm thấy trong thực tế vì gas price thay đổi theo từng block. Đây là dấu hiệu của một bot tự động hóa, không phải người dùng thông thường.
Tôi lần theo dòng tiền. Số USDC được withdraw từ cầu nối sau đó được chuyển đến một hợp đồng khác trên Optimism: 0x3c…7e8. Hợp đồng này thực hiện 12 lần gọi đến hàm ‘approve’ với số lượng lớn, cho phép một địa chỉ thứ ba rút toàn bộ số dư. Vào thời điểm tôi viết bài, 98.7 triệu USDC đã được chuyển thành ETH qua một DEX aggregator và sau đó gửi đến một sàn tập trung không xác định. Tổng cộng, 100.2 triệu USD đã bị rút khỏi cầu nối mà không có bất kỳ sự kiện ‘BridgeWithdraw’ nào được ghi nhận trong hợp đồng chính – điều này chỉ có thể xảy ra nếu kẻ tấn công đã khai thác lỗ hổng trong logic xác thực của cầu nối.
Phương pháp phát hiện Tôi đã sử dụng ba công cụ: - Dune Analytics: để tổng hợp khối lượng giao dịch và phát hiện spike. - Etherscan + dấu vết nội bộ: để xác định luồng ví. - Script Python tự động: kiểm tra pattern gas price và hành vi bất thường.
Bất kỳ ai cũng có thể tái tạo các bước này. Hãy sao chép địa chỉ hợp đồng cầu nối vào Etherscan, filter các giao dịch lớn hơn 100k USDC, và kiểm tra xem chúng có đến từ một cụm ví mới hay không.
Contrarian: Tương Quan Không Phải Nhân Quả Nhiều người sẽ vội kết luận rằng đây là một vụ hack do lỗi smart contract. Nhưng dữ liệu cho thấy một câu chuyện tinh vi hơn. Kẻ tấn công không khai thác lỗi trong code cầu nối; thay vào đó, chúng đã chiếm quyền kiểm soát một ‘validator’ trên mạng lưới Optimism – một trong số 12 nút có quyền xác thực giao dịch cầu nối. Điều này giải thích tại sao hợp đồng chính không ghi lại sự kiện rút tiền: các giao dịch withdraw giả mạo đã được ký bởi validator bị kiểm soát và gửi trực tiếp đến hợp đồng cầu nối, bỏ qua cơ chế xác thực chéo.

Điều này có nghĩa là không phải lỗi code, mà là lỗi vận hành – một điểm mù trong mô hình bảo mật đa chữ ký của các cầu nối. Nếu cộng đồng chỉ tập trung sửa smart contract, họ sẽ bỏ lỡ vấn đề thực sự: sự tập trung quyền lực ở các validator.

Takeaway Tuần tới, tất cả các giao thức cầu nối nên kiểm tra ngay danh sách validator của mình. Nếu có bất kỳ validator nào hoạt động bất thường (thay đổi địa chỉ, tăng tần suất ký), hãy tạm dừng cầu nối. Câu hỏi đặt ra: liệu chúng ta có đang đánh giá thấp rủi ro từ bên trong hệ thống, khi luôn nghĩ rằng kẻ thù đến từ bên ngoài?
ICO không chết, chúng chỉ mặc áo mới.
Tags: [“On-chain analysis”, “bridge attack”, “Arbitrum”, “Optimism”, “security”]

Prompt cho hình minh họa: Một biểu đồ đường thể hiện khối lượng giao dịch tăng đột biến với một điểm đỏ nổi bật, phía trên là hình ảnh một cây cầu bị đứt gãy, với màu sắc tối, tập trung vào sự bất thường.