跳轉到

D-20260703-11|仲裁票集合定案與 void 場信譽刷分堵洞

背景與驅動力

信譽系統第五・六輪複審換角度(改後自洽 / 票集合決定性 / 生命週期邊界),本體乾淨、問題全在耦合檔。最大洞:仲裁 tally 的「票集合」未定義——驗算只驗 arbiters 欄位、沒驗票源,非面板票照樣累加 = 票灌水繞過隨機面板整個安全模型。另一洞:完賽 +1 落地後繼承了舊句「void 場信譽照常更新」——雙人房零成本刷 +1/ 場,167 場即可把 Sybil 農場養到滿分滲透仲裁池。

考慮過的選項

  • void 場加扣分一律凍結:void 正是為全體斷線而設,凍結扣分等於幫斷線者脫罰;改採非對稱(採納)。
  • 日額窗用日曆日:日界線無跨 peer 共識定義;採 rolling 24 小時(採納,日額為使用者提議)。
  • 新手下限作用於權重讀值或分數本身:raw 與保護值語意必須擇一;裁定保護作用於分數本身、收斂單一讀點。

決定

  • 票集合四規則:① 面板過濾(只計該輪面板成員票)② 窗口(log 序在該輪抽籤點後、期滿檢查點前)③ 每人一票(取窗內最後一筆、窗內可改票)④ 重抽輪不沿用(第一輪票作廢、再中籤須重投);arbitration-vote 收件驗證 = 投票者屬面板、已抽籤未期滿、未撤回,不符拒收。
  • void 場堵洞(非對稱):完賽 +1/ 連勝 +5 與 matchCount 僅計 finisherCount 達 3 之場(void 不入連勝窗、不破連勝);斷線 −5 不論 void 照罰
  • 比賽加分日額 REPUTATION_MATCH_GAIN_DAILY_MAX = 10(rolling 24 小時;只蓋 match-finish 與 win-streak 合計;扣分不設上限)。
  • getEffectiveScore 為唯一讀分入口(scores 存 raw、7 天下限於讀點套用);consensus derive 內的 now 一律綁事件或檢查點 timestamp。
  • history(最近 100 筆)明文降級「僅 UI、不得作規則依據」——規則查詢改走專用索引(lastMaliciousReporterAtrecentMatchGains),避免活躍玩家把窗內記錄擠出 100 筆而規則靜默失效。

後果與影響

票灌水路徑閉合,加權面板的安全模型自此有完整票源定義(補上 D-20260702-01 驗算骨架缺的一角);完賽制 +1(D-20260630-01)補上與經濟 void 同門檻的成本下限。現況權威:信譽系統.mdreputation.mdmoderation.md