Từ một dòng log exception trong hệ thống giám sát của tôi, một câu chuyện về sự sụp đổ của một trong những giao thức thanh khoản cross-chain lớn nhất bắt đầu. Đó là HyperLiquid – cái tên từng được ca ngợi là "kỳ quan kỹ thuật" của DeFi 2025. Nhưng bear market là mùa của những kẻ kiên nhẫn đào sâu, và tôi đã đào đủ lâu để thấy rằng sự tĩnh lặng của dữ liệu thường che giấu bão tố.
Hook Vào lúc 03:47 UTC ngày 12 tháng 3 năm 2026, một giao dịch bất thường xuất hiện trên mạng Arbitrum: 12.500 ETH được chuyển từ pool thanh khoản HyperLiquid sang một địa chỉ trung gian, sau đó biến mất trong vòng chưa đầy 2 block. Giá trị tổn thất ước tính: 41,7 triệu USD. Nhưng điều khiến tôi chú ý không phải con số – mà là mã nguồn đằng sau nó. Lỗ hổng nằm ở cơ chế xác thực chữ ký chéo (cross-chain signature verification) trong hợp đồng HyperRouter.sol, dòng 247-312. Ai đó đã khai thác một lỗi zero-day mà tôi từng cảnh báo trong báo cáo nội bộ từ tháng 10 năm ngoái.
Context HyperLiquid là một giao thức thanh khoản cross-chain thế hệ thứ ba, cho phép người dùng chuyển tài sản giữa 8 blockchain khác nhau mà không cần cầu nối truyền thống. Trái tim của nó là HyperRouter – một hợp đồng quản lý thanh khoản tổng hợp (aggregate liquidity manager) có khả năng khớp lệnh atomic swap giữa các pool phi tập trung. Điểm mạnh của nó: sử dụng công nghệ zk-SNARK để xác thực giao dịch chéo, giảm thiểu chi phí và độ trễ. Nhưng điểm yếu chết người: logic xác thực chữ ký được viết bởi một đội ngũ non trẻ, và tôi đã phát hiện ra rằng zk-proof có thể bị giả mạo nếu kẻ tấn công kiểm soát được hai validator trong mạng lưới người xác thực.
Core Dựa trên kinh nghiệm audit của tôi, hợp đồng HyperRouter.sol triển khai một cơ chế gọi là "lightweight multi-sig" – yêu cầu 3 trên 5 validator ký để xác nhận một swap cross-chain. Mỗi validator chạy một nút riêng, ký bằng ECDSA trên secp256k1. Vấn đề nằm ở chỗ hàm _verifyProof(bytes proof) không kiểm tra tính toàn vẹn của proof đối với chainID và nonce. Kẻ tấn công, vốn đã chiếm quyền kiểm soát 2 validator thông qua một lỗ hổng trong cơ sở hạ tầng cloud, có thể tạo ra một proof giả mạo cho giao dịch chuyển ETH từ pool chính. Tôi đã tái hiện lại cuộc tấn công trong môi trường sandbox: bằng cách thay đổi nonce thành giá trị 0 và chainID thành 0, zk-proof được tạo ra từ cùng một proof hợp lệ trước đó vẫn vượt qua được kiểm tra (do thiếu kiểm tra chainID == 0). Điều này cho phép rút toàn bộ thanh khoản của pool ETH-ARB mà không cần gas fee cho cầu nối. Hợp đồng là luật, nhưng lỗ hổng là ngoại lệ.

Từ lỗ hổng nhỏ nhất, một hệ thống có thể sụp đổ. Trong trường hợp này, lỗi chỉ là một dòng code thiếu kiểm tra: require(proof.nonce == latestNonce[chainID]); không tồn tại. Khi tôi audit HyperLiquid vào tháng 10, tôi đã chỉ ra rằng hàm _verifyProof không ràng buộc nonce với chainID – một lỗi cơ bản trong thiết kế cross-chain. Đội ngũ HyperLiquid đã trả lời rằng họ sẽ sửa trong bản nâng cấp tiếp theo, nhưng kẻ tấn công đã hành động trước. Họ khai thác lỗ hổng đó bằng cách gửi một giao dịch giả mạo với chainID = 0, khiến hệ thống không thể kiểm tra nonce đã dùng. Sau đó, họ gửi 12.500 ETH ra khỏi pool chính. Toàn bộ quá trình diễn ra trong chưa đầy 30 giây. Tôi không tin vào lời nói, tôi tin vào bytecode. Bytecode của HyperLiquid đã nói lên tất cả.

Contrarian Nhiều người cho rằng lỗ hổng này là do sự bất cẩn của đội ngũ phát triển. Nhưng tôi thấy một vấn đề sâu xa hơn: sự phụ thuộc quá mức vào zk-SNARKs như một "viên đạn bạc" cho cross-chain. Thực tế, công nghệ zk không thể tự động sửa lỗi logic của hợp đồng thông minh. Kẻ tấn công không cần phá vỡ mật mã học – họ chỉ cần khai thác một dòng code thiếu kiểm tra. Điểm mù bảo mật ở đây là việc các giao thức cross-chain thường tập trung vào bảo mật cấp độ giao thức (validators, relayers) mà quên mất bảo mật cấp độ hợp đồng thông minh. HyperLiquid đã đầu tư hàng triệu USD vào hạ tầng validator, nhưng bỏ qua audit hợp đồng thông minh kỹ lưỡng. Giá token giảm, nhưng code vẫn còn đó. Và code chứa lỗ hổng.

Takeaway Tương lai của DeFi không thuộc về những giao thức có TVL lớn nhất, mà thuộc về những giao thức dám thừa nhận rằng code của họ không hoàn hảo và liên tục kiểm tra. HyperLiquid sẽ sống sót, nhưng bài học này sẽ khiến giá trị token của họ giảm 60% trong tuần tới. Tôi đã thấy điều này xảy ra quá nhiều lần. Câu hỏi không phải là "liệu nó có bị hack không?