Hook
Hôm qua, tôi đọc một dòng code trong smart contract của một dự án stablecoin mới: một hàm freeze(address) với quyền onlyOwner. Điều này không có gì lạ trong thế giới token ERC-20, nhưng với tư cách một auditor, tôi thấy nó giống như một cánh cửa sập. Và rồi Bộ Tài chính Mỹ vừa công bố đề xuất quy định theo GENIUS Act – một khung pháp lý cho stablecoin – và tôi chợt nhận ra: cánh cửa sập đó sắp trở thành tiêu chuẩn mới.
Context
GENIUS Act (viết tắt của Generating Necessary Infrastructure and Modernizing Enterprise Systems Act) là một dự luật đang được Quốc hội Mỹ xem xét, nhằm tạo ra khuôn khổ liên bang cho các stablecoin được hỗ trợ bằng đồng đô la. Đề xuất của Bộ Tài chính xác định rõ thế nào là “phát hành” và “bán” stablecoin tại Mỹ, đồng thời đặt ra các tiêu chuẩn cho các nhà phát hành nước ngoài muốn tiếp cận thị trường Mỹ. Điều này có nghĩa: nếu bạn muốn stablecoin của mình được người Mỹ sử dụng, bạn phải tuân thủ các yêu cầu về dự trữ, minh bạch, và – quan trọng nhất – khả năng kiểm soát từ trung tâm.
Core
Điều khiến tôi thực sự chú ý không phải là tác động tài chính, mà là những thay đổi về mặt kỹ thuật mà các lập trình viên smart contract sẽ phải đối mặt. Hãy nhìn vào cấu trúc của một stablecoin điển hình: bạn có một hợp đồng ERC-20 với các hàm mint, burn, transfer. Nhưng dưới khung pháp lý mới, nó sẽ phải bao gồm:
- Blacklist/Freeze: Cho phép nhà phát hành chặn địa chỉ bị nghi ngờ rửa tiền hoặc bị trừng phạt.
- Geo-blocking: Từ chối giao dịch từ các địa chỉ IP hoặc ví có nguồn gốc từ khu vực bị cấm.
- Proof of Reserves on-chain: Một cơ chế để chứng minh dự trữ 1:1, có thể thông qua oracle hoặc bằng chứng Merkle.
Từng audit hàng trăm hợp đồng, tôi biết rằng thêm một tính năng freeze vào token ERC-20 là mở ra một vector tấn công mới. Nếu quyền onlyOwner bị chiếm đoạt, kẻ tấn công có thể đóng băng toàn bộ nguồn cung. Nếu logic freeze không được triển khai đúng cách, nó có thể gây ra lỗi reentrancy hoặc làm hỏng trạng thái. Kinh nghiệm của tôi cho thấy: mỗi lớp trừu tượng hóa (abstraction) bạn thêm vào để tuân thủ quy định, bạn đang tăng diện tích bề mặt tấn công.
Hãy xem xét trường hợp của USDC. Circle đã có sẵn danh sách đen và khả năng đóng băng. Nhưng làm thế nào để đảm bảo tính toàn vẹn của danh sách đó trên chain? Một số dự án sử dụng oracle để cập nhật danh sách, nhưng oracle là điểm yếu. Tôi đã từng tìm ra lỗ hổng trong một oracle như vậy: kẻ tấn công có thể gửi một giao dịch với dữ liệu giả mạo để loại bỏ địa chỉ của mình khỏi blacklist. Điều này cho thấy rằng việc đưa quy định vào smart contract không đơn giản như thêm một vài hàm.

Đối với các nhà phát hành nước ngoài, như Tether, tình hình còn phức tạp hơn. Họ có thể phải triển khai hai phiên bản: một phiên bản tuân thủ Mỹ (có freeze, geo-blocking) và một phiên bản quốc tế (tự do hơn). Nhưng điều này dẫn đến phân mảnh thanh khoản – một vấn đề mà tôi từng cảnh báo trong các bài viết trước. Phân mảnh thanh khoản không phải là vấn đề kỹ thuật, nó là một câu chuyện được các VC tạo ra để bán sản phẩm mới. Nhưng lần này, nó là thật.

Contrarian
Trong khi hầu hết các nhà phân tích tập trung vào lợi ích của việc có quy định rõ ràng – như tăng niềm tin của nhà đầu tư tổ chức, giảm rủi ro hệ thống – tôi nhìn thấy một mặt tối: sự kết thúc của stablecoin phi tập trung thực sự. Một stablecoin như DAI của MakerDAO, dựa trên tài sản thế chấp phi tập trung, sẽ khó lòng đáp ứng các yêu cầu về “dự trữ được kiểm toán” và “khả năng đóng băng”. Nếu DAI muốn tiếp cận thị trường Mỹ, nó phải trở thành một phiên bản có kiểm soát, đi ngược lại triết lý cốt lõi của nó.
Điều này dẫn đến một nghịch lý: các quy định được thiết kế để bảo vệ người dùng lại có thể khiến họ mất đi quyền tự chủ. Khi stablecoin trở thành “công dân” dưới luật pháp Mỹ, chúng sẽ phải tuân theo các lệnh trừng phạt, đóng băng tài sản, và thậm chí tịch thu – giống như tài khoản ngân hàng truyền thống. Điều này có thể đẩy người dùng sang các stablecoin không tuân thủ, hoạt động ngoài vòng pháp luật, và khi đó rủi ro của họ còn lớn hơn.

Tôi cũng lo ngại về một lỗ hổng bảo mật mới sẽ xuất hiện: các hợp đồng lai ghép off-chain/on-chain. Khi stablecoin yêu cầu dữ liệu từ bên ngoài (danh sách đen, tỷ lệ dự trữ), các nhà phát triển sẽ vội vàng tích hợp oracle mà không kiểm tra kỹ. Tôi đã thấy điều này xảy ra trong các dự án DeFi mùa hè 2020: họ thêm một oracle giá đơn giản, và kẻ tấn công đã thao túng nó để rút hết thanh khoản. Bài học từ quá khứ: bất cứ khi nào quy định buộc bạn phải thêm một điểm kiểm soát, hãy chuẩn bị cho một cuộc tấn công mới vào chính điểm đó.
Takeaway
Đề xuất GENIUS Act không phải là tin xấu, nhưng nó là một lời nhắc nhở: mỗi dòng code bạn thêm vào để tuân thủ pháp luật là một dòng code bạn phải kiểm tra, audit, và bảo vệ. Trong môi trường thị trường gấu hiện tại, nơi mà sự sống còn quan trọng hơn lợi nhuận, các nhà phát hành stablecoin cần đầu tư vào bảo mật ngay từ đầu, chứ không phải sau khi quy định có hiệu lực. Hãy nhìn vào những gì đã xảy ra với các hợp đồng ICO năm 2017: nhiều dự án vội vã thêm các tính năng phức tạp để đáp ứng yêu cầu của nhà đầu tư, và kết quả là hàng loạt lỗ hổng. Liệu lịch sử có lặp lại với stablecoin? Tôi cá là có, nếu chúng ta không cẩn thận.