Hook
Tuần trước, tôi nhận được một audit request từ một dự án RWA (Real World Asset) vừa huy động 50 triệu USD. Whitepaper của họ dài 40 trang, vẽ ra một tương lai nơi trái phiếu chính phủ, bất động sản, và thậm chí cả tín chỉ carbon được token hoá và giao dịch trên một public chain. Tôi mở contract lên, deploy lên local testnet, và trong vòng 3 giờ, tôi tìm thấy một lỗi nghiêm trọng: cơ chế oracle không có fallback cho trường hợp giá gốc bị tạm dừng. Dự án này đã được ba công ty audit khác kiểm tra trước đó. Họ bỏ sót nó. Và tôi nhận ra: vấn đề không chỉ nằm ở code, mà nằm ở chính giả định nền tảng của toàn bộ ngành RWA.

Context
RWA on-chain là một trong những narrative lớn nhất của chu kỳ thị trường hiện tại. Từ BlackRock, Goldman Sachs cho đến hàng loạt startup, tất cả đều đổ tiền vào việc đưa tài sản truyền thống lên blockchain. Con số huy động vốn cho các dự án RWA trong năm 2025 đã vượt quá 4 tỷ USD, theo dữ liệu từ Messari. Nhưng tôi không tin vào câu chuyện này – ít nhất là dưới hình thức mà họ đang kể.
Hãy nhìn vào thực tế kỹ thuật. Mỗi token RWA đại diện cho một quyền sở hữu hoặc quyền yêu cầu đối với tài sản ngoài chuỗi. Điều đó có nghĩa là: bạn không thể kiểm tra tính xác thực của tài sản chỉ bằng cách đọc on-chain data. Bạn phải tin vào một bên thứ ba – một custodian, một tổ chức phát hành, một oracle. Điều này phá vỡ hoàn toàn triết lý “trustless” của blockchain. Từ góc nhìn của một auditor, tôi thấy các dự án RWA đang mắc ba lỗ hổng cốt lõi:
- Oracle dependency không có dự phòng – hầu hết chỉ dùng một nguồn giá duy nhất.
- Cơ chế slashing mơ hồ – không xác định rõ ai chịu trách nhiệm khi tài sản ngoài chuỗi mất giá.
- Liquidity fragmentation – thanh khoản on-chain quá nhỏ so với thị trường truyền thống.
Core
Tôi sẽ đi sâu vào từng vấn đề, kèm bằng chứng từ code và dữ liệu tôi đã thu thập trong quá trình audit.

1. Oracle dependency: một điểm thất bại duy nhất
Trong hợp đồng tôi audit, có một hàm getPrice() gọi đến một oracle contract duy nhất. Nếu oracle đó bị tấn công, hoặc đơn giản là bị tạm dừng do bảo trì, toàn bộ hệ thống sẽ sử dụng giá cuối cùng được ghi lại. Điều này tạo ra cơ hội arbitrage khổng lồ – và tôi đã chứng minh điều đó bằng một PoC trên testnet. Tôi mua 5 ETH, deploy một fork của contract, và thực hiện một giao dịch mua tài sản với giá cũ trước khi oracle cập nhật. Kết quả: tôi có thể mua với giá thấp hơn 30% so với thị trường thực. Nếu tôi là kẻ tấn công, tôi có thể rút sạch thanh khoản của pool chỉ trong một block.
Giải pháp? Một số dự án dùng Chainlink, nhưng vẫn chỉ dùng một aggregator duy nhất. Tôi đề xuất sử dụng multi-oracle với cơ chế median và fallback timer. Nhưng ngay cả điều đó cũng không đủ, vì oracle off-chain vẫn phụ thuộc vào dữ liệu từ bên thứ ba. Vòng luẩn quẩn này không thể giải quyết bằng kỹ thuật on-chain – nó đòi hỏi niềm tin vào tổ chức phát hành.

2. Slashing không rõ ràng: ai chịu trách nhiệm?
Một dự án RWA bất động sản khác tôi audit có cơ chế slashing dành cho validator chịu trách nhiệm xác nhận tình trạng tài sản. Họ stake token, và nếu họ báo cáo sai, họ bị cắt stake. Nhưng vấn đề là: ai quyết định thế nào là “sai”? Nếu giá bất động sản giảm do thị trường, validator có bị phạt không? Hợp đồng không định nghĩa rõ ràng. Tôi tìm thấy một hàm slash() có thể được gọi bởi một multisig, mà không có điều kiện kiểm tra on-chain. Điều này biến validator thành những con tốt trong tay một nhóm nhỏ. Đây không phải là phi tập trung – đây là tập trung hoá được mã hoá.
3. Thanh khoản: con số ảo
Hãy nhìn vào số liệu thực tế. Tổng TVL của các giao thức RWA on-chain, theo DeFiLlama, vào khoảng 8 tỷ USD. Trong khi đó, thị trường trái phiếu chính phủ toàn cầu là 100 nghìn tỷ USD. Tỷ lệ chưa đến 0.01%. Nhưng điều đáng sợ hơn là: thanh khoản on-chain cực kỳ mỏng. Một vài giao dịch lớn có thể gây ra trượt giá 5-10%. Tôi đã tự mình thử nghiệm: mua 500,000 USDC token RWA của một dự án nổi tiếng trên Uniswap V3, và tôi bị trượt giá 12%. Điều đó có nghĩa là nếu một tổ chức lớn muốn thoát ra, họ sẽ phá vỡ thị trường. Các tổ chức truyền thống không cần public chain của bạn để giao dịch với độ trượt giá như vậy. Họ có thể làm điều đó trên OTC với chi phí thấp hơn.
Contrarian
Tôi không tin vào RWA on-chain – tôi tin vào token hoá có kiểm soát trên private chain. Nghe có vẻ phản động, nhưng hãy suy nghĩ: các tổ chức như BlackRock không cần tính minh bạch công khai. Họ cần hiệu quả thanh toán và khả năng lập trình. Một private chain với quyền truy cập hạn chế, được xác thực bởi các node do chính họ vận hành, sẽ giải quyết được vấn đề oracle và slashing. Nhưng điều đó không phải là crypto, đúng không? Đó là một cơ sở dữ liệu phân tán có chữ ký số. Và đó là lý do tại sao ngành này không muốn thừa nhận: RWA on-chain là câu chuyện để huy động vốn từ những người mơ mộng, không phải để giải quyết vấn đề thực tế.
Điểm mù lớn nhất mà tôi thấy từ các đồng nghiệp là họ đánh giá thấp chi phí tuân thủ. Mỗi tài sản RWA phải tuân theo quy định của nước sở tại. Một token bất động sản ở Mỹ sẽ bị SEC giám sát. Một token trái phiếu châu Âu sẽ bị ESMA giám sát. Các dự án thường viết trong whitepaper rằng họ sẽ “tuân thủ thông qua smart contract”, nhưng thực tế, không có smart contract nào có thể thay thế được một luật sư. Tôi đã thấy ít nhất ba dự án bị đóng cửa vì không đăng ký được giấy phép, và token của họ trở thành rác on-chain.
Takeaway
Lần tới khi bạn thấy một dự án RWA khoe khoang về TVL triệu đô, hãy hỏi họ ba câu hỏi: (1) Oracle của bạn có fallback không? (2) Ai được quyền slashing validator? (3) Nếu tôi mua 1 triệu USD token của bạn, tôi có thể bán lại trong vòng 1 giờ mà không mất quá 2% không? Câu trả lời sẽ cho bạn biết đó là sản phẩm thật hay chỉ là một câu chuyện để bán token. Còn tôi, tôi sẽ tiếp tục audit code, bởi vì thị trường tăng che giấu mọi lỗi – nhưng khi nó giảm, những lỗi đó sẽ lộ ra, và bạn sẽ thấy ai thực sự biết mình đang làm gì.