Hầu hết mọi người bỏ qua Layer-2 – nhưng đó là nơi rủi ro thực sự nằm. Ba năm kiểm toán hợp đồng thông minh cho tôi thấy: khi thị trường tăng, lỗi kỹ thuật càng bị che đậy bởi marketing. Và Layer-2, với lời hứa „giảm phí, tăng tốc‟, đang trở thành mảnh đất màu mỡ cho những thiếu sót chết người.
Hãy bắt đầu từ một con số: 99% rollup hiện tại không tạo đủ dữ liệu để cần Data Availability (DA) chuyên dụng. Đây không phải là ước lượng – tôi đã kiểm tra mã nguồn của hơn 20 dự án rollup khác nhau trong năm qua. Các đội ngũ xây dựng giải pháp DA riêng, khoe khoang về „tính khả dụng dữ liệu phi tập trung‟, nhưng khi nhìn vào code, bạn thấy họ chỉ đang chạy một cơ sở dữ liệu tập trung với một lớp chữ ký mỏng. Điều này không chỉ lãng phí tài nguyên mà còn tạo ra ảo tưởng bảo mật.
Context: Cơ chế hoạt động của Layer-2
Layer-2 về cơ bản là một lớp xử lý giao dịch bên ngoài mainnet, rồi gửi bằng chứng (proof) lên L1. Hai loại chính: Optimistic Rollup (giả định giao dịch đúng, có thời gian thử thách) và ZK-Rollup (dùng zero-knowledge proof để xác thực ngay lập tức). Cả hai đều cần DA – dữ liệu gốc của giao dịch – để nếu có tranh chấp, bất kỳ ai cũng có thể tái tạo trạng thái. Nhưng vấn đề là: nếu rollup chỉ xử lý vài nghìn giao dịch mỗi ngày, bạn không cần một mạng DA riêng với 100 validator. Một cơ sở dữ liệu đơn giản trên AWS cũng đủ đáp ứng – và rẻ hơn gấp 10 lần.
Tôi nhớ lại năm 2020, khi tối ưu hóa gas cho Uniswap v2, tôi phát hiện rằng nhiều dự án DeFi thêm các biến trung gian không cần thiết, làm tăng 15% chi phí giao dịch. Ngày nay, với Layer-2, tôi thấy một sai lầm tương tự: các đội ngũ xây dựng cơ sở hạ tầng quá phức tạp cho một vấn đề đơn giản. Họ bị cuốn theo „narrative‟ hơn là nhu cầu thực tế.
Core: Phân tích kỹ thuật – Nơi ẩn náu của lỗ hổng
Khi audit một rollup gần đây, tôi phát hiện ra lỗ hổng trong cơ chế xác thực bằng chứng. Cụ thể, hợp đồng verify trên L1 không kiểm tra đúng ràng buộc về số thứ tự khối (block number). Kẻ tấn công có thể gửi một bằng chứng cũ, nhưng với dữ liệu mới, để đánh lừa hệ thống. Lỗi này xuất phát từ việc nhóm phát triển sao chép code mẫu từ một rollup khác mà không hiểu sâu.
Đây là điểm khác biệt: hầu hết các bài báo kỹ thuật sẽ nói về „reentrancy guard‟ hay „access control‟, nhưng lỗ hổng thực sự thường nằm ở những giả định ngầm trong logic kinh doanh. Trong trường hợp này, giả định rằng „số thứ tự khối luôn tăng đơn điệu‟ là đúng, nhưng họ quên mất rằng trên L1, có thể xảy ra reorg (tổ chức lại khối) – dù hiếm, nhưng nếu xảy ra, số thứ tự khối có thể giảm tạm thời. Và khi rollup không xử lý trường hợp biên này, kẻ tấn công có thể lợi dụng.
Tôi đã từng thấy một lỗi tương tự trong audit NFT trên Immutable X năm 2021. Họ dùng zk-rollup, nhưng cơ chế mint không kiểm tra trùng lặp token ID nếu người dùng gửi yêu cầu cùng lúc. Kết quả: hai người dùng có thể mint cùng một NFT, và chỉ người giao dịch trước mới được ghi nhận. Lỗi này không xuất hiện trong testnet vì lượng giao dịch thấp, nhưng trên mainnet, với 5000 NFT mint trong một block, nó trở thành thảm họa.
Contrarian: Điểm mù bảo mật mà ai cũng bỏ qua
Nghịch lý lớn nhất của Layer-2 là: càng nhiều người dùng, càng ít bảo mật. Tại sao? Vì khi TVL tăng, các nhóm phát triển thường vội vàng nâng cấp mà không audit lại toàn bộ. Họ chỉ thêm tính năng mới, như cross-chain bridge, mà không nhận ra rằng bridge chính là điểm yếu chí mạng. Tôi đã phân tích 5 vụ hack Layer-2 lớn trong năm 2022-2023, và 4 trong số đó đến từ lỗi bridge. Các bridge thường được viết vội, dùng cơ chế multisig đơn giản, và không có kiểm tra định kỳ.
Một điểm mù khác: hầu hết các rollup đều dùng chung một thư viện xác thực (verifier library) từ Ethereum Foundation. Điều này tốt cho tiêu chuẩn hóa, nhưng nếu có lỗi trong thư viện đó, tất cả rollup đều bị ảnh hưởng. Và thư viện đó đã được cập nhật 3 lần trong 2 năm qua, mỗi lần là một bản vá lỗi. Bạn có chắc rollup của mình đang dùng phiên bản mới nhất không?
Takeaway: Dự báo lỗ hổng – và câu hỏi cho bạn
Trong 6 tháng tới, khi thị trường tăng nóng, tôi dự đoán sẽ có ít nhất một vụ hack lớn liên quan đến Layer-2, với thiệt hại trên 100 triệu USD. Lý do: các nhóm đang đua nhau launch, bỏ qua audit, và dựa vào „security by obscurity‟. Câu hỏi đặt ra là: bạn có đang kiểm tra mã nguồn của rollup bạn dùng, hay chỉ tin vào lời hứa „Layer-2 an toàn‟? Đi sâu hơn, thở dễ hơn – nhưng chỉ khi bạn dám nhìn vào code.