D-20260709-01|鑄幣月硬頂 month_hard_cap_minor=fold 端全域守門¶
背景與驅動力¶
拍 12 三路複審 H2:月軟曲線與個人有獎場數日限只在 live 收件路徑生效(computeMatchSettlement/verifySettlement),fold 不重放、只驗單場不超過 month_soft_cap——歷史舊時戳 append 繞過 live 後,每筆偽造 match 各鑄一個軟頂、換 matchId 重複即可無界聚合鑄幣,並順帶製造信譽 / 場數 / 仲裁資格。與多簽恆驗、仲裁 fold 恆驗同構 =「live-only 防線被歷史 append 繞過」家族洞;實作忠實對應 canon,屬 canon 級設計權衡而非實作缺陷。
考慮過的選項¶
- 選項 1:fold 端全域
monthMinted月硬頂(採納,使用者裁)。 - 選項 2:checkpoint 層全域鑄燒不變式作全域錨:評估後不需——治理定案檢查點快照本已凍結
monthStartTimestamp與monthMinted,即為該錨(未採)。 - 人日上限一併入 fold:不做(使用者裁,維持 live 收件層)。
決定¶
- 新增治理欄
month_hard_cap_minor,genesis 值 =soft cap 的 100 倍(對齊 live 軟曲線 floor 至 0 的自停處,合法遊玩碰不到)。 - fold 首段全域守門:當月
monthMinted已達硬頂 = 該場整場 no-op。 - shape 守門補 hard 不小於 soft;economy 與 system-constants 兩處 config 定義同步。
後果與影響¶
「歷史 append 繞 live 鑄幣」缺口閉合,與 fold 守門原則(D-20260709-02)同族;live 側全網重算(D-20260703-08)與 fold 側硬頂形成雙層防線。跨月 backdating 已驗穩態不可達(檢查點快照凍結月錨、Sybil 無法定案檢查點),唯一窗 = 首次檢查點前的 genesis 期、低值可另行硬化;場數 matchCount 偽造面評估不需補(仲裁資格的真 Sybil 屏障 =30 天年資與面板 quorum)。