Văn bản gốc của Pavel Naydanov
Tổng hợp | Golem Odaily ( @web3_golem )

Lưu ý của biên tập viên: Polymarket đã thu hút được nhiều sự chú ý hơn trong cuộc bầu cử Hoa Kỳ lần, không chỉ vì khối lượng giao dịch tích lũy của chủ đề dự đoán vượt quá 3,6 tỷ đô la Mỹ mà còn vì nó đã dự đoán trước thành công tương lai của Trump so với các cuộc thăm dò và phương tiện truyền thông truyền thống sẽ giành chiến thắng. giúp mọi người biết rõ hơn rằng Polymarket không chỉ là một trang web cá cược mà sẽ trở thành một "trang web tin tức" xác thực và đáng tin cậy hơn (nên đọc: " Bài viết mới của Vitalik: Từ thị trường dự đoán đến tài chính thông tin "). Polymarket có thể là “cảnh quan” đẹp nhất trong vòng đổi mới blockchain này.
Vậy Polymarket, vốn mang tầm quan trọng của "cuộc cách mạng blockchain", được hiện thực hóa về mặt kỹ thuật như thế nào? Nhà phát triển hợp đồng thông minh Pavel Naydanov đã phân tích và giải thích chi tiết về công nghệ được Polymarket sử dụng, điều này giúp các nhà phát triển khai sáng (đặc biệt là các thị trường dự đoán xây dựng các ngôi sao đang lên). Odaily tổng hợp các phần trong đó việc triển khai kỹ thuật như sau. Tiếp theo, chúng ta hãy đi sâu vào chi tiết kỹ thuật về các khía cạnh khác nhau của giao thức.
CTF: Kết quả token hóa
Tất cả kết quả sự kiện trên Polymarket đều token hóa:
Token như vậy có thể được gọi là Mã thông báo chia sẻ;
Cổ phiếu được mua bằng tài sản cơ bản nên chúng được thế chấp hoàn toàn;
Cổ phiếu có thể được bán để có được tài sản cơ bản.
Mã thông báo chia sẻ là một triển khai ERC-1155 dựa trên Khung token có điều kiện Gnosis (CTF) , đã được chứng minh tính hiệu quả và đã được thử nghiệm trên nhiều giao thức, CTF có thể hỗ trợ tới 256 kết quả cho mỗi sự kiện.
Mỗi dự đoán được xác định trong CTF, trong đó chúng được gán một ID điều kiện duy nhất bao gồm hàm băm gồm ba tham số:
Oracle : Địa chỉ của oracle sẽ quyết định kết quả của sự kiện, điều này đảm bảo rằng chỉ có oracle được chỉ định mới có thể quyết toán dự đoán;
ID câu hỏi : Mã định danh dự đoán, do người tạo câu hỏi dự đoán đặt. Đây có thể là một bộ đếm đơn giản trong đó mỗi dự đoán mới sẽ tăng giá trị dự đoán trước đó hoặc một sơ đồ phức tạp hơn bằng cách sử dụng hàm băm của văn bản và dữ liệu khác ;
resultsSlotCount : Số lượng kết quả dự đoán có thể xảy ra.
Sơ đồ bên dưới minh họa trực quan cách CTF (Khung mã token có điều kiện) hoạt động:

Người dùng cung cấp tài sản cơ bản khi đặt cược và nhận Share token, được gọi là token có điều kiện trong CTF. Sau khi oracle xác định dự đoán, người dùng có thể lĩnh nhận phần thưởng từ CTF dựa trên kết quả dự đoán.
Khi người dùng nhận được token có điều kiện, họ được coi là đã có lập trường cụ thể. Trong CTF, các vị trí đại diện cho một tập hợp các kết quả có thể xảy ra cho mỗi dự đoán. CTF tạo ra các vị trí này cho mỗi dự đoán, với mỗi vị trí tương ứng với một trong các kết hợp kết quả có thể xảy ra mà người dùng có thể chọn.
Ví dụ:
Bộ phim có doanh thu cao nhất năm 2024 là gì?
Từ trong ra ngoài 2
Deadpool 3
Joker 2
tôi thật đáng khinh 4
cồn cát 2
điên tối đa 4
khác
Người dùng có thể bình cho rằng Inside Out 2 sẽ là phim có doanh thu cao nhất hay Dune 2 chắc chắn không phải là phim có doanh thu cao nhất năm 2024. Sự kết hợp các dự báo này sẽ được coi là vị trí của chúng.
CTF cung cấp hai cơ chế thú vị để xử lý các vị trí: chia tách và hợp nhất . Cơ chế phân tách cho phép chia một vị trí thành nhiều kết quả riêng lẻ, đồng thời hợp nhất kết hợp các kết quả khác nhau thành một vị trí duy nhất. Các cơ chế này cho phép người dùng quản lý linh hoạt vị thế của mình.
CTF cung cấp cho Polymarket bốn lợi thế quan trọng:
Mã thông báo chia sẻ có thể được sử dụng để xác nhận phiếu bầu của người dùng cho một kết quả dự đoán cụ thể;
Triển khai hệ thống linh hoạt kết hợp phiếu bầu của người dùng vào nhiều vị trí khác nhau;
Căn cứ vào tín hiệu từ oracle, trách nhiệm tính toán kết quả được giao cho CTF;
Phần thưởng được tính dựa trên số lượng Share token cho kết quả chiến thắng.
Điều đáng nói là CTF cho phép tổ chức các hoạt động liên quan trong đó các vị trí của người dùng có thể được hợp nhất. Tuy nhiên, hiện tại không có ví dụ nào như vậy trên Polymarket. Nếu bạn muốn biết thêm về CTF, bạn có thể lấy nó trong tài liệu chính thức .
Cơ chế đặt hàng

Để mua hàng, giao diện Polymarket cung cấp ba loại đơn đặt hàng:
Market - Mua ngay theo giá thị trường hiện tại;
Giới hạn – một lệnh bị trì hoãn cho phép bạn chỉ định mức giá sẽ mua khi đạt đến mức giá đó;
AMM – Mua ở mức giá được xác định tự động tương tự như trên sàn giao dịch phi tập trung, dựa trên số lượng dự trữ trong nhóm.
Hiện tại, chức năng đặt hàng AMM dường như không hoạt động và không có dự báo nào cho phép mua qua AMM. Nhận xét từ một người dùng trong Polymarket's Discord phần nào giải thích được tình huống này.

AMM đã lỗi thời
Theo tài liệu của Polymarket, AMM được phát triển như một phần của khung mã thông báo có điều kiện cho hợp đồng thông minh. Do đó, AMM được sử dụng để xác định giá mua Share token. Cơ chế cơ bản này yêu cầu thanh khoản để đảm bảo giá cả ổn định và giảm biến động. Nhà cung cấp thanh khoản cần có khích lệ tài chính, nhận phần thưởng từ lần mua hàng để duy trì hoạt động của hệ thống.
Có lẽ ban đầu Polymarket hoàn toàn dựa trên CTF, sử dụng AMM để xác định giá. Nhưng theo thời gian, giao thức đã phát triển một giải pháp kết hợp với sổ lệnh và hai loại lệnh khác (giới hạn và thị trường) bắt đầu hoạt động trên giải pháp tùy chỉnh này. Giải pháp này được gọi là CLOB (Sổ lệnh hạn trung tâm) hoặc BLOB (Sổ lệnh giới hạn nhị phân).
CLOB và BLOB
CLOB (Sổ lệnh hạn trung tâm) hoặc BLOB (Sổ lệnh giới hạn nhị phân) là một hệ thống đại diện cho sổ lệnh phi tập trung lai. Trong hệ thống này, các nhà khai thác chuyên trách sẽ xử lý việc khớp lệnh và bắt đầu thực hiện hợp đồng thông minh.
Không cần giới thiệu quá nhiều, hệ thống được thể hiện như hình bên dưới:

Người dùng tạo một lệnh để được thực hiện, có thể là lệnh giới hạn hoặc lệnh thị trường; người vận hành khớp với lệnh của người dùng và bắt đầu thực hiện trên hợp đồng thông minh. Tạo lệnh có nghĩa là tạo cấu trúc dữ liệu được ký bằng private key của người dùng. tiêu chuẩn EIP-712 . Vì các lệnh được lưu trữ ngoài Chuỗi trước khi thực hiện nên các điều khoản của lệnh có thể được điều chỉnh nhanh chóng và miễn phí hoặc thậm chí bị hủy hoàn toàn.
Tuy nhiên, mọi thứ liên quan đến sổ lệnh và khớp lệnh chỉ có thể truy cập được thông qua API. Để thuận tiện, Polymarket cung cấp hai máy trạm: một sử dụng JavaScript và một sử dụng Python .
Tuy nhiên, hợp đồng thông minh Exchange.sol là công khai và chịu trách nhiệm tạo vị trí người dùng trong CTF. Nó cũng cho phép quản lý vị trí của người dùng và chuyển giao tài sản giữa họ, đảm bảo tính bảo mật và minh bạch trong giao thức.

Hợp đồng thông minh đã vượt qua kiểm toán và báo cáo kiểm toán được đính kèm vào kho lưu trữ.
hợp đồng thông minh
Hợp đồng thông minh Exchange thực sự có một tên cụ thể hơn là CTFExchange.sol . Nó không lớn lắm, chỉ khoảng 100 dòng mã, nhưng nó có lượng lớn phần phụ thuộc.

Hầu hết trong đó là các hợp đồng thông minh nhỏ thực hiện chức năng hạn chế:
BaseExchange.sol : Một hợp đồng thông minh trừu tượng triển khai khả năng nhận token ERC-1155 và cũng chịu trách nhiệm ngăn chặn các cuộc tấn công reentrancy;
Auth.sol : người quản lý nhân vật, xác định các chức năng xác minh và sửa đổi để đặt nhân vật, quản trị viên và người điều hành CTFExchange.sol;
Assets.sol : xác định hai tài sản, tài sản cơ bản (tài sản thế chấp) và địa chỉ CTF;
Fees.sol : Xác định phí giao thức;
Pausable.sol : Xác định khả năng tạm dừng hoạt động hợp đồng thông minh, một hình thức tập trung mà các giao thức đồng ý áp dụng khi phát sinh các trường hợp không lường trước được. Chỉ có sẵn cho nhân vật quản trị viên;
AssetOperation.sol : Xác định các hoạt động cho tài sản cơ bản và CTF. Bao gồm chuyển nhượng, chia tách và sáp nhập các vị thế;
Signature.sol : Mã xác định chữ ký người dùng được sử dụng khi xác minh đơn hàng;
Hashing.sol : xác định giá trị băm của tham số đơn hàng, được sử dụng để xác minh chữ ký;
Register.sol : Xác định quy trình đăng ký dự đoán trong hệ thống và đăng ký token cho dự đoán.
Mọi thứ liên quan đến việc thực hiện lệnh thực tế đều được triển khai trong hợp đồng thông minh Trading.sol . Bạn cũng có thể dễ dàng xem qua mã và nghiên cứu các hợp đồng thông minh. Cấu trúc đã xác định rõ điểm vào thông qua các hàm:
fillOrder() - thực thi một đơn hàng giữa người dùng đã tạo đơn hàng và một đơn hàng đang chờ xử lý (một đơn hàng khác) do người dùng chọn;
fillOrders() — Tương tự như fillOrder(), nhưng dành cho danh sách đơn hàng;
matchOrders() - toán tử chọn hai lệnh khác nhau và thực hiện chúng.
Tất cả các chức năng trên chỉ có thể được gọi bởi người vận hành.

Bất kể cuộc gọi đi vào hợp đồng thông minh như thế nào, kết quả luôn giống nhau: hai người dùng sẽ trao đổi token theo đơn đặt hàng của họ.
Phí thỏa thuận
Phí được tính dựa trên tài sản được xuất khẩu. Đối với các dự đoán nhị phân, phí là đối xứng, nghĩa là: nếu người dùng bán token với giá 0,99 USD, họ sẽ trả mức phí tương tự như người mua đã mua token với giá 0,01 USD.
Công thức tính toán rất đơn giản và được lấy từ tài liệu chính thức :

Chương trình thưởng thanh khoản
Mục tiêu tổng thể của chương trình là khích lệ thanh khoản của thị trường.
Để sàn giao dịch dựa trên sổ lệnh hoạt động, ai đó cần tạo lệnh giới hạn để cung cấp thanh khoản cho phép thực hiện lệnh thị trường ngay lập tức. Người dùng tạo lệnh giới hạn được gọi là nhà tạo lập thị trường. "Sự gần gũi" giữa lệnh giới hạn và giá thị trường càng cao thì lệnh thị trường được thực hiện càng nhanh và khối lượng giao dịch càng cao, điều này chắc chắn có lợi cho người dùng cuối. Hơn nữa, thanh khoản càng lớn thì việc thao túng thị trường càng khó khăn.
Để đảm bảo đủ thanh khoản, Polymarket đã phát triển một chương trình phần thưởng đặc biệt để khích lệ người dùng tạo các lệnh giới hạn. Lệnh giới hạn càng gần với giá thị trường trung bình thì phần thưởng càng cao. Phần thưởng sẽ được thanh toán tự động vào nửa đêm (giờ UTC) hàng ngày.
Hệ thống này được mô phỏng theo dYdX . Nếu muốn biết thêm, bạn có thể xem kế hoạch khích lệ thanh khoản ban đầu của dYdX và công thức tính phần thưởng thanh khoản chi tiết của Polymarket.
Oracle
Oracle được sử dụng để đưa ra những kết quả được dự đoán—cho dù một sự kiện có xảy ra hay không. Oracle là một trong những thành phần quan trọng nhất của giao thức, nhưng nó được phục vụ bởi bên thứ ba chứ không phải đội ngũ Polymarket. Oracle này được gọi là UMA .
UMA là một oracle phi tập trung được thiết kế để ghi lại bất kỳ loại dữ liệu trên blockchain , ngoại trừ dữ liệu không thể xác minh. Oracle rất lạc quan và dữ liệu sẽ chính xác theo mặc định trừ khi bị tranh chấp. UMA có hệ thống trọng tài riêng để giải quyết tranh chấp và trọng tài là người thật – những người tham gia vào hệ sinh thái UMA, cụ thể là người nắm giữ token UMA. Hệ thống này được gọi là DVM (Cơ chế xác minh dữ liệu).
Quy trình sau đây được sử dụng để xác định kết quả dự đoán và ghi lại chúng trên blockchain:

Tuyên bố : Dự đoán được thêm vào oracle cùng với phần thưởng. Bất kỳ ai tranh chấp thành công kết quả dự đoán đều có thể lĩnh nhận phần thưởng;
Giai đoạn thử thách : Giai đoạn thử thách, trong đó bất kỳ ai cũng có thể thách thức kết quả dự đoán. Nếu không có thách thức nào xảy ra và hết thời gian, dự báo được coi là đã sẵn sàng để quyết toán cuối cùng, cho thấy tính chính xác của nó;
Tranh chấp : Bất kỳ người tham gia giao thức nào cũng có thể tranh chấp kết quả, dù là để nhận phần thưởng hay vì sự công bằng. Trong thực tế, điều này hiếm khi xảy ra vì lý thuyết trò chơi cho rằng hầu hết người chơi đều cư xử trung thực.
Bỏ phiếu : Bỏ phiếu, nếu tranh chấp được bắt đầu, người nắm giữ token UMA sẽ bỏ phiếu để giải quyết tranh chấp. UMA là token thông báo giao thức được sử dụng để bỏ phiếu và người tham gia được thưởng khi tham gia bỏ phiếu.
Quyết toán : Giai đoạn cuối cùng là quá trình quyết toán , là việc ghi lại dữ liệu thực tế trên blockchain . Sau này, kết quả dự đoán có thể được cho rằng đáng tin cậy.
Toàn bộ giao thức dựa trên lý thuyết trò chơi và sẽ gây bất lợi về mặt kinh tế cho bất kỳ người tham gia nào tham gia vào hành vi nguy hiểm.
Những người tham gia gửi dự đoán để bỏ phiếu sẽ cung cấp tài sản thế chấp cho hợp đồng thông minh. Nếu kết quả của họ bị thách thức, họ sẽ mất tài sản thế chấp; nếu không, họ sẽ lấy lại tài sản thế chấp và nhận phần thưởng. Điều này tạo ra động lực mạnh mẽ để chỉ gửi kết quả chính xác.
Những người tham gia tranh chấp dự đoán cũng cung cấp tài sản thế chấp. Nếu đúng, họ sẽ lấy lại tài sản thế chấp và nhận phần thưởng; nếu không, họ sẽ mất tài sản thế chấp. Điều này khích lệ người tham gia chỉ phản đối những kết quả mà họ tin là sai.
Các bên tham gia giải quyết tranh chấp. Họ phải đặt cọc token UMA và sẽ được thưởng khi giải quyết tranh chấp. Nếu họ bỏ phiếu sai hoặc không bỏ phiếu, họ sẽ mất một phần số dư dư đặt cược; nếu không, họ sẽ nhận được phần thưởng. Không có cách nào để buông lỏng.
Đặc biệt lưu ý là quy trình bỏ phiếu trong tranh chấp được chia thành hai giai đoạn bằng cách sử dụng sơ đồ cam kết/tiết lộ:
Cam kết : Người tham gia bỏ phiếu bí mật bằng cách gửi hàm băm của phiếu bầu của họ tới hợp đồng thông minh, nghĩa là không ai có thể biết người tham gia đã bỏ phiếu như thế nào chỉ bằng cách nhìn vào hàm băm.
Tiết lộ : Sau khi giai đoạn bỏ phiếu kết thúc, người tham gia tiết lộ phiếu bầu của họ và hợp đồng thông minh xác minh rằng chúng khớp với hàm băm đã gửi trước đó.
Quy trình bỏ phiếu gồm hai giai đoạn này ngăn cản cử tri thông đồng để làm mất uy tín của oracle hoặc tấn công các dịch vụ dựa trên kết quả được dự đoán. Kết quả dự báo đồng thời có thể bị phản đối lần, trong trường hợp đó UMA cho phép bắt đầu lại quá trình ra quyết định sau khi tranh chấp trước đó kết thúc.
Quá trình khởi kiện tranh chấp như sau:

Tóm lại
Polymarket, một hệ thống dự đoán và cá cược có vẻ đơn giản, thực sự bao gồm ba mô-đun chính, mô-đun được phát triển bởi một giao thức và đội ngũ khác nhau:
CTF (Khung mã token có điều kiện) : Quản lý danh mục đầu tư, lập trường và cổ phiếu trong các dự đoán, khung linh hoạt do Gnosis tạo ra này rất lý tưởng cho các thị trường dự đoán.
CLOB (Sổ lệnh giới hạn trung tâm) : Giải pháp nội bộ của Polymarket để triển khai sổ lệnh và lệnh giới hạn. CLOB cho phép người dùng tham gia hiệu quả vào hệ sinh thái và giúp tổng hợp thanh khoản .
UMA : Một oracle phi tập trung với hệ thống trọng tài giải quyết tranh chấp độc đáo. UMA là cốt lõi của hệ thống, truyền kết quả dự đoán thông qua blockchain.
Mặc dù Polymarket là một hệ thống đặt cược nhưng về mặt kỹ thuật, giao thức này kết hợp thành công các công nghệ từ các dự án khác nhau, khiến nó trở nên đặc biệt hấp dẫn đối với các nhà phát triển.
Đọc liên quan
Sau bầu cử Mỹ, cơn sốt Polymarket và thị trường dự đoán sẽ còn tồn tại được bao lâu?
Polymarket đã vượt trội hơn các cuộc thăm dò tổng tuyển cử truyền thống như thế nào?





