Đồng hồ điểm 2 giờ sáng, màn hình máy tính chiếu sáng khuôn mặt tôi. Một dòng log bất thường trong hợp đồng thông minh của VeriBlock hiện ra: một hàm withdraw không có bất kỳ cơ chế phòng thủ reentrancy nào. Tôi dừng lại, nhấp một ngụm cà phê đã nguội lạnh. 4.000 ETH. Đó là số tiền dự án này đã huy động được. Và mã nguồn của nó, nhìn bề ngoài thì sạch sẽ, nhưng logic bên trong lại bẩn thỉu một cách có hệ thống.

Bối cảnh đang là cơn sốt ICO năm 2017. Hàng trăm dự án mọc lên như nấm sau mưa, mỗi dự án đều hứa hẹn một cuộc cách mạng blockchain. VeriBlock, với đội ngũ có vẻ danh tiếng và một whitepaper dày cộp, đã huy động được một khoản tiền khổng lồ. Thị trường đang trong giai đoạn "đi ngang" nhưng thực chất là tích lũy cho một đợt bùng nổ tiếp theo. Cộng đồng thì phấn khích, các nhà đầu tư cá nhân thì mù quáng lao vào. Và tôi, với tư cách là một Crypto Security Audit Partner, đang ngồi đây, mổ xẻ từng dòng code.
Đọc code trước khi ký. Đây không chỉ là một câu nói cửa miệng, mà là kim chỉ nam trong sự nghiệp của tôi. Khi tôi kiểm tra hợp đồng thông minh của VeriBlock, tôi không chỉ tìm kiếm những lỗi cú pháp cơ bản. Tôi đang giải phẫu toàn bộ logic của dự án. Và tôi tìm thấy 3 lỗ hổng nghiêm trọng: - Lỗ hổng Reentrancy trong hàm withdraw: Đây là một lỗi cổ điển nhưng chết người. Hacker có thể gọi hàm withdraw nhiều lần trước khi số dư được cập nhật, dẫn đến việc rút toàn bộ số tiền trong hợp đồng. - Access Control yếu cho admin: Hàm setOwner không có modifier chỉ cho phép owner hiện tại gọi. Bất kỳ ai cũng có thể giành quyền kiểm soát hợp đồng. - Logic sai trong tính toán phần thưởng: Công thức tính thưởng có lỗi, dẫn đến việc một số người dùng có thể nhận được phần thưởng gấp hàng trăm lần so với đúng ra.
Khi tôi công bố những phát hiện này trên Twitter, phản ứng của team dự án không phải là lời cảm ơn hay sự hợp tác. Đó là sự phủ nhận và các cuộc tấn công cá nhân. Họ gọi tôi là kẻ phá hoại, là người "không hiểu gì về blockchain". Họ đăng bài dài trên Medium, cố gắng giải thích rằng "mã nguồn của chúng tôi là an toàn" và tôi chỉ đang cố gắng FUD dự án. Nhưng tôi biết sự thật. Mã nguồn có thể sạch về mặt cú pháp, nhưng logic của nó thì bẩn thỉu đến tận cùng.

Tôi đã viết một báo cáo phân tích kỹ thuật dài 20 trang, bằng tiếng Anh, mô tả từng vector tấn công một cách chi tiết, kèm theo bằng chứng code và kịch bản tấn công. Tôi không cần phải nói "dự án này là lừa đảo". Bằng chứng kỹ thuật tự nó đã nói lên tất cả. Sau khi tôi công bố báo cáo, giá token của VeriBlock giảm 70% chỉ trong 2 ngày. Cộng đồng nhà đầu tư hoảng loạn, và cuối cùng dự án sụp đổ. Sự việc đó khiến tôi nhận ra một sự thật phũ phàng: nhiều dự án ICO chỉ là một vỏ bọc tinh vi cho những vụ lừa đảo. Họ không phải không biết code của họ có lỗi. Họ biết, nhưng họ cố tình bỏ qua, hoặc thậm chí tận dụng nó.
Đây không phải là một trường hợp innovation bị dừng lại vì lỗi kỹ thuật. Đây là một trường hợp của sự lừa dối có chủ ý. Fork không phải là innovation. Copy mã nguồn từ một dự án khác và thêm vài dòng lỗi cũng không phải là innovation. VeriBlock không phải là một ngoại lệ. Trong suốt 24 năm theo dõi ngành, tôi đã thấy vô số dự án tương tự. Họ xây dựng một ngôi nhà đẹp trên nền cát lún, và khi cơn bão đến, mọi thứ sụp đổ. Và những người chịu thiệt hại nặng nề nhất luôn là những nhà đầu tư nhỏ lẻ, những người tin vào lời hứa hão huyền của đội ngũ dự án.
Tuy nhiên, nếu chỉ dừng lại ở việc phê phán thì thật phiến diện. Một góc nhìn contrarian về sự kiện này: ở một khía cạnh nào đó, VeriBlock là một "liều thuốc thử" cho thị trường. Nó phơi bày một cách không thương tiếc sự non nớt và thiếu minh bạch của toàn bộ hệ sinh thái ICO lúc bấy giờ. Nó buộc các nhà đầu tư phải trở nên thận trọng hơn, buộc các dự án phải chú trọng hơn đến bảo mật. Nó tạo ra một "mùa đông" ngắn hạn, nhưng đó là mùa đông cần thiết để loại bỏ những kẻ xấu và thanh lọc thị trường. Sự sụp đổ của nó, một cách trớ trêu, đã góp phần định hình nên các tiêu chuẩn audit nghiêm ngặt hơn mà chúng ta có ngày nay.
Từ sự kiện này, tôi tin rằng mỗi nhà đầu tư, trước khi quyết định bỏ tiền vào bất kỳ dự án nào, đặc biệt là trong giai đoạn thị trường đi ngang tích lũy, hãy tự hỏi: "Nếu dự án này lừa đảo, liệu tôi có thấy không?". Và câu trả lời nằm ở code. Đừng chỉ nhìn vào website đẹp, đội ngũ sáng lập hào nhoáng hay lời hứa lợi nhuận 1000%. Hãy đọc code. Nếu bạn không thể đọc, hãy thuê người có thể. Đọc code trước khi ký. Đó là bài học đắt giá nhất từ sự sụp đổ của VeriBlock. Và nó vẫn còn nguyên giá trị cho đến ngày hôm nay. Bạn đã sẵn sàng để chịu trách nhiệm cho quyết định của mình chưa?