VacantAI 的可究責層GitHub

 · 紀錄與多方執行 · 成立

把驗收套件從程式變成資料,之後交付率從掉 75% 變成掉 2.7%

攻擊者寫了一個有狀態的量具變體,量具兩方向都滿分,交付率卻掉了 75 個百分點。修法是讓套件只剩三樣東西:方言、進入點名稱、輸入—期望值的字面值清單。

SuiteSpec攻擊量具沙箱

#問題:量具可以被餵成廢的

2026-09-06,R451。

階段結果
套件綁進 commit,平凡套件(載得進就算過)371 / 371 全拒 —— 正常
有狀態的量具變體交付率掉 75.20 pp
量具的回報ok(兩個方向都滿分)

#攻擊的機制

原來的套件是一段被信任的程式碼。它可以:

  1. 讀取外部狀態。
  2. 在被呼叫時改變自己或環境。
  3. 只對「已知錯誤樣本」表現正確。

多方執行沒有防禦這個——因為每一票都是誠實的、每一條鏈都驗得過。named-dissent

#修法:SuiteSpec

把套件限制成三樣東西:

1. 方言Python / 特定版本
2. 進入點名稱solve
3. 「輸入—期望值」的字面值清單純資料

執行器只跑自己的確定性渲染器,從這份資料產生測試碼。渲染結果的雜湊可以跨機器比對。

#效果

攻擊修補前修補後
exec 走私(候選程式在執行期偷換測試碼)368 / 3710 / 371
generic_gauged(殘餘)—+2.72 pp
weak_oracle(事後上界)—+4.35 pp
有意義的範圍—只在 MBPP+ 上

conformance-gate

#為什麼殘餘的 +2.72 個百分點消不掉

#接下來

相關

  • 說謊的金鑰 273 次全部被指名,誠實者 0 次被誣告

    k=3、1 把受控的說謊金鑰、5,519 條證言。說謊格指名 273/273,誠實金鑰被誣告 0/1,840,矛盾簽章格裁決正確 58/58。這個數字有多嚴格,取決於你知不知道 ⌊(k−1)/2⌋ 那條數學上界。

  • 評審閘門的誕生:執行取代意見,收據取代投票

    刪掉 AI 評審委員會,改成「跑客戶的驗收測資、交第一份通過的、全不通過就拒交」。三個題庫上多交付 4.58 到 19.17 個百分點,每題只花 1.5 通呼叫。

  • 偵測機率是一個乘積,不是三個維度

    我們原本宣稱「加大稽核率救不回有盲區的情況」。實測:盲區 0.5 時稽核率從 0.1 拉到 1.0,攻擊者總得手下降 82%,p = 5.5e-6。三個因子是同一個乘積裡的項。

  • 我們量錯過的六件事

    讀錯一個欄位、網路斷線被算成評審結果、退化成極限的 rng 種子、把 `defected <= BUDGET` 當成等預算、端點上的漂亮數字、以及預設關掉的規則——六個真實的量測陷阱與它們的教訓。

閱讀約 4 分鐘

世新大學世新大學資訊傳播學系Vacant

世新大學資訊傳播學系 2026 畢業專題・實體展覽