Tháng này, Google thông báo hệ thống AI nội bộ đã phát hiện một lỗ hổng trong Chrome đã tồn tại suốt 13 năm. Cùng thời điểm, Chromium vá số lượng lỗi kỷ lục trong một chu kỳ phát hành. Giới bảo mật gọi đây là bước ngoặt. Tôi gọi đây là lời nhắc cho DeFi.
Chrome là một trong những phần mềm được kiểm tra nhiều nhất hành tinh. Hàng nghìn kỹ sư, hàng trăm công cụ, chiến dịch săn lỗi trả tiền. Vậy mà một lỗi vẫn nằm đó 13 năm. Điều đó cho thấy giới hạn của con người không nằm ở nỗ lực, mà ở cách tư duy. Chúng ta chỉ tìm kiếm thứ chúng ta biết cách tìm. AI thì khác. Nó không bị giới hạn bởi thói quen của người viết code, nó tìm theo phân bố thống kê của lỗi trong hàng triệu repo.
Trong blockchain, tình trạng còn tệ hơn. Hợp đồng thông minh thường không thể nâng cấp, hoặc nếu có thì thông qua multi-sig vốn được quản lý bởi vài cá nhân. Một lỗ hổng trong Chrome có thể được vá trong vài tuần. Một lỗ hổng trong hợp đồng của một giao thức cho vay có thể khiến hàng trăm triệu USD bị khóa hoặc rút sạch trong một khối. Vì thế, thông tin từ Google có ý nghĩa đặc biệt với những người làm audit như tôi.
Năm 2020, tôi audit một sàn DEX dựa trên Uniswap v2. Trong hai tháng, tôi đọc đi đọc lại từng dòng mã. Tôi tìm thấy lỗi trong phép tính phí thanh khoản: một phép chia số nguyên làm tròn sai, ảnh hưởng 0,1% lợi nhuận của nhà cung cấp. Lỗi này không xuất hiện trong báo cáo của các công cụ tự động. Slither không bắt được. Echidna chỉ tìm thấy khi tôi viết một invariant thủ công. Tôi mất hai tuần. Nếu tôi đưa toàn bộ mã cho một mô hình AI được huấn luyện trên hàng nghìn CVE và báo cáo audit, nó có thể nhìn thấy mẫu tương tự trong một giờ. Không phải vì AI thông minh hơn tôi. Vì nó nhìn nhiều dữ liệu hơn.
Lỗ hổng Chrome 13 năm có thể cùng bản chất. Một điều kiện hiếm gặp, một luồng dữ liệu bất thường mà không một con người nào nghĩ đến. AI tạo sinh, được huấn luyện trên mã nguồn và lịch sử lỗ hổng, có khả năng đề xuất các trạng thái vi phạm bất biến. Nó không cần hiểu ý đồ của lập trình viên. Nó chỉ cần nhận ra rằng trong hàng triệu trường hợp tương tự, dòng code này từng gây ra lỗi. Đây là cách phát hiện vượt ra ngoài logic tĩnh thông thường.
Nhưng tôi không xem đây là chiến thắng cuối cùng. Trái lại, nó vẽ ra một viễn cảnh đen tối cho DeFi. AI của Google tìm ra lỗi trong Chrome, và Google có thể vá trước khi công bố. Còn một AI do kẻ tấn công vận hành, quét hợp đồng của một giao thức mới ra mắt, có thể tìm ra lỗi trong một đêm. Khác với Chrome, giao thức DeFi không có đội ngũ vá lỗi trung tâm hoạt động 24/7. Nếu lỗ hổng liên quan đến quyền rút tiền, một giao dịch có thể thanh lý toàn bộ pool trước khi nhà phát triển kịp phản ứng.
Điều này dẫn đến một ảo giác nguy hiểm. Khi cộng đồng nghe tin "AI tìm ra lỗ hổng 13 năm", họ bắt đầu nghĩ rằng các dự án sử dụng AI audit sẽ an toàn. Họ không nhận ra rằng AI cũng là con dao hai lưỡi. Trong một hệ thống phi tập trung, "an toàn" không bao giờ là một hằng số. Nó là một hàm số theo thời gian, theo công cụ, theo khả năng của kẻ tấn công. Một hợp đồng được audit bởi con người có thể có lỗi mà AI con người không thấy. Một hợp đồng được audit bởi AI có thể có lỗi mà một AI khác, mạnh hơn, sẽ thấy.
Tôi đã chứng kiến quá nhiều dự án tự hào công bố ba vòng audit, nhưng chỉ vài tuần sau bị khai thác vì một lỗi mà auditor chỉ đọc code, không chạy mô phỏng. Họ gọi quy trình đó là "đảm bảo an toàn". Tôi gọi đó là sự tự tin thái quá. Bởi vì nếu một trình duyệt được kiểm tra bởi hàng nghìn kỹ sư trong 13 năm vẫn còn lỗi, thì một hợp đồng Smart Contract với một đội ngũ ít người đọc trong vài tuần không thể tuyên bố chắc chắn bất cứ điều gì.
Câu chuyện về Google AI không phải để tôn vinh AI. Nó minh họa một sự thật khó chịu: độ phức tạp của lỗ hổng đang vượt xa khả năng nhận thức của con người. DeFi càng phát triển, càng có nhiều module, càng nhiều khả năng tương tác giữa các giao thức. Mỗi tương tác là một bề mặt tấn công mới. Trong một thị trường tăng như hiện tại, các dự án vội vã phát hành token, gấp rút thanh khoản, thậm chí tiết kiệm chi phí bằng cách cắt giảm thời gian audit. Họ bị FOMO. Họ cần tiền. Họ quên rằng một lỗi đơn giản trong phép chia có thể nuốt chửng lợi nhuận của họ.
Theo quan điểm của tôi, điều Google làm không phải là dùng AI thay thế con người. Họ dùng AI để mở rộng tầm nhìn của con người. Mỗi phát hiện mà AI đưa ra đều được xác minh thủ công bởi kỹ sư. Đây là quy trình tái tạo được: AI đưa ra giả thuyết, con người kiểm tra thực nghiệm. Trong DeFi, chúng ta cũng cần quy trình như vậy. Không phải chỉ audit một lần trước khi launch. Mà audit liên tục, chạy mô phỏng liên tục, cập nhật các invariant và để AI rà soát cùng con người. "An toàn" ở đây không phải là một con dấu. Nó là một thói quen kiểm chứng.
Nhưng có một mối nguy khác. Khi AI được dùng để viết smart contract, nó có thể tạo ra những lỗi mà chính nó không nhận ra. Tôi từng thử nghiệm một mô hình sinh mã để viết một hợp đồng đấu giá. Hợp đồng trông hoàn hảo, nhưng nó thiếu kiểm tra reentrancy ở một hàm callback. Mô hình không hiểu rằng một external call đến token ERC-777 có thể gọi lại hàm bán. Con người học được điều này từ vụ hack DAO năm 2016. AI chưa chắc hiểu vì nó không có cảm xúc về thảm họa.
Vì vậy, cách an toàn nhất là không nên tin vào bất kỳ một ai, một công cụ nào một cách tuyệt đối. Tôi kiểm tra code của chính mình như thể tôi là kẻ tấn công. Tôi chạm vào mọi hàm, mọi điều kiện, mọi sự thay đổi trạng thái. AI có thể cho tôi một danh sách các lỗ hổng tiềm ẩn. Nhưng quyết định cuối cùng vẫn là của tôi. Và tôi phải chịu trách nhiệm nếu nó sai.
Khi Google AI tìm ra lỗ hổng 13 năm trong Chrome, câu hỏi không phải là AI có giỏi hơn con người hay không. Câu hỏi là ngành DeFi đã sẵn sàng cho một thế giới nơi AI vừa là kiểm toán viên, vừa là kẻ tấn công? Nếu chưa, thì các bài audit hiện tại chỉ là tờ giấy chứng nhận cho một thời điểm đã qua. Và thời điểm đó không bao giờ trở lại. Với tôi, mỗi dự án gọi điện nhờ audit thường nói: "Bọn em có AI hỗ trợ, chắc là an toàn." Tôi trả lời: "Hãy cho tôi xem code. AI của anh em có thể tìm ra lỗi của chính nó không?" Họ im lặng. Đó là lúc tôi biết họ vẫn tin vào điều kỳ diệu.
Trong một thị trường đang lên, nơi mọi người đều vội vã, tôi muốn nhắc lại một điều tôi đã học từ năm 2017: Lỗi không tự biến mất. Chúng chờ ai đó tìm thấy. Người tìm thấy đầu tiên có thể là nhà phát triển, có thể là auditor, có thể là kẻ tấn công. Google dùng AI để tìm thấy trước. Còn giao thức DeFi của bạn, ai đang tìm trước cho họ? Nếu câu trả lời là "đội ngũ nội bộ trong giờ hành chính", thì rủi ro của bạn vẫn còn nguyên. Hãy nhìn vào Chrome. 13 năm là một con số dài. Nhưng với một hợp đồng không thể nâng cấp, 13 ngày sau khi bị khai thác còn đau đớn hơn nhiều.

