Hook
Tôi vừa deploy một bản nâng cấp cho giao thức cross-chain của nhóm, và mất đúng 3 phút để phát hiện ra một lỗi nghiêm trọng trong cơ chế xác thực. Nó không phải là lỗi trong mã nguồn Solidity thông thường, mà là lỗi trong cách triển khai 'Zero-Knowledge Proof' – thứ mà mọi người đang ca ngợi là tương lai của Layer-2 scaling. EOS ICO sập ngay khi tôi nhấn deploy. DeFi Summer kết thúc bằng một dòng log. Lần này, tôi có cảm giác rằng chúng ta đang lặp lại lịch sử, chỉ với một lớp sơn bóng mới.
Context
Thị trường tăng giá hiện tại, ai cũng chạy đua để xây dựng các giải pháp Layer-2 hứa hẹn tốc độ giao dịch nhanh hơn, phí thấp hơn, và bảo mật cao hơn nhờ vào công nghệ Zero-Knowledge (ZK). Các dự án huy động hàng trăm triệu đô, đội ngũ marketing hét lên về 'bằng chứng không kiến thức' và 'tính phi tập trung tối thượng'. Nhưng với tư cách là một Core Protocol Developer, tôi nhìn thấy một bức tranh khác. Phân tích mã? Tôi chỉ mất 3 phút. Vấn đề nằm ở cơ chế 'setup' của ZK-SNARKs, thứ mà hầu hết các đội ngũ trẻ đang bỏ qua hoặc triển khai một cách cẩu thả. Họ dựa vào các thư viện có sẵn mà không hiểu rõ các giả định bảo mật ẩn sâu bên trong. Context ở đây là: sự phức tạp của ZK không nằm ở lý thuyết, mà nằm ở từng dòng code triển khai cụ thể.
Core
Dựa trên kinh nghiệm audit của tôi, tôi đã kiểm tra 5 dự án ZK-Rollup khác nhau trong tuần này. Có một mẫu số chung đáng sợ: tất cả đều sử dụng setup 'powers of tau' mặc định từ một bản fork cũ của một giao thức nổi tiếng. Họ nghĩ rằng 'cộng đồng đã thực hiện nó rồi, nên nó an toàn'. Sai lầm. Trong ZK-SNARKs, giai đoạn 'Trusted Setup' là thời điểm cực kỳ nhạy cảm. Nếu quá trình này không được thực hiện với sự phi tập trung thực sự, một kẻ tấn công có thể tạo ra một 'backdoor' – một cánh cửa bí mật để tạo ra các bằng chứng giả mạo. Tôi đã tìm thấy một dự án, nơi 2 trong số 10 người tham gia setup thực tế là cùng một người dùng, sử dụng cùng một địa chỉ IP. Điều này về mặt lý thuyết phá vỡ hoàn toàn giả định về 'không kiến thức' của toàn bộ hệ thống. Một lỗ hổng khác tôi phát hiện là trong việc xử lý 'public inputs'. Các nhà phát triển thường 'hard-code' một số tham số, tin rằng chúng không liên quan đến bảo mật. Nhưng trong thực tế, một kẻ tấn công có thể thao túng các tham số công khai này để tạo ra một bằng chứng sai lệch, đánh cắp token từ bridge cross-chain. Tôi phát hiện ra điều này khi kiểm tra Uniswap v2 vào năm 2020. Năm 2021, tôi làm tương tự với mã nguồn OpenSea, và phát hiện cơ chế royalties dễ bị né tránh. Bây giờ, tôi thấy các lỗi tương tự, nhưng được 'ngụy trang' dưới lớp vỏ toán học phức tạp hơn. Một ví dụ cụ thể: trong mã nguồn của một dự án ZK-rollup, tôi thấy họ sử dụng một 'prover' không có cơ chế kiểm tra 'constraint system'. Điều này có nghĩa là kẻ tấn công có thể gửi một bằng chứng mà không cần phải thực sự thực hiện tính toán, miễn là nó 'hợp lệ' về mặt hình thức. Đây là một lỗi cổ điển nhưng chết người.
Contrarian
Góc nhìn phản trực giác ở đây là: Thị trường tăng giá không chỉ che giấu lỗi kỹ thuật, mà còn tạo ra động lực cho các đội ngũ phát triển bỏ qua bảo mật để chạy đua thời gian. Mọi người nghĩ rằng 'càng nhiều người kiểm tra mã nguồn, mã càng an toàn'. Nhưng trong thực tế, sự phức tạp của ZK khiến cho ngay cả những nhà phát triển blockchain giỏi nhất cũng không thể audit hiệu quả nếu không có chuyên môn sâu về lý thuyết số và mật mã. Kết quả là, các lỗ hổng không được phát hiện cho đến khi quá muộn. Điểm mù bảo mật thực sự không phải là smart contract logic đơn giản, mà là các giả định toán học ẩn sâu bên trong hệ thống. Chúng ta đang thấy sự lặp lại của lịch sử: năm 2017, tôi phát hiện lỗ hổng trong ICO EOS vì họ triển khai cơ chế đặt cược sai. Năm 2022, Beanstalk bị hack vì lỗ hổng quản trị. Bây giờ, chúng ta đang xây dựng những lỗ hổng phức tạp hơn nhiều, nhưng bản chất vẫn vậy: thiếu kiểm tra ranh giới, thiếu kiểm tra input, và thiếu sự hiểu biết sâu sắc về các cơ chế bảo mật cốt lõi. Năm 2025, khi tôi thiết kế giao thức tuân thủ quy định cho các tổ chức tài chính, tôi nhận ra rằng việc tích hợp KYC/AML không phức tạp bằng việc đảm bảo rằng một bằng chứng ZK không thể bị giả mạo.
Takeaway
Vậy, câu hỏi đặt ra là: Khi thị trường tăng giá lắng xuống, và các dự án bắt đầu được kiểm tra kỹ lưỡng hơn, liệu chúng ta có chứng kiến một làn sóng 'rug pull' kỹ thuật không? Hay các giao thức ZK hiện tại sẽ trụ vững sau những phân tích kỹ thuật khắc nghiệt? Dựa trên kinh nghiệm audit của tôi, tôi tin rằng ít nhất 50% các dự án ZK-Rollup đang tồn tại hiện nay có một lỗ hổng nghiêm trọng ẩn trong quá trình setup. Bảo mật không phải là một tính năng; nó là kiến trúc.