Buổi sáng ở Dubai, tôi nhận được tin nhắn từ đồng nghiệp: "Bọn chúng đang đầu độc simulation". Tôi uống ngụm cà phê, mở Etherscan, và thấy sự thật đáng sợ.
Hãy tưởng tượng bạn là một router thông minh, luôn chọn đường đi tốt nhất dựa trên bản đồ. Đột nhiên, ai đó vẽ thêm một con đường ảo dẫn đến vực thẳm. Đó là những gì đang xảy ra với DeFi.
Trong thế giới tài sản số, simulation – mô phỏng giao dịch trước khi thực thi – là xương sống của mọi ví và aggregator. Nó quyết định bạn sẽ swap ở pool nào, với mức giá nào. Một công cụ tưởng như vô hại, nhưng giờ đây đã trở thành bề mặt tấn công mới.
Context: Niềm tin mù quáng
Tôi còn nhớ năm 2017, khi ICO bùng nổ. Mỗi dự án đều có một câu chuyện, và tôi đã kiếm 30 lần từ Chainlink chỉ vì mê câu chuyện oracle của họ. "Mỗi ICO là một câu chuyện chưa được kể đúng cách." Simulation cũng vậy – câu chuyện về một lời hứa giá trị mà không ai kiểm chứng.
DeFi vận hành dựa trên giả định rằng kết quả mô phỏng khớp với thực tế. Các aggregator như 1inch, ParaSwap, thậm chí ví MetaMask, đều dùng simulation để chọn pool tốt nhất. Nhưng giả định đó đã bị phá vỡ.

Enso, một công ty bảo mật blockchain, vừa công bố một loại tấn công mới: kẻ triển khai các pool thanh khoản độc hại trả về báo giá sai lệch khi được mô phỏng, nhưng khi giao dịch thực sự được gửi lên chain, pool sẽ revert (hủy bỏ) hoặc thực hiện với giá tồi tệ hơn nhiều.
Core: Giải phẫu cuộc tấn công
Hãy nhìn vào code. Trên Ethereum, một pool Curve giả mạo đã xử lý hơn 129.000 giao dịch mô phỏng. Khi một router gọi hàm get_dy (tính lượng token đầu ra), nó trả về một con số hấp dẫn. Nhưng khi giao dịch thật được thực thi, pool kiểm tra điều kiện – nếu là giao dịch thật (không phải mô phỏng), nó sẽ revert, làm người dùng mất phí gas. Trên Polygon, một pool Uniswap v4 sử dụng hook để thực hiện hành vi tương tự, với tỷ lệ thất bại lên tới 99,1%.
Kẻ tấn công đã kiếm được khoảng 3,46 triệu USD từ chiêu trò này. Nhưng con số đó không quan trọng bằng cơ chế.

Sự khác biệt với MEV thông thường
MEV (Maximal Extractable Value) dựa trên việc sắp xếp giao dịch để khai thác chênh lệch giá. Còn tấn công simulation này không cần quyền ưu tiên sắp xếp. Nó lợi dụng một lỗ hổng trong thiết kế: không có cơ chế nào buộc pool phải trả lời trung thực trong lúc mô phỏng.

Hãy tưởng tượng một nhà hàng đưa ra thực đơn với giá rẻ mạt, nhưng khi bạn gọi món, họ nói "hết" và tính bạn phí gọi món. Đó chính xác là những gì các pool độc hại làm.
Uniswap v4 và hook: Con dao hai lưỡi
Uniswap v4 cho phép các nhà phát triển thêm hook – các đoạn code tùy chỉnh chạy trước và sau giao dịch. Điều này mở ra không gian sáng tạo, nhưng cũng tạo điều kiện cho các hook độc hại kiểm tra gasleft() hoặc block.number để phân biệt mô phỏng với thực thi.
Enso phát hiện ra rằng kẻ tấn công đã triển khai nhiều pool hơn, và chúng vẫn đang hoạt động trên các chuỗi khác. "Săn đuổi câu chuyện mới là bản năng của tôi – và cuộc săn lần này bắt đầu từ một lỗ hổng trong mô phỏng."
Contrarian: Góc nhìn phản trực giác
Bạn nghĩ simulation là an toàn? Sai. Nó không chạy trên chain, không ảnh hưởng đến trạng thái, nhưng chính vì thế nó dễ bị giả mạo nhất. Chúng ta từng tin rằng mô phỏng local là chân lý – giờ đây chân lý đó đã sụp đổ.
"CryptoPunks of Arabia: Nơi văn hóa gặp blockchain." Khi tôi xây dựng bộ sưu tập đó, tôi hiểu rằng ảo ảnh đẹp đẽ có thể bán được, nhưng cuối cùng chỉ là ảo ảnh. Tương tự, simulation đẹp đẽ đó chỉ là một màn ảo thuật nếu kẻ tấn công kiểm soát sân khấu.
Góc nhìn phản trực giác ở đây: Chúng ta nghĩ rằng bảo mật DeFi nằm ở smart contract, nhưng thực ra điểm yếu lại nằm ở tầng ngoài cùng – nơi giao tiếp với người dùng. Kẻ tấn công không cần hack code; chỉ cần hack niềm tin.
Takeaway: Bài học cho ngành
Enso đã tung ra Enso Shield – một lớp bảo vệ thực hiện kiểm tra sau giao dịch, so sánh kết quả mô phỏng với thực tế. Nhưng đây chỉ là giải pháp tạm thời.
Tôi tin ràng buộc các aggregator phải xây dựng cơ chế "execution proof" – chữ ký xác nhận rằng pool sẽ thực hiện đúng như đã hứa. Hoặc đơn giản hơn: mô phỏng trên nhiều nguồn độc lập, lấy kết quả trung vị.
"Mỗi ICO là một câu chuyện chưa được kể đúng cách." Câu chuyện về simulation cũng vậy. Lần này, chúng ta phải kể nó một cách trung thực hơn.
Câu hỏi cuối: Bạn có dám tin vào một mô phỏng nữa không? Tôi thì sẽ nhìn vào thực tế trên chain, nơi không có chỗ cho ảo ảnh.