Mỗi lần một dự án hứa hẹn 'đột phá blockchain', tôi nhìn vào ví của đội ngũ. Năm 2017, khi ICO TokenMaster huy động 500 ETH chỉ trong 3 ngày, tôi đã làm điều đó. Và tôi tìm thấy 12 lỗ hổng có thể rút sạch quỹ.
Bối cảnh: Thị trường ICO 2017 đang bùng nổ. TokenMaster quảng cáo 'hợp đồng thông minh an toàn nhất' với đội ngũ ẩn danh. Họ kêu gọi đầu tư mà không công bố mã nguồn đầy đủ. Nhưng tôi, với vai trò kiểm toán viên tại quỹ đầu tư mạo hiểm, có quyền truy cập và phân tích từng dòng code.
Phân tích kỹ thuật: Hợp đồng thông minh của TokenMaster chứa reentrancy attack cổ điển (dòng 114-118) và integer overflow trong hàm withdraw (dòng 201-205). Bằng cách gửi một giao dịch giả, kẻ tấn công có thể rút ETH nhiều lần trước khi số dư được cập nhật. Tôi đã kiểm tra chéo với các lỗ hổng đã biết từ DAO năm 2016 – mô hình tương tự. Hơn nữa, đội ngũ để lại backdoor: một hàm 'ownerWithdrawAll' không có access control (dòng 300). Điều này cho thấy họ có thể rút toàn bộ tiền bất cứ lúc nào.
Góc nhìn phản trực giác: Những người ủng hộ TokenMaster cho rằng 'việc kiểm toán là không cần thiết vì chúng tôi đã test rồi'. Sai lầm: test không phát hiện được reentrancy nếu không mô phỏng tấn công. Thực tế, 3 trong số 12 lỗ hổng chỉ xuất hiện khi kết hợp các hàm. Dự án đã từ chối sửa lỗi vì 'chậm tiến độ'. Tôi đã công bố báo cáo công khai, giúp nhà đầu tư tránh mất 500 ETH.
Kết luận: Từ trải nghiệm audit 2017, tôi học được: không tin lời hứa – hãy đọc hợp đồng. Nếu đội ngũ không muốn kiểm toán độc lập, đó là dấu hiệu đỏ. Đã 9 năm trôi qua, nhưng lỗ hổng tương tự vẫn xuất hiện. Bạn có dám tin vào dự án 'audited by ourselves' không?