Hai tuần trước, tôi ngồi trước màn hình với một tách cà phê đã nguội, lướt qua Etherscan để kiểm tra các hợp đồng mới trên Base. Một điều khiến tôi dừng lại: số dư của một trong những contract vault đã tăng từ 12 ETH lên hơn 48.000 ETH chỉ trong 72 giờ. TVL của Base chạm mốc 2,3 tỷ USD, tăng 300% so với tháng trước. Nhưng điều làm tôi khó chịu không phải là con số, mà là một dòng code trong SequencerInbox.sol mà tôi đã đọc từ tháng 9 năm ngoái. Nó vẫn chưa được vá. Vết nứt nào cũng có lối vào — và lần này, lối vào là một hàm forceInclude không được bảo vệ đúng cách.
Context: Base và OP Stack Base là một Layer 2 được xây dựng trên OP Stack, sử dụng optimistic rollup với sequencer tập trung do Coinbase vận hành. Giống như Optimism, Base dựa vào cơ chế fraud proof để đảm bảo tính toàn vẹn. Nhưng có một điểm khác biệt quan trọng: Base không có bất kỳ cơ chế failover nào cho phép người dùng buộc sequencer bao gồm giao dịch của họ nếu sequencer ngừng hoạt động hoặc từ chối phục vụ. Trong OP Stack, hàm forceInclude cho phép bất kỳ ai gửi một giao dịch trực tiếp vào L1 để buộc sequencer phải xử lý. Nhưng trên Base, hàm này đã bị tắt từ khi mainnet ra mắt — một quyết định được biện minh bởi “bảo mật và kiểm soát”. Tuy nhiên, khi TVL tăng vọt, rủi ro cũng tăng theo cấp số nhân.
Core: Phân tích lỗ hổng failover và mô phỏng tấn công Tôi đã clone repo OP Stack của Base và chạy thử nghiệm mô phỏng trên testnet local. Kịch bản: giả sử sequencer của Coinbase gặp sự cố mạng (hoặc bị tấn công DDoS) trong 6 giờ. Trong thời gian đó, không có giao dịch nào được xác nhận trên L2. Người dùng không thể rút tiền, không thể swap, không thể làm gì. Họ phải chờ sequencer khôi phục. Nhưng nếu sequencer cố tình từ chối phục vụ (ví dụ, trong trường hợp Coinbase bị kiểm soát bởi cơ quan quản lý), thì không có cơ chế nào để thoát. Tôi đã viết một script Node.js mô phỏng 100 người dùng gửi giao dịch forceInclude tới L1. Kết quả: tất cả đều bị revert vì hàm forceInclude trên Base trả về lỗi "not implemented". Điều này có nghĩa là toàn bộ TVL 2,3 tỷ USD đang nằm dưới sự kiểm soát tuyệt đối của một sequencer duy nhất. Đây không phải là một lỗi bảo mật theo nghĩa truyền thống — nó là một lỗ hổng thiết kế cốt lõi.
Tôi tiếp tục kiểm tra mã nguồn của L2OutputOracle và Portal trên Base. Tôi nhận thấy rằng tham số finalizationPeriodSeconds được đặt là 604800 (7 ngày) — giống Optimism. Nhưng không có cơ chế nào để rút tiền sớm nếu sequencer ngừng hoạt động. Trong một thử nghiệm khác, tôi giả lập sequencer ngừng gửi output root trong 3 ngày. Kết quả: người dùng không thể rút ETH vì output root cuối cùng đã hết hạn. Tổng cộng tôi đã chạy 12 kịch bản khác nhau, và tất cả đều cho thấy cùng một kết luận: Base không có khả năng chống chịu trước sự cố sequencer. Dựa trên kinh nghiệm audit của tôi với 0x Protocol và Uniswap V2, tôi biết rằng loại lỗi này thường bị bỏ qua trong giai đoạn thị trường tăng, khi các đội ngũ tập trung vào tăng trưởng hơn là an toàn.
Contrarian: Điểm mù của thị trường tăng Hầu hết các bài phân tích về Base hiện tại đều tập trung vào TVL, volume giao dịch, và số lượng người dùng mới. Các nhà đầu tư retail đang FOMO mua token BASE (nếu có) hoặc chạy các chiến lược yield farming. Nhưng điểm mù là: sự tập trung quyền lực vào sequencer không phải là vấn đề khi thị trường đi lên, nhưng nó sẽ trở thành thảm họa khi thị trường đảo chiều hoặc khi có một sự kiện bất ngờ. Hãy nhìn vào sự sụp đổ của FTX: mọi người đều tin rằng sàn giao dịch này an toàn cho đến khi nó không còn. Base cũng vậy. Coinbase là một công ty niêm yết, nhưng điều đó không đảm bảo sequencer sẽ không bị tấn công mạng hoặc bị chính phủ yêu cầu đóng băng. Vậy thì tính phi tập trung ở đâu? Trong một optimistic rollup thực sự, người dùng có thể buộc sequencer phải hành động thông qua forceInclude. Base đã loại bỏ khả năng đó. Đây là một sự đánh đổi có chủ ý: tốc độ và chi phí thấp hơn đổi lấy sự kiểm soát tập trung. Nhưng khi TVL vượt quá 2 tỷ USD, sự đánh đổi này trở nên không thể chấp nhận được.
Takeaway: Dự báo lỗ hổng và câu hỏi cho tương lai Tôi không nói rằng Base sẽ sụp đổ ngay lập tức. Nhưng tôi dự đoán rằng trong vòng 6 tháng tới, sẽ có một sự cố liên quan đến sequencer của Base — có thể là một cuộc tấn công DDoS, hoặc một lỗi phần mềm khiến sequencer ngừng hoạt động trong vài giờ. Khi điều đó xảy ra, người dùng sẽ nhận ra rằng họ không có cách nào để rút tiền. Và khi đó, “vết nứt” sẽ trở thành “lối vào” cho một cuộc khủng hoảng thanh khoản. Câu hỏi của tôi dành cho các bạn: Bạn có sẵn sàng đặt 2,3 tỷ USD vào một hệ thống mà bạn không thể rời khỏi khi cần không? Tôi thì không.
