
보이지 않는 서명: AI가 쓴 글에 숨겨진 초록 단어들
2026년 8월, Claude가 쓰는 문장에 아무도 볼 수 없는 서명이 붙기 시작했다. 원리는 2023년 메릴랜드대 논문 한 편에서 나왔다. 단어를 초록과 빨강으로 나누고 초록 쪽을 슬쩍 밀어주는 것 — 그게 전부다. 744년 된 아이디어가 어떻게 로짓 위로 옮겨왔고, 무엇을 증명할 수 있으며, 무엇은 끝내 증명하지 못하는지 끝까지 따라간다.

2026년 8월, Claude가 쓰는 문장에 아무도 볼 수 없는 서명이 붙기 시작했다. 원리는 2023년 메릴랜드대 논문 한 편에서 나왔다. 단어를 초록과 빨강으로 나누고 초록 쪽을 슬쩍 밀어주는 것 — 그게 전부다. 744년 된 아이디어가 어떻게 로짓 위로 옮겨왔고, 무엇을 증명할 수 있으며, 무엇은 끝내 증명하지 못하는지 끝까지 따라간다.
지금 이 순간, Claude가 만들어 내는 문장마다 서명이 하나씩 찍히고 있습니다.
그 서명은 눈에 보이지 않습니다. 이상한 유니코드 문자가 끼어 있는 것도 아니고, 문장 끝에 표식이 붙는 것도 아닙니다. 글자 수도 그대로, 읽는 느낌도 그대로입니다. 복사해서 붙여넣어도, 워드에 옮겨도, 심지어 손으로 베껴 써도 서명은 남습니다.
서명은 어떤 단어를 골랐는가 그 자체에 새겨져 있기 때문입니다.
2026년 8월 Anthropic이 발표한 내용의 요지가 이것입니다. 그리고 이 기법의 원리는 3년 전, 메릴랜드대학교 연구진이 쓴 13쪽짜리 논문 한 편에서 나왔습니다. 제목은 담백합니다 — 「A Watermark for Large Language Models」.
이 글은 그 논문을 처음부터 끝까지 뜯어봅니다. 왜 이런 게 필요해졌는지, 어떻게 동작하는지, 어디까지 견디는지, 그리고 2026년의 우리에게 무엇을 의미하는지.
논문의 첫 문단은 위협을 나열하며 시작합니다. 소셜미디어 봇을 이용한 여론 조작과 선거 개입, 가짜 뉴스와 웹 콘텐츠의 대량 생산, 학술 과제와 코딩 과제의 부정행위.
여기까지는 예상 가능합니다. 그런데 네 번째 항목이 의외입니다.
"나아가 웹상의 합성 데이터 확산은 미래의 데이터셋 구축을 복잡하게 만든다. 합성 데이터는 대개 사람이 쓴 내용보다 열등하며, 모델 학습 전에 탐지하고 배제해야 하기 때문이다."
AI가 만든 글을 걸러내지 못하면 다음 세대 AI를 학습시킬 수 없다. 윤리 문제가 아니라 산업의 자기 보존 문제입니다. 인터넷이 AI 생성물로 채워질수록, 깨끗한 학습 데이터는 희소 자원이 됩니다. 워터마킹은 이 오염을 표시해 두는 일이기도 합니다.
가장 먼저 시도된 방법은 사후 검출(post-hoc detection)이었습니다. 글만 보고 "이건 AI가 쓴 것 같다"를 판정하는 분류기. GPTZero 같은 서비스가 쏟아졌고, OpenAI도 자체 분류기를 내놓았습니다.
이 접근에는 치명적인 전제가 깔려 있습니다. AI가 쓴 글이 사람 글과 통계적으로 다르다는 것. 논문은 이 전제의 수명을 이렇게 진단합니다.
"모든 사후 검출 방법은 LM이 어떤 측정 가능한 방식으로 인간 텍스트에서 상당히 벗어나 있기를 요구한다. (…) 현재 LLM에서도 이 여백은 작을 수 있다."
여백이 작으면 무슨 일이 생기는가. 논문은 곧바로 답합니다.
"이는 이미 문제인데, 이 좁은 여백 안에서 작동하는 검출 방식은 사람의 글을 위양성으로 표시하기 쉽기 때문이다. 특히 비원어민 화자처럼 특이한 텍스트를 만들어 내는 사람들, 그리고 글쓰기에 컴퓨터 도구의 도움을 받는 사람들이 위험하다."
2023년 7월, OpenAI는 자사 AI 텍스트 분류기를 정확도가 낮다는 이유로 내렸습니다. 예언이 6개월 만에 현실이 된 셈입니다. 그 사이 미국의 여러 학교에서 비원어민 학생의 과제가 AI로 오인되는 사건이 이어졌습니다.
그래서 방향이 바뀝니다. 나중에 알아보려 하지 말고, 만들 때 표시를 심자.
이 전환에는 결정적인 이점이 있습니다. 사후 검출기는 "이 글이 얼마나 AI스러운가"라는 애매한 질문에 답해야 하지만, 워터마크는 "우리가 심어둔 신호가 있는가"라는 명확한 질문에 답합니다. 그리고 후자는 확률을 계산할 수 있습니다.
논문이 내건 목표는 다섯 가지입니다.
| 목표 | 왜 중요한가 |
|---|---|
| 모델 파라미터나 API 접근 없이 검출 | 검출기를 오픈소스로 공개할 수 있다. 모델을 띄울 필요가 없어 싸고 빠르다 |
| 재학습 없이 기존 모델에 적용 | 샘플링 단계만 바꾸면 된다. 이미 학습된 모델에 덧붙일 수 있다 |
| 글의 일부만 있어도 검출 | 생성물 일부를 잘라 긴 문서에 넣어도 남는다 |
| 상당 부분을 고치지 않으면 제거 불가 | 가볍게 손보는 정도로는 지워지지 않는다 |
| 엄밀한 통계적 확신도 계산 | “아마도 AI”가 아니라 p-값으로 말한다 |
마지막 항목이 이 논문의 성격을 규정합니다. 이건 머신러닝 논문이라기보다 가설검정 논문입니다.
용어부터 짚고 갑시다. 왜 하필 워터마크(watermark), 물 자국일까요?
1282년 이탈리아 파브리아노의 제지공들이 발틀에 철사를 구부려 붙였습니다. 젖은 종이를 뜰 때 그 자리만 섬유가 얇게 깔리고, 마른 뒤 빛에 비추면 문양이 드러납니다. 표면에는 아무것도 없는데 매체 자체에 새겨진 표시. 용도는 지금과 똑같았습니다 — 어디서 만든 종이인지 증명하는 것.
1990년대에 이 발상은 디지털로 옮겨옵니다. JPEG의 주파수 계수를 살짝 흔들거나 오디오의 위상을 미세하게 바꿔 정보를 숨기는 기법들이 자리를 잡습니다. 여유가 많았습니다. 픽셀 밝기를 1만큼 바꿔도 아무도 눈치채지 못하니까요.
그런데 글자는 달랐습니다. 2000년, 정보 은닉 분야의 교과서는 이렇게 못 박습니다. 디지털 텍스트의 워터마킹은 어렵다. 이산적이기 때문이다.
문제의 핵심이 여기 있습니다. 픽셀은 1씩 조정할 수 있지만 단어는 "조금" 바꿀 수 없습니다. 단어를 바꾸면 뜻이 바뀝니다.
이후 20년간의 시도들은 이 벽을 우회하려 했습니다. Atallah 등(2001)은 문장의 구문 트리를 규칙에 따라 변형했고, Fang 등(2017)은 어휘를 2^b개 집합으로 나눠 "허용된 집합"에서만 단어를 뽑게 했습니다. 방향은 옳았지만 대가가 컸습니다. 매 자리마다 모델을 좁은 상자에 가두니 글이 어색해졌습니다.
이 벽을 넘는 데 필요했던 것은 새로운 암호학이 아니라 충분히 좋은 언어 모델이었습니다. 같은 말을 여러 방식으로 할 줄 아는 모델. 그게 2022년에 도착했습니다.
Anthropic이 발표문에서 든 비유가 직관적입니다.
모노폴리 게임을 하는데 주사위를 굴리는 대신 원주율 π의 자릿수를 순서대로 읽어 말을 옮긴다고 해봅시다. 게임 진행은 주사위를 굴린 것과 구별되지 않습니다. 3, 1, 4, 1, 5, 9… 는 충분히 무작위처럼 보이니까요. 그런데 나중에 기록을 보면, 이 게임이 π를 썼는지 진짜 주사위를 썼는지 확인할 수 있습니다.
"Claude가 고르는 단어는 여전히 무작위입니다. 다만 단어의 순열을 확인해 보면, Claude가 그 키를 쓰고 있었다면 했을 선택과 일치하는지 볼 수 있습니다."
즉 워터마킹은 무작위성의 출처를 바꾸는 일입니다. 결과물의 겉모습은 그대로 두고, 그 뒤에 숨은 난수의 근원만 검증 가능한 것으로 교체합니다.
논문은 이 아이디어를 아주 구체적인 형태로 구현합니다.
논문의 알고리즘 1은 놀라울 만큼 단순합니다.
여기서 2번이 이 설계의 묘수입니다. 초록/빨강 분할이 앞 단어 하나로 결정되므로, 나중에 글만 보고도 그때의 분할을 그대로 재현할 수 있습니다. 모델이 필요 없습니다. 앞 단어를 해시하고, 이번 단어가 초록이었는지 확인하면 끝입니다.
사람이 글을 쓸 때는 이 규칙을 모릅니다. 초록/빨강은 무작위 분할이므로, 자연스러운 글쓴이는 대략 절반의 단어에서 빨간 목록을 위반하게 됩니다.
반면 워터마크 모델은 위반이 0회입니다.
사람이 우연히 T개 단어를 연속으로 위반 없이 쓸 확률은 1/2T. 단어 열두 개면 이미 4천분의 1이고, 스무 개면 100만분의 1입니다. 트윗 한 줄로도 판정이 됩니다.
하드 레드리스트에는 치명적인 결함이 있습니다. 논문이 든 예가 명쾌합니다.
"예를 들어 ‘Barack’이라는 토큰 다음에는 많은 텍스트 데이터셋에서 거의 결정론적으로 ‘Obama’가 온다. 그런데 ‘Obama’가 빨간 목록에 걸려 금지될 수 있다."
"버락"을 쓰고 나면 다음은 "오바마"여야 합니다. 그게 빨간 목록이라고 다른 이름을 쓸 수는 없습니다. 이 규칙을 곧이곧대로 적용하면 모델은 거짓말을 하게 됩니다.
그래서 논문의 진짜 제안인 알고리즘 2가 나옵니다. 아이디어는 한 줄입니다.
빨간 목록을 금지하는 대신, 초록 목록의 로짓에 상수 δ를 더한다.
로짓(logit)은 소프트맥스를 거쳐 확률이 되기 직전의 점수입니다. 여기에 δ를 더하면 무슨 일이 벌어지는지가 이 논문의 핵심입니다.
이 자기 조절이 논문의 가장 우아한 부분입니다. 어디에 워터마크를 넣을지 사람이 정해주지 않습니다. 확률 분포의 모양이 알아서 정합니다.
그리고 논문은 안심시킵니다. 저엔트로피 구간이 충분한 엔트로피를 가진 문단 안에 감싸여 있기만 하면, 그 문단 전체는 여전히 검출기를 쉽게 발동시킵니다.
검출 절차는 허무할 정도로 간단합니다. 글을 받아서, 앞 단어로 초록/빨강을 재현하고, 초록이 몇 개인지 센다.
그리고 이 수를 하나의 통계량으로 바꿉니다. 논문 식 (3)입니다.
γ는 초록 목록의 비율, T는 전체 토큰 수, |s|G는 초록 토큰 수입니다. 말로 풀면 이렇습니다. "우연이라면 나왔어야 할 초록 개수보다 얼마나 더 많은가를, 우연의 흔들림 크기로 나눈 값."
z-점수는 통계학의 가장 오래된 도구 중 하나입니다. 표준편차 몇 개만큼 떨어져 있는가. z=4라면 정규분포의 오른쪽 꼬리 끝, 3만 3천 번에 한 번 나올 자리입니다.
이 계산이 실제로 어떻게 보이는지, 논문 저자들이 첫 페이지에 실은 예시가 가장 잘 보여줍니다.
Kirchenbauer et al., A Watermark for Large Language Models (2023), Figure 1. 모델은 OPT-6.7B, γ=0.25, δ=2.
같은 프롬프트에 대한 두 출력입니다. 위쪽(워터마크 없음)은 초록과 빨강이 뒤섞여 있고 z=0.31, p=0.38 — 아무 신호도 없습니다. 아래쪽(워터마크 있음)은 온통 초록입니다.
숫자를 읽어 봅시다. 36개 토큰 중 28개가 초록. γ=0.25이므로 우연이라면 9개가 나왔어야 합니다. z=7.4, p ≈ 6×10-14.
논문의 그림 설명이 이 숫자의 의미를 짚습니다.
"이 일이 우연히 일어날 확률은 약 6×10-14이며, 이 텍스트가 기계 생성물이라는 데 극도의 확신을 갖게 한다."
조 단위로 뽑아도 한 번 나올까 말까 한 확률입니다.
말로 읽는 것보다 손으로 만져 보는 게 빠릅니다. 아래는 논문의 검정식을 그대로 구현해 브라우저에서 실제로 계산하는 실험실입니다. 탭을 바꿔 사람이 쓴 글과 워터마크가 박힌 글을 비교해 보세요.
γ 손잡이를 0.5에서 0.25로 내려 보면 z가 오르는 걸 볼 수 있습니다. 초록 목록이 좁을수록 초록 하나하나가 더 놀라운 사건이 되기 때문입니다. 논문이 실험에서 "작은 γ=0.1이 파레토 최적"이라는 다소 의외의 결과를 얻은 이유이기도 합니다.
논문은 검출 기준을 z > 4로 잡습니다. 이때 위양성률은 3×10-5 — 무고한 글 3만 3천 편을 검사해 한 편 잘못 지목하는 수준입니다.
여기서 사후 검출기와의 결정적 차이가 나옵니다. 논문의 문장을 그대로 옮깁니다.
"우리가 제안하는 워터마킹 방식은 어떤 사람의 글쓰기 습관과도 무관하게 위양성이 통계적으로 발생하기 어렵도록 설계되었다."
사후 검출기는 "당신 글이 AI스럽다"고 말합니다. 워터마크는 "당신 글에 우리 신호가 없다"고 말합니다. 비원어민이든, 문체가 독특하든, 도구의 도움을 받았든 상관없습니다. 신호가 없으면 없는 겁니다.
워터마크를 세게 걸수록 검출은 쉬워지지만 글은 나빠집니다. 논문은 이 거래를 정면으로 측정합니다.
Kirchenbauer et al. (2023), Figure 2. 가로축은 혼란도(perplexity, 오른쪽이 좋음), 세로축은 z-점수(위쪽이 좋음).
왼쪽은 일반 샘플링, 오른쪽은 빔서치입니다. 오른쪽 그림에서 점들이 거의 수직선을 이루는 것이 눈에 띕니다. 품질을 거의 잃지 않고 워터마크 강도만 올릴 수 있다는 뜻입니다.
논문은 이 현상에 좋은 이름을 붙입니다 — 빔서치가 워터마크를 "다림질해 넣는다(iron in)". 여러 후보 문장을 미리 탐색하면서 초록 밀도가 높은 경로를 고를 수 있기 때문입니다. δ=2라는 온건한 설정으로도 35토큰 만에 평균 z가 5를 넘습니다.
실측 성능도 정리해 둡니다.
| 설정 | 검출률 (z>4) | 위양성 |
|---|---|---|
| 다항 샘플링, δ=2.0, γ=0.5 | 98.4% | 0건 |
| 다항 샘플링, δ=2.0, γ=0.25 | 99.4% | 0건 |
| 8-빔서치, δ=5.0 | 100% | 0건 |
| 엔트로피 상위 75% 구간만 | 100% | 0건 |
각 행은 200토큰짜리 생성물 약 500건의 평균이고, 어떤 조건에서도 위양성은 사실상 관측되지 않았습니다.
이제 이 기술의 한계로 갑니다. 그리고 이 한계는 버그가 아니라 원리상 그럴 수밖에 없는 것입니다.
논문은 아주 이른 시점에 이 문제를 꺼냅니다. 1.2절의 제목이 아예 "저엔트로피 시퀀스 워터마킹의 어려움"입니다. 그리고 두 문장을 나란히 놓습니다.
The quick brown fox jumps over the lazy dog
for(i=0;i<n;i++) sum+=array[i]
둘 다 앞부분이 뒷부분을 강하게 결정한다. 사람이 쓰든 기계가 쓰든 똑같은 결과가 나온다.
논문이 지적하는 문제는 두 겹입니다. 첫째, 저엔트로피 프롬프트에는 사람과 기계가 거의 동일한 답을 내놓아 애초에 구별이 불가능합니다. 둘째, 워터마킹 자체가 어렵습니다. 토큰 선택을 조금만 건드려도 혼란도가 치솟는 이상한 문장이 나오기 때문입니다.
아래에서 상황별로 직접 확인해 보세요.
논문은 성공 사례만 싣지 않았습니다. 표 1에 실패 사례를 나란히 놓고 왜 실패했는지 분석합니다.
| 실패 유형 | 무슨 일이 벌어졌나 |
|---|---|
| 암기(memorization) | 모델이 학습 데이터의 사람 글을 거의 그대로 복원했다. 원본이 사람 글이니 기계 글로 표시될 수 없다. 논문 표 1의 하위 두 행은 생성문과 ‘진짜 사람 글’이 거의 일치한다 |
| 템플릿 출력 | 날짜·시각 형식처럼 형태가 고정된 출력. 표 1의 세 번째 행은 스포츠 기사의 시각 표기(“5:28 PM PT6:28 PM MT…”)가 모델의 선택지를 봉쇄했다 |
| 반복 n-그램 | “Barack Obama” 같은 2-그램이 우연히 초록이면, 이를 자주 반복한 사람 글이 기계 글로 오인될 수 있다 |
마지막 항목의 처방이 실용적입니다. 반복되는 n-그램은 채점에서 아예 빼라. "Barack Obama"가 두 번째로 나오면 초록으로도 빨강으로도 세지 않고, 분모 T도 늘리지 않습니다. 논문은 이것이 위양성을 막을 뿐 아니라 검출기를 더 민감하게 만든다고 덧붙입니다. 반복 구간은 어차피 저엔트로피라 신호에 기여하지 못하므로, 빼버리면 초록 비율이 높게 유지되기 때문입니다.
여기까지 읽고 나면 Anthropic 발표문의 한 대목이 다르게 읽힙니다.
"워터마킹은 정확성을 희생하지 않고서는 단어 선택의 폭이 제한되는 사실 위주의 맥락에서 효과가 덜합니다. (…) 교정 작업에서는 대부분의 단어가 원래 그대로 남기 때문에 워터마킹이 거의 이뤄지지 않습니다."
그리고 코드에 대해서는 아예 "정확한 출력이 수정되지 않는다"고 명시합니다.
이건 마케팅 문구를 완곡하게 쓴 것이 아니라, 3년 전 논문이 수식으로 예측한 그대로입니다. 실무자 관점에서 정리하면 이렇습니다.
| 잘 표시되는 것 | 거의 표시되지 않는 것 |
|---|---|
| 에세이, 소설, 블로그 글 | 코드 |
| 마케팅 문구, 이메일 초안 | 단답형 사실 응답 |
| 보고서 서술문 | 인용문, 원문 복창 |
| 긴 설명과 분석 | 교정·번역·요약처럼 남의 글을 손보는 작업 |
즉 "AI로 숙제했는지" 잡는 데는 강하고, "AI로 코드를 짰는지" 잡는 데는 사실상 무력합니다.
이 논문의 미덕 중 하나는 7장 전체를 자기 방식을 어떻게 깨뜨릴 수 있는지에 할애했다는 점입니다.
공격은 크게 세 종류로 나뉩니다. 삽입(토큰을 끼워 넣어 뒤쪽 초록/빨강 분할을 흐트러뜨림), 삭제(토큰을 지움), 치환(다른 토큰으로 바꿈).
가장 유명한 사례가 논문 그림 5에 실려 있습니다. 라일리 굿사이드(Riley Goodside)가 2023년에 보인 것입니다.
Kirchenbauer et al. (2023), Figure 5. 2022년 12월 15일 ChatGPT 웹 인터페이스에서 촬영.
원리가 짓궂습니다. 모델에게 모든 단어 뒤에 이모지를 하나씩 붙여 달라고 시킵니다. 생성이 끝난 뒤 이모지만 걷어내면, 각 단어의 "앞 단어"가 달라지므로 초록/빨강 분할이 통째로 뒤바뀝니다. 오른쪽 그림은 더 나아가 "n을 m으로, a를 e로 바꿔서 써 달라"는 문자 치환 공격입니다.
논문은 방어책도 함께 답니다. 이런 프롬프트를 거절하도록 파인튜닝 단계에서 부정 예시를 학습시켜라. 지시 튜닝은 이미 다른 악용 유형에 대해 하고 있는 일이니 새로울 것이 없다는 겁니다.
더 조용한 공격도 있습니다. 유니코드에는 겉모습이 같은데 코드가 다른 문자들이 있습니다. 라틴 문자 i·s를 키릴 문자로 바꾸면 "Lighthouse"는 2개 토큰에서 9개 토큰으로 폭발합니다. 폭이 0인 결합/비결합 문자를 끼워 넣는 방법도 있습니다.
방어는 명확합니다. 검사 전에 텍스트를 정규화(canonicalization)하라. 공백을 정리하고, 유니코드를 표준형으로 접고, 그다음에 해시를 계산합니다. 논문의 표현대로 "제대로 구현하면 표면적 변형은 심각한 위협이 아닙니다."
가장 강력한 공격은 결국 패러프레이징입니다. 논문은 이것을 정직하게 실험합니다. T5-Large 모델로 원문의 구간을 무작위로 마스킹하고 다른 표현으로 갈아 끼우는 방식입니다.
교체 비율에 따른 검출 성능(AUC) 저하. 괄호 안은 원문 대비 혼란도 증가 — 글의 자연스러움이 무너지는 정도입니다.
읽는 법이 중요합니다. 10%를 갈아 끼워도 AUC는 0.01밖에 안 떨어집니다. 30%를 갈면 0.954까지 내려가지만, 그 대가로 혼란도가 3배가 됩니다. 즉 글이 눈에 띄게 어색해집니다.
논문은 여기서 공격자의 딜레마를 짚습니다.
"공격자가 하고 있는 거래를 짚는 것이 중요하다. 공격자는 더 약한 패러프레이징 모델로 텍스트를 수정하면서 워터마크 강도와 글의 유창함을 동시에 떨어뜨리고 있다. 만약 공격자에게 동등하게 강력한 언어 모델이 있었다면, 애초에 워터마크가 붙은 API를 쓸 이유가 없었을 것이다."
좋은 모델을 이미 갖고 있다면 워터마크를 지울 필요가 없고, 없다면 지우는 과정에서 글이 나빠진다. 이 딜레마가 이 방식의 실질적 방어선입니다.
다만 논문의 낙관을 그대로 받으면 곤란합니다. 두 달 뒤인 2023년 3월, 같은 메릴랜드대에서 나온 반박 논문이 재귀적 패러프레이징 — 여러 모델로 반복해서 바꿔 쓰기 — 을 걸었을 때, 검출률(위양성 1% 기준)은 99.8%에서 9.7%로 무너졌습니다.
나아가 이 논문은 이론적 주장을 하나 덧붙입니다. 모델 출력이 사람 글과 구별되지 않을 만큼 좋아지면, 최적의 검출기조차 무작위 추측 수준으로 수렴한다. 이 증명의 실효 범위는 이후 논쟁거리가 되었지만, 방향은 분명합니다.
워터마크는 자물쇠가 아니라 문턱입니다. 무심코 지나가는 사람을 걸러낼 뿐, 작정하고 넘으려는 사람을 막지 못합니다. 그리고 대부분의 정책에서는 그 정도로 충분하기도 합니다.
논문 5장은 실무에서 가장 뜨거운 지점을 다룹니다. 검출 알고리즘을 공개할 것인가, 숨길 것인가.
| 공개 모드 | 비공개 모드 |
|---|---|
| 누구나 검출기를 돌릴 수 있다. 플랫폼, 학교, 언론사가 직접 검증 | 제공자만 검출할 수 있다. API로만 확인 가능 |
| 공격자도 규칙을 안다 → 어떤 단어가 빨강인지 알고 고칠 수 있다 | 공격자가 무엇을 고쳐야 할지 모른다 |
| 독립적인 감시와 재현이 가능하다 | API 접근을 감시해야 한다. 같은 문장을 조금씩 바꿔 대량 질의하면 규칙이 새어 나간다 |
비공개 모드의 보안은 브루트포스 비용에 달려 있습니다. 논문의 계산에 따르면 모든 빨간 목록을 알아내려면 |V|1+h개의 토큰을 검출 API에 넣어야 합니다. h는 해시에 쓰는 앞 토큰의 개수입니다.
여기에 재미있는 긴장이 있습니다. h를 키우면 브루트포스는 어려워지지만 워터마크는 약해집니다. h=5라면 토큰 하나만 바꿔도 뒤따르는 5개의 분할이 무작위화되어, 빨간 단어가 평균 2.5개 늘어납니다. 논문은 이를 공격 증폭(attack amplification)이라 부르고, 단순한 방식을 쓸 거라면 h=2 또는 3의 좁은 창을 권합니다.
논문의 알고리즘 3은 이 딜레마를 우회하는 영리한 규칙을 제시합니다. 앞의 h개 토큰 중 의사난수로 고른 하나와 자기 자신을 함께 해싱하는 자기해시 방식입니다. 이러면 앞 토큰 하나가 바뀌어도 이번 자리의 워터마크가 바뀔 확률은 1/h에 그쳐 증폭이 사라집니다.
또 하나의 처방은 다중 키입니다. 여러 개의 비밀 키를 두고 생성마다 무작위로 하나를 고른 뒤, 검출 시 모든 키로 검사합니다(본페로니 보정으로 다중 검정을 보정). 각 단어가 절반의 키에서는 초록, 나머지 절반에서는 빨강이 되도록 목록을 짜면 빈도 분석으로는 아무 편향도 관측되지 않습니다.
Anthropic은 자사 방식의 상세를 공개하지 않았습니다. 이 점을 declaude.org의 해설이 꼬집습니다. 요지는 이렇습니다 — 방식이 공개되지 않아 외부에서 독립적으로 검증할 수 없고, 검출에 제공자의 비밀 키가 필요하므로 어떤 글이 Claude의 표시를 담고 있는지 확인할 수 있는 것은 Anthropic뿐이라는 것.
이건 논문이 이미 예견한 거래입니다. 견고함을 얻는 대가로 검증 가능성을 내놓는 것. 그리고 누가 판정자가 될 것인가라는, 기술로는 풀 수 없는 질문이 여기서 시작됩니다.
기술은 2023년에 나왔습니다. 그런데 배포는 2026년입니다. 3년의 공백이 있었고, 그 공백의 이유는 기술이 아니었습니다.
2024년 8월, 월스트리트저널이 보도합니다. OpenAI는 99.9% 정확도의 텍스트 워터마킹을 이미 만들어 놓고 2년째 공개하지 않고 있다. 이유가 솔직했습니다.
| 공개하지 않은 이유 | 내용 |
|---|---|
| 사용자 이탈 | 설문에서 ChatGPT 이용자의 약 30%가 워터마킹이 도입되면 서비스를 덜 쓰겠다고 답했다 |
| 낙인 우려 | 비영어권 화자가 AI 도구를 쓴다는 이유로 불이익을 받을 수 있다 |
| 취약점 | 번역기로 다른 언어를 거쳐 되돌리면 지워진다 |
첫 번째가 본질입니다. 혼자 하면 손해입니다. 우리만 표시를 붙이면 사용자는 표시가 없는 경쟁사로 갑니다. 모두가 하거나 아무도 안 하거나인 문제였고, 그래서 아무도 하지 않았습니다.
이 교착을 깬 것이 두 가지입니다.
2024년 10월, Google DeepMind가 SynthID-Text를 네이처에 싣고 오픈소스로 공개합니다. 결정적이었던 것은 알고리즘이 아니라 규모였습니다. 약 2천만 건의 Gemini 응답을 워터마크 있는 것과 없는 것으로 나눠 실제 사용자 평가를 비교했고, 품질과 유용성에서 차이가 감지되지 않았습니다.
"이론상 무해하다"가 "2천만 건에서 무해했다"로 바뀐 순간입니다. Anthropic이 자사 워터마킹을 SynthID-Text 방식에 기반한 것이라고 밝히고, DeepMind 연구에서 "통계적으로 유의미한 차이가 발견되지 않았다"를 인용하는 이유가 여기 있습니다.
그리고 규제가 도착했습니다.
2026년 8월 2일, EU 인공지능법 50조의 투명성 의무가 적용되기 시작합니다. 핵심 조문은 이렇습니다 — 합성 오디오·이미지·비디오·텍스트를 생성하는 AI 시스템의 제공자는, 그 출력물이 기계가 읽을 수 있는 형식으로 표시되고 인공적으로 생성되었음이 탐지 가능하도록 보장해야 한다.
권고가 아니라 의무입니다. 이미 시장에 나와 있던 생성형 시스템에는 2026년 12월 2일까지 유예가 주어졌습니다.
Anthropic의 발표문 첫 문장이 이 맥락을 그대로 드러냅니다. EU AI법 준수를 위해 워터마킹을 도입했고, 출시 시점부터 전 세계에 적용한다는 것. 규제 하나가 3년간 풀리지 않던 죄수의 딜레마를 강제로 해소했습니다.
한국도 같은 방향으로 움직였습니다. 인공지능 발전과 신뢰 기반 조성 등에 관한 기본법(AI 기본법)이 2026년 1월 22일 시행되면서, 생성형 AI 사업자는 결과물이 AI로 생성되었다는 사실을 표시할 의무를 집니다.
| 구분 | 표시 방식 |
|---|---|
| 일반 생성물 | 사람이 인식할 수 있는 표시 또는 워터마크·메타데이터 같은 기계 판독 방식 중 선택 |
| 딥페이크 등 부작용 우려 생성물 | 이용자가 명확히 인식할 수 있는 가시적 표시만 허용 |
다만 현장 혼란을 막기 위해 1년 이상의 계도기간이 운영될 예정이라, 과태료가 실제로 부과되는 시점은 2027년 이후가 될 것으로 전망됩니다. 지금은 준비할 시간이 있는 구간이라는 뜻입니다.
이 모든 정비에도 불구하고, 해커뉴스 토론에서 가장 많이 지적된 문제는 그대로 남아 있습니다.
"상용 AI 모델은 그냥 우회하면 된다. 오픈소스 대안을 받거나 워터마킹을 하지 않는 제공자를 쓰면 그만이다. 워터마킹은 오픈웨이트 모델을 배포하는 쪽에서는 쓸 수 없다."
맞는 지적입니다. 가중치를 손에 넣으면 샘플링 코드를 고칠 수 있고, 워터마킹은 샘플링 단계에서 일어납니다. 규제는 API 제공자를 묶을 수 있지만 로컬에서 도는 모델을 묶지 못합니다.
그러니 워터마킹의 현실적 사정거리는 이렇습니다. 대형 상용 모델을 그냥 쓰는 대다수의 사용에는 표시가 붙고, 작정하고 우회하는 소수에게는 붙지 않습니다. 이것이 실패냐 하면, 그건 무엇을 기대했느냐에 달려 있습니다.
기술 이야기를 마치고, 이 기술이 사회로 나갈 때 반드시 붙어야 할 단서들을 정리합니다.
가장 중요한 구분입니다. declaude.org의 표현을 빌리면, 워터마크 검출은 "작성함(written by)"이 아니라 "처리함(processed by)"을 가리킵니다.
내가 직접 쓴 글을 Claude에게 다듬어 달라고 하면 어떻게 될까요. 모델이 고쳐 쓴 부분에는 워터마크가 붙고, 그대로 둔 부분에는 붙지 않습니다. 결과물은 부분적으로 표시된 글이 됩니다. 검출기는 신호를 잡겠지만, 그 신호는 "AI가 이 글을 썼다"가 아니라 "AI가 이 글을 만졌다"만 말합니다.
이 둘의 차이는 학교와 직장에서 사람의 인생을 가릅니다.
반대 방향도 마찬가지입니다. 워터마크가 없다면 다음 중 무엇이든 가능합니다.
| 워터마크가 없는 이유 | 설명 |
|---|---|
| 사람이 썼다 | 가장 단순한 해석. 그러나 유일한 해석은 아니다 |
| 워터마킹을 하지 않는 모델을 썼다 | 오픈웨이트 모델, 또는 미적용 서비스 |
| 글이 너무 짧다 | 통계 검정에 필요한 토큰 수에 못 미친다 |
| 저엔트로피 텍스트다 | 코드, 단답, 인용 — 애초에 표시가 붙지 않는 종류 |
| 충분히 고쳐 썼다 | 사람이 손을 봤든 다른 모델을 거쳤든 |
즉 워터마크는 한쪽 방향으로만 강한 증거입니다. 있으면 "기계를 거쳤다"에 대해 강력하고, 없으면 아무것도 말해주지 않습니다. 검출기를 유죄 판정 도구로 쓰는 순간 이 비대칭이 무너집니다.
논문이 직접 다루지 않은 위험이 하나 더 있습니다. 위조(spoofing) — 워터마크 규칙을 알아낸 공격자가 일부러 초록 단어를 많이 써서, 사람이 쓴 글을 AI 생성물로 보이게 만드는 것입니다. 명예훼손이나 학술 부정 무고에 쓰일 수 있습니다.
이것이 논문이 검출 알고리즘 공개에 신중했던 또 하나의 이유이기도 합니다. 규칙을 알면 지울 수 있을 뿐 아니라 덮어씌울 수도 있습니다.
논문의 실험은 영어(OPT 모델, C4 데이터셋)로만 이뤄졌습니다. 한국어에 그대로 옮겨 놓으면 어떻게 될지 짚어 둘 만합니다.
유리한 점. 한국어는 어휘 선택의 폭이 넓습니다. "들르다/다녀오다/찾아가다", "조용히/소리 없이/가만히"처럼 뜻이 거의 같은 표현이 겹겹이 있고, 어순도 비교적 자유롭습니다. 산문에서는 엔트로피가 충분히 높아 워터마크가 잘 붙습니다.
불리한 점. 조사와 어미는 문법이 강하게 고정합니다. "학교에"를 "학교에서"로 바꾸면 뜻이 달라집니다. 위 실험실에서 흐리게 표시된 칸들이 이런 자리입니다. 토큰화 방식에 따라서는 한국어 한 어절이 여러 토큰으로 쪼개지면서, 실질적으로 선택 가능한 자리의 비율이 영어보다 낮아질 수 있습니다.
주의할 점. 한국어 토크나이저는 모델마다 편차가 큽니다. 같은 문장이 모델 A에서는 40토큰, 모델 B에서는 70토큰이 될 수 있습니다. 검출 임계값을 토큰 수로 잡는 시스템이라면 한국어에서 임계값을 별도로 검증해야 합니다. 영어 기준 "25단어면 충분"을 그대로 가져오면 안 됩니다.
이 논문에서 가장 오래 남는 것은 알고리즘이 아니라 태도입니다.
기존 검출기들은 "이 글은 AI가 쓴 것 같습니다"라고 말했습니다. 그럴듯하지만 반박할 수도, 검증할 수도 없는 문장입니다. 이 논문은 대신 이렇게 말합니다.
"이 글의 초록 단어가 36개 중 28개입니다. 우연이라면 9개여야 합니다. 사람이 이렇게 쓸 확률은 6×10-14입니다."
숫자가 붙으면 따질 수 있습니다. 임계값이 적절한지, 오탐률을 감수할 만한지, 이 글이 검정에 필요한 길이를 충족하는지. 논쟁의 대상이 "느낌"에서 "가정"으로 옮겨갑니다.
물론 이 방식도 완벽하지 않습니다. 작정하고 바꿔 쓰면 지워지고, 코드에는 붙지 않고, 오픈웨이트 모델은 잡지 못하고, 무엇보다 "기계를 거쳤다"까지만 말할 수 있습니다.
하지만 워터마킹이 하려는 일은 애초에 AI 사용을 적발하는 것이 아니었는지도 모릅니다. 744년 전 파브리아노의 제지공들이 발틀에 철사를 붙였을 때 그들이 원했던 것은 위조범 검거가 아니라, 이 종이가 어디서 왔는지 알 수 있게 해두는 것이었습니다.
인터넷이 출처를 알 수 없는 글로 채워지는 시대에, 최소한 일부에 대해서는 "이건 기계를 거쳤다"고 말할 수 있게 해두는 것. 그것만으로도 충분히 큰 일일지 모릅니다.
다만 그 표시를 읽는 사람이, 그것이 무엇을 말하고 무엇은 말하지 않는지 알고 있어야 합니다.
원 논문
배포와 제도
반론과 공격
배경