마이크로소프트 리서치, 자격증명 노출 없이 신원 증명하는 영지식 시스템 'Vega' 공개
마이크로소프트 리서치가 정부가 발급한 자격증명을 상대에게 넘기지 않고도 그 안의 특정 사실만 증명할 수 있는 영지식 증명(ZKP) 시스템 'Vega'를 공개했다. 사용자는 운전면허증 같은 신분증을 업로드하지 않고도 '21세 이상'처럼 한 가지 사실을 증명할 수 있으며, 자격증명 자체는 기기를 벗어나지 않는다.
마이크로소프트 리서치는 AI 비서와 자율 에이전트가 사용자를 대신해 행동하는 환경이 넓어질수록 신뢰할 수 있는 디지털 신원의 가치가 커진다고 설명했다. 동시에 EU 디지털 신원(EUDI) 프레임워크, EU의 연령 확인 청사진, 영국 온라인안전법(Online Safety Act)처럼 정부 신분증 기반 연령 확인을 의무화하는 정책도 빠르게 늘고 있다.
현재 애플리케이션 사업자는 정확도가 떨어지는 AI 기반 연령 추정을 쓰거나, 신분증 업로드를 요구해 사용자 프라이버시를 희생하는 양자택일에 놓여 있다. 업로드된 자격증명은 처리·보관됐다가 삭제되는 과정을 거치지만, 마이크로소프트 리서치는 일상적인 인증을 위해 공유된 정부 신분증이 대규모 유출 사고로 반복해서 노출돼 왔다고 지적했다.
영지식 증명은 다른 정보를 드러내지 않고 '나는 21세 이상'이라는 주장만 입증하게 해 주는 암호 기술이다. 증명은 발급된 자격증명에 그대로 작동하므로 발급 기관이 무언가를 바꿀 필요가 없다. 다만 기존 시스템은 로직이 바뀔 때마다 반복해야 하는 신뢰 설정(trusted setup)을 요구하거나, 이를 피하는 대신 성능을 희생해 큰 증명을 만들어 내는 한계가 있었다.
Vega는 마이크로소프트 리서치가 수년간 쌓아 온 연구 결과를 하나의 증명 시스템으로 묶었다. 신뢰 설정 없이 R1CS를 간결하게 증명하는 Spartan, 여러 연산 인스턴스를 하나로 압축하는 폴딩 기법을 도입한 Nova, 폴딩으로 영지식성을 확보하는 HyperNova, 인스턴스 묶음을 한 번에 처리하는 NeutronNova가 그 구성 요소다. 회로를 소수의 표준 부품으로만 짜는 단순함을 핵심 설계 목표로 삼았다.
성능 면에서 Vega는 약 2킬로바이트 크기의 일반적인 모바일 운전면허증에서 나이에 대한 영지식 증명을 일반 기기 기준 92밀리초 만에 생성한다. 만들어진 증명은 108킬로바이트이며 검증에는 23밀리초가 걸린다. 더 작은 자격증명에서는 증명 생성이 62밀리초, 증명 크기가 83킬로바이트, 검증이 17밀리초로 줄어든다. 증명 키는 464킬로바이트로 어떤 휴대전화에도 무리 없이 들어간다.
Vega의 속도는 '폴드 앤드 리유즈(fold-and-reuse)' 증명과 룩업 중심 회로 설계에서 나온다. 자격증명 증명은 자격증명 바이트를 SHA-256으로 해싱하고 발급자의 디지털 서명을 검증하는 두 가지 비싼 작업을 해야 한다. Vega는 서명 연산이 기본으로 처리되는 체계에서 동작해 서명 검증 비용을 줄였고, 그 결과 해싱이 주된 비용이 되도록 했다.
SHA-256은 64바이트 블록을 하나씩 같은 압축 함수로 처리하며, 일반적인 모바일 운전면허증은 30개 블록에 해당한다. Vega는 전체 해시를 펼치는 대신 한 압축 단계를 증명하는 작은 '스텝' 회로를 정의하고 블록마다 한 번씩 적용한 뒤, NeutronNova의 폴딩 기법으로 이를 하나의 인스턴스로 합친다. 덕분에 증명 키는 자격증명 길이와 무관하게 작은 크기를 유지한다.
Vega는 같은 자격증명에 대한 여러 증명에서 작업을 재사용하는 기능도 더했다. 서로 다른 서비스에 제출하거나 AI 에이전트를 거쳐 반복 제시할 때, 첫 증명 이후에는 비싼 작업 대부분을 건너뛸 수 있다. Vega는 모바일 운전면허증과 EU 디지털 신원 지갑 같은 실제 형식을 겨냥했고 러스트(Rust)로 작성됐으며, 마이크로소프트 리서치는 곧 오픈소스로 공개할 계획이라고 밝혔다.