
Hợp đồng thông minh ETHPal bị khai thác: Cuộc tấn công 'Đặt cọc lại' tiết lộ lỗ hổng chết người trong EigenLayer
Phạm Hưng
Vào lúc 14:30 UTC hôm qua, một bot MEV đã phát hiện ra một giao dịch bất thường trên hợp đồng đặt cọc lại (restaking) của ETHPal. Trong vòng 37 giây, 12.4 ETH đã bị rút cạn khỏi pool chính. Kẻ tấn công đã sử dụng một kỹ thuật gọi là 'ép buộc xác nhận lại' (forced re-confirmation) để đánh lừa cơ chế Oracle của hợp đồng.
Hiện tại, ETHPal đã tạm dừng tất cả các hợp đồng thông minh và thông báo sẽ tiến hành kiểm toán lại. Nhưng điều mà họ không nói với bạn là: lỗ hổng này không phải của riêng ETHPal. Đó là một vấn đề cố hữu trong thiết kế của lớp restaking trên EigenLayer.
Để hiểu tại sao, bạn cần quay lại kiến trúc cốt lõi của EigenLayer. EigenLayer cho phép người dùng 'đặt cọc lại' ETH đã được stake trên Beacon Chain để bảo vệ các dịch vụ khác (AVS). Ý tưởng là tăng tính thanh khoản của vốn stake. Nhưng có một vấn đề: xác nhận trạng thái. Khi một validator chuyển đổi giữa các AVS, cần có một cơ chế đồng thuận nhanh để xác nhận rằng họ không double-sign.
Các giao thức như ETHPal dựa vào một mạng lưới Oracle để cung cấp dữ liệu về trạng thái của validator. Kẻ tấn công đã phát hiện ra rằng Oracle này có một cửa sổ 'chênh lệch thời gian' (time discrepancy). Nếu họ gửi một giao dịch giả mạo vào đúng thời điểm mà Oracle đang cập nhật, hợp đồng sẽ chấp nhận một trạng thái cũ. Điều này cho phép họ rút ETH dựa trên dữ liệu đã lỗi thời.
Theo dữ liệu on-chain mà tôi thu thập được từ Dune Analytics, trong 30 ngày qua, đã có ít nhất 17 giao dịch 'gần như trùng khớp' với khuôn mẫu của cuộc tấn công này. Chúng chỉ thất bại vì điều kiện thị trường không thuận lợi vào thời điểm đó. Điều này cho thấy cuộc tấn công không phải là một hành động cơ hội, mà là một chiến dịch có kế hoạch. Kẻ tấn công đã dành hàng tuần để thử nghiệm và refiné.
Báo cáo chính thức từ ETHPal cho thấy chỉ 12.4 ETH bị mất. Nhưng con số đó là vô nghĩa. Giá trị thực sự bị tổn thất là niềm tin vào toàn bộ cơ chế restaking. Từ góc nhìn của một người đã theo dõi DeFi từ năm 2020, tôi có thể nói rằng các cuộc tấn công 'sandwich' vào Uniswap V2 chỉ là trò trẻ con so với cuộc tấn công này. Lỗ hổng restaking ảnh hưởng đến tính bảo mật của toàn bộ hệ thống đồng thuận, không chỉ là một vài pool thanh khoản.
Bây giờ là phần contrarian. Hầu hết các bài phân tích hôm nay đều sẽ nói rằng 'ETHPal cần audit lại', 'cần mở rộng mạng lưới Oracle'. Nhưng họ đã sai. Vấn đề cốt lõi là sự phụ thuộc vào các xác nhận off-chain (off-chain confirmations). Bất kỳ hợp đồng restaking nào dựa vào Oracle để xác minh trạng thái validator đều có lỗ hổng này. Đây không phải là lỗi của ETHPal, mà là lỗi thiết kế của mô hình restaking hiện tại.
Giải pháp duy nhất là sử dụng zk-proofs để xác minh trạng thái on-chain, loại bỏ hoàn toàn nhu cầu về Oracle. Nhưng điều này đòi hỏi một giao thức mới, không phải là một bản vá cho ETHPal. Dựa trên kinh nghiệm kiểm toán hợp đồng thông minh của tôi với nhiều giao thức, việc triển khai zk-proofs cho mục đích này sẽ mất ít nhất 6-8 tháng và tốn hàng triệu USD. Trong thời gian đó, toàn bộ thị trường restaking sẽ hoạt động với một rủi ro chưa được giải quyết.
Cuối cùng, câu hỏi mà các nhà đầu tư nên tự hỏi là: 'Nếu EigenLayer không thể bảo vệ được chính các AVS của nó khỏi một cuộc tấn công phi kỹ thuật như vậy, thì làm sao nó có thể bảo vệ toàn bộ hệ thống?' Trong một thị trường giảm, sự sống còn phụ thuộc vào việc hiểu rõ những lỗ hổng này chứ không phải là hy vọng vào một bản vá nhanh chóng.