Zcash đã bị một AI khai thác một lỗ hổng chết người ẩn giấu suốt 4 năm trong 1 ngày
Ngày 28 tháng 5, Anthropic phát hành Claude Opus 4.8.
Ngày 29 tháng 5, có một nhà nghiên cứu đã sử dụng nó để chạy kiểm toán tự động, và đã tìm ra một bug nghiêm trọng trong mạch Orchard của Zcash——
Cùng một đồng coin có thể được chi tiêu nhiều lần, mỗi lần còn tạo ra nullifier khác nhau, trên chuỗi hoàn toàn không thể nhận ra.
Nói một cách đơn giản, đó là in tiền vô hạn, đặc tính riêng tư của chứng minh không biết đã trở thành áo choàng tàng hình.
Lỗi này đã được chôn vùi từ ngày nâng cấp NU5 vào tháng 5 năm 2022, hơn 4 năm không ai phát hiện. Các kiểm toán thủ công trước đó và các đánh giá khác đều không phát hiện ra.
Nguyên nhân thực sự rất nhỏ: một gadget nhân vô hướng trong Halo2 đã sử dụng assign_advice()
mà không thêm ràng buộc, người chứng minh ác ý có thể lén lút thay đổi điểm cơ sở, giả mạo chứng minh hợp pháp. Chỉ cần sửa một dòng mã, thay assign_advice thành copy_advice.
Nhưng quá trình khá hồi hộp:
- Nhà nghiên cứu phát hiện vào tối thứ Sáu, gửi tín hiệu cho các nhà phát triển cốt lõi của Zcash vào nửa đêm
- Sáng thứ Bảy, anh ấy tự mình viết ra PoC hoàn chỉnh bằng Claude, làm cho số dư Orchard trong regtest tăng lên 10 triệu ZEC
- Đội ngũ Zcash vào tối thứ Hai đã khẩn cấp đóng Orchard thông qua hard fork
- Thứ Ba sửa lỗi và kích hoạt lại
Thú vị là, nhà nghiên cứu này trước đó đã sử dụng Opus 4.7 để chạy cùng một khung kiểm toán, hoàn toàn không tìm thấy. Phải đến 4.8 mới được. Hơn nữa, AI
sau khi tìm ra còn tự hỏi, cảm thấy "mã này chắc chắn đã được kiểm toán rồi" và lưỡng lự có nên tin hay không.
Đọc toàn bộ báo cáo, cảm nhận chỉ có hai điều:
1. AI kiểm tra an toàn hợp đồng đã không còn chỉ là vẽ ra nữa, thực sự có thể làm việc
2. Ngay cả khi mã đã được con người kiểm toán vài vòng, bên dưới vẫn có thể còn ẩn giấu điều gì đó
Những người nắm giữ ZEC không cần lo lắng, đã được sửa xong từ lâu.
#Zcash #ZEC #Claude #安全审计