entry-point-analyzer
作成者 trailofbitsentry-point-analyzer は、スマートコントラクトのコードベースにある状態変更系のエントリーポイントを、セキュリティ監査のために整理・把握するのに役立ちます。外部から呼び出せて状態を変更する関数を特定し、アクセス権限ごとに分類し、view、pure、その他の読み取り専用パスを除外します。Solidity、Vyper、Solana、Move、TON、CosmWasm の各プロジェクトで、呼び出し面の対象を絞って把握したいときに使うガイドです。
このスキルのスコアは 77/100 で、堅実だが最上位ではない掲載候補です。複数の主要言語にまたがる状態変更系スマートコントラクトのエントリーポイントを、明確な条件付きで抽出できるため、汎用プロンプトよりも判断のブレを抑えやすい構成です。
- 監査、エントリーポイント、アクセス制御パターン、特権操作に対する明示的なトリガー条件がある。
- 読み取り専用関数を除外し、言語ごとの検出ルールと例があり、運用の見通しがよい。
- Solidity、Vyper、Solana、Move、TON、CosmWasm を対象にした構造化リファレンスで、エージェントにとって扱いやすい。
- インストールコマンドや補助スクリプトはないため、導入には SKILL.md と参照資料を直接読む必要がある。
- 対象範囲は意図的に狭く、エントリーポイントの整理には役立つ一方、より広い脆弱性検出や exploit 生成には向かない。
entry-point-analyzer skill の概要
entry-point-analyzer skill は、スマートコントラクトのコードベースを深くセキュリティレビューする前に、状態を変更しうる攻撃面を把握するための skill です。目的は「バグがあるか」ではなく、「外部から到達できて状態を変えられる関数はどれで、誰が呼べるのか」を先に切り分けることにあります。
entry-point-analyzer skill は何のためのものか
entry-point-analyzer skill は、Solidity、Vyper、Solana、Move、TON、CosmWasm のプロジェクトに対して、実用的な entry-point の棚卸しを行いたいときに使います。特に、entry-point-analyzer for Security Audit のワークフロー、つまりアクセス制御レビュー、特権操作の発見、監査範囲の切り分けに向いています。
entry-point-analyzer skill が除外するもの
この skill は、読み取り専用のコードパス、pure なヘルパー、内部専用関数を意図的に除外します。そのため、セキュリティ観点の call surface だけを見たいときには、一般的なプロンプトよりも意思決定に役立ちます。コード全体のウォークスルーを目的とするものではありません。
どんな人に最も向いているか
最適なのは、セキュリティ監査担当者、プロトコルエンジニア、そして public または privileged な変更経路を素早く特定したい agents です。目的が exploit research、gas profiling、一般的なコード品質レビューなら、この skill は適していません。
entry-point-analyzer skill の使い方
skill をインストールして場所を確認する
trailofbits/skills plugin repository から、entry-point-analyzer install の流れで導入します。
npx skills add trailofbits/skills --skill entry-point-analyzer
その後は、まず skill の entry ファイルを読みます。この repo では、最も参照価値が高いのは plugins/entry-point-analyzer/skills/entry-point-analyzer/SKILL.md です。
良い入力プロンプトを作る
entry-point-analyzer usage のパターンは、repo、言語、レビュー目的を最初に明示したときに最もよく機能します。たとえば、次のようなプロンプトが有効です。
“Analyze this Solidity protocol and list every state-changing external/public entry point, grouped by access control and deployment-time behavior. Exclude view and pure functions. Highlight admin-only, role-gated, fallback, and constructor paths.”
コードベースが複数言語をまたぐなら、その点を明確に伝えてください。特定の module、contract、package だけを見たい場合も、はっきり名前を挙げるのが重要です。
先にサポートファイルを読む
高品質な出力を得るには、SKILL.md だけで止まらないことが大切です。この skill では、補助リファレンスが言語ごとの entry-point ルールを補足していることがよくあります。
references/solidity.mdreferences/vyper.mdreferences/solana.mdreferences/move-aptos.mdreferences/move-sui.mdreferences/ton.mdreferences/cosmwasm.md
これらのファイルでは、fallback handler、transaction-only function、message receiver、アクセス制御パターンといった境界条件を確認できます。
実用的な結果を出すワークフロー
まずはコードベース全体の entry-point map を依頼し、その後でリスクの高い entry に絞って再度確認します。たとえば最初の棚卸しのあとに、admin-gated function だけ、upgrade や migration の経路だけ、あるいは ownership と authorization の state に触る関数だけを依頼します。この流れにすると、単発の要約よりも skill を有効に使えます。
entry-point-analyzer skill の FAQ
entry-point-analyzer はスマートコントラクト専用ですか?
はい。これはスマートコントラクトのコードベースと、チェーン固有の entry-point 規約向けに設計されています。標準的な backend、frontend、あるいは一般的なアプリケーションコードを対象にするものではありません。
通常のプロンプトと何が違いますか?
通常のプロンプトでは、特に Solidity、Move、TON、CosmWasm をまたぐ場合に、言語固有の entry-point ルールを見落としがちです。entry-point-analyzer skill は、状態を変更する外部 surface のみに対象を絞り、ノイズを減らす除外ルールも持っています。
entry-point-analyzer は初心者向けですか?
はい。契約の外部 mutation surface を理解したいという目的なら使いやすいです。ただし、skill 自体が脆弱性を自動で見つけるわけではないため、exploit detection を期待すると使いにくく感じます。これは scoping と分類のための skill です。
どんなときに使うべきではありませんか?
読み取り専用の分析、一般的なコードレビュー、exploit 開発が必要な場合には entry-point-analyzer を使わないでください。また、対象がスマートコントラクト系のシステムでない場合や、内部ヘルパーを含むすべての関数を見たい場合にも適しません。
entry-point-analyzer skill を改善するには
アナライザーに正しい境界を与える
最も良い entry-point-analyzer usage は、1つの repo、1つの protocol、または 1つの deployment package を明確に指定するところから始まります。無関係な package まで含めると、結果はノイジーになり、信頼しづらくなります。
知りたいアクセス制御の論点を明示する
多くの場合、知りたいことは次の3つのどれかです。「誰でも呼べるものは何か」「admin-only は何か」「deployment や migration 中に state を変えるものは何か」。これを明示して依頼してください。ファイル単位で列挙させるよりも、callability と privilege でグループ化した出力のほうが、この skill は強く機能します。
必要なときは言語固有の文脈を与える
複数言語の repo では、どの framework 規約を優先すべきかを伝えてください。たとえば Solana なら Anchor、CosmWasm なら entry_point パターン、TON なら receive handlers を明示します。そうすると、framework 固有の entry 経路に対する false negative を減らせます。
棚卸しからレビューへ段階的に進める
最初に、完全な entry-point map を依頼します。その後で、最もリスクの高い上位5件の関数、それらが依拠する authorization check、そして不自然または保護が甘そうな state-changing path を確認します。最初から完全なセキュリティ監査を一度で求めるより、この2段階のほうが結果はよくなります。skill の出力は、きれいな surface map から始めたときに最も検証しやすいからです。
