信譽系統¶
本檔角色:玩家信譽 / 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 評分後續影響¶
- UGC rating ≥ 4.5 → Niche 倍率 ×2.0(經濟系統.md §7.1)
- 每個達 voteCount ≥ 10 且 ≥ 4.5 ★ 的 UGC → 作者信譽 +20(per-CID 去重,見 程式架構/ugc-rating.md §7)
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 處理¶
- 檢舉事件寫入 ledger(檢舉者簽章)
- 該對象被列入「待審查」隊列
- 抽籤點到達(檢舉後首個滿 24h 的帳本檢查點,
ARBITRATION_DRAW_DELAY_HOURS)→ 抽 7 位仲裁者投票:以信譽加權 weight = log10(rep + 10)(資格與 weight 取抽籤檢查點快照);投票期 =ARBITRATION_VOTE_WINDOW_HOURS(72 小時,期滿判定於帳本檢查點) - 期滿後由面板成員各自 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_STRIKES,protocol.md §5)→ 全域玩家黑名單(無獨立事件,任何 peer 重算一致) - 黑名單 PeerScore 注入 peer-discovery;傳播、發布與 graylist 門檻分別使用 network.md §10 的 GossipSub 原生
GOSSIPSUB_SCORE_GOSSIP_THRESHOLD/GOSSIPSUB_SCORE_PUBLISH_THRESHOLD/GOSSIPSUB_SCORE_GRAYLIST_THRESHOLD。
用語分流:本節的「黑名單(blacklist)」= 帳本推導、全網執行。另有「個人封鎖清單(blocklist)」= 玩家本地設定、只影響自己的配對與聊天、永不上鏈(見 賽內機制.md §1)——兩者互不相干,spec 與 UI 用語不得混用。
7. DMCA 整合¶
DMCA 是維運層法遵流程(版權.md / DMCA.md),與鏈上檢舉仲裁分離、零信譽足跡:
- Notice 與 Counter-Notice 是 provider-scoped 自動流程;人工只處理無簽章身分確認、明顯誤判、例外失敗與具證據的法院/CCB hold,完整狀態機見 版權.md §6/DMCA.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_SIZE,protocol.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 才可寫
pass/reject/no-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 累積」間接影響創作者信譽。