Anthropic FlashProve는 답변이 약속한 모델에서 나왔는지 가중치 공개 없이 CPU로 검증하게 합니다 | DAKER 커뮤니티

API로 받은 답변이 정말 광고한 그 모델에서 나왔는지, 사용자는 지금까지 확인할 방법이 없었습니다. Anthropic이 11월 3일(미국 시간) 이 문제를 암호학으로 풀려는 연구 결과 FlashProve를 공개하고 코드를 오픈소스로 풀었습니다. 모델 제공자가 가중치를 숨긴 채로 어떤 답변이 특정 모델의 출력이라는 증명을 만들고, 누구나 일반 CPU에서 그 증명을 검사할 수 있게 하는 시스템입니다.

어두운 서버실 랙 앞에서 노트북으로 검증 결과를 확인하는 엔지니어 크레용 장면 모션 미리보기
설명을 돕기 위해 만든 생성 이미지입니다.
어두운 서버실 랙 앞에서 노트북으로 검증 결과를 확인하는 엔지니어 크레용 장면
설명을 돕기 위해 만든 생성 이미지입니다.

왜 이런 증명이 필요한가

사용자가 프롬프트를 보내면 손에 남는 것은 생성된 토큰뿐입니다. 제공자가 더 작은 모델로 몰래 바꾸거나 요청마다 모델을 바꿔도 겉으로는 알기 어렵습니다. 가중치를 공개하면 검증할 수 있겠지만 대부분의 회사는 가중치를 비밀로 두고, 공개되더라도 일반 사용자가 거대한 모델을 직접 돌려 보기는 어렵습니다.

Anthropic은 활용처로 두 가지를 들었습니다. 공격자가 대화를 가로채 다른 출력을 끼워 넣기 어렵게 만드는 것, 그리고 안전성 평가 기관이 시험한 모델과 고객에게 실제로 서비스되는 모델이 같은지 확인하는 것입니다.

FlashProve는 어떻게 동작하나

시스템은 모델 제공자(증명자)와 사용자(검증자) 두 주체로 나뉩니다.

  1. 오프라인 단계: 제공자가 가중치에 대한 커밋먼트를 공개합니다. 가중치 자체는 숨긴 채 하나의 정확한 가중치 조합을 고정하는 짧은 지문입니다.
  2. 온라인 단계: 사용자가 프롬프트와 출력 토큰을 보내면 제공자의 GPU가 커밋된 모델이 이 토큰을 생성한다는 증명 파일을 만듭니다.
  3. 검증: 커밋먼트, 프롬프트, 답변을 가진 사람은 누구나 가중치 없이 증명을 검사할 수 있습니다.

핵심은 zkSNARK라 불리는 영지식 증명입니다. 증명이 가중치에 대한 정보를 드러내지 않으면서도, 모델을 직접 돌리는 것보다 훨씬 빠르게 검사할 수 있다는 성질을 이용합니다.

공개된 수치

Anthropic은 4비트로 양자화한 Llama 4 Maverick(4,000억 파라미터 MoE)으로 측정했습니다. H100 한 장과 CPU 24코어 서버에서 24개 요청을 한 번에 처리할 때 증명 생성은 약 223초, 초당 약 110토큰이었습니다. 요청 하나는 1,024토큰 창이고 증명 파일은 약 19MB입니다. 같은 길이의 프롬프트를 vLLM으로 처리하는 것보다 GPU 시간이 약 70~95배 듭니다. 오프라인 커밋은 모델당 한 번, 약 39분이 걸리고 약 1,600만 요청까지 유효합니다. 검증 쪽은 GPU 없이 약 6.5MB 커밋먼트를 내려받은 뒤 24스레드에서 17초, 단일 스레드에서 21초면 증명 하나를 확인합니다.

Anthropic은 기존 오픈소스 방식보다 몇 자릿수 빠르다고 설명했습니다. 보안 주장의 최상위 명제는 Lean 4로 형식 검증해 두었고, 개발 과정에서 Claude가 최신 암호학 도구를 적용하는 데 참여했다고 밝혔습니다.

아직 남은 한계

현재 증명 대상은 정수 연산 기반의 탐욕적 디코딩입니다. 실제 서비스에서 흔한 부동소수점 연산이나 샘플링 디코딩까지 증명하지는 않습니다. 가중치는 숨기지만 모델 구조를 숨기는 것은 목표가 아닙니다. Lean으로 증명한 것은 프로토콜이고, 실제로 실행되는 CUDA 증명기와 C++ 검증기는 같은 프로토콜을 따르도록 작성하고 테스트한 수준이라는 점도 저장소 문서에 적혀 있습니다. 비용이 추론의 수십 배인 만큼 모든 요청에 붙이기보다는 감사나 표본 검증에 먼저 쓰일 가능성이 큽니다.

국내 개발자에게 주는 의미

여러 모델 API를 섞어 쓰는 팀이나, 모델 평가 결과를 근거로 조달을 결정하는 기관이라면 공급자가 약속한 모델을 그대로 쓰는지 확인할 기술적 선택지가 생겼다는 점이 중요합니다. 지금 당장 상용 API에 붙일 수 있는 단계는 아니지만, 저장소에 코드와 증명 범위 설명이 있으니 보안·평가 담당자는 무엇이 증명되고 무엇이 증명되지 않는지부터 읽어 볼 만합니다. 특히 지금 구현이 지원하는 모델은 Llama 4 Maverick 하나이고 문맥 길이도 1,024토큰이라, 자체 모델이나 긴 문맥 서비스에 바로 적용할 수 있을지는 별도로 따져 봐야 합니다. 그래도 공급자가 지문을 공개하고 사용자가 노트북에서 검사하는 흐름이 실제로 돌아간다는 점을 보여 줬다는 데 이번 공개의 의미가 있습니다.

원문: Anthropic, Progress on provable inference for large language models · GitHub anthropics/FlashProve · @AnthropicAI 발표