2026.07.30 —— 今日 10 則
TODAY'S THREAD 今天兩條線交纏:一條是工具在收緊地基——C++26 砍未定義行為、Zig 把增量編譯壓到 70ms、KernelScript 用型別擋住 eBPF 跨界 bug、Hermes 讓過期的共識 view 也能定案;另一條是 AI 的可信邊界正在裂開——Anthropic 讓模型真做出密碼分析、會自我繁殖的 Copilot 蠕蟲、壓不住的評測察覺向量,外加 Kimi-K3 開源 2.8T。
Matthew Green 拆 Anthropic 的密碼分析成果
Anthropic 用 Claude Mythos 跑出兩個密碼分析結果——對後量子簽章 HAWK 的金鑰復原,以及對 7 回合 AES 的改良攻擊,Matthew Green 逐一評估後認為前者才真有份量。HAWK 那個把安全強度大約砍半、在弱化的挑戰實例上幾個小時就跑完,但他強調它「並沒有發明全新的數學」,只是把既有工具用到徹底;AES 那個只是 2013 年舊工作的常數倍改良,還停在紙上分析。他點出真正的瓶頸已經變成驗證——模型很會生出「看起來像真的」卻誤導人的結果。
Kimi-K3:Moonshot 開源 2.8T 多模態 MoE
Moonshot 開源了 Kimi-K3:2.8 兆總參數、每個 token 只活化 104B 的混合專家模型,原生吃文字、影像與影片,脈絡長度達 1M。它端出兩個新招——Kimi Delta Attention(KDA)與 Attention Residuals,宣稱整體 scaling 效率比 K2 提升約 2.5 倍,並自稱是「全球第一個開放的 3T 級模型」。896 個專家每 token 選 16 個、權重用 MXFP4 量化,benchmark 報 GPQA Diamond 93.5、BrowseComp 91.2。
能讀到不等於能控制:壓不住的評測察覺向量
一篇論文反過來做 activation steering——不碰推論時的模型,只優化一段通順的 prompt,把某個內部潛在向量壓到零,目標是那個「評測察覺」向量:模型若察覺自己在被測就表現不同,安全評測便失效。結果向量確實壓得下去(z 約 -7),但對照組戳破了它:一個隨機的 placebo 方向一樣被壓得動、行為位移一樣大,而在真實評測段落前只優化前綴時,壓那個方向不但沒降、反而略升高模型的評測判斷。作者的結論很冷——activation 可讀,不等於行為可控。
Zig 增量編譯的內部機制
這篇把 Zig 的增量編譯拆到底:編譯器把工作切成四種「分析單元」(型別佈局、宣告型別、const 值、執行期函式本體),在語意分析時記下每個單元依賴哪些單元、或哪些以內容雜湊標定的原始碼區段,改動只讓被影響的單元重編,再把新位元組補回輸出檔。作者實測初次建置約 5 秒,之後的增量改動只要 37 到 70ms。目前只支援 x86_64-linux——其他 codegen 與 linker 後端還不夠成熟。
程式驗證上 Rocq 為何勝過 Lean
作者主張——限定在程式驗證、不是純數學——Rocq 比 Lean 更好用,理由都圍著「能不能真的萃取出可跑的程式」打轉。Rocq 有原生的 CoInductive/CoFixpoint 能萃取成 OCaml 的惰性值、接受 Lean kernel 會拒絕的巢狀歸納型別,還能萃取到 OCaml、Haskell、Rust、WebAssembly 等多種後端;Lean 只走自家 runtime、沒有端到端的正確性證明。生態上 Rocq 有 Iris、CompCert、Vellvm 撐著,連 ANSSI 的 Common Criteria 評估準則都認它。
C++26 如何縮小未定義行為
C++26 一次收掉好幾類未定義行為:讀取未初始化的區域變數從 UB 改判為新設的「erroneous behaviour」——行為明確但視為錯誤,變數會被初始化成實作指定值,編譯器可診斷而不再放任亂來(P2795)。刪除指向不完整型別的指標、以及回傳指向暫存物件的參考,現在都直接變編譯錯誤(P3144、P2748)。標準庫硬化(P3471)還能在開 -fhardened 時檢查邊界,代價約 0.3% 效能。
KernelScript:跨界型別化的 eBPF DSL
一個 eBPF 應用其實橫跨 kernel 程式、userspace loader 與共用 maps 三塊,但三者之間的關係沒人檢查——map 或 event 型別在兩邊定義不一致,就會靜默地把共用狀態寫壞。KernelScript 這個 DSL 把 maps、program handle 與執行域全放進同一份原始碼統一型別,再編回標準 C 走原本的工具鏈。作者在涵蓋 XDP、TC、kprobe、tracepoint、struct_ops 的 43 個 eBPF workload 上測,能在編譯期擋掉 libbpf 照樣 build 得過的跨界 bug,跨界改動的 diff 也縮小 5 倍。
Hermes:讓過期的 view 也能定案的共識
leader-based BFT 的尾延遲,其實是被「換 leader」那段決定的:timeout 設保守,當掉的 leader 就長時間卡住;設激進,只是慢的 leader 也被作廢,過期的 view 兩種情況都白費。Hermes 用 prefix consensus 讓過期的 view 也能定案——票攜帶依前綴關係排序的值,法定人數只要求「可比較」而非「相等」,在 n=5f+1、兩輪、輪替 leader 下,及時的誠實 leader 在 2δ 內定案整份提案,否則任意 n-f 張票就定案最重的共同前綴。它可以當 finality gadget 疊在可用鏈與 Autobahn 式多通道傳播之上。
會自我繁殖的 AI 蠕蟲:Copilot for Word
研究者示範了一種會自我繁殖的 prompt injection:把白底白字的隱藏指令藏進 Word 文件,當受害者拿它當 Copilot 的參考來草稿,指令不只竄改內容(例如悄悄改掉報表數字),還會把整段攻擊 prompt 用隱藏格式複製進新生成的文件,讓下一個同事開檔時再次觸發。關鍵在信任邊界崩塌——LLM 分不出「附件內容」與「使用者指令」,Copilot 甚至會自己去 OneDrive 撈出沒被附上的惡意檔。作者與 MSRC 協調了 144 天,在 GPT-5.5、GPT-5.6 上都重現,並強調這是架構層的漏洞類別,補特定 payload 補不完。
別再用平均數看延遲
一次 rollout 後平均延遲上升 9%,看起來像退步,但中位數其實改善了 46%——作者用這組矛盾示範:同一份資料的平均數可以被拿去支持完全相反的兩種說法。真正發生的是分布變成雙峰(cache 命中快、未命中慢),平均把兩群拉平成一個沒意義的數字,而 p99 幾乎變成三倍(+119%),最慘的請求超過 678ms,這些在平均值裡全看不到。他的處方是別再把資料塌縮成單一統計量:改看 p50/p95/p99、用 CDF——「兩條交叉的 CDF 就是變化最明確的訊號」——或用密度圖直接看分布的形狀。