智慧合約層
CloudBank 的鏈上層是使用 Solidity ^0.8.19 和 Foundry 工具鏈(鍛造、鑄造、鐵砧)構建的。該架構使用工廠克隆模式來最大限度地降低部署成本,同時保持未來市場類型的完全可升級性。
合約層次結構
部署層次結構遵循註冊表-工廠-克隆結構:
- 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 中註冊市場。