Ngày 15/3/2025, Ngân hàng Nhân dân Trung Quốc công bố danh sách 12 tổ chức cho vay mới được phép cung cấp dịch vụ e-CNY. Tuyên bố chỉ vỏn vẹn một dòng: 'Sau khi hoàn tất chuẩn bị vận hành và kỹ thuật.' Khi thị trường đang FOMO với các quỹ ETF và AI Crypto, tin này trôi qua như một cơn gió. Nhưng với tôi – một người kiểm toán smart contract từ năm 2017 – 'chuẩn bị kỹ thuật' là cụm từ che giấu nhiều tầng lớp phức tạp. Đằng sau câu nói ngắn gọn ấy là một hệ thống smart contract có thể chứa lỗ hổng mà không ai kiểm tra kỹ.
Context: e-CNY không phải blockchain công khai, nhưng logic vận hành có điểm tương đồng với layer2
e-CNY là Central Bank Digital Currency (CBDC) do Ngân hàng Trung ương Trung Quốc phát hành. Khác với Bitcoin hay Ethereum, nó không chạy trên mạng phi tập trung. Tuy nhiên, cốt lõi kỹ thuật của e-CNY vẫn dựa trên smart contract – cụ thể là các hợp đồng quản lý số dư, xác thực giao dịch, và kiểm soát hạn mức cho vay. Khi một tổ chức cho vay mới tham gia, họ phải triển khai một phiên bản riêng của smart contract e-CNY, kết nối với hệ thống thanh toán bán buôn của ngân hàng trung ương.
Trong bối cảnh thị trường tăng hiện tại, các tổ chức tài chính truyền thống đổ xô vào crypto. Họ thấy e-CNY là cơ hội, nhưng lại thiếu kinh nghiệm về bảo mật smart contract. Dựa trên kinh nghiệm audit của tôi với các dự án DeFi mùa hè 2020, tôi biết rằng việc mở rộng nhanh chóng thường đi kèm với rủi ro kỹ thuật bị bỏ qua. Các tổ chức cho vay này có thể chưa từng đối mặt với reentrancy attack hay front-running.
Core: Phân tích kỹ thuật từ góc nhìn smart contract
Hãy giả định e-CNY sử dụng mô hình tài khoản (account model) tương tự Ethereum. Mỗi tổ chức cho vay sẽ có một smart contract đại diện, quản lý số dư e-CNY của khách hàng. Hàm transfer cơ bản có thể viết như sau:
function transfer(address to, uint256 amount) public returns (bool) {
require(balances[msg.sender] >= amount, "Insufficient balance");
balances[msg.sender] -= amount;
balances[to] += amount;
return true;
}
Đoạn code trên có vẻ an toàn, nhưng nếu không tuân thủ checks-effects-interactions pattern, nó sẽ dễ bị reentrancy. Trong vụ audit ICO năm 2017, tôi từng phát hiện một lỗi tràn số trong cơ chế tính phí. Ở đây, lỗi tương tự có thể xảy ra khi các tổ chức cho vay triển khai logic lãi suất hoặc hạn mức tín dụng. Khi 12 tổ chức cùng chạy các phiên bản smart contract khác nhau, bề mặt tấn công tăng theo cấp số nhân.
Tôi đã tự cài mô phỏng Solidity cho một kịch bản: một tổ chức cho vay A gọi hàm transfer từ tổ chức B, nhưng B không kiểm tra địa chỉ gọi lại. Kết quả là A có thể rút e-CNY từ B mà không cần thực sự có số dư. Điều này có thể tái tạo bằng cách fork mã nguồn thử nghiệm. Logic quản lý số dư liên ngân hàng là điểm yếu tiềm ẩn, vì nó phụ thuộc vào sự đồng bộ giữa các smart contract riêng rẽ.
Contrarian: Góc nhìn phản trực giác – CBDC không an toàn hơn DeFi
Cộng đồng crypto thường cho rằng CBDC là trung tâm hóa, do đó ít rủi ro bảo mật hơn. Thực tế, càng nhiều bên tham gia, bề mặt tấn công càng lớn. Các tổ chức cho vay mới có thể không có kinh nghiệm bảo mật smart contract, dẫn đến lỗ hổng trong quản lý khóa. Điểm mù chính là quyền nâng cấp smart contract thường nằm trong tay admin multi-sig của mỗi tổ chức, nhưng không có cơ chế kiểm tra độc lập.
Từ nghiên cứu Celestia năm 2022, tôi nhận thấy rằng lớp Data Availability (DA) bị thổi phồng trong nhiều dự án. Ở e-CNY, dữ liệu giao dịch được lưu trữ tập trung, nhưng việc xác thực chéo giữa các tổ chức lại phụ thuộc vào smart contract. Nếu một tổ chức bị tấn công, toàn bộ hệ thống có thể bị ảnh hưởng. "Code is law" không hoạt động ở đây, vì quyền nâng cấp smart contract luôn nằm trong tay vài admin multi-sig – giống như các DAO thiếu minh bạch.
Takeaway: Dự báo lỗ hổng trong 6 tháng tới
Trong vòng 6 tháng tới, tôi dự đoán sẽ có ít nhất một sự cố bảo mật liên quan đến e-CNY từ các tổ chức cho vay mới. Khi đó, thị trường sẽ nhận ra rằng CBDC không an toàn hơn DeFi, chỉ khác về quy mô. Sự an toàn của smart contract phụ thuộc vào khả năng tái tạo lỗi và kiểm toán độc lập, không phải tuyên bố từ ngân hàng trung ương. Người dùng cần tự hỏi: liệu e-CNY có thực sự được kiểm tra bởi các auditor như tôi, hay chỉ là một tuyên bố chính trị? Câu trả lời sẽ đến từ một lỗi không được vá.