跳轉到

信譽系統

本檔角色:玩家信譽 / UGC rating / 檢舉與仲裁機制。 算式見 算式表.md §16–19;對應模組(實作):程式架構/reputation.md / 程式架構/ugc-rating.md / 程式架構/moderation.md

1. 三層信譽分工

對象 用途
玩家信譽(reputation) PeerId 投票權重 / 仲裁參與 / 新手保護
UGC rating CID(零件 / 場景) 顯示給其他玩家參考;影響 royalty 倍率
創作者 milestone PeerId + 高評分 UGC 每個 voteCount ≥ 10 且 ≥ 4.5 ★ 的 UGC → 信譽 +20(per-CID 去重)

2. 玩家信譽(reputation)

2.1 初始值與範圍

reputation = clamp(500 + Σ(加分事件) - Σ(扣分事件), 0, 1000)

〔MOD-R-001〕 初始 500,clamp 到 [0, 1000]。純函數可重現(算式表.md §16)。

2.2 加分事件

事件 加分 判定
〔MOD-R-002〕 UGC 被使用達門檻(每 100 次) +5 floor(stats.totalUses / 100) 跟蹤已頒發次數 ugcMilestonesAwarded map 避免重複頒發;使用統計僅計具鑄幣資格場(finisherCount ≥ 3 且 K=5 未超限)的完賽者(防 void 房 / 同組合連打灌量,經濟系統.md §6.2
〔MOD-R-003〕 完賽(每場) +1 該場 ranking 中非斷線者(所有完賽者、含冠軍);僅計 finisherCount ≥ 3 之場(經濟 void 場不發加分,同 經濟系統.md §6.2 理由「不具競技意義」)
〔MOD-R-004〕 連勝獎勵(連勝 5 場) +5 冠軍定義recentMatches.every(r => r.ranking[0] === winner) — 必須最近 5 場比賽(含本場總名次全部第 1;滑動窗——連勝持續時之後每場續發 +5(clamp 1000 封頂);連勝窗僅列 finisherCount ≥ 3 之場(void 場不入窗、不破連勝、不觸發頒發)
〔MOD-R-005〕 檢舉成立(檢舉者領) +10 該檢舉案最終仲裁通過
〔MOD-R-006〕 創作獲得高評分(每個 voteCount ≥ 10 且 ≥ 4.5 ★ 的 UGC) +20 per-CID,awardedCids 去重防重複;樣本門檻防互評刷分

〔MOD-R-007〕 比賽加分日額:同一玩家 rolling 24h 內比賽來源加分(完賽 +1、連勝 +5)合計 ≤ REPUTATION_MATCH_GAIN_DAILY_MAX(10,protocol.md §5,待 playtest 校準)——逐筆檢查(完賽先於連勝)、超額不發;窗口以觸發事件 timestamp 回看(rolling、非日曆日——日界線無跨 peer 共識定義)。扣分不設上限;其他加分(檢舉 +10 / 里程碑 +5 / 高評分 +20)各有自己的防濫用閘、不經此額度。與 finisherCount ≥ 3 閘合計,堵雙人 / 小圈房刷信譽(合謀成本 ≥ 3 帳號且日額封頂)。

2.3 扣分事件

事件 扣分
〔MOD-R-008〕 UGC 被檢舉成立(內容不當 / 其他,每件) -20
騷擾(對話)/ 其他(對玩家)檢舉成立 -20
〔MOD-R-009〕 GO 後主動離場/異常斷線(每次)——主動離場由本人單簽 RaceLeaveEvent 立即推導;異常斷線由合法 MatchResultEvent.disconnects 推導,且只罰有本場簽章 loadout 者(absent 不罰)。兩來源以 (matchId, peerId) 持久去重,不論到達順序只扣一次;扣分不受 finisherCount 加分閘限制 -5
重複惡意檢舉(檢舉準確率 < 30%) -30
違反版權(含剽竊,檢舉成立) -100

2.4 信譽連動

仲裁投票權重

〔MOD-R-010〕 仲裁投票權重由信譽分數的固定對數曲線決定:

weight = log10(reputation + 10)
信譽 weight
200(仲裁門檻) 2.32
500 2.71
800 2.91
1000 3.00

公式全域最大差異 ~3 倍;仲裁面板內(皆 ≥ 200)差距 ≤ 1.29×、近似人頭,無大戶獨裁。整數評估(weightX100 預算表——共識計算禁浮點 log10)見 算式表.md §17

定罪觸發

〔MOD-R-011〕 檢舉一律走純仲裁:隨機抽合格仲裁者 → 加權投票(weight = log10(rep + 10))通過 > 60% → 定罪(UGC 下架 + 作者扣分;玩家扣分、三振 ≥ 3 才全域黑名單,§6)。無「加權檢舉數超閾值直接黑名單」的快速路徑(易被少數人串謀濫用)。詳見 程式架構/moderation.md §5檢舉與仲裁.md

詳見 算式表.md §17

3. UGC Rating

3.1 顯示卡片

創作者: Alice #a3f7c91d
信譽: 720 / 1000 ⭐⭐⭐
UGC rating: ★ 4.3(85 票)
使用次數: 1,247

票數顯示規則

voteCount UI 處理
< 5 額外標示「樣本不足」或用淺色弱化星等(防玩家對少樣本判斷過度信任)
5–50 標準顯示
> 50 公認可靠評分

完全無顯式評分時走隱式 fallback(§3.3),UI 加 (隱式) 標籤或淺色標示。

3.2 評分權重(依評分者信譽)

信譽分段、邊界與整數權重只由 算式表.md §18 定義;顯式評分必須使用評分者在 事件位置的有效信譽,而不是事件自報權重。

3.3 評分計算(Bayesian + 隱式 fallback)

Bayesian prior、顯式票均值與無票隱式 fallback 的公式、常數與分支只由 算式表.md §19 定義。產品語意是少量票向中性先驗收縮;完全無顯式票時才依使用量 產生帶「隱式」標記的顯示值。

3.4 評分後續影響

4. 新手保護

4.1 規則

條件 處理
〔MOD-R-012〕 註冊 < 7 天 信譽下限保護為 400(唯一新手保護條款)

〔LEDGER-R-055〕 註冊時間定義:該 PeerId 首筆 ledger 事件套用時consensusNow(自報 timestamp 倒填無效,程式架構/ledger.md §6)——§8.1 仲裁年資門檻同源。

下限作用於分數本身:所有讀點(仲裁資格與 weight / 評分權重 / 配對過濾 / API / UI)一律讀保護後分數;consensus derive 內的「現在」= 觸發事件 / 檢查點 timestamp(決定性)。讀點契約見 程式架構/reputation.md §4

4.2 設計理由

避免新人剛玩就被惡意刷低信譽(信譽下限 400;仲裁本身即防線——隨機抽合格仲裁者、加權 > 60% 才成立,無辜新人難被定罪,故不另設仲裁豁免)。配對強度由 TrueSkill σ 自動調節(新人 σ 大、配對窗口較寬,見 賽內機制.md §1.2),不另設新手 rating 加成;信譽純事件鏈推導、無時間衰減(不設衰減乘子,見 economy-config.md §17.3)。

4.3 惡意檢舉者判定(防誤殺)

〔MOD-R-013〕 checkMaliciousReporter 同時滿足以下三條件才扣分:

條件 規則
樣本足夠 該玩家檢舉已結案 ≥ 10 筆(流局 / 撤回不計)
準確率低 lifetime 累積通過率 < 30%
無前科保護 30 天內(rolling)未被判定過惡意檢舉(避免疊扣,給人改過機會)

三條件 AND → 信譽 -30;任一不滿足 → 不扣分(純累積準確率統計)。

5. 檢舉流程

5.1 觸發

任何玩家對 UGC / 對手玩家發起檢舉,附上:

  • 對象 CID 或 PeerId
  • 檢舉類型(違反版權(含剽竊)/ 騷擾(限對話)/ 內容不當 / 其他)
  • 證據(screenshots / log fragment;騷擾證據 = 簽章聊天訊息 SignedPayload<ChatMessage>,仲裁者可離線驗真,見 程式架構/chat-system.md §1

表單層擋點程式架構/moderation.md §4,純 derive、全網同規則驗證):

擋點 規則
對象終局 CID 已在仲裁黑名單 → 拒(已下架;provider DMCA 案件不進此全域 gate——與鏈上檢舉平行,§7);玩家已在全域黑名單 → 拒(已永 ban、再告白燒 7 席;其名下 CID 仍可逐一檢舉下架)
同對象序列化 對象已有開放案 → 拒「已有審理中檢舉」(防同一事件 k 案 pile-on——k× 扣分 + k 記三振)
檢舉者額度 同時開放案 ≥ REPORT_OPEN_MAX_PER_REPORTER(3,個人上限)→ 拒(防仲裁注意力洪水,每案燒 7 席)
類型 × 對象 版權 → CID / 騷擾 → 玩家 / 內容不當 → CID / 其他 → 皆可;不符 → 拒

作弊不是檢舉類型:改物理 / 偽造輸入 / 結算做假由自動機制攔截(desync 偵測 / 簽章驗證 / 多簽驗算 / PeerScore,見 資安規範.md)——能通過確定性驗證的行為無法仲裁舉證。奇例可走「其他」。

另有上傳期灰區仲裁(mesh 相似度 70–90%,similarity-pending 立即上鏈 + 經濟隔離待審)——非檢舉(無檢舉者、無 reporter delta),判抄下架、不扣信譽,見 程式架構/anti-piracy.md §5.1。本節以下限鏈上檢舉案。

5.2 處理

  1. 檢舉事件寫入 ledger(檢舉者簽章)
  2. 該對象被列入「待審查」隊列
  3. 抽籤點到達(檢舉後首個滿 24h 的帳本檢查點,ARBITRATION_DRAW_DELAY_HOURS)→ 抽 7 位仲裁者投票:以信譽加權 weight = log10(rep + 10)(資格與 weight 取抽籤檢查點快照);投票期 = ARBITRATION_VOTE_WINDOW_HOURS(72 小時,期滿判定於帳本檢查點)
  4. 期滿後由面板成員各自 replay 票序列,蒐集 ≥ quorum 份同結果 attestation 才可由任一 peer 寫結果事件;全網依簽章集重驗防偽(池不足且無面板時改驗合格池上界)。加權通過 > 60% → 定罪:信譽扣分依檢舉類型(§2.3);對象為 UGC 另寫 BlacklistEvent 下架;責任人三振 ≥ 3 → 全域玩家黑名單(§6)。完整寫入條件見 程式架構/moderation.md §5.6

5.3 信譽連動(呼應 reputation 模組)

結果 影響
檢舉通過 檢舉者 +10 / 被檢舉者 -20 或 -100(依檢舉類型)
檢舉未通過 無懲罰,累積「準確率」統計
流局(有效票不足,重抽一次仍不足) 不計入準確率;同對象可再檢舉
抽籤前撤回 不計入準確率;同對象可再檢舉
檢舉者準確率 < 30% -30(重複惡意檢舉;三條件判定見 §4.3

6. 黑名單機制

事件驅動 + 無 SPOF(單點失效):

  • 不靠中心化伺服器維護黑名單
  • 每個 client 從 ledger 事件鏈衍生本地黑名單:CID 級 = BlacklistEvent(仲裁通過);玩家級 = 純 derive 三振——同一 peer 作為責任人(被檢舉玩家本人、或被定罪 UGC 的作者)的仲裁定罪累積 ≥ 3(GLOBAL_PEER_BLACKLIST_STRIKESprotocol.md §5)→ 全域玩家黑名單(無獨立事件,任何 peer 重算一致)
  • 黑名單 PeerScore 注入 peer-discovery;傳播、發布與 graylist 門檻分別使用 network.md §10 的 GossipSub 原生 GOSSIPSUB_SCORE_GOSSIP_THRESHOLDGOSSIPSUB_SCORE_PUBLISH_THRESHOLDGOSSIPSUB_SCORE_GRAYLIST_THRESHOLD

用語分流:本節的「黑名單(blacklist)」= 帳本推導、全網執行。另有「個人封鎖清單(blocklist)」= 玩家本地設定、只影響自己的配對與聊天、永不上鏈(見 賽內機制.md §1)——兩者互不相干,spec 與 UI 用語不得混用。

詳見 程式架構/moderation.md §5

7. DMCA 整合

DMCA 是維運層法遵流程版權.md / DMCA.md),與鏈上檢舉仲裁分離、零信譽足跡

  • Notice 與 Counter-Notice 是 provider-scoped 自動流程;人工只處理無簽章身分確認、明顯誤判、例外失敗與具證據的法院/CCB hold,完整狀態機見 版權.md §6DMCA.md
  • 執行範圍:各 pinning provider 只下架或恢復自己控制的 pin/gateway/索引供應;不建立發版層 client 清單或全網 use-gate(見 程式架構/dmca.md)。
  • Repeat Infringer:未恢復下架累積 ≥ 3 → pinning / 索引層拒服務(拒 pin 該創作者新上傳;DMCA safe harbor §512(i) 法遵要件)
  • 〔MOD-R-014〕 不動信譽、不動帳本:信譽是帳本 derive,若吃隨版本變動的 client 清單會造成跨 peer derive 分叉。版權的信譽懲罰只走鏈上檢舉路線(§2.3 -100)——社群可對同一內容平行發檢舉

8. 仲裁參與

8.1 誰能參與

〔MOD-R-015〕 合格仲裁者需同時滿足以下四條件:

條件 規則 理由
信譽門檻 reputation ≥ 200 避免低信譽 / 灰名單玩家亂判
比賽場數 matchCount ≥ 10(僅計非斷線完賽且 finisherCount ≥ 3 之場——與完賽 +1 同一計數,§2.2 對遊戲機制有基本理解才能判斷
帳號年資 註冊 ≥ 30 天 防止新註冊帳號刷仲裁影響(防 Sybil 年資門檻,與 §4 新手保護的 7 天保護期無關;註冊時間定義見 §4.1 註)
非全域黑名單 不在玩家黑名單(§6 三振定罪者不得仲裁(且其連不上 mesh,抽到=白燒席位、推高流局率)

不滿足任一條件 → 不進入仲裁者抽選池。資格判定取抽籤檢查點的 DerivedState 快照。

〔MOD-R-016〕 另有逐案過濾(池資格之外):兩造本人(檢舉者 / 被檢舉玩家 / 被檢舉 UGC 的作者)不入該案面板;與檢舉者 / 責任人 24h 內共賽者不入該案面板(防報復串——UGC 案先解析作者再過濾,檢舉與仲裁.md §4.1)。

8.2 仲裁投票

每筆檢舉案:

  • 〔MOD-R-017〕 隨機抽 7 位合格仲裁者(ARBITRATION_PANEL_SIZEprotocol.md §5;池 < 7 → 流局)
  • 各自投票(pass / reject / abstain)——投票期 = ARBITRATION_VOTE_WINDOW_HOURS(72 小時、待 playtest 校準),期滿判定 = 首個滿時數的帳本檢查點
  • 信譽加權 weight = log10(rep + 10)(取抽籤檢查點快照;整數評估 weightX100算式表.md §17
  • 票集合 = 該輪面板成員、log 序在期滿檢查點前的票、每人取最後一筆(窗內可改票;重抽輪不沿用第一輪票);arbitration-vote 收件只做兩造排除+窗界粗篩,精確面板與窗口由 tally 終判(程式架構/moderation.md §5.3
  • 加權通過比例 > 60% → 通過
  • Quorum = 4 張有效票(pass + reject,棄權不計);不足 → 重抽一次,仍不足 → 流局。面板案須蒐集 ≥ quorum 份 replay attestation 才可寫 passrejectno-quorum 結果事件;池不足無面板則改驗合格池上界。流局零 delta、不進準確率(程式架構/moderation.md §5.3/§5.6

9. 信譽顯示

9.1 UGC 詳情頁

創作者: Alice #a3f7c91d
信譽: 720 / 1000 ⭐⭐⭐

9.2 個人頁

信譽變動歷史:
  +5  上週 UGC 被使用 100 次
  +1  完賽
  -20 被檢舉成立
  ...

10. 信譽 = 純 derive(無獨立事件)

〔MOD-R-018〕 信譽不開獨立 ledger 事件,分數與 delta 都由已驗來源事件純推導、可重現。 分數公式只由 算式表.md §16 定義;來源、reason、去重與 reducer 掛點只由 程式架構/reputation.md §1/§5 維護;數值只由本檔 §2.2§2.3 維護。Provider-scoped DMCA 下架不進帳本、 零信譽足跡(§7)。

11. 與 ugc-rating 模組角色分工

模組 範圍
reputation/ 玩家信譽(PeerId 層)
ugc-rating/ UGC 評分(CID 層)

UGC rating 是評分者「對 UGC 品質」的判斷,不直接等於創作者信譽。但 UGC rating 透過「milestone 累積」間接影響創作者信譽。