인용은 증거가 아니라, 증거를 가리키는 포인터입니다

출처추적 편 · 지식베이스 시리즈 중 하나입니다.

먼저 밝혀둡니다. 이 글은 "인용을 예쁘게 다는 법"이 아닙니다. 지식베이스에서 요약은 남는데 출처는 안 남는 문제 — "이 문장이 정말 저 글에 있었나"를 나중에 되짚을 수 없는 문제 — 를 어떻게 기계가 대신 확인하게 했는지의 기록입니다. 해시만으로는 왜 날조를 못 막는지, 그리고 이 도구가 못 잡는 것이 무엇인지까지 적습니다. 모든 수치는 2026-08-11 검증 출력에서 왔습니다.


1. 시작은 "그 문장이 정말 거기 있었나"였습니다

지식베이스에 요약을 쌓다 보면, 두 달 뒤 그 요약을 다시 꺼냅니다. 그리고 매번 같은 자리에서 막혔습니다. "이 문장을 어느 글에서 가져왔더라." 요약은 남는데 그 요약이 원문 어디에서 나왔는지가 남지 않았습니다.

되짚을 수 없는 요약은 그럴듯한 기억일 뿐입니다. 특히 언어 모델이 요약을 만들면, 모델이 문장을 다듬어 돌려주기 때문에 원문에 없던 표현이 슬쩍 섞입니다. "원문 그대로"라며 돌려준 문장이 실제로는 원문에 없던 사고가 이 작업 이전에도 실제로 났습니다. 그러니 요약 옆에는 되짚을 수 있는 무언가가 붙어 있어야 합니다.

2. 그래서 이번에 정한 질문 하나

"인용을 어떻게 표시할까"가 아니었습니다. 질문은 이것이었습니다. 인용이 진짜인지를 사람이 매번 원문과 대조하지 않고, 기계가 대신 확인하게 하려면 무엇을 함께 남겨야 하는가. 되짚기를 사람 손에 맡기면 결국 아무도 되짚지 않습니다.

3. 사용한 개념과 도구 — 자기검증되는 인용

밖에서 보면 이 시스템에 들어오는 것은 위키 문장과 그 출처 후보이고, 나가는 것은 "이 인용이 원문과 축자 일치하는가"라는 판정입니다. 그 사이를 세 조각으로 된 인용 표시가 지탱합니다. 위키 문장 옆에 출처 글의 식별자, 인용문의 지문(내용을 압축한 짧은 값), 그리고 축자 인용문을 함께 답니다. 이 셋이 있으면 되짚기가 기계로 닫힙니다.

발급   식별자 + 인용문   → 원문에 있는지 대조   → 통과 시 인용표시  → 원문에 있는가
검증   인용표시가 붙은글  → 존재·지문·축자 대조  → 통과·실패 판정    → 셋 다 맞는가
회수   찾을 문장          → 원문 전체를 축자검색  → 출처 글·문맥      → 정확히 있는가

4. 실제로 만든 것 — 기능 세 개와, 그 기능이 막는 실패

① 원문과 축자로 대조했다 — 지문만으로는 날조를 못 잡던 것을 막는다

인용문의 지문만 확인하면, 지어낸 문장에 지문을 제대로 계산해 붙인 날조를 못 잡습니다. "내가 쓴 것을 내가 압축했다"로 끝나기 때문입니다. 그래서 지문 대조에 더해, 인용문이 지목한 원문에 그 문장이 실제로 있는지를 축자로 맞춰봤습니다. 원본 글 전체가 로컬에 있어서 이 대조가 가능했습니다. 이 축자 대조가 날조의 마지막 문을 닫습니다.

② 발급 시점에 막았다 — 원문에 없는 인용이 지식베이스에 들어가던 것을 막는다

잘못된 인용을 나중에 잡는 것보다, 애초에 못 만들게 하는 것이 쌉니다. 그래서 인용 표시를 발급할 때 원문 대조를 먼저 거치게 했습니다. 원문에 있으면 표시를 내주고, 없으면 발급을 거부하면서 어디까지 맞고 어디서 어긋났는지를 알려줍니다. 오타면 그 자리에서 고칩니다. 검증된 인용만 발급되니, 위키에 들어가는 인용은 이미 원문 대조를 통과한 것입니다.

③ 페이지 전체를 게이트로 걸었다 — 검증 안 된 인용이 지식베이스에 섞이던 것을 막는다

위키 페이지를 저장하기 전에, 그 페이지 안의 모든 인용 표시를 한 번에 검증하는 게이트를 걸었습니다. 하나라도 원문과 어긋나면 게이트가 막아, 검증 안 된 인용이 지식베이스에 섞이는 것을 원천에서 끊습니다. 사람이 인용마다 눈으로 대조할 필요가 없어집니다.

5. 지금까지 관찰된 결과 (실측 · 명령을 같이 적습니다)

일부러 세 종류의 위조를 심은 페이지를 검증에 걸어봤습니다. 각 위조가 어떻게 잡히는지 실측했습니다.

위조 종류검출 결과인용문을 슬쩍 고침지문 불일치로 적발지문까지 맞게 계산한 날조원문에 없음으로 적발없는 글을 가리킴원문 없음으로 적발정상 인용통과

검증 도구의 전체 지표입니다.

항목값어떻게 확인했나대조 원본22,019건원본 파일 wc -l위조 검출3종 전부자기공격 페이지정상 통과오탐 0정상 인용 검증부분 축자 우연일치관측됨범위 밖 문서 대조

가장 중요한 것은 두 번째 줄입니다. 지문까지 올바르게 계산해 붙인 날조는, 지문만 봐서는 통과합니다. 위조자가 자기 문장에 지문을 제대로 달았기 때문입니다. 이것을 잡은 것은 오직 원문 축자 대조였습니다. 지문은 무결성을 보증하지 무존재를 보증하지 않습니다. "이 문장이 바뀌지 않았다"와 "이 문장이 원문에 있다"는 다른 확인입니다.

한 가지 더 세어둔 것이 있습니다. 이 코퍼스를 근거로 쓰지 않은 문서를 검증에 걸었더니, 문장 일부가 우연히 원문 어딘가와 겹치는 경우가 소수 관측됐습니다. 그래서 부분 겹침은 "증거"가 아니라 "후보"로만 판정하게 했습니다. 우연 일치가 있다는 것을 숫자로 확인했기 때문입니다.

6. 따라 해보고 싶으시면 — 가장 작은 형태부터

되짚을 수 있는 인용을 만드는 최소 형태는 이렇습니다.

  1. 위키 문장 옆에 출처 글의 식별자와 축자 인용문을 함께 남깁니다. 식별자 없는 인용은 되짚을 수 없습니다.
  2. 인용을 발급할 때 원문 대조를 먼저 거칩니다. 원문에 없으면 발급하지 않습니다. 나중에 잡는 것보다 못 만들게 하는 것이 쌉니다.
  3. 페이지를 저장하기 전에 모든 인용을 한 번에 검증하는 게이트를 겁니다. 하나라도 어긋나면 저장을 막습니다.
  4. 문장 일부만 겹치는 것은 증거가 아니라 후보로 표시합니다. 우연 일치가 있기 때문입니다.

7. 판정은 네 가지로 나누십시오 (두 가지로는 부족합니다)

인용을 "맞다/틀리다"로만 보면, 우연히 일부 겹친 것이 "맞다"로 넘어갑니다.

PASS            원문에 축자로 존재하고 지문·식별자가 모두 맞다
PASS_WITH_NOTE  문장 일부만 축자로 겹친다 — 후보이지 확정 증거는 아니다
HOLD            근거 기반이 이 코퍼스가 아니라 판정 자체가 무의미하다
FAIL            지문·존재·식별자 중 하나가 어긋난다

두 번째 줄을 조심하십시오. 부분 겹침을 증거로 올리면 우연 일치가 근거로 둔갑합니다.

8. 한계와 대가 (얻은 것 옆에 잃은 것)

되짚기를 기계로 닫은 대신 분명히 잃은 것이 있습니다.

이 대조는 축자입니다. 바꿔 말한 인용, 즉 뜻은 같지만 표현을 다르게 옮긴 문장은 원문과 글자가 달라 못 찾습니다. 그런 문장은 "원문에 없음"으로 남는데, 이것은 "거짓"이 아니라 "이 도구로는 판정 불가"입니다. 이 구분을 흐리면 정상 요약을 위조로 오해합니다. 바꿔 말한 인용의 검증은 뜻을 비교하는 별도의 방법으로 넘겨야 합니다.

대조 기준을 하나로 고정하느라, 공백 차이만 흡수하고 글자는 전혀 건드리지 않습니다. 그래서 눈에 같아 보여도 글자가 다르면 다른 것으로 봅니다. 엄격함을 얻고 관대함을 잃은 것이며, "비슷하면 통과"가 생기지 않게 하려는 의도된 대가입니다.

그리고 지문만으로 무결성을 보장한다는 설계를 버렸습니다. 처음에는 인용문의 지문만 맞으면 됐다고 봤다가, 지문까지 맞게 계산한 날조를 못 잡는 것을 확인하고 버렸습니다. 원문 축자 대조를 함께 걸어야 무존재까지 잡힙니다. 버린 설계의 근거는 실제 날조를 통과시킨 자기공격 결과였습니다.

한 가지 자랑하지 않겠습니다. 이 인용 도구를 실제 위키 페이지에 쌓아 올리는 단계는 아직 설계까지만 왔습니다. 원본 대조와 정확 회수와 인용 검증까지는 동작하지만, 글 하나를 한 페이지로 쓸지 주제별로 누적할지는 아직 정하지 않았습니다. 지금 있는 것은 "쓴 다음 그것이 진짜인지 검증하는 장치"이지, 위키 그 자체가 아닙니다.

9. 결론 — 가져가실 규칙 세 개

첫째, 인용은 증거가 아니라 증거를 가리키는 포인터입니다. 인용 표시가 붙어 있다는 것과 그 인용이 원문에 있다는 것은 다릅니다. 포인터가 가리키는 곳에 실제로 그 문장이 있는지를 확인해야 인용이 증거가 됩니다.

둘째, 지문은 무결성을 보증하지 무존재를 보증하지 않습니다. "이 문장이 바뀌지 않았다"는 지문으로 확인되지만, "이 문장이 원문에 있다"는 원문 대조로만 확인됩니다. 지문만 쓰면 지어낸 문장에 지문을 제대로 붙인 날조를 못 잡습니다.

셋째, 잘못된 인용은 나중에 잡지 말고 못 만들게 하십시오. 발급 시점에 원문 대조를 걸면, 위키에 들어가는 인용은 이미 검증을 통과한 것입니다. 사후 검출보다 원천 차단이 싸고 안전합니다.

10. 참고

이 글에서 "인용문을 원문과 축자로 대조한다"는 방식은 사실 확인(fact-checking)에서 인용의 정확성을 검증하는 기본 형태입니다. 지문(내용을 압축한 값)으로 변조를 잡고 원문 대조로 무존재를 잡는 이중 확인은, 무결성과 존재를 별개로 다뤄야 한다는 원칙에서 나옵니다.

밀어주고 끌어주는

온·오프라인 AI 스터디

AI로 어디까지 할 수 있는지
직접 확인하실 분만 신청하세요.