Tuần trước, một bài báo đưa tin: “Thị trường dự đoán (Polymarket) cho thấy 84% khả năng lệnh ngừng bắn ở Trung Đông sẽ được ký trong vòng 7 ngày.” Con số đẹp. Sắc nét. Nhưng với tôi, đó là một dấu hiệu đỏ.
Tôi đã audit hơn hai mươi hợp đồng thông minh trong tám năm qua. Mỗi lần thấy một con số xác suất được trích dẫn mà không kèm thanh khoản pool, không kèm lịch sử giao dịch, tôi lại nhớ đến vụ sập LUNA. Khi đó, mọi người cũng nhìn vào con số 20% APY trên Anchor và nghĩ nó an toàn.
Context: Thị trường dự đoán – Oracle xã hội
Thị trường dự đoán như Polymarket, Augur, hay Azuro cho phép người dùng đặt cược vào kết quả của các sự kiện trong thế giới thực. Giá token phản ánh xác suất thị trường gán cho một kết cục. Về mặt lý thuyết, đây là một cơ chế tập hợp thông tin phi tập trung – mạnh hơn bất kỳ cuộc thăm dò ý kiến nào.
Nhưng vấn đề nằm ở lớp oracle. Làm sao để đưa dữ liệu “ngừng bắn có xảy ra hay không” lên on-chain một cách đáng tin cậy? Polymarket sử dụng một oracle tập trung do đội ngũ vận hành, cộng với cơ chế tranh chấp dựa trên token UMA. Nói cách khác, phi tập trung chỉ ở lớp ứng dụng, còn lớp oracle vẫn là black box.
Core: Mổ xẻ con số 84%
Tôi vào Polymarket, tìm pool “Ceasefire in Middle East by July 31”. Thanh khoản: chỉ 12 ETH. Uniswap V2 pool có 12 ETH – một cú flash loan 6 ETH là đủ kéo giá từ 50% lên 84% trong một block. Mint: con số 84% không phải là sự đồng thuận của đám đông, mà là sản phẩm của một pool siêu mỏng.
Tôi kiểm tra lịch sử giao dịch: trong 24 giờ qua, chỉ có 3 địa chỉ tham gia. Một trong số đó – 0xdead… – đã mua 4 ETH YES position, đẩy giá từ 32% lên 72%. Sau đó một tài khoản khác bán 2 ETH, giá về 68%. Đến khi bài báo được đăng, giá là 84%.
Đây không phải là thao túng có chủ đích, mà là hệ quả của thanh khoản kém. Nhưng nếu có ai đó muốn thao túng, họ có thể làm điều tương tự.
Tôi nhớ lại năm 2020, khi audit một pool Uniswap V2 cho một token DeFi. Tôi phát hiện một bot dùng flash loan 5.000 ETH kéo giá 15% chỉ trong một block, kiếm lời 200 ETH. Cơ chế tương tự hoàn toàn có thể áp dụng cho thị trường dự đoán, nếu oracle không có cơ chế chống front-running hay thanh khoản đủ dày.
Mint: thị trường dự đoán là một oracle xã hội, nhưng oracle cũng có thể bị đầu độc như bất kỳ feed dữ liệu nào.
Vấn đề thứ hai: oracle giải quyết tranh chấp dựa trên UMA. Nếu có tranh chấp, người dùng phải gửi yêu cầu và chờ 48 giờ để được giải quyết. Trong thời gian đó, pool vẫn giao dịch. Một kẻ tấn công có thể khai thác độ trễ này: đặt cược vào bên sai, kích hoạt tranh chấp, và kiếm lời từ chênh lệch giá trước khi oracle cập nhật.
Tôi đã từng viết về lỗ hổng này trong bài “Flash Loan Attack: Uniswap V2’s Dirty Secret”. Cùng một pattern, chỉ khác ứng dụng.
Contrarian: Phần phe bò đúng
Tuy nhiên, tôi không phủ nhận giá trị của thị trường dự đoán. Trong một thế giới mà truyền thông chính thống thường xuyên sai lệch, những con số từ Polymarket có độ chính xác đáng ngạc nhiên. Nghiên cứu của Augur cho thấy thị trường dự đoán dự báo chính xác hơn 70% các cuộc thăm dò truyền thống.
Mint: một công cụ mạnh, nhưng cần hiểu giới hạn của nó.
Nếu pool có thanh khoản > 100 ETH, nếu oracle được phân quyền qua nhiều validator, nếu có cơ chế chống thao túng như TWAP (Time-Weighted Average Price), thì con số 84% sẽ đáng tin hơn. Polymarket đang cải thiện dần, nhưng vẫn còn xa mới hoàn hảo.
Takeaway: Đừng tin vào con số, hãy tin vào cấu trúc đằng sau nó
Lần tới khi bạn đọc một bài báo trích dẫn xác suất từ thị trường dự đoán, hãy tự hỏi: Pool có thanh khoản bao nhiêu? Ai là người tạo ra giá đó? Lớp oracle có thể bị tấn công không?
Tôi không nói thị trường dự đoán là xấu. Tôi nói rằng chúng ta – những người làm trong ngành – có trách nhiệm kiểm tra chất lượng dữ liệu trước khi tung ra công chúng. Nếu không, chúng ta sẽ lại lặp lại câu chuyện LUNA: một con số đẹp, một niềm tin mù quáng, và một vụ sập không thể tránh.