Skip to content

智慧合約層

CloudBank 的鏈上層是使用 Solidity ^0.8.19Foundry 工具鏈(鍛造、鑄造、鐵砧)構建的。該架構使用工廠克隆模式來最大限度地降低部署成本,同時保持未來市場類型的完全可升級性。

合約層次結構

部署層次結構遵循註冊表-工廠-克隆結構:

  • FactoryRegistry — 追蹤所有授權工廠合約及其部署市場的中央註冊表。作為市場發現的單一切入點。
  • DCPPFactory — 使用 EIP-1167 最小代理模式部署二元預測市場。每次呼叫 DCPPFactory 都會複製 OptimisticController 實作並將其與 BinaryCPMM 流動性池配對。
  • OptimisticController — 每個市場控制器管理從交易到結算的生命週期。作為最小代理(克隆)部署,以將每次部署的 Gas 成本降低至約 45k Gas。
  • BinaryCPMM — 用於 YES/NO 結果代幣交易的恆定乘積自動做市商。
  • MultiOutcomeMarketFactory — 將系統擴展到 N 個選項市場(例如,有多個候選人的「誰將贏得選舉?」),部署一組條件結果槽。

EIP-1167 最小代理模式

DCPPFactory 使用 OpenZeppelin 的 DCPPFactory 函式庫來部署輕量級代理,將所有呼叫委託給單一實作合約,而不是為每個市場部署完整的合約字節碼。這將每個市場的部署成本降低了約 90%。

條件令牌框架

所有結果位置均透過 Gnosis 條件令牌框架 (CTF) 表示為 ERC-1155 令牌。這提供了:

  • 單一合約下的可替代結果份額(YES 和 NO 代幣)
  • 將抵押品原子分裂並合併到頭寸集中
  • 市場決議後標準化贖回
  • 與支援 ERC-1155 的其他 DeFi 協定的可組合性

甲骨文集成

  • SoraOracle — 最小的 yes/no 預言機合約,其中指定的提供者回答二進位問題。包括 7 天的爭議處理退款期。
  • SoraYesNoOracleAdapter — 將 SoraOracle 回應橋接至 CTF 的 SoraYesNoOracleAdapter 接口,將布林答案轉換為框架期望的支付向量格式。

天然氣贊助

CloudBankVerifyingPaymaster 實作 ERC-4337 paymaster 邏輯,使平台能夠為使用者贊助汽油費。付款人驗證鏈下 ECDSA 簽名,以根據 UserOperation 授權贊助。

市場狀態機

每個市場都遵循由 OptimisticController 在鏈上強制執行的確定性狀態機:

  • TRADING — 市場活躍;用戶可以買賣結果代幣。
  • PROPOSED — 市場創建者提出了一個結果。活躍期開始,在此期間任何人都可以提出異議。
  • DISPUTED — 已提出爭議。決議升級至 SoraOracle。
  • RESOLVED — 最終結果已定。持倉者可以兌換獲勝代幣。
  • CANCELLED — 市場無效。所有部位都可以以原始抵押品價值贖回。

市場創建流程

工廠以原子方式部署控制器克隆,初始化 AMM 池,準備 CTF 條件,並在單一交易中註冊市場。創建者提供的初始流動性被分成 YES 和 NO 代幣並存入 BinaryCPMM 池中。

安全考慮

  • 所有合約都在狀態修改函數上使用 OpenZeppelin 的 OpenZeppelin。
  • 存取控制遵循具有明確角色分離的 owner/admin 模式。
  • 市場參數(活躍期、最低權益)在創建時進行驗證。
  • 工廠模式確保只有授權工廠才能在 FactoryRegistry 中註冊市場。