본문으로 건너뛰기
HexaTransfer
블로그로 돌아가기
기술 심층 분석

Zero-Knowledge Proof in 파일 전송 Systems

Explore how zero-knowledge proofs enhance 파일 전송 privacy. Verify 파일 integrity without exposing contents to intermediaries.

개인정보보호위원회(PIPC)는 개인정보 보호법(PIPA) 제24조를 근거로 민감 정보 파일 전송 시 최소 정보 원칙을 요구합니다. 영지식 증명(ZKP)은 이 원칙을 암호학적으로 구현합니다. ZKP는 한쪽이 진술이 참임을 진술 자체 외 어떤 것도 드러내지 않고 증명할 수 있게 합니다. 파일 전송에 적용하면, 송신자나 서버가 파일이 예상 해시와 일치하는지, 특정 키로 암호화되었는지, 또는 "10 GB 미만이고 악성 코드 차단 목록에 없음" 같은 정책을 충족하는지를 파일 내용을 공개하지 않고 증명할 수 있습니다. 1985년 Goldwasser, Micali, Rackoff가 형식화하고 현재 zk-SNARKs(Groth16, PLONK)와 zk-STARKs로 실용화된 이 기술은 암호화폐에서 프라이버시 보호 파일 시스템으로 이동하고 있습니다.

이 맥락에서 "영지식"의 의미

두 가지 용법이 마케팅에서 충돌합니다. 첫째는 형식적 암호화 의미입니다. Fiat-Shamir 추론법과 Groth16(2016), PLONK(2019) 같은 현대 zk-SNARK 구성에 정의된, 증인을 드러내지 않고 지식을 증명하는 인터랙티브 또는 비인터랙티브 프로토콜입니다. 둘째는 더 느슨한 상업적 의미입니다. "영지식"이 서비스 제공자가 키를 보유하지 않아 사용자 데이터를 복호화할 수 없다는 것을 의미하는 경우로, Proton, Tresorit, Sync.com이 이 용법을 씁니다. 둘 다 유효하지만 서로 다른 문제를 해결합니다. 상업적 의미는 실제로 클라이언트 측 종단간 암호화이고, 암호화 의미는 E2EE만으로는 불가능한 새로운 워크플로우를 엽니다.

공개 없이 파일 무결성 증명

법률 증거 개시 시나리오를 상상해 보세요. 응답 당사자가 암호화된 파일을 제출하고 내용을 공개하지 않고 완전성을 증명하려 합니다. 합의된 인덱스의 모든 파일이 존재하고, 올바르게 해시되고, 공유 키로 암호화되었음을 Merkle 트리 커밋먼트와 영지식 증명의 조합이 밀리초 안에 증명할 수 있습니다. Halo 2, Circom, Plonky2로 구축된 도구는 이런 진술을 표현하는 회로를 WebAssembly 컴파일을 통해 브라우저에서 실행할 수 있게 합니다.

규정 준수를 위한 선택적 공개

HIPAA 적용 기관의 의사가 재검토를 위해 환자의 DICOM 연구를 보낼 때, 신원을 공개하지 않고 HIPAA 적용 기관의 면허 의사임을 증명하고 싶을 수 있습니다. BBS+ 서명이 있는 W3C 검증 가능 자격증명 데이터 모델 v2.0을 사용한 영지식 자격증명 증명이 이를 수행합니다. 수신자는 송신자의 이름이나 기관을 보지 않고 자격증명을 검증합니다. 같은 패턴이 수출 통제 준수에도 적용됩니다. 파일이나 정확한 목적지를 공개하지 않고 파일의 목적지 국가가 승인되었음을 증명하면, 프라이버시 보호 ITAR 또는 EAR 확인 워크플로우에 유용합니다.

서버를 신뢰하지 않고 업로드 증명

일반적인 파일 전송 문제가 있습니다. 송신자가 파일을 업로드하고 서버가 수신했다고 주장하지만, 실제로 저장된 것을 어떻게 증명할 수 있을까요? Juels-Kaliski(2007)와 Ateniese 외(2007)가 형식화한 검색 가능성 증명(PoR) 및 데이터 소유 증명(PDP) 기반 프로토콜은 서버가 임의 챌린지에 암호화 증명으로 답하여 완전한 파일을 보유하고 있음을 증명합니다. Filecoin은 이를 사용하여 저장 제공자가 주장하는 데이터를 실제로 보유하고 있음을 증명합니다.

중복 제거를 위한 프라이빗 셋 교차

파일 전송 서비스는 종종 서버 측에서 동일한 파일을 중복 제거하여 스토리지를 절약합니다. 단순하게 구현하면 정보가 누출됩니다. 두 사용자가 같은 파일을 업로드하면 서로를 발견합니다. 불투명한 의사 난수 함수(OPRF) 또는 블룸 필터 암호화를 사용하는 프라이빗 셋 교차(PSI) 프로토콜은 서버가 어느 쪽도, 서버 자체도 어떤 파일이 일치했는지 알지 못하면서 암호학적으로 중복을 감지할 수 있게 합니다. Microsoft의 APSI와 Google의 PSI 구현 같은 PSI 라이브러리는 WASM을 통해 브라우저에서 실행됩니다.

zk-SNARKs 대 zk-STARKs

zk-SNARKs(지식의 간결한 비인터랙티브 증명)인 Groth16과 PLONK는 밀리초 안에 검증 가능한 작은 증명(200~500바이트)을 생성하지만 신뢰할 수 있는 설정 의식이 필요합니다. StarkWare의 프로덕션 시스템에서 사용되는 zk-STARKs(확장 가능한 투명한 지식 증명)는 신뢰할 수 있는 설정이 필요 없고 해시 함수에만 의존하여 양자 내성을 가지지만, 증명이 더 큽니다(50 KB~수 MB). 파일 전송에서 SNARK 증명은 HTTP 헤더나 작은 메타데이터 필드에 적합하지만, STARK 증명은 더 크지만 신뢰 가정을 피합니다.

브라우저 증명을 위한 성능 예산

1 MB 파일이 특정 해시와 일치함을 증명하는 것은 Halo 2 또는 snarkjs를 WASM으로 컴파일하여 브라우저에서 회로 크기와 기기에 따라 약 100밀리초~2초가 걸립니다. 전송 시 파일 무결성 증명에는 허용 가능합니다. 대용량 파일에 대한 정책 준수 같은 더 복잡한 진술의 경우, 증명은 서버로 오프로드하거나 OffscreenCanvas와 Service Workers를 사용하는 백그라운드 워커에서 실행해야 할 수 있습니다. Web Crypto API는 표준 해시 프리미티브를 네이티브 속도로 처리하지만, 커스텀 ZK 회로는 여전히 WASM 해석 오버헤드(네이티브보다 약 2~5배 느림)를 겪습니다.

오늘날 ZKP가 맞는 곳과 맞지 않는 곳

현재 ZKP는 컴팩트한 무결성 및 진위 증명, 공개 없는 중복 제거, 전송 엔드포인트에 대한 자격증명 기반 접근에 적합합니다. 대용량 파일에 대한 범용 콘텐츠 인식 검사는 아직 맞지 않습니다. 증명자 시간과 증명 크기가 충분하지 않습니다. 일상적인 파일 전송 프라이버시에는 AES-256-GCM과 X25519 키 교환을 사용하는 클라이언트 측 E2EE가 ZKP 회로 복잡성 없이 일반적인 위협 모델을 처리합니다. HexaTransfer는 이 접근 방식을 사용합니다.

https://hexatransfer.com 에서 무료로 시작하세요. 계정 불필요, 최대 10 GB.

엔드투엔드 암호화로 대용량 파일을 안전하게 전송

엔드투엔드 암호화로 최대 10GB의 파일을 무료로 전송하세요. 계정이 필요하지 않습니다. 업로드 전에 브라우저에서 파일이 암호화되어 다른 사람은 읽을 수 없습니다.

파일 보내기