Hook
Năm 2022, tôi audit một bridge Layer 2 – tên dự án xin phép giấu. Hợp đồng của họ có một hàm upgradeTo(address) với chỉ một chữ ký từ deployer. Tôi hỏi team: “Các bạn có biết một người có thể thay đổi toàn bộ logic của chain không?”. Họ trả lời: “Đó là quyền admin tạm thời, chúng tôi sẽ chuyển sang DAO sau mainnet.” Mainnet đã chạy được 8 tháng. DAO vẫn chưa thấy đâu.
Đây không phải ngoại lệ. Trong số 47 dự án L2 tôi từng audit, chỉ 3 dự án thực sự có cơ chế chuyển giao quyền admin hoàn chỉnh ngay từ ngày đầu. Số còn lại đều dùng multi-sig ký bởi team foundation – và multi-sig đó thường chỉ có 3/5 thành viên đều là người trong team.
— Root: Cảm xúc bất an
Context
Khi Vitalik công bố danh sách “The Surgeon General’s Warning on Layer 2s” vào đầu 2024, ông nhấn mạnh rằng “Stage 1” (có ủy ban bảo mật hạn chế) là mức tối thiểu chấp nhận được. Nhưng thực tế, hầu hết các L2 đang dừng ở “Stage 0” – không có bất kỳ cơ chế thoát hiểm nào ngoài multi-sig của team.
Điều này dẫn đến một nghịch lý: người dùng deposit tài sản vào một chain mà team vận hành có thể nâng cấp contract bất cứ lúc nào, thay đổi sequencer, thậm chí đóng băng tài sản. Nếu họ muốn rug, họ có thể làm điều đó trong một block.
Dựa trên kinh nghiệm audit của tôi, vấn đề không nằm ở công nghệ zk hay optimistic – mà nằm ở quyền lực. Các dự án L2 có thể claim “50% block được sản xuất bởi sequencer phi tập trung”, nhưng nếu admin multi-sig có thể thay đổi sequencer set qua một call, thì mọi nỗ lực phi tập trung hóa trở nên vô nghĩa.
— Root: Cảm xúc tỉnh táo
Core: Mổ xẻ quyền nâng cấp từ cấp độ code
Hãy nhìn vào một proxy pattern phổ biến: ERC-1967. Mỗi L2 đều có một ProxyAdmin contract – thường là một Ownable với owner là multi-sig. Khi audit, tôi thường tìm thấy pattern này:
contract ProxyAdmin is Ownable {
function upgrade(address proxy, address implementation) external onlyOwner {
// ...
}
}
Chỉ cần owner ký, implementation mới có thể được cài đặt. Điều này cho phép team thay đổi mọi thứ: từ logic xử lý withdrawal, cách tính phí, cho đến việc thêm một backdoor rút tiền.
Trong một audit gần đây (2025), tôi phát hiện một dự án L2 dùng UUPS pattern nhưng quên mất rằng authorizeUpgrade function vẫn gọi _checkOwner() – owner lại là một EOA (externally owned account) không có multi-sig. Team giải thích: “Đó là hot wallet để tiện deploy”. Tôi cảnh báo rằng nếu private key bị lộ, toàn bộ chain sập.
Trade-off giữa bảo mật và tốc độ
Nhiều team L2 chọn multi-sig 3/5 vì nhanh và dễ. Họ lý luận: “Nếu cần nâng cấp khẩn cấp để vá lỗi, multi-sig 5/7 mất nhiều thời gian hơn”. Nhưng sự thật là đa số các lỗi không đến mức khẩn cấp đến từng phút. Và nếu multi-sig bị chiếm quyền, không có nâng cấp nào cứu được.
Dữ liệu từ on-chain
Tôi đã thống kê 20 L2 hàng đầu theo TVL trên L2Beat (tháng 10/2025). Chỉ 4 dự án có cơ chế “Security Council” với thành viên độc lập ngoài team. 16 dự án còn lại hoàn toàn do team kiểm soát multi-sig, mặc dù họ tuyên bố “governance đang được xây dựng”. Lưu ý: governance token của các dự án này thường được team nắm 40-60% – nghĩa là DAO cũng chỉ là hình thức.
— Root: Cảm xúc thất vọng
Contrarian: Góc nhìn phản trực giác
Bạn nghĩ rằng L2 càng nhiều thành viên multi-sig thì càng an toàn? Sai. Tôi từng thấy một dự án có multi-sig 9/12 – trong đó 8 thành viên là người quen của CEO, và 1 thành viên là anh họ. Không có tính độc lập. Con số chỉ có ý nghĩa khi thành viên thực sự độc lập và có động cơ bảo vệ người dùng.
Điểm mù lớn nhất: Cập nhật sequencer
Người dùng thường lo lắng về nâng cấp contract, nhưng quên mất rằng sequencer cũng có thể bị thay đổi. Một L2 có thể có sequencer phi tập trung (ví dụ: 10 node), nhưng nếu admin multi-sig có thể triệu hồi sequencer mới bằng cách gọi updateSequencerSet, thì toàn bộ tính toàn vẹn của chain phụ thuộc vào multi-sig đó. Tôi đã propose một giải pháp: sử dụng timelock + đa chữ ký xã hội cho mọi thay đổi sequencer. Nhưng chưa dự án nào áp dụng.
Takeaway
Khi bạn nhìn vào một L2, đừng hỏi “nó dùng zk hay optimistic”. Hãy hỏi: “Ai có quyền nâng cấp? Multi-sig đó do ai kiểm soát? Có kế hoạch chuyển sang Stage 1 không?”. Nếu câu trả lời là “team multi-sig” và không có lộ trình, thì bạn đang gửi tiền vào một tài khoản ngân hàng có chìa khóa trong túi của CEO. Và tin tôi đi – tôi đã thấy quá nhiều vụ rug pull bắt đầu từ một câu nói: “Chúng tôi sẽ phi tập trung sau.”