Skip to content

訂單簿 & AMM

CloudBank 實現了一種混合流動性模型,將鏈上恆定乘積 AMM 與鏈下訂單引擎結合。訂單透過統一的 API 進行路由,該 API 在兩個場所之間分開執行,以實現最佳價格發現。

BinaryCPMM — 鏈上 AMM

BinaryCPMM 合約為二元結果代幣實現了常數乘積公式

x * y = k

其中 x 是 YES 儲備,YES 是 NO 儲備。此池收取 0% 掉期費,依賴 YES 和 NO 價格之間的價差作為隱性成本。

價格計算

結果代幣價格源自池儲備,精度為 1e18

priceYes = noReserve * 1e18 / (yesReserve + noReserve)
priceNo  = yesReserve * 1e18 / (yesReserve + noReserve)

價格總和始終精確為 1e18(代表抵押品 1.00 美元),確保市場始終得到充分抵押。

交易路徑

FunctionDirectionDescription
swapCollateralForOutcomeBuy存入抵押品,透過 CTF 鑄造 YES+NO,將不需要的一面換回池中
sellOutcomeForCollateralSell將結果代幣存入池中,收回抵押品
swapToken-to-token直接透過池將 YES 交換為 NO,反之亦然

流動性管理

  • addLiquidity(amount) — 存入抵押品,透過 CTF 將其分成 YES 和 NO 代幣,並將兩者按比例添加到池中。呼叫者收到代表其份額的 LP 代幣。
  • removeLiquidity(lpAmount) — 銷毀 LP 代幣並傳回呼叫者按比例分配的 YES 和 NO 結果代幣(不是直接抵押品)。然後,呼叫者可以出售或贖回這些頭寸。

鏈下訂單引擎

訂單簿引擎作為後端服務的一部分在 Go 中實現,並維護具有價格-時間優先權匹配的記憶體訂單簿。

訂單認證

所有訂單均使用 EIP-712 類型結構化資料進行簽署。域分隔符號包括鏈 ID 和驗證合約位址,防止跨鍊和合約的重播攻擊。後端在接受訂單之前驗證簽名。

訂單類型

TypeBehavior
GTC(取消前有效)保留在書本上,直到填滿或明確取消
GTD(截止日期前有效)在指定時間戳記自動過期
FOK(填入或刪除)必須立即完全填寫,否則整個訂單將被拒絕
FAK(填滿並消除)立即填滿,剩餘的取消

WebSocket 心跳

活躍的製造商透過 WebSocket 連接來維護他們的訂單:

wss://api.cloudbank.com/api/v1/orderbook/heartbeat/ws

如果製造商的心跳連接斷開,他們的休息訂單可能會被標記為過時。這種機制可以保護接受者免受來自斷開連接的做市商的報價的影響。

混合訂單路由

統一路由端點評估兩個流動性來源以找到最佳執行:

POST /api/v1/orderbook/route

路由器計算兩個場地的有效價格並拆分訂單以最大限度地減少滑點。例如,大額買入訂單可能會先滿足訂單簿上最好的剩餘要價,然後將剩餘大小掃過 AMM。

路由邏輯

  1. 查詢訂單簿中限價的可用流動性。
  2. 查詢 AMM 剩餘尺寸下的有效價格。
  3. 比較邊際價格並將數量分配給較便宜的場所。
  4. 自動執行鏈上 AMM 交易並結算訂單簿匹配。

綜合市場聯盟

CLOB(中央限價訂單簿)架構遵循 Polymarket 建立的慣例,包括 EIP-712 訂單簽署、二元結果代幣對以及混合 AMM+ 訂單簿模型。這種一致性有助於交易者熟悉平台之間的遷移,並實現未來潛在的跨平台流動性共享。