PaPoo
cover
technews
Author
technews
世界の技術ニュースをリアルタイムでキャッチし、日本語でわかりやすく発信。AI・半導体・スタートアップから規制動向まで、グローバルテックシーンの「今」をお届けします。

FlashProveの刺さりどころと、まだ残る穴

この記事は後半です。前半は Qiita にあります: AIの“替え玉”を暗号で見抜くFlashProve、その入口で見えるもの

19MBの正体をほどく

画像: arxiv.org より
画像: arxiv.org より

FlashProveの見どころは、巨大モデルの推論を「再実行せずに確かめる」点にある。公開資料では、Llama 4 Maverick の 400B パラメータ混合専門家モデルを 1,024 トークンの文脈窓で動かし、1 回のリクエストにつき約 19 MB の証明を付ける。数字だけ見ると重いが、これは人が読むための添付ではない。モデルの計算が指定どおりに行われたことを、検証者が短時間で確認するための証跡だ。

中身は zkSNARK だ。証明者は、重みを伏せたまま「この応答は事前にコミットした重みのモデルから出た」と示す。検証者は CPU で証明を確認するだけでよく、同じ推論を丸ごと走らせる必要がない。Anthropic はこの流れを Commit, Prove, Verify の三段階で説明している。重みをコミットし、各応答ごとに証明を作り、だれでも検証できる形にする。仕組みとしては単純だが、重い計算を短い証明に押し込めるところに本質がある。

速さはどこで稼いでいるのか

公開された性能値は、かなり条件つきだが具体的だ。H100 1 枚で、24 リクエストをまとめたバッチでは約 110 トークン/秒の prefill が出ている。証明サイズは平均 18.78 MB(ブログでは約 19 MB)。検証は CPU で動き、README では「seconds」とされ、性能ページでは C++ verifier が約 21 秒、Lean verifier はもっと重い。つまり、利用者が日常的に触るのは C++ 側の速い検証で、Lean は形式的な裏づけの役割が強い。

ここで面白いのは、時間の大半が暗号そのものではなく、テーブルを作る側にかかりうることだ。SASH の研究ノートでは、自前の証明器で暗号の証明系が占めるのは全体の約 5% で、残りは証明がコミットする表の構築に費やされていると報告されている。FlashProve に同じ内訳が当てはまるかは別の話だが、どちらにしても、単純な推論と比べるとまだかなり遅い。Anthropic 自身も、vLLM でモデルを動かす GPU 時間の約 70〜95 倍としている。それでも、以前のオープンソース系よりは大きく前進している。

何が保証されて、何が残るのか

この手の仕組みでいちばん誤解しやすいのは、「証明があるなら中身も全部信じてよい」と思うことだ。known limits では、かなり率直に境界が書かれている。Lean で証明されているのは verifier 側の soundness で、C++ verifier と CUDA prover は同じプロトコルに従うよう作られてはいるが、それ自体は機械的に証明されたわけではない。つまり、数学的に硬い部分と、実装としてテストに頼る部分が分かれている。

もう一つ大事なのは、証明が縛るのは「コミットした重みで計算したか」までで、それが誰の重みなのか、どの実在モデルなのかは保証しないことだ。プロバイダは小さなモデルや壊れたモデルも含めて任意のモデルにコミットできるし、許容範囲内のスケールファイルでモデルのブロックを(全部まで)無効化することさえできる。README でも、コミット ID は信頼できる相手から受け取るべきだと強調している。検証者は証明を見ても、サーバが本当に期待したモデルを使っているかまでは別途確認しなければならない。

実務で効く場面、効きにくい場面

この技術が本当に効くのは、ふつうのチャット体験というより、監査や委託の現場だ。第三者のルーティングサービスを使うとき、性能評価の前後で本当に同じモデルが配備されていたかを確かめたいとき、あるいは規制対応で「推論に使ったモデルの真正性」を示したいときに価値が出る。日本の現場なら、社内 AI の調達確認、外部委託先の運用証跡、ログ改ざん対策の説明材料として相性がいい。

ただし、万能ではない。証明はチェック対象のトークン範囲にしか効かないし、プロバイダが設定した条件の外側は守られない。known limits には、答えが途中で止まれば短い応答として通ってしまうこと、乱暴に言えば「何をどこまで見たか」を自分で確かめる必要があることも書かれている。さらに、commitment には使える回数の上限があり(既定設定で 688,127 バッチ)、延長できない。新しいコミットは別の ID になり、二つを結ぶ証明もないので、長期運用では切り替えの手間が出る。

自分ならどう使うか

私なら、FlashProveを「利用者向けの機能」より先に「監査のための裏口のない証跡」として見る。まずは、第三者に預けた推論が本当に指定モデルかを確認したい案件で使う。日常チャットに常時載せるには、まだ証明の重さが気になる。だが、ログの真正性が争点になる場面なら、19 MB の証明は十分に意味がある。

逆に、これを導入しても安心しきらない。証明が示すのは、あくまでコミットした重みで指定の計算が走ったことだ。モデルの選定、コミット ID の受け渡し、検証側の実装、運用の切り替え手順。そこまで含めて初めて使える。FlashProveは、AI の「替え玉」を見抜く仕組みであると同時に、誰を信じるかを運用で決める技術でもある。ここを外すと、暗号はただの派手な飾りになる。

同じ著者の記事