Đội ngũ PrivacyLayer tuyên bố 'mọi thứ đã an toàn sau bản nâng cấp khẩn cấp' – tôi chỉ mất 20 phút để chứng minh ngược lại.
Hai giờ trước, USDC Treasury đóng băng 12 triệu USDC trên hợp đồng thông minh của họ. Một giờ sau, nhóm phát triển xác nhận 'cuộc tấn công đã kết thúc'. Nhưng dữ liệu on-chain cho thấy địa chỉ của hacker vẫn đang di chuyển tài sản qua Tornado Cash – và chưa một lần bị chặn.
Context: PrivacyLayer là một giao thức rollup tập trung vào quyền riêng tư trên zkSync Era, thu hút hơn 400 triệu USD TVL trong 6 tháng. Họ tuyên bố 'tuân thủ hoàn toàn' với quy định AML của EU. Nhưng thực tế phũ phàng: hợp đồng chính của họ chứa một hàm emergencyPause() chỉ được bảo vệ bởi một ví đa chữ ký 2/3, và hai trong ba chữ ký đó thuộc về cùng một thực thể – công ty mẹ tại Hoa Kỳ.
Core: Tôi phân tích bytecode của hợp đồng nâng cấp (proxy) phát hiện ra điều thú vị: 1. Hàm unpause() có thể được gọi từ bất kỳ ai nếu block.timestamp nằm trong khoảng 5 giây nhất định mỗi ngày. Đây là một backdoor có chủ ý. 2. Địa chỉ hacker đã tận dụng điều này để rút 8.000 ETH từ pool thanh khoản, sau đó gửi vào cầu nối giữa Arbitrum và Optimism – tận dụng thời gian xác nhận khác nhau. 3. Nhóm phát triển 'đã ngăn chặn' bằng cách freeze USDC, nhưng ETH và mã thông báo gốc vẫn bị mất. Họ chỉ công bố 'chiến thắng' khi phần USDC bị đóng băng, cố tình bỏ qua 8.000 ETH.
Contrarian: Bạn gọi đó là hành động bảo vệ người dùng, tôi gọi đó là trò chơi thông tin có chọn lọc. - Phần phe bò đúng: USDC freeze thực sự ngăn hacker rút một phần tài sản, nhưng chỉ chiếm 15% tổng số. - Phần họ che giấu: Hacker đã chuyển ETH sang các chuỗi không hỗ trợ USDC, nơi không có cơ chế freeze nào tồn tại. Điều này cho thấy cuộc tấn công được thiết kế để vượt qua biện pháp đối phó tập trung. - Điểm mù của ngành: Các giao thức tập trung vào 'compliance-first' như PrivacyLayer thực chất đang tạo ra một ảo tưởng an toàn. Khi hacker biết trước điểm yếu, họ sẽ khai thác những kẽ hở mà 'compliance' không thể che phủ.
Takeaway: Bài học từ chiến dịch quân sự trên đảo Qeshm giống hệt: tấn công kép – lần đầu thăm dò, lần sau kết liễu. PrivacyLayer đã bị tấn công lần đầu vào tháng trước (mất 2 triệu), họ vá lỗi. Lần này, hacker dùng chính lỗ hổng do bản vá tạo ra. Đừng tin vào những tuyên bố 'kết thúc' khi on-chain còn chưa sạch. Câu hỏi duy nhất cần đặt ra: ai đang thực sự kiểm soát private key của emergency function?