Mỗi lần đội ngũ nói 'smart contract đã được audit bởi công ty hàng đầu', tôi lại nhìn thấy một lỗ hổng mới.
Không phải vì tôi bi quan. Mà vì tôi đã nhìn thấy quá nhiều.
Năm 2017, tôi audit 15 hợp đồng ICO cho một quỹ đầu tư tại Lagos. Trong số đó, dự án TokenMarket tự hào khoe 'đã audit bởi công ty uy tín'. Tôi mở code ra, kiểm tra dòng 47. Một lỗi reentrancy cổ điển, có thể rút sạch 2.000 ETH. Tôi công bố báo cáo chi tiết. Dự án hoãn ICO 3 tháng. Hơn 1.000 nhà đầu tư nhỏ lẻ được cứu.
Bài học: 'Audit' không phải là giấy thông hành. Nó chỉ là một điểm dữ liệu.
Context: Chu kỳ thổi phồng của 'Audit'
Thị trường hiện tại đang giảm. Nhưng tôi thấy một điều kỳ lạ: càng giảm, các dự án càng tung ra nhiều báo cáo audit. Họ muốn trấn an cộng đồng. Họ muốn chứng minh 'tài sản của bạn an toàn'.
Nhưng sự thật là: Hầu hết các báo cáo audit chỉ kiểm tra những gì được yêu cầu. Họ không kiểm tra logic kinh doanh. Họ không kiểm tra ý định của đội ngũ. Và họ đặc biệt không kiểm tra những gì được thêm vào sau audit.
Tôi đã xây dựng bộ tiêu chí 12 yếu tố để đánh giá dự án DeFi năm 2020. Audit chỉ chiếm 1 trong 12. Và nó không bao giờ là yếu tố quyết định.
Core: Tháo gỡ hệ thống - 3 dấu hiệu đỏ audit giả
Đây là những gì tôi tìm kiếm khi đội ngũ nói 'đã audit':

- Thời gian audit quá ngắn hoặc quá dài: Một audit chất lượng cho giao thức phức tạp mất 4-8 tuần. Nếu họ khoe audit xong trong 1 tuần, đó là audit cấp tốc, chỉ check syntax. Nếu mất 3 tháng, có thể họ đang che giấu điều gì đó và phải sửa đi sửa lại nhiều lần.
- Audit viên không có chuyên môn cụ thể: Công ty audit lớn audit mọi thứ - từ DeFi đến NFT đến gaming. Nhưng mỗi lĩnh vực có rủi ro riêng. Tôi từng thấy một audit cho giao thức lending được thực hiện bởi người chuyên về NFT marketplace. Kết quả: họ bỏ sót lỗi tính toán lãi suất phức tạp.
- Báo cáo audit không công khai chi tiết: Nếu đội ngũ chỉ khoe 'đã audit' mà không đưa link báo cáo đầy đủ, đó là dấu hiệu đỏ. Báo cáo audit phải có danh sách lỗ hổng cụ thể, mức độ nghiêm trọng, và cách khắc phục. Nếu không, họ đang giấu điều gì đó.
Trong 7 ngày qua, một giao thức đã mất 40% LP. Tôi kiểm tra audit của họ. Đó là audit từ tháng 3, nhưng họ đã deploy contract mới vào tháng 6 mà không audit lại. Lỗ hổng nằm ở contract mới.
Mỗi lỗ hổng đều có chữ ký của kẻ tạo ra nó. Và audit giả có một chữ ký rất rõ: sự vội vàng.

Contrarian: Phần mà phe bò đúng
Tôi không phủ nhận giá trị của audit. Nhưng tôi cho rằng cộng đồng đang hiểu sai về nó.

Phe bò nói: 'Audit là bắt buộc để bảo vệ người dùng.' Họ đúng. Nhưng họ quên rằng: Audit là điểm khởi đầu, không phải điểm kết thúc.
Dựa trên kinh nghiệm audit của tôi, một audit tốt chỉ phát hiện được 60-70% lỗ hổng. Số còn lại chỉ được tìm thấy khi code đã chạy trên mainnet, khi hacker thực sự tấn công. Đó là lý do tại sao bug bounty quan trọng hơn audit.
Tôi từng đánh giá Uniswap và Compound năm 2020. Cả hai đều audit. Nhưng điểm số của chúng cao không phải vì audit, mà vì chúng có cơ chế dừng khẩn cấp, multi-sig mạnh, và cộng đồng phát triển tích cực. Audit chỉ là một phần của bức tranh lớn.
Takeaway: Trách nhiệm nằm ở đâu?
Khi đội ngũ nói 'đã audit', họ đang chuyển trách nhiệm từ mình cho audit viên. Họ nói: 'Nếu có chuyện gì xảy ra, đó là lỗi của audit viên.'
Nhưng trách nhiệm thực sự nằm ở ai?
Tôi sẽ không đầu tư vào dự án nào mà đội ngũ dùng audit như lá chắn. Tôi muốn thấy họ nói: 'Chúng tôi đã audit, nhưng chúng tôi vẫn tiếp tục kiểm tra. Đây là bug bounty của chúng tôi. Đây là kế hoạch response khi có sự cố.'
Bộ tiêu chí không phải để tin, mà để thấy. Và audit không phải để ngủ yên, mà để thức tỉnh.
Hãy nhìn vào code. Hãy nhìn vào đội ngũ. Đừng nhìn vào báo cáo audit.
Khi thị trường giảm, đây là lúc sự thật lộ diện. Và sự thật là: audit không bảo vệ bạn. Chỉ có sự hiểu biết của bạn mới bảo vệ bạn.