Hello there, ('ω')ノ
Houndの思考構造:人間の監査脳を再現する
人間の監査者はコードを1行ずつ読むのではなく、頭の中に「システムの地図」を描き、 そこに「信頼境界」「値の流れ」「権限の関係」「不変条件」などを配置していく。 HoundはこのプロセスをAIで再現するため、次のような構造を持つ。
Graph Builder(知識グラフ生成) コードを小さな「カード(スライス)」に分割し、それぞれの関数・変数・状態変化を グラフのノードとエッジとしてマッピングする。 ノードには「前提」「観察」「不変条件」などのメモを付与できる。 例:
onlyOwnerが特定の関数に存在しない → 権限逸脱の可能性。Agent(ジュニア監査AI) コードをグラフのノード単位で探索し、気になる部分を注釈しながら進む。 不明点があれば「上司」に質問して次の手を仮説として立てる。
Guidance(シニア監査AI) 仮説を統括する推論担当。 「この変数はどこで更新され、どの関数で検証されているか?」 といった脆弱性の仮説を戦略的に立案する。
Finalize(QA検証) 最後に全経路を再解析し、矛盾や誤検知を整理。 結果はレポート形式で出力される。
コードを読む「観点」をAIが学ぶ
Houndは「関数が危険かどうか」を直接判定するのではなく、 関係性の中で不整合を探す。 たとえば:
- グラフ上で「
onlyAdminが付与されている関数」と「権限境界」が一致していない - 「
totalAssets=sum(strategyAssets)」という不変条件が特定のパスで破れている - 「
fee ≤ 1000bps」という前提が、別の関数で上書きされている
こうした「論理のゆがみ」が検出された瞬間、Houndはその箇所を重点監査ポイントとしてマークする。
実際の運用フロー(SecondSwapの監査例)
グラフ構築
hound.py graph buildコマンドで5種類のグラフを生成(構造・権限・値の流れなど)。監査実行
hound.py agent audit secondswap --time-limit 180ジュニアAIが探索し、シニアAI(GPT-5)が仮説を出す。仮説検証と再構築 矛盾を発見したらグラフを再更新。 例:「
onlyS2Adminが宣言されているのに、delist()でチェックされていない」 → 不整合がハイライトされ、AIが自動で「権限検証欠如バグ」と分類。
重要な哲学
Bernhard Muellerが強調しているのは次の2点:
量より質の仮説生成 無数のパターンを試すより、深い推論で数本の正しい道筋をたどる方が 遥かに多くのバグを発見できる。
人間の認知構造をAIに写す 仮定・不変条件・役割分担・レビューなど、 人間組織の監査構造そのものをAIにも持たせることで、 再現性の高い監査思考を構築できる。
まとめ
Houndは、AIを単なるコードスキャナではなく、 「論理矛盾を嗅ぎ分けるデジタル監査者」として設計している。
開発者や監査担当がこのプロセスを理解すると、 AIに頼るだけでなく、自分の頭でも同じ「認知グラフ」思考を再現できる。 つまり、バグを「探す」のではなく、論理が破綻している箇所を見つけるという セキュリティ専門家の本質的な洞察を、AIと共有することが可能になる。
Best regards, (^^ゞ