← 最新の論文
💻 computer science

PromptMark: A Prompt-Guided Iterative-Feedback Framework for Source Code Watermarking

PromptMarkは、構造化された入力指示と反復的なフィードバックを通じて、AI生成ソースコードに検出可能なウォーターマークを埋め込む、ブラックボックス型のプロンプト誘導フレームワークであり、モデルの内部へのアクセスやコードの機能を損なうことなく、強力な属性特定を実現します。

原著者: Istiaq Ahmed Fahad, Mridha Md. Nafis Fuad, Kazi Sakib

公開日 2026-06-23
📖 1 分で読めます☕ さくっと読める

原著者: Istiaq Ahmed Fahad, Mridha Md. Nafis Fuad, Kazi Sakib

原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

あなたは、非常に有能だが姿の見えないロボットシェフを雇い、毎日何千ものパンを焼いているパン職人だと想像してください。あなたは、どのパンがロボットによって焼かれ、どのパンが人間の競合相手によって焼かれたのかを知りたいと考えています。しかし、ロボットは署名を残さず、パンの外見も全く同じです。

これが、PromptMarkが解決しようとしている問題です。ただし、パンの代わりに、これは人工知能(AI)によって書かれたコンピュータコードに関する問題です。

以下に、この論文がその解決策をシンプルな概念に分解して説明しています。

1. 問題: 「ブラックボックス」のシェフ

現実の世界では、ほとんどの開発者は使用するAIモデルを所有しているわけではなく、「ブラックボックス」サービス(中が見えないレストランのようなもの)を通じてレンタルしています。

  • 課題: あなたは、ロボットの脳の中を覗いて考え方を変えることはできません(これは「ホワイトボックス」アクセスと呼ばれます)。あなたはレシピ(プロンプト)を与えることしかできず、出来上がった料理(コード)を待つだけです。
  • リスク: もしAIが壊れたり、クレジットを盗んだりするコードを書いた場合、それがAIによるものだと証明するのは困難です。また、もしあなたが、印をつけるためにAIに奇妙な方法でコードを書かせようとすると、コードが機能しなくなる可能性があります(まるでロボットがハンマーを使ってパンを焼こうとするようなものです)。

2. 解決策: 「グリーンリスト」のレシピ

研究者たちは、PromptMarkと呼ばれる手法を作り出しました。ロボットの脳をハッキングしようとするのではなく、単に与える指示を変更するのです。

これは、ロボットシェフに特別なルールを与えるようなものです。"新しい材料の名前を考案するたびに、必ずこの特定の『グリーンリスト』(例えば A、B、または C)の文字から名前を始めてください。"

  • グリーンリスト: これは、秘密の鍵に基づいて選ばれた、特定の文字の秘密のリストです(例:A、B、C)。
  • レッドリスト: これは、ロボットが名前を始める際に避けるように命じられる文字です。
  • トリック: ロボットはこのルールを完璧に守るため、人間が自然に行うよりもずっと頻繁に、特定の「グリーン文字」で変数(例:apple_countbanana_loop)を命名し始めます。

3. 「イテレーティブ・フィードバック」ループ: 味のテスト

時には、ロボットがルールを忘れたり、ルールに従おうとしすぎてコードが機能しなくなったりすることがあります。これを修正するために、PromptMarkはフィードバックループを使用します。

  1. ラウンド1: ロボットがコードを書きます。
  2. チェック: 人間(または別のコンピュータ)が2つのことを確認します。
    • コードは実際に機能するか?(パンは膨らんだか?)
    • ロボットは「グリーンリスト」のルールを十分に守っているか?(A、B、Cで始まる名前が十分にあるか?)
  3. フィードバック: もしコードが壊れていれば、ロボットには「ロジックを修正してください」と伝えます。もしコードは機能しているが、グリーンリストのルールが弱い場合は、「素晴らしいですが、次はもっと『A』の名前を使ってください」と伝えます。
  4. ラウンド2: ロボットは新しい指示に従って再度試行します。

これが、コードが完璧になり、かつウォーターマーク(電子透かし)が強力になるまで繰り返されます。

4. 検知: 「統計的探偵」

そのコードがAIによって作られたことをどうやって知るのでしょうか? 秘密の鍵を見る必要はありません。ただ、名前を見ればよいのです。

  • 自然なコード: 人間は名前をランダムに付けます。100個の変数を調べたとき、例えば10個が 'A' で始まり、10個が 'B' で始まる……といった具合に、バランスの取れた混合になります。
  • ウォーターマーク付きのコード: AIは「グリーンリスト」を使うように強制されているため、奇妙なパターンが現れます。例えば、60%の名前が 'A'、'B'、または 'C' で始まっているかもしれません。
  • テスト: 統計テスト(数学的な検出器のようなもの)がこれらの文字をカウントします。もしそのパターンが偶然にしては強すぎる場合、「これはAIによって書かれた!」と叫びます。

5. なぜ特別なのか

論文は、この手法が以下の3つの理由で特別であると主張しています。

  • 不可視性: コードは依然として正常に見え、完璧に機能します。「ウォーターマーク」は単なる名前の微妙なパターンであり、曲の歌詞の中に隠されたメッセージのように、パターンを知っていれば気づくことができる程度のものです。
  • ブラックボックスでも動作: AIを所有したり、その内部コードを見たりする必要はありません。通常のユーザーと同じように話しかけるだけです。
  • 安全性: 「グリーンリスト」は秘密の鍵(パスワードのようなもの)を使用して生成されます。その鍵を持っている人だけが、どの文字を探すべきかを知ることができるため、他人がウォーターマークを偽造することを困難にします。

結果

研究者たちは、2つの有名なコーディング問題セット(MBPPとHumanEval)を用い、2つの異なるAIモデル(GeminiとClaude)を使用してテストを行いました。

  • 成功率: この手法は、コードを壊すことなく、約**90%から98%**の確率でコードに印をつけることに成功しました。
  • 品質: コードの品質は、ウォーターマークなしで書かれたコードと同等に保たれました。

限界(論文が認めている点)

  • リネーミング攻撃: もし誰かがウォーターマーク付きのコードを取り上げ、手動ですべての変数名を別のものに変更した場合、ウォーターマークは消えてしまいます。論文では、この手法は優れているものの魔法ではないことも記されています。決意を持った人間がコードを書き直すことで、信号を消去することは可能です。
  • 言語特化型: この研究はPythonコードに対して行われました。論文は、命名規則が異なる言語では挙動が異なる可能性があると警告しています。

要約すると、PromptMarkは、AIシェフに対して、「食材の名前をこれらの特定の文字で始めてください」という密かな指示を伝える方法です。これにより、後で数学を用いて、料理の味を損なうことなく、その料理をAIが作ったことを証明できるのです。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →