← 최신 논문
💻 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
📖 4 분 읽기☕ 가벼운 읽기

원저자: 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. 해결책: "그린 리스트(Green List)" 레시피

연구진은 PromptMark라는 방법론을 만들었습니다. 로봇의 뇌를 해킹하려 하는 대신, 그들에게 주는 지침을 단순히 변경하는 방식입니다.

이것은 로봇 셰프에게 특별한 규칙을 주는 것과 같습니다: "새로운 재료 이름을 만들 때마다, 반드시 이 특정 '그린 리스트'(예: A, B, C)에 있는 글자로 이름을 시작해야 한다."

  • 그린 리스트: 비밀 키(secret key)를 기반으로 선택된 비밀 글자 목록(예: A, B, C)입니다.
  • 레드 리스트(Red List): 로봇이 이름의 시작으로 피하도록 지시받는 글자들입니다.
  • 비결: 로봇은 이 규칙을 매우 잘 따르기 때문에, 인간이 자연스럽게 작성할 때보다 변수 이름(예: apple_count 또는 banana_loop)을 그린 리스트의 글자로 훨씬 더 자주 시작하게 됩니다.

3. "반복 피드백(Iterative Feedback)" 루프: 맛 테스트

때때로 로봇은 규칙을 잊어버리거나, 규칙을 따르려다 보니 코드가 제대로 작동하지 않을 수도 있습니다. 이를 해결하기 위해 PromptMark는 피드백 루프를 사용합니다.

  1. 1라운드: 로봇이 코드를 작성합니다.
  2. 체크: 인간(또는 다른 컴퓨터)이 두 가지를 확인합니다.
    • 코드가 실제로 작동하는가? (빵이 부풀어 올랐는가?)
    • 로봇이 "그린 리스트" 규칙을 충분히 따랐는가? (A, B, C로 시작하는 이름이 충분한가?)
  3. 피드백: 만약 코드가 깨졌다면, 로봇에게 "로직을 수정하라"고 말합니다. 만약 코드는 작동하지만 그린 리스트 규칙이 약하다면, "잘했지만 다음에는 'A'로 시작하는 이름을 더 많이 사용하라"고 말합니다.
  4. 2라운드: 로봇은 새로운 지침과 함께 다시 시도합니다.

이 과정은 코드가 완벽해지고 워터마크가 강력해질 때까지 반복됩니다.

4. 탐지: "통계적 탐정"

어떤 코드가 AI에 의해 만들어졌는지 어떻게 알 수 있을까요? 당신은 비밀 키를 볼 필요가 없습니다. 단지 이름들을 보기만 하면 됩니다.

  • 자연스러운 코드: 인간은 이름을 무작위로 짓습니다. 100개의 변수를 본다면, 아마 10개는 'A'로, 10개는 'B'로 시작하는 등 균형 잡힌 혼합을 보일 것입니다.
  • 워터마크가 삽입된 코드: AI는 "그린 리스트"를 사용하도록 강요받았기 때문에 특이한 패턴이 나타납니다. 예를 들어, 이름의 60%가 'A', 'B', 또는 'C'로 시작할 수 있습니다.
  • 테스트: 통계적 테스트(수학적 탐지기 같은 것)가 이 글자들을 셉니다. 만약 이 패턴이 우연이라고 하기엔 너무 강력하다면, "이것은 AI가 작성했다!"라고 외칩니다.

5. 왜 특별한가?

논문은 이 방법이 세 가지 이유로 특별하다고 주장합니다.

  • 보이지 않음(Invisible): 코드는 여전히 정상적으로 보이고 완벽하게 작동합니다. "워터마크"는 단지 이름에 담긴 미묘한 패턴일 뿐이며, 이는 마치 노래 가사 속에 숨겨진 메시지와 같아서 패턴을 알아야만 알아챌 수 있습니다.
  • 블랙박스에서도 작동함: AI를 소유하거나 그 내부 코드를 볼 필요가 없습니다. 당신은 그저 일반 사용자처럼 대화하면 됩니다.
  • 안전함(Secure): "그린 리스트"는 비밀 키(비밀번호와 같은 역할)를 사용하여 생성됩니다. 오직 그 키를 가진 사람만이 어떤 글자를 찾아야 하는지 알 수 있으므로, 다른 사람이 워터마크를 조작하기 어렵습니다.

결과

연구진은 두 가지 유명한 코딩 문제 세트(MBPP 및 HumanEval)를 사용하여 두 가지 다른 AI 모델(Gemini 및 Claude)로 테스트했습니다.

  • 성공률: 이 방법은 코드를 망가뜨리지 않고 약 **90%에서 98%**의 확률로 코드를 성공적으로 마킹했습니다.
  • 품질: 코드는 워터마크 없이 작성된 코드만큼이나 우수한 품질을 유지했습니다.

한계점 (논문에서 인정하는 부분)

  • 이름 변경 공격(Renaming Attacks): 만약 누군가 워터마크가 삽입된 코드를 가져가서 모든 변수 이름을 수동으로 다른 것으로 바꾼다면, 워터마크는 사라집니다. 논문은 이 방법이 훌륭하지만 마법은 아니며, 결심을 굳게 한 인간이 코드를 다시 작성함으로써 신호를 지울 수 있다고 언급합니다.
  • 언어 특정적: 이 연구는 Python 코드에 대해 수행되었습니다. 논문은 명명 규칙이 다른 언어들은 다르게 동작할 수 있다고 경고합니다.

요약하자면, PromptMark는 AI 셰프에게 *"재료 이름을 이 특정 글자들로 시작해라"*라고 비밀스러운 지침을 속삭이는 방법입니다. 이를 통해 음식의 맛을 망치지 않으면서도, 나중에 수학을 통해 그 음식을 만든 것이 AI임을 증명할 수 있게 해줍니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →