動機
預測市場正在快速擴張(Polymarket 2024 年交易量約為 90 億美元,2025 年超過 200 億美元),但預言機的安全性卻未能跟上。現有的預言機(UMA和 Kleros)依賴治理代幣來保障經濟安全。然而,這種機制已被實踐證明存在漏洞:當超過 700 萬美元的賭注依賴於市值僅為 5000 萬美元的代幣時,攻擊就變得有利可圖。
根本漏洞:線性權益加權投票(巨鯨主導)、可預測的投票者集合(便於協調)以及受治理代幣市值限制的安全預算。
我建議採用不同的方法:建立一個以ETH為單位的安全性的預言機,攻擊成本與 ETH 的市值成正比,而不是與治理代幣的市值成正比。
建築學
ETH Deposit -> Liquid Staking (Lido/RocketPool/cbETH) -> ~ 2.8 - 3 % APY|Validator Pool (global, single pool for all markets)|VRF Panel Selection (per market)/ \Panel A Panel B <- simultaneous, independent (commit-reveal) (commit-reveal)\ /Compare|A = B -> finalize ( 48 h)A != B -> Panel C (VRF, disjoint set) -> 2 -of- 3 rule ( 96 h)該協議結合了三種基本算法:二次投票權重、基於VRF的隨機面板以及並行多輪決議。每種算法都已得到充分研究(例如, QV與抽籤、 QSort以及Kleros申訴)。該協議的貢獻在於將它們綜合為一個預言機協議,其中每種基本算法的不足之處都由其他算法彌補。
協議設計
1.ETH質押採用二次方加權
驗證者向協議存入ETH (最低 1 個ETH)。存款通過流動性質押提供商進行路由,因此質押的ETH可以產生收益(年化收益率約為 2.8-3%)。收益分配:80% 分配給驗證者,20% 進入獎勵池。
鎖定期:14 天入場鎖定(防止閃電攻擊 - 攻擊者無法存款並立即參與),14 天出場鎖定(確保在提款前可以執行罰沒)。
投票權重:
W_i = \sqrt{S_i} W i = √ S i
這是對抗巨鯨霸權的關鍵機制。影響力成本呈二次方關係:
| 賭注 | 線性權重 | 二次權重 | 每票成本 |
|---|---|---|---|
| 1 ETH | 1 | 1 | 1 ETH |
| 4個ETH | 4 | 2 | 2ETH |
| 25 ETH | 25 | 5 | 5ETH |
| 100 ETH | 100 | 10 | 10 ETH |
理性行為者會將權益分散到多個錢包:100 個錢包 x 1 個ETH = 100 票,共計 100 個ETH;而 100 個ETH則需要集中在一個錢包中。這種女巫攻擊策略是可以預期的,並且已被考慮在內——它將攻擊者的問題從“購買足夠的代幣”轉移到了“註冊並鎖定數千個錢包 14 天”,這既需要大量資金,又容易被檢測到。完整的成本計算請參見下方的攻擊分析。
2. VRF面板選擇
當市場需要解決時,該協議會從全球驗證者池中隨機選擇一個驗證者小組:
seed = VRF ( marketId , roundNumber , blockHash )
選擇是加權隨機抽樣,不放回——每個驗證者的選擇概率與\sqrt{\text{stake}} √ stake成正比。
面板尺寸與市場規模成正比(風險越高→面板越大→越難操縱):
| 市場交易量 | 面板尺寸範圍 | 最低池要求 |
|---|---|---|
| 低於 10 萬美元 | 50-200 | 600 |
| 10萬至100萬美元 | 100-500 | 1,500 |
| 超過100萬美元 | 300-2000 | 6,000 |
池中必須至少包含3 × maxPanelSize個合格驗證者,以確保可以創建三個不相交的面板(用於第 1 輪、第 2 輪以及可能的第 3 輪)。
法定人數:小組規模的30%。如果在公佈期內未達到法定人數,則截止日期延長24小時(僅限一次)。如果仍未達到法定人數,則該輪結果默認為上一輪的結果。如果所有輪次均未達到法定人數,則該市場被標記為無法解決,所有賭注將全額返還,不扣除任何費用。
輪次間排除:
排除的 R2 = 面板R1排除的R2 =面板R1
\text{排除}_{R3} = \text{面板}_{R1} \cup \text{面板}_{R2}排除R 3 =面板R 1 ∪面板R 2
驗證者不能在同一個市場中投兩次票。這保證了每一輪都由不同的驗證者群體決定。
3. 並行提交-顯示投票
核心設計選擇:第 1 輪和第 2 輪在獨立的面板上同時運行。
Panel A: [ Commit 24 h ][ Reveal 24 h ] - > Compare resultsPanel B: [ Commit 24 h ][ Reveal 24 h ]t = 0 t = 48 h提交階段:每個驗證者提交一個哈希值:
\text{commitment} = \text{keccak256}(\text{vote} \| \text{salt} \| \text{address}) commitment = keccak256 ( vote ∥ salt ∥ address )
揭示階段:驗證者揭示明文投票和鹽值。合約驗證哈希值是否匹配。
為什麼並行系統至關重要:在順序系統中,R1 的結果在第二輪 (R2) 開始之前就已經公開。這會導致信息洩露——R2 的投票者可能會受到 R1 結果的影響,而不是獨立投票。並行小組是真正獨立的謝林點博弈。每個小組在不知道其他小組決定的情況下達成共識。
最終確定(三選二規則) :
| R1 | R2 | R3 | 最終結果 | 時間 |
|---|---|---|---|---|
| 是的 | 是的 | - | 是的 | 48小時 |
| 不 | 不 | - | 不 | 48小時 |
| 是的 | 不 | 投票 | 2/3 | 96小時 |
| 不 | 是的 | 投票 | 2/3 | 96小時 |
當 R1 和 R2 達成一致時,結果將在 48 小時內生效,無需等待申訴。當他們意見不一致時,將從剩餘的驗證者池(不包括 R1 和 R2 的驗證者)中抽取 C 組進行裁決,以打破僵局。
4. 分層斬擊
在所有輪次中,對最終結果投反對票的驗證者都會被扣除驗證費。扣除率與市場交易量成正比——交易量越大,懲罰力度越大:
| 市場交易量 | 折扣率 |
|---|---|
| 低於 10 萬美元 | 2% |
| 10萬至100萬美元 | 5% |
| 100萬至1000萬美元 | 10% |
| 超過1000萬美元 | 15% |
削減的資金分配如下: 80%分配給多數投票者(與\sqrt{\text{stake}} √ stake成比例), 20%分配給一般獎勵池。
在三輪投票制(例如第一輪=贊成,第二輪=反對,第三輪=贊成 → 最終贊成)中,所有三輪中投反對票的選民都會被平均扣分。這鼓勵選民無論被分配到哪一輪都進行誠實投票。
5. 質量指標和聲譽
每個驗證者都會維護一個累積質量評分:
Q_i^{(t+1)} = Q_i^{(t)} + \Delta Q, \quad \Delta Q = \begin{cases} +1 & \text{多數派} \\ -1 & \text{少數派} \end{cases} Q ( t + 1 ) i = Q ( t ) i + Δ Q , ΔQ = { + 1多數−1少數民族
- 新驗證者從Q_0 = 0開始, Q 0 = 0
- 如果Q < -20 ,則減免10 % 並禁售 90 天。
- 禁售期結束後的收益: Q_0 = -10, Q 0 = − 10 ,新的14天禁售期
- 屢犯者每次罰款10%——持續的不良行為代價越來越高。
不活躍懲罰:被選入驗證小組但未參與投票的驗證者,每次未投票將被扣除其質押金額的0.1% 。此舉旨在杜絕那些為了獲取收益而質押但從不參與決議的“搭便車”者。
6. 獎勵結構
誠實的驗證者可以通過三種途徑獲得收益:
- 市場費用:交易量的0.5%
- ETH被削減:從少數選民手中重新分配
- 質押收益:20% 的流動性質押年化收益率 (APY) 將分配至獎勵池
驗證者i在多數派中的分佈情況:
\text{獎勵}_i = \text{獎勵池} \times \frac{\sqrt{S_i}}{\sum_{j \in \text{多數派}} \sqrt{S_j}}獎勵i =獎勵池× √ S i ∑ j ∈ major √ S j
獎勵條件:投票(承諾+公佈),多數票, Q \geq -20 Q ≥ − 20 。
7. 驗證者生命週期
None -- stake ()- -> LockIn ( 14 d) - -> Active|+-- exit ()- -> ExitReq - -> LockOut ( 14 d) - -> Exited|+-- Q < - 20 - -> Banned ( 10 % slash, 90 d) - -> LockIn (Q=- 10 )該狀態機確保驗證者無法通過快速進入或退出系統來利用時間漏洞。驗證者必須保持活躍狀態至少 14 天才能被選入面板,並且在申請退出後必須等待 14 天才能提取資金——在此期間,待處理的罰沒處罰仍然有效。
攻擊分析
西比爾攻擊成本
理性的攻擊者使用最小權益錢包(每個錢包 1 ETH , \sqrt{1} = 1 √ 1 = 1權重 - 最佳比例)。
假設:誠實池由 10,000 個驗證者組成,平均質押 5 ETH。
總誠實重量: 10,000 × √5 ≈ 22,360 10,000 × √5 ≈ 22,360
要控制超過 50% 的預期面板權重,攻擊者需要A > 22{,}360 A > 22,360 個女巫錢包:
攻擊者份額 = A / (22,360 + A) > 0.5 意味著 A > 22,360攻擊者份額= A 22,360 + A > 0.5 ⟹ A > 22,360
成本:約 22,400 個ETH (按 2,300 美元/ETH計算約為 5200 萬美元),全部鎖定 14 天。
投資回報率計算(1000萬美元市場)
| 價值 | |
|---|---|
| 潛在利潤(50%的市場份額) | 500萬美元 |
| 所需資本(股份) | 5200萬美元 |
| 資金鎖定 | 28天 |
| 成功投資回報率 | 9.6% |
| 失敗損失(削減 15%) | -800萬美元 |
預期收益為負:攻擊者冒著損失 800 萬美元的風險,卻只能獲得 500 萬美元,而且資金會被鎖定一個月。此外,該攻擊是可以檢測到的——在 14 天的鎖定期內,突然湧入 2.2 萬個最低質押額的驗證者,這顯然是一個異常情況。
為什麼治理代幣攻擊不適用
在這個協議中,攻擊目標資產是ETH生態系統中流動性最強的資產。即使購買價值5200萬美元的ETH,也無法顯著影響其價格。相比之下,治理代幣攻擊只需獲取25%的質押代幣即可操縱結果,而且這些代幣在投票後還可以出售。而在這個協議中,攻擊失敗會導致ETH被永久扣押。
檢測與響應
14 天的准入鎖定期為檢測提供了窗口。如果協議觀察到新的最低權益註冊數量出現異常激增,它可以:
- 增加待定市場的面板尺寸
- 提醒社區
- 誠實的驗證者池有時間做出反應(增加質押,招募更多驗證者)。
這與閃電貸或同塊攻擊有著本質區別——攻擊者必須投入資金並等待。
未解決的問題
我希望就以下幾點獲得反饋:
Sybil攻擊的資金Threshold:5200萬美元以上加上14天的鎖定是否足以起到威懾作用?或者是否存在我忽略的更便宜的攻擊途徑?攻擊者能否僅針對交易量低、面板尺寸較小的市場獲利?
MEV 和 VRF 種子:種子包含
blockHash,而 blockHash 由The Block提議者控制。提議者能否操縱區塊組組成?什麼樣的隨機性來源才能提供足夠的保護?並行投票獨立性:該設計假設並行小組產生獨立的謝林點結果。B 小組的驗證者能否嘗試預測 A 小組的結果?真正的獨立性是否需要額外的機制設計?
質量指數博弈:驗證者可能對低價值市場(構建QQ分數)進行誠實投票,而對高價值市場進行不誠實投票。ΔQ 是否應隨市場規模而變化?
參數
所有數值均為初步估算值,僅供討論。實際生產值應通過測試網實驗和經濟模擬確定。設計約束條件:
- 最低投資額 → Sybil 的資本要求依然很高
- 鎖定持續時間 → 閃光攻擊仍然不可能
- 面板尺寸 → 與市場價值成正比,面臨風險
- 削減投票率 → 不誠實投票在每個層級都會導致負期望值。
- 質量閾值 → 過濾掉屢教不改的不良行為者,容忍無心之失
完整規格: GitHub 倉庫(MIT 許可證)。
先前工作
該設計基於: QV with sortition(Vitalik,2019) 、 QSort 、 oracle voting rules 、Kleros(隨機陪審團 + 順序上訴)和UMA DVM 2.0(提交-揭示 + slashing)。
