Đây là loại lỗi khiến các đội ngũ giao thức phải thức trắng đêm. Một vụ khai thác trị giá 5 triệu đô la trên ZKSwap, được kích hoạt bởi một câu lệnh duy nhất để ở sai vị trí. Dưới đây là một cái nhìn sâu sắc về cách nó xảy ra, và cách giám sát onchain có thể đã ngăn chặn được điều này. 🧵
1/ Vào ngày 9 tháng 7, GMX đã bị hack với số tiền 42 triệu đô la. Nhưng một điều khác đã xảy ra trong ngày hôm đó và hầu như không ai để ý: cầu nối của ZKSwap đã bị rút cạn 5 triệu đô la một cách lặng lẽ. Điều thú vị? Không có một cuộc tấn công tinh vi nào liên quan. Chỉ là một chức năng quan trọng đã… không làm gì cả.
2/ ZKSwap là một zk-rollup được xây dựng trên Ethereum. Giống như nhiều rollup khác, nó sử dụng một cầu nối để di chuyển tài sản giữa L1 và L2. Như một biện pháp bảo vệ, cầu nối bao gồm một "Chế độ Exodus", một cách để người dùng lấy lại tiền mà không cần đến nhà điều hành. Về lý thuyết, đó là một ý tưởng tuyệt vời. Trong thực tế…
3/ Chế độ Exodus cho phép người dùng tự tay chứng minh rằng họ đã sở hữu token trong trạng thái L2 đã được xác minh gần nhất. Đây là một cơ chế dự phòng: không cần tin tưởng, tự quản lý, không tương tác. Nhưng việc triển khai của ZKSwap có một lỗi nghiêm trọng: Chức năng chịu trách nhiệm xác minh các chứng cứ không xác minh bất cứ điều gì. Theo nghĩa đen.
4/ Đây là mã mà lẽ ra đã ngăn chặn cuộc tấn công 👇 Nhìn thoáng qua, nó trông giống như một trình xác minh zk-proof thực sự. Nhưng hãy nhìn kỹ dòng đầu tiên: return true; Chỉ vậy thôi. Không có gì khác chạy.
5/ Kết quả? Mọi "bằng chứng" rút tiền (dù có giả mạo đến đâu) đều được xác thực. Hợp đồng chấp nhận các yêu cầu tùy ý về số dư token... và ghi có chúng như thể chúng là thật. Nó đã biến một cơ chế dự phòng không cần tin cậy thành một vòi nước không được bảo vệ.
6/ Kẻ tấn công không cần những khai thác phức tạp - chỉ cần gọi exit() nhiều lần với dữ liệu giả. Họ đã vượt qua các kiểm tra số dư, rút tiền qua nhiều token, và lợi dụng logic nullifier yếu để tránh bị phát hiện. Tất cả trong khi hợp đồng nói: ✅
7/ Đây không phải là một trường hợp hiếm hoi nào đó. Đây là logic cốt lõi cho việc phục hồi tài sản, hoàn toàn để ngỏ. Và vì Chế độ Exodus hiếm khi được kích hoạt, con đường bị hỏng đã không được chú ý... trong nhiều tháng.
8/ Đây là những điều đáng lẽ phải kích hoạt chuông báo: • Chế độ Exodus được kích hoạt sau một thời gian dài không hoạt động • Hàng chục yêu cầu rút tiền xảy ra cùng một lúc • Sự gia tăng đột ngột trong các thay đổi số dưToWithdraw Tất cả đều có thể nhìn thấy và có thể đã được ngăn chặn bằng cách giám sát onchain theo thời gian thực.
9/ Vậy bài học là gì? • Mã khẩn cấp vẫn là mã sản xuất • Các đường dẫn dự phòng không có tác dụng nếu chúng không hoạt động • Giám sát thời gian thực không phải là tùy chọn, mà là điều sống còn
Hiển thị ngôn ngữ gốc
34,15 N
379
Nội dung trên trang này được cung cấp bởi các bên thứ ba. Trừ khi có quy định khác, OKX không phải là tác giả của bài viết được trích dẫn và không tuyên bố bất kỳ bản quyền nào trong các tài liệu. Nội dung được cung cấp chỉ nhằm mục đích thông tin và không thể hiện quan điểm của OKX. Nội dung này không nhằm chứng thực dưới bất kỳ hình thức nào và không được coi là lời khuyên đầu tư hoặc lời chào mời mua bán tài sản kỹ thuật số. Việc sử dụng AI nhằm cung cấp nội dung tóm tắt hoặc thông tin khác, nội dung do AI tạo ra có thể không chính xác hoặc không nhất quán. Vui lòng đọc bài viết trong liên kết để biết thêm chi tiết và thông tin. OKX không chịu trách nhiệm về nội dung được lưu trữ trên trang web của bên thứ ba. Việc nắm giữ tài sản kỹ thuật số, bao gồm stablecoin và NFT, có độ rủi ro cao và có thể biến động rất lớn. Bạn phải cân nhắc kỹ lưỡng xem việc giao dịch hoặc nắm giữ tài sản kỹ thuật số có phù hợp hay không dựa trên tình hình tài chính của bạn.