Tác giả: CryptoSlate
Biên dịch: Deep Tide TechFlow
Dẫn nhập Deep Tide: Một tài sản thế chấp altcoin trị giá vài đô la, thông qua lỗ hổng chữ ký 0 (zero signature) của bộ xác thực oracle, đã vay thành công 9.05 triệu USD. Sự kiện này phơi bày một điểm mù trong việc xác minh toán học bị bỏ qua trong cơ sở hạ tầng DeFi: khi bộ xác thực nhầm lẫn hằng đẳng thức toán học với bằng chứng ủy quyền, thì quy tắc tỷ lệ cho vay trên giá trị (LTV) trong thiết kế giao thức lại trở thành công cụ hỗ trợ cho việc khai thác lỗ hổng.
Giao thức cho vay Bonzo Lend trên nền tảng Hedera đã khóa chức năng rút tiền, sau khi một bộ xác thực oracle chấp nhận bằng chứng chứa chữ ký và khóa công khai đều bằng 0, cho phép một ví lấy 250 đồng SAUCE làm thế chấp để vay 9.05 triệu USD.

Tính đến ngày 13 tháng 7, Bonzo Lend và Bonzo Points vẫn trong trạng thái tạm dừng. Trang trạng thái chính thức của giao thức hiển thị Bonzo Lend và tất cả các thị trường tài sản bị ảnh hưởng đang trong chế độ bảo trì.
Trong khi Bonzo Finance Labs và Bonzo Finance Foundation xác định lộ trình khôi phục và các điều kiện mở cửa lại, các nhà cung cấp thanh khoản vẫn không thể rút tiền.
Ví A đầu tiên đã gửi 250 đồng SAUCE, trị giá chỉ vài đô la. Vào lúc 00:51 UTC, nó đã gửi một bản cập nhật giá SAUCE/wHBAR, thổi phồng giá trị của đồng tiền này lên khoảng 12 bậc độ lớn, mặc dù giá thị trường vẫn duy trì ở mức khoảng 0.2 HBAR.
8 giây sau khi giá bị thao túng đến kho lưu trữ on-chain của oracle, ví này đã vay 6.63 triệu USDC.
Sau đó, nó tiếp tục vay 34.5 triệu wrapped HBAR, khiến số tiền gốc mà ví A rút ra được tính theo giá tham chiếu của Bonzo là khoảng 9.05 triệu USD.
Giá trị 0 vượt qua bộ xác thực như thế nào
Bản cập nhật được gửi lên không chứa chữ ký oracle hợp lệ. Trường chữ ký của nó là [0,0], và khóa công khai của ủy ban được tham chiếu cũng là điểm 0, trong mật mã học được gọi là điểm ở vô cực.
Bộ xác thực của Supra đã gửi các giá trị đầu vào này đến hợp đồng biên dịch sẵn (precompile contract) xử lý cặp (pairing) của Hedera. Vì cả hai điểm đều biểu thị hằng đẳng thức toán học, phương trình cặp theo thiết kế đã trả về kết quả true.
Bộ xác thực sau đó coi kết quả đó là bằng chứng về chữ ký của ủy ban, vì nó đã không từ chối trước các giá trị đầu vào bằng 0, hằng đẳng thức và không thuộc nhóm con.
Nói một cách đơn giản, mạng lưới đã trả lời đúng phương trình mà nó nhận được, còn bộ xác thực lại nhầm lẫn câu trả lời đó là sự ủy quyền.
Bonzo cho biết hợp đồng cho vay của họ sau đó đã sử dụng giá đã được lưu trữ bởi oracle để thực thi theo các quy tắc tỷ lệ cho vay trên giá trị (LTV) đã được lập trình.
Một ví khác, ví B, đã vay khoảng 1 triệu USD trong khi giá bất thường vẫn còn hiệu lực. Ví này đã liên hệ với Bonzo, tự nhận là người ứng phó mũ trắng (white hat responder) và tuyên bố có ý định hoàn trả số tiền.
Bonzo thống kê rằng khoảng 1 triệu USD đã được thu hồi, mặc dù số tiền chưa được hoàn trả và con số cuối cùng vẫn chưa được xác định.
Bonzo báo cáo rằng Supra đã sửa lỗi bộ xác thực, nhưng các pool cho vay vẫn đang đóng cửa.
Các vấn đề còn lại bao gồm: việc kiểm tra hồi quy có xác nhận bộ xác thực từ chối các giá trị đầu vào là hằng đẳng thức hay không, Bonzo có thêm kiểm tra độ lệch giá hoặc siết chặt các tham số thế chấp hay không, và cách xử lý tài sản khả dụng khi mở lại chức năng rút tiền.
Tính đến ngày 13 tháng 7, trang trạng thái chính thức của Bonzo vẫn liệt kê sự kiện này là chưa được giải quyết. Bản cập nhật chính thức mới nhất của họ vào ngày 11 tháng 7 cho biết giao thức vẫn trong trạng thái tạm dừng.
Bonzo chưa công bố kế hoạch bồi thường, ngày mở cửa lại hoặc các điều khoản rút tiền dành cho người dùng, khiến các nhà cung cấp thanh khoản phụ thuộc vào kế hoạch phục hồi sắp tới.





