Ostium và vết nứt mạng nhện: Khi một dòng code sai, cả hệ thống sụp đổ
Đặng Tâm
Một dòng code sai, cả hệ thống sụp đổ.
Hãy nhìn vào Ostium.
Vào ngày 15 tháng 7, một giao thức phái sinh tương đối nhỏ nhưng đầy tham vọng này đã bị khai thác tới 2,375 triệu USD. Con số này, so với những vụ hack DeFi khủng khiếp khác, không phải là lớn nhất. Nhưng nó là một trong những vụ gây tổn thương nhất về mặt cấu trúc. Bởi vì nó không chỉ là mất tiền. Nó là sự sụp đổ của một lời hứa cốt lõi: rằng một giao thức có thể hoạt động dựa trên một nguồn dữ liệu duy nhất, tập trung.
Kẻ tấn công không cần phải tìm ra một lỗi solidity tinh vi. Họ không cần phải khai thác một lỗ hổng reentrancy. Họ chỉ đơn giản là… phá vỡ cơ sở hạ tầng oracle ngoài chuỗi của Ostium. Họ đã gửi các báo cáo giá giả mạo, và hệ thống, như một con rối ngoan ngoãn, đã chấp nhận chúng. Chỉ trong một giờ, trước khi nhóm phát triển kịp dừng khẩn cấp, họ đã mở và đóng các vị thế long với đòn bẩy, hút thẳng 2,375 triệu USDC từ quỹ LP.
Tôi đã audit hàng tá giao thức. Và tôi có thể nói với bạn rằng: một lỗi trong logic validate dữ liệu oracle không phải là hiếm. Có những lỗi tinh vi, khó phát hiện, cần hàng tuần phân tích để thấy. Nhưng trường hợp này thì khác. Nó giống như việc một ngân hàng để cửa sập két sắt mở toang và cầu mong không ai để ý. Đây là một lỗi thiết kế có hệ thống, một sự lựa chọn kiến trúc mạo hiểm. Sau này, nếu có ai đó hỏi tôi về bài học đầu tiên về bảo mật DeFi, tôi sẽ chỉ vào Ostium.
Nhưng đây mới là phần mà nhiều người sẽ bỏ qua: trong khi quỹ LP bị thiêu rụi, tài sản của các trader vẫn an toàn. Nhóm phát triển đã nhanh chóng phối hợp với Mandiant và zeroShadow, và các vị thế vẫn được giữ mở, chờ một ngày tái khởi động. Điều này, đối với tôi, cho thấy một sự chính trực kỹ thuật nhất định. Họ đã ưu tiên sự an toàn của người dùng cuối — những người đang giao dịch — hơn là lợi nhuận của LP. Nhưng liệu sự ưu tiên muộn màng này có đủ để cứu vãn một hệ thống mà nền tảng của nó đã rạn nứt?
Không.
Bởi vì vết nứt đó không chỉ là một lỗ hổng; nó là một tuyên bố về triết lý thiết kế. Một giao thức phái sinh, nơi mà hàng triệu USD đang được đặt cược, lại phụ thuộc vào một oracle tập trung duy nhất? Đây không phải là một sai lầm; nó là một sự lựa chọn có chủ đích, và nó đã sai. Trong thế giới mà Chainlink và Pyth đã trở thành tiêu chuẩn thực tế cho dữ liệu giá phi tập trung, việc Ostium chọn một lộ trình khác, một lộ trình yếu hơn, là một tín hiệu đáng báo động. Tôi gọi đây là "hội chứng mạng nhện": mọi thứ trông có vẻ được kết nối và vững chãi, nhưng chỉ cần một sợi tơ đứt, toàn bộ cấu trúc sụp đổ.
Vậy, đâu là góc nhìn contrarian ở đây? Có thể nào phe bò (bull) đã đúng về một điều gì đó?
Có. Họ đã đúng rằng một giao thức hoàn toàn on-chain có thể tồn tại và những trader nhỏ lẻ có thể được bảo vệ. Bằng chứng là tài sản của họ vẫn an toàn. Nhưng cái giá phải trả cho sự bảo vệ đó — sự hy sinh của LP — lại quá đắt. Nó cho thấy rằng, trong một hệ thống tài chính phi tập trung, việc bảo vệ một nhóm người dùng bằng cách phá hủy nhóm khác không phải là một giải pháp. Nó chỉ là một sự trì hoãn sự sụp đổ của cán cân quyền lực.
Có một câu chuyện mà tôi thường nhớ khi audit: năm 2021, một dự án NFT đã yêu cầu tôi ký audit một hợp đồng mint có chứa backdoor cho phép admin rút ETH. Tôi đã từ chối. Dự án đó, tôi nghe nói, đã bị hack vài tuần sau đó. Ostium thì không có backdoor cố ý, nhưng họ đã vô tình tạo ra một cánh cửa cho kẻ tấn công bước vào. Sự khác biệt giữa một backdoor và một lỗ hổng kiến trúc đôi khi chỉ là một dòng code và một thập kỷ kinh nghiệm.
Nền tảng để phục hồi lòng tin đắt hơn rất nhiều so với việc phục hồi code.
Ostium đã để lại cho chúng ta một câu hỏi khó chịu: Liệu rằng, trong cuộc đua đến tốc độ và trải nghiệm người dùng, chúng ta đã sẵn sàng đánh đổi sự an toàn của chính nền tảng? Hay nói cách khác, một hệ thống chỉ bền vững khi từng mắt xích đều tuân theo chuẩn mực, bất kể mắt xích đó là LP, trader, hay chính nhóm phát triển?