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ỳ này, 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, nơi 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 có thể giúp các nhà phát triển hiểu rõ hơn. Odaily Planet Daily tổng hợp các phần liên quan đến 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 của từng khía cạnh 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 được mã hóa:
- Các mã thông báo 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 mã thông báo 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ể giải quyết 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.
Hình bên dưới minh họa trực quan cách hoạt động của CTF (Khung mã thông báo có điều kiện)
Người dùng cung cấp tài sản cơ bản khi đặt cược và nhận mã thông báo Chia sẻ, được gọi là mã thông báo có điều kiện trong CTF. Sau khi nhà tiên tri xác định dự đoán, người dùng có thể 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 mã thông báo có điều kiện, họ được coi là đã đảm nhận một vị trí 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ì?
Ví dụ:
Bộ phim có doanh thu cao nhất năm 2024 là gì?
- Từ trong ra ngoài 2
- điên tối đa 4
- Deadpool 3
- Joker 2
- tôi thật đáng khinh 4
- cồn cát 2
- khác
Người dùng có thể bình chọn 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;
- Dựa trên tín hiệu từ nhà tiên tri, 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 – lệnh 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 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 dưới dạng hợp đồng thông minh như một phần của khung mã thông báo có điều kiện. 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. Các nhà cung cấp thanh khoản cần có các biện pháp khuyến khích tài chính, nhận phần thưởng từ mỗi 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ổ đặt hàng 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 giới hạn trung tâm) hoặc BLOB (Sổ lệnh giới hạn nhị phân).
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ổ đặt hàng 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 giới hạn trung tâm) hoặc BLOB (Sổ lệnh giới hạn nhị phân).
CLOB và BLOB
CLOB (Sổ đặt hàng giới hạn trung tâm) hoặc BLOB (Sổ đặt hàng giới hạn nhị phân) là một hệ thống đại diện cho sổ đặt hàng 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 thi, 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 khóa riêng 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ổ đặt hàng 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 ứng dụng khách: 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 quá trình kiểm tra 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ó 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ó rất nhiều phần phụ thuộc.
Hầu hết chúng là các hợp đồng thông minh nhỏ thực hiện chức năng hạn chế:
Hầu hết chúng 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 mã thông báo 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: trình quản lý vai trò, xác định các chức năng xác minh và sửa đổi để đặt vai trò, 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ỉ áp dụng cho vai trò 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 mã thông báo 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 một đồng xu với giá 0,99 USD, họ sẽ trả mức phí tương tự như người mua đã mua đồng xu đó 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à khuyến khích tính thanh khoản của thị trường.
Để trao đổi dựa trên sổ lệnh hoạt động, ai đó cần tạo lệnh giới hạn để cung cấp tính 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. "Độ gần" 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 lớn, điều này chắc chắn có lợi cho người dùng cuối. Hơn nữa, tính thanh khoản càng lớn thì việc thao túng thị trường càng khó.
Để đảm bảo đủ thanh khoản, Polymarket đã phát triển chương trình phần thưởng đặc biệt để khuyến khích người dùng tạo 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 khuyến khích 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.
Lời tiên tri
Những lời tiên đoán đượ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 nhóm Polymarket. Oracle này được gọi là UMA.
Lời tiên tri
Những lời tiên đoán được sử dụng để đưa ra những kết quả 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 nhóm 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 nào trên blockchain, ngoại trừ dữ liệu không thể xác minh được. Nhà tiên tri 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à chủ sở hữu mã thông báo UMA. Hệ thống này được gọi là DVM (Cơ chế xác minh dữ liệu).
Quá 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ố: Các 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ể 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 để đưa ra quyết định 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 hành xử trung thực.
- Bỏ phiếu: Bỏ phiếu, nếu tranh chấp được bắt đầu, chủ sở hữu mã thông báo UMA sẽ bỏ phiếu để giải quyết tranh chấp. UMA là mã 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.
- Giải quyết: Giai đoạn cuối cùng là quá trình giải quyết, là quá trình ghi lại dữ liệu thực tế trên blockchain. Sau đó, kết quả dự báo có thể được coi là đá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 khuyến khích 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ư đặt cược; nếu không, họ sẽ nhận được phần thưởng. Không có cách nào để thư giãn.
Đặ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 các nhà tiên tri hoặc tấn công các dịch vụ dựa trên kết quả được dự đoán. Các kết quả dự báo đồng thời có thể bị phản đối nhiều 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
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ỗi mô-đun được phát triển bởi một giao thức và nhóm khác nhau:
- CTF (Khung mã thông báo 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ổ đặt lệnh giới hạn trung tâm): Giải pháp nội bộ của Polymarket để triển khai sổ đặt hàng 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 tính 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.
Tất cả bình luận