MUTUAL EXECUTION · NOT MUTUAL REVIEW
互跑,
不互審。
驗收測資是確定性的程式,誠實的機器必須得到同一個結果。所以意見分歧沒有資訊,執行分歧才有資訊——而執行分歧只有兩種可能:有人沒真的跑,或有人簽了跟自己跑出來不一樣的東西。兩者都是可歸屬的過錯。
01 · WHAT THE RECEIPT SAYS
收據能講的,
與不能講的。
下面這段是展場逐字要講的話。它的後半段——說謊過半會怎樣、驗收清單本身是爛的會怎樣——和前半段一樣是內容,不是註腳。
三把金鑰各自跑同一份驗收清單、各自簽名。其中一把在 274 次裡說了謊、59 次自己打自己的臉。
每一次說謊,收據都指到它;誠實的兩把一次都沒被冤枉;交出去的東西一格都沒變。
收據證明的是「這句話是這把金鑰說的、事後沒改過」,不是「這句話是真的」——說謊那把的鏈同樣驗得過。
指名靠多數:說謊的過半,指名會反過來;少一票誠實的,就平手、不指名。驗收清單本身是爛的,三把金鑰會一致地、可驗證地交錯答案。 逐字引自 DECISION_20260906_R454_FABLE_AUDIT_NAMED_DISSENT.md §四
機制只有三件事,沒有第四件:各自跑、各自簽進自己的鏈(Executor.attest);取多數,並回傳少數方是誰(form_verdict);交付或拒交(select_by_quorum,選擇語意與單機閘門逐字相同,只是「通過」改由法定人數決定)。
(來源:vacant/peerexec.py docstring 機制段)
02 · REAL RUNS · 2026-09-06
兩台機器,
三把金鑰。
下面兩張表是真跑:真簽章、真鏈、各自渲染、各自沙箱。候選草稿取自已歸檔的 r446 那一批,執行與簽名是這一次現做的。
| 事前預測 | 窗 | 實際 |
|---|---|---|
| 跨機可見標籤一致 | ≥1831/1840 | 1840/1840(含 first_failing_test 與三個 sha 逐格相同) |
| quorum 出貨 sha = 單機 runtime | 340/340+拒交 26/26 | 340/340、26/26,量具擋 2 |
| 誠實執行器被指名 | 0 | 0 |
| 每台鏈驗證為真 | 2/2 | mac True、vacantdev True(負控制:換公鑰/翻一位元皆 False) |
| 每題牆鐘中位 | ≤5 秒 | mac 1.07 秒、vacantdev 0.25 秒 |
| spec/render sha 跨機相同 | 368/368 | 368/368,render_mismatch 0 筆 |
| 事前預測 | 實際 |
|---|---|
| 說謊格的 dissenters 恰為 {K3} | 273/273 |
| 誠實金鑰出現在任何指名欄 | 0(分母 1840) |
| 自相矛盾格:K3 兩票作廢、裁決仍正確 | 58/58 |
| 出貨 sha 與單機 runtime 相同 | 340/340+拒交 26/26+量具擋 2 |
| 三條鏈驗真(說謊者的鏈同樣驗得過) | 3/3,鏈長 1840/1840/1899 |
| 5519 筆證言逐筆驗簽失敗 | 0 |
哪一半是模擬,要講清楚。k∈{1,3,5,7} 的掃描表、腐化比例掃描、耐心說謊者、套件腐化那三張表,全部是模擬(那一輪沒有預註冊窗口,候選是已歸檔草稿)。真跑只有兩格:上面的 k=2,以及 k=3 且恰好一把腐化、恰在門檻上。k=2 時全票,所以真跑從來沒有量到「少數方被指名」那條路徑;k=3 的第三把金鑰目前與第二把同一台機器。
03 · THREE THINGS IT CANNOT BUY
買不到的
三件事。
這三件都是量到的,不是猜的。它們與上面那兩張表同等重要——只講買得到的那一半,等於在展場說錯話。
這一幕全部是機制模擬:掃描用的候選是 r446(371 題×5 候選)與 r443(91 題×5)已歸檔的草稿,k∈{1,3,5,7}×腐化比例 0–70%×五種攻擊,共 200 格;真跑只有下一幕的 R453(k=2)與 R454(k=3)兩格。(來源:DECISION_20260905_R449_PEEREXEC_ARCHITECTURE_AUDIT.md §三)
- 01 · 對「腐化比例」沒有抵抗力固定比例下,k 從 1 到 7 交付率一字不變(串謀 67.39%、破壞 0%;分母=r446 371 題×5 候選那一批)。過門檻之後裁決與指名一起翻轉,誠實者變成被指名的一方,誣告率 0.175/0.374(兩個數字=兩批掃描:r446 371 題×5 候選、r443 91 題×5)。機制無法知道自己在門檻哪一邊。容忍上界是 ⌊(k−1)/2⌋;k=3/quorum=2 時,只要任一把誠實證言缺席或被拒就是 1-1 平手 ⇒ 未決、不指名。
- 02 · 抓不到有耐心的說謊者只在不會被抓時說謊的執行器:四個 k、兩個題庫,偵測率全部是 0.000。它的代價是 93–95% 的機會得放棄,傷害 −1.35/−2.20pp——但那個「只有」也是模擬算的,真跑側完全沒量。抖動 0.5%/1% 下腐化者被指名比率仍是誠實者的 34 倍/12 倍:歸屬會退化,不會崩潰。
- 03 · 對驗收套件本身腐化毫無防禦套件換成「載得進就算過」:交付率 −6.47pp/−18.68pp、假交付 31%/49%(兩個數字=兩批掃描:r446 371 題×5 候選、r443 91 題×5),而四個 k 的爭議率全是 0.0%——每一票誠實、每條鏈驗得過、指標滿格,系統在交垃圾,畫面上一個警告都不會亮。
還有兩條不是「買不到」而是「被搬走」:渲染器與它渲染給的沙箱現在是全體共用的被信任輸入——渲染器有 bug,k 台機器會一致地錯,爭議率仍是 0;而簽章指認的是金鑰,不是主體。跨 CPU 架構(arm64)沒測過,Windows 那台的沙箱跑不起來、沒能參加。
04 · SUITE AS DATA · RESIDUAL
固定點被縮小,
殘餘是兩個數字。
驗收測資改成「輸入與期望輸出」的清單,機器用自己的解釋器跑它,清單本身跑不了任何程式。清單要先證明擋得住已知的壞答案、而且正確答案全過,才能上鏈。之後剩下的問題只有一個:清單夠不夠多。
| 階段 | 發生什麼 |
|---|---|
| R451:把量具綁進 commit | 「載得進就算過」的 trivial 套件 371/371 在 commit 就被拒,沒花一次沙箱。 |
| 但攻擊者造出 stateful 變體 | 量具兩方向滿分、鏈全驗得過,交付率 −75.20pp、交付 0.00%、假交付 24.8% ⇒ 量具作為套件固定點的部分解作廢。 |
| R452:把套件改成資料 | exec 走私從「上鏈 368/371、假交付 31.5%」變成「上鏈 0/371」;超大十六進位整數從穿過 11/11 道門變成 0/11。真套件轉資料後,1840(MBPP+)+455(LCB)個候選上可見標籤逐格相同、0 個不一致。 |
| 口徑 | 攻擊者看得到什麼 | 假交付增加 |
|---|---|---|
| 可實現(generic_gauged) | 只用供應者手上的資訊 | 17.93% → 20.65%=+2.72pp兩個比率的分母都是 366/371 上鏈題 |
| 事後諸葛上限(weak_oracle) | 看得到候選與隱藏標籤 | +4.35pp |
- 不能講「套件固定點已解」量具是單邊保證、是下界;R451 證明量具量的是一次執行,不是一件工件。
- 這張殘餘表只在 MBPP+ 上有意義LCB 只有 12/91 題可量具,n=12 的區間全部跨 0、不作證據;MBPP+ 的 mimic 交付列從未量過。
- 舊講法「殘餘=−8.70pp」停用那個數字大半是量具把它擋掉,是機制在運作,不是攻擊上界。
weak_oracle是上限不是攻擊,generic_gauged只是攻擊者設計的一種,不是所有可實現攻擊的上確界。 - 我們自己說錯過一次,紀錄留著R452 第一版說那三種攻擊在新格式裡「不可表達」——是錯的。獨立攻擊者用
entry_point="exec"一擊打穿(368/371 上鏈、假交付 31.5%)。修法是結構性的(綁題目+受控命名空間查找),不是黑名單。
05 · OPEN THE RECEIPTS
不用信這一頁。
自己驗那條鏈。
兩個檢視器都是單一 HTML 檔,收據直接內嵌在檔案裡:零外部資源、零網路請求,存下來用 file:// 直接開也一樣跑得完。展場機器(Linux VM)headless Chrome 實測 2.1 秒渲染完成,含全鏈驗證、5,579 筆全綠。
三把金鑰的收據
內嵌 R454 真跑的三條完整鏈(1840/1840/1899=5,579 筆)。瀏覽器內純 JS 重算 SHA-256 entry hash、驗 seq/prev_hash 串接、以 WebCrypto Ed25519 逐筆驗簽,裁決/指名/出貨由頁面自己重算。攻擊者做了八種竄改,七種在頁面邏輯上變紅;唯一全綠的 T8(整條鏈用攻擊者自己的金鑰重鑄)是離線單檔檢視器的結構性界線,頁面在「沒驗什麼」第一項寫明。展件那一格是 Mbpp/100 第 0 份——排序後第一個說謊格,不是挑的。
收據牆(單機那條鏈)
單機 r445 那條鏈的收據牆,同樣離線單檔。它示範的是「一次交付留下什麼」:每一次嘗試、每一次可見驗收、拒交與出貨,都簽進同一條 hash-chain,鏈頭 hash 就是收據編號。
檢視器能證明的是「這筆證言事後沒被改過、且與同一把金鑰的其他證言同源」,不能證明背後是哪一個主體。展場的緩解是把三把金鑰的 vacant_id 印在實體標示牌上,讓觀眾有一個不在檔案裡的比對點。另外「第幾份」的編號不在簽章裡(有 3 格因相鄰草稿位元組相同而無法從鏈內容判定),那是頁面明講的被信任輸入。
06 · NEXT