所有語言
分享
按:2024年美國大選最大的加密贏家之一是預測市場Polymarket。Polymarket成功預測特朗普全面贏得美國大選,其成交量超過30億美元。2024年11月14日,大選8天後,FBI突襲了Polymarket CEO Coplan位於紐約的住所,並要求交出電子設備。匿名消息表示,FBI可能懷疑該平台在選舉市場中進行操控。有沒有人能操控Polymarket,涉及到Polymarket到底怎麼工運作的機制。solidity開發者Pavel Naydanov在Hackernoon發文“Polymarket Explained"詳解了Polymarket的工作機制。金色財經xiaozou編譯了此文,如下:
Polymarket是最大、最受歡迎的區塊鏈預測市場之一。它支持用戶對各種事件結果進行下注,包括體育、政治、文化等等。
用戶資產存儲在非託管錢包中。該協議並不存儲用戶的私鑰,也無法訪問用戶資產。
用戶在第一次使用Polymarket時,他們需要創建一個內部錢包。通常有兩種選擇:
● 使用他們現有的EOA(外部賬戶),如Metamask、Coinbase或WalletConnect。
● 通過一種叫做Magic Link的技術使用电子郵件地址。輸入电子郵件並接收一個訪問該服務的特定鏈接。
這個內部錢包是通過專門的智能合約工廠創建的,具有1/1多重簽名功能,這意味着該錢包完全由用戶控制。
使用內部錢包可以讓Polymarket提供更好的用戶體驗,例如一次性啟用多個交易。
預測市場始於預測。預測是構建用戶場景的基礎。在預測市場中,這種陳述被稱為條件。它可以是一個問題、陳述、對預期結果、事件、預測等的描述。我們可以把它看作是任何形式的對未來事實的斷言。
預測的例子有:
九月份將發生7.0級地震。
GPT-5會在2024年發布嗎?
Bieber的孩子會是男孩還是女孩?
2024年票房最高的電影是哪部?
ETH價格會在2024年達到1萬美元嗎?
每個預測都有一個驗證截止日期:無論預測是否成真。Polymarket有一個特殊的oracle負責確定每個預測的結果
Oracle的作用是什麼?Polymarket採用區塊鏈技術構建,使用oracle將數據傳輸到網絡。Oracle的設計宗旨是讓其結果對於任何一個預測來說都是可信的。
通常,一個預測有多種可能性結果。Oracle將在這些結果中決定預測結果。
結果預測示例如下:
GPT-5會在2024年發布嗎?
是的
不會
2024年票房最高的電影是哪部?
頭腦特工隊2
其他
死侍3
小丑2
卑鄙的我4
沙丘2
瘋狂的麥克斯:狂暴女神
一個典型的預測市場結構如下:
第一步是創建一個市場,並添加一個具有一定期限的新預測(條件)。在此期間,用戶可以選擇他們認為最有可能的結果。最後一步是,oracle來確定哪組用戶是正確的,哪組是錯誤的。
選擇正確結果的用戶將獲得獎勵,而獎勵來源於所有參与者的貢獻。每個用戶通過對特定結果進行投票,貢獻了一定數量的資產供預測市場使用。所以,選擇錯誤的用戶什麼也得不到。
這可能會讓人得出這樣的結論:預測市場本質上就是賭博。是也不是。預測市場背後的主要理念是由Vitalik在他的博客中提出的。他認為,這些服務可以作為預測或分析各種事件發生概率的中立來源。人們可以基於這些數據做出明智的管理決策。
一般來說,預測市場可以相當準確這一觀點得到了有效市場假說(Efficient Market Hypothesis)的支持。根據這一假設,任何資產的價格都直接對應於其真實價值,因為所有可用信息都已經包含在價格中。
舉一個簡單的例子:
假設投資者知道一種商品的市場價值。只要它是有利可圖的,他們就會繼續購買。漸漸地,需求會增加,商品的價格也會隨之增加,直到該商品的價格達到讓購買不再有利可圖的水平。
研究表明,平均而言,預測市場比社會調查和專家意見要準確得多。預測市場的準確性已經被各領域的眾多研究人員研究過,包括測試理論和實驗室數據、醫療保健和管理決策。
預測市場的參与者廣泛分析各種各樣的信息:新聞、體育、創新、事件、發展趨勢、環境問題、政治等等。他們的經濟動機保證了他們對市場價格(或概率)的影響會進行精確調整以反映預測的真實性。
因此,預測市場被認為是實時事件概率的最佳源之一。Polymarket就是這樣一種服務,於近期吸引了越來越多的關注。
Polymarket是如何工作的?下面我們來簡單看一下。
為了理解Polymarket服務是如何工作的,首先我們在Polymarket上點開一個隨機事件瀏覽其界面。
在上圖中,突出显示了事件標題“8月30日比特幣會超過6萬美元嗎?”以及可能的結果。在這個例子中,只有兩種結果:“是”和“否”。然而,重要的是要切記,還可能有兩種以上的結果。讓我們來看一下下面的截圖,以便更詳細地了解該界面。
多個結果將直接显示在事件標題下方。右邊的面板显示了最受歡迎的結果,也就是目前大多數用戶選擇的結果。這樣就可以快速訪問此結果選項了。
“Buy”按鈕是什麼意思?
在底層,每個結果都由基於ERC-1155標準的具體份額的代幣表示的。Buy按鈕用於針對所選結果購買代幣,而用戶則需要支付基礎資產USDC。
購買過程可以看作是一種投票形式。用戶通過使用實際資產來支持他們的選擇來對其中某一結果進行投票,這確保了決策的可問責性。相應的賣出(sell)過程則讓用戶可以反向持倉。
每次投票都代表了用戶對特定事件的立場。可以使用各種話語來描述購買過程:“投票”、“打賭”、“立場”、“購買”等等。用戶可以選擇他們覺得最舒服的話語,但所有這些都表明了用戶對某事件的看法。
“Yes”結果的價格為98.8美分,這表明“比特幣在9月13日超過5.5美元”這一事件發生的概率為98%。因此,2.3美分的價格則表示比特幣低於5.5萬美元的概率為2%。
從本質上講,價格反映了某結果發生的概率。用戶的說法就是,價格越高,事件發生的可能性就越大。如果用戶認為比特幣很有可能超過5.5萬美元,他們可以以98.8美分的價格購買“Yes”代幣。
如果用戶是正確的,比特幣確實超過了5.5萬美元,那麼買入的每個“Yes”代幣將價值1美元。因此,用戶將獲得每代幣1.2美分的利潤。與此同時,所有持有“No”代幣的用戶都將面臨投資損失,因為這些代幣將變得一文不值。
值得注意的是,用戶不需要持倉到最後;他們可以在任何時候以當前市場價格出售他們的shares。
現在我們來全方位深入研究協議技術。準備好了嗎?
(1)結果代幣化
我們已經明確Polymarket上的所有事件結果都被代幣化了。讓我們回顧一下我們已經知道的:
● 這種代幣可以稱為share代幣。
● Share代幣是用基礎資產購買的,因此它們是完全抵押的。
● Share代幣可以賣出兌換回基礎資產。
現在我們來看一些新信息。Share代幣基於Gnosis條件代幣框架(CTF)部署ERC-1155,該框架已經證明了其有效性,並已通過多個協議的測試。
CTF每個事件最多可以支持256個結果。
各預測在CTF中被識別。為此,它被分配了一個conditionalId。因為以下三個參數的哈希值,conditionalId是唯一的:
● oracle:決定事件結果的oracle地址。這確保了只有指定的oracle可以解決預測。
● questionId:預測標識符,由預測創建者設置。這可以是一個簡單的計數器,其中每個新預測的增量為1,也可以是使用文本和其他數據哈希計算的更複雜的方案。
● outcomeSlotCount:預測可能結果的數量。
下圖描繪了CTF(條件代幣框架)的工作原理。
用戶在下注時提供基礎資產並接收share代幣,這在CTF中稱為條件代幣。在oracle完成預測后,用戶可以根據預測結果從CTF中獲得獎勵。
當用戶接收到一個條件代幣時,他們被認為已經採取了特定的position(立場)。在CTF中,position表示各預測的一組可能性結果組合。CTF為每個預測生成這些position,每個position對應一個用戶可選的結果組合。
例如:
2024年票房最高的電影是哪部?
● 頭腦特工隊2
● 其他
● 死侍3
● 小丑2
● 卑鄙的我4
● 沙丘2
● 瘋狂的麥克斯:狂暴女神
用戶可以投票選出《頭腦特工隊2》將成為票房最高的電影,而《沙丘2》肯定不會成為2024年票房最高的電影。這種預測組合將被視為他們的position。
CTF提供了兩種有趣的position處理機制:拆分和合併。拆分機制允許將單個position拆分為多個獨立結果,而合併機制則將不同的結果合併為一個position。這些機製為用戶的頭寸管理增加了靈活性。
在我看來,CTF為Polymarket提供了四個重要優勢:
● Share代幣用於確認用戶對特定預測結果的投票。
● 它實現了一個靈活的系統,可以將用戶的投票組合為各種position。
● 根據oracle的信號,結果計算責任被委託給CTF。
● 根據獲勝結果的share代幣金額計算獎勵。
尤其需要注意的是,CTF可以組織相關事件,組合用戶的position。然而,我並沒有在Polymarket中找到這樣的例子。
我真的很喜歡CTF概念,儘管對我來說這個概念很複雜,我並不能完全理解。
(2)訂單
現在,讓我們來看Polymarket最神秘的一面——訂單。
針對購買,Polymarket界面提供三種類型的訂單:
● 市價單——以當前市場價立即購買。
● 限價單——延遲訂單可以讓用戶指定一個價格,一旦達到該價格,將啟動購買。
● AMM訂單——基於池中的儲備金數量以自動確定的價格進行購買,類似於去中心化交易所。
目前,AMM訂單功能似乎不好用。我沒有找到一個允許通過AMM購買的事件。在搜索了該協議的Discord后,我發現了一位用戶最近發布的評論,這讓我對這一情況有了一些了解。請看下面的截圖。
根據協議的文檔,AMM使用了作為條件代幣框架組件開發的智能合約。因此,AMM被用來確定share代幣的購買價格。
這一基本機制具有流動性要求,以確保價格穩定減少波動。流動性提供者需要一種經濟激勵,從每次購買中獲得獎勵,才能保持系統的運行。
遺憾的是,我是Polymarket新手,但我猜最初,協議因該是完全基於CTF框架的, AMM用於價格確定。隨着時間的推移,該協議開發了一個帶有訂單簿的混合解決方案,另外兩種類型的訂單(限價訂單和市場訂單)開始着手定製解決方案。這種解決方案被稱為CLOB(中央限價訂單簿)或BLOB(二進制限價訂單簿)。
(3)CLOB和BLOB
CLOB(中央現價訂單簿)或BLOB(二進制限價訂單簿)是一種混合去中心化訂單簿系統。在這個系統中,有一個專門的操作員處理訂單匹配並啟動智能合約的執行。
在不涉及太多細節的情況下,該系統可以描述如下:
用戶創建執行訂單,可以是限價單,也可以是市價單。操作員匹配用戶訂單並啟動智能合約的執行。創建訂單意味着根據EIP-712標準創建一個使用用戶私鑰簽名的數據結構。由於訂單在執行前存儲在鏈下,因此可以對訂單條款進行快速且無成本的調整,甚至可以徹底取消訂單。
對於那些想要了解更多細節的人來說,與訂單簿和訂單匹配相關的所有內容都只能通過API訪問。為方便起見,Polymarket提供了兩個客戶端:一個面向JavaScript,一個面向Python。
Exchange.sol智能合約是開源合約,負責在CTF框架內創建用戶頭寸。它還支持管理用戶頭寸以及持倉資產之間的轉移,確保協議內的安全性和透明度。
智能合約已經過審計。審計報告附加在repository庫中。
(4)智能合約
Exchange智能合約實際上有一個更具體的名稱——CTFExchange.sol。它不是很大,只有大約100行代碼,但它確實有大量依賴項。
其中大多數都是小型智能合約,只有有限的幾個功能:
● BaseExchange.sol。抽象智能合約,實現了接收ERC-1155代幣的能力,另外還負責防止重入攻擊。
● Auth.sol。角色管理器。為CTFExchange.sol定義驗證函數和修飾符,以設置角色:admin和operator。
● Assets.sol。定義兩項資產:基礎資產(抵押品)和CTF地址。
● Fees.sol。定義協議費用。
● Pausable.sol。定義中止智能合約操作的能力。是在不可預見的情況下協議認同的一種中心化中形式。僅對admin角色可用。
● AssetOperation.sol。定義基本資產和CTF的操作。包括轉賬、拆分和合併position。
● Signature.sol。定義用於驗證訂單處理所用用戶簽名的代碼。
● Hashing.sol。定義用於簽名驗證的訂單參數哈希計算。
● Registry.sol。定義在系統中註冊預測以及為預測註冊代幣的過程。
請注意,與實際訂單執行相關的一切都部署在智能合約中——Trading.sol。
瀏覽代碼研究智能合約也很簡單。該結構通過函數明確定義了入口點:
● fillOrder()——在創建它的用戶和用戶所選的maker做市商(另一個訂單)之間執行訂單。
● fillOrders()——與fillOrder()相同,但用於訂單列表。
● matchOrders()——操作員選擇兩個不同的訂單並執行。
以上所有函數只能由操作員調用。
無論調用如何進入智能合約,結果都是一樣的:兩個用戶將根據他們的訂單交換代幣。
(5)協議費用
費用針對輸出資產收取。對於二元預測來說,費用是對稱的,這意味着:如果用戶以0.99美元的價格出售代幣,他們將支付與以0.01美元的價格購買代幣的買家相同的費用。
計算公式很簡單(摘自文檔):
(6)流動性獎勵計劃
該計劃的總目標是激勵市場的流動性。
我們知道,要使基於訂單簿的交易所發揮作用,就需要有人創建限價單。限價單提供流動性,允許市價單立即執行。創建限價單的用戶被稱為market makers(做市商)。限價單與市場價格越接近,市價單就能越快執行,交易量也就越大,這對最終用戶來說當然是有利的。此外,流動性越多,操縱市場的難度就越大。
為確保足夠的流動性,Polymarket制定了一個特殊的獎勵計劃來激勵用戶創建限價單。
限價單越接近市場平均價格,獎勵就越高。獎勵將在每天午夜(UTC時間)自動支付。
(7)Oracle
oracle用於傳遞預測的結果——無論事件是否發生。oracle是該協議最關鍵的一個組件,但它是由第三方而非Polymarket團隊部署的。該oracle叫做UMA。
UMA是一個去中心化oracle,專門記錄區塊鏈上除無法驗證數據之外的所有類型的數據。oracle被認為是optimistic模式,數據如果沒有爭議則被認為是正確的。UMA有自己的解決糾紛的仲裁系統,仲裁者是UMA生態系統的參与者,特別是UMA代幣的持有者。這個系統被稱為DVM(數據驗證機制)。
以下多步驟過程用於確定預測結果並將其記錄在區塊鏈上:
● 陳述。預測和獎勵一起被添加到oracle中。任何成功質疑預測結果的人都可以獲得獎勵。
● 挑戰期。在此期間,任何人都可以對預測結果提出質疑。如果沒有發生挑戰,並且時間到期,則認為預測結果可以進行最終結算,表明其準確性。
● 爭議。任何協議參与者都可以對結果提出異議,要麼為了獎勵,要麼為了公平(只是開玩笑)。實際上,這種情況很少發生,因為博弈論表明,大多數參与者的行為都是誠實的。
● 投票。如果爭議被發起,UMA代幣持有者投票解決爭議。UMA是用於投票的協議代幣,參与者將獲得參与獎勵。
● 結算。最後一步是結算過程,即在區塊鏈上實際記錄數據。在此之後,可以認為預測結果是可靠準確的。
整個協議基於精密的博弈論,任何參与者如果從事惡意行為在經濟上都是不利的。
舉例如下:
● 提交預測結果進行投票的參与者會為智能合約提供抵押品。如果他們的結果有爭議,他們將失去抵押品;否則,他們會收回抵押品並獲得獎勵。這就產生了只提交準確結果的強烈動機。
● 對預測結果有異議的參与者也會提供抵押品。如果他們是正確的,他們將收回抵押品並獲得獎勵;否則,他們就會失去抵押品。這就激勵參与者只對那些他們確信是錯誤的結果發起挑戰。
● 解決糾紛的參与者。他們必須質押UMA代幣,並會因解決糾紛而獲得獎勵。如果他們投票錯誤或根本不投票,他們就會失去部分質押;否則,他們將得到獎勵。所以,懈怠瀆職是不可能的。
尤其值得注意的是,使用commit/reveal方案,爭議投票過程將分為兩個階段:
● 提交。參与者通過向智能合約提交他們投票的哈希值來秘密投票。這意味着沒有人可以通過查看哈希值來辨別參与者的投票選擇。
● 披露。在投票階段結束后,參与者展示他們的投票。智能合約驗證投票是否與之前提交的哈希值匹配。
這個兩階段投票過程可以防止選民之間串通一氣,詆毀依oracle或攻擊賴預測結果的服務。
預測結果可以被多次挑戰。在這種情況下,UMA允許在先前的爭議結束后重新開啟決策過程。
爭議發起過程如下:
看似簡單的押注和預測系統實際上由三個主要模塊組成,各模塊分別由不同的協議和團隊開發:
● CTF(條件代幣框架):管理預測中的組合、position和用戶share。多虧了Gnosis創建出如此靈活的框架,這個框架非常適合預測市場。
● CLOB(中央限價訂單簿):Polymarket的自家解決方案,用於部署訂單簿和限價單。CLOB使用戶能夠有效地參与生態系統,並有助於聚集流動性。
● UMA:這是一個去中心化oracle,具有獨特的爭議解決仲裁系統。UMA是該系統真正的核心組件,通過區塊鏈傳輸預測結果。
這個系統可以看作是一個押注系統,但是當我開始深入研究Polymarket時,我沒有想到我必須把我的研究分為三個不同的協議,也沒料到要花這麼多時間在上面。從技術上講,該協議令人印象深刻而且非常有趣,它成功地結合了來自不同項目的技術,使其對開發人員特別具有吸引力。
我的最終觀點是:我真的希望看到這個協議是有用的,正如Vitalik Buterin所說的那樣。願它成為預測、決策和分析工具。然而,儘管具有這樣的潛力,該協議仍然最常用於大選預測,相關預測需求飆升。