ZKPPrivacy / VerificationBBaton Protocol

저희도 비바톤의 사용자가 누군지 알 수 없습니다.

영지식증명(ZKP)은 개인정보 전체를 제출하는 대신, 서비스에 필요한 사실만 검증하는 방식입니다. 비바톤은 이 원리를 익명 인증 구조에 적용하여, 사용자의 성인 여부처럼 필요한 인증 결과만 전달하는 구조로 설계되었습니다.

PROVE WHAT MATTERS. REVEAL NOTHING ELSE.

01 · ZKP의 핵심

왜 ZKP가 필요한가.

사용자의 신원을 밝히지 않고도 특정 조건의 만족 여부를 확인할 수 있는 인증 구조. ZKP는 '참/거짓'만 검증하고 나머지 데이터는 노출하지 않도록 설계된 증명 체계입니다.

01

완전성

Completeness

인증 요청을 통해 사용자의 증명을 확인할 때, 올바른 증명만이 검증을 통과해야 합니다. 사용자의 증명을 안정적으로 입증할 수 있도록 설계되었습니다.

02

무결성

Integrity

증명값은 임의로 조작하거나 우회로 검증자를 속일 수 없어야 합니다. 블록체인 기술을 통해 사용자의 데이터를 임의로 조작하거나 우회할 수 없도록 설계되었습니다.

03

익명성

Anonymity

검증자는 사용자의 증명값 보유 여부 외에 사용자를 유추할 수 있는 정보를 얻지 못해야 합니다. 비바톤도 사용자가 누구인지 알 수 없도록 설계되었습니다.

02 · 검증 구조

서비스 관점의
검증 구조.

운영 환경에서는 사용자의 개인정보, 기기에서 생성된 증명, 검증 결과를 해석하는 서비스가 분리되어야 합니다. 핵심은 서비스가 원본 데이터 없이도 필요한 결과만 받을 수 있다는 점입니다.

STEP 01
SECRET
PROVER / 사용자 측

개인정보 원본은 사용자 측에 남습니다.

사용자의 생년월일 등을 포함한 신분증 및 개인식별값은 사용자 기기 또는 사용자 제어 영역에 남아 있습니다. 비바톤 서버도 사용자의 개인정보를 수집하지 않는 구조로 설계되었습니다.

예시 입력birthdate = 1985-06-14
nationality = KOR
STEP 02
PROOF
PROOF / 증명

비바톤은 증명값의 진위 여부를 검증합니다.

성인 여부와 같은 특정 조건에 대한 요청은 사용자 기기로 전달되고, 기기에서 이를 증명으로 비바톤에 전달합니다. 비바톤은 이 증명이 올바른 증명인지만을 검증합니다.

서비스가 요청한 주장claim = age ≥ 19
proof = 0x8f3a...b2e1
STEP 03
VERIFIER / 서비스

클라이언트는 인증 여부만을 확인합니다.

비바톤에 의해 검증된 증명값은 클라이언트에게 전달됩니다. 해당 증명값은 사용자의 개인정보를 포함하지 않으며, 클라이언트가 요청한 인증이 참인지 거짓인지만을 포함합니다.

결과verify(proof) → true
knowledge leaked → none
BBATON · 적용 방향

원본은 사용자 기기에 두고,
서비스는 결과만 받습니다.

비바톤은 개인정보를 다루지 않습니다. 클라이언트는 인증 요청을 보내고, 기기는 그 요청에 필요한 증명을 생성합니다. 비바톤은 해당 결과를 검증하고 반환하는 역할만 수행합니다.

01 · ENROLL
DEVICE / 사용자 기기

등록하고, 기기 안에 보관.

최초 등록 시 필요한 문서 정보를 읽고, 사용자 기기에만 보관될 개인 정보와 검증 재료를 생성합니다.

기기 내부에 생성passport_data
biometric_template
secret_key (device-only)
02 · CUSTODY
CUSTODY / 로컬 보관

서버 대신 기기가 보관.

원본 신분증 등은 중앙 서버나 블록체인에 올라가지 않습니다. 신원을 특정할 수 있는 정보는 모두 사용자가 직접 가지고 있습니다.

외부로 전송되지 않는 것여권 이미지, 생년월일, 이름
셀피, 얼굴 특징점
비밀키
03 · PROVE
PROVE / 결과 전달

요청이 오면, 주장만 증명.

클라이언트가 조건을 요청하면 사용자 기기가 로컬 정보로 증명을 만들고, 비바톤은 해당 증명을 검증합니다. 원본 신원 정보는 전달되지 않습니다.

서비스가 받는 것claim: age ≥ 19
result: true
leaked info: none
03 · 사용 예시

필요한 정보만
확인합니다.

비바톤은 본인인증 서비스가 아닙니다. 사용자가 누구인지 신원을 인증해주는 서비스가 아니라, 특정 조건의 충족 여부를 확인해주는 서비스입니다.

BEFORE / 기존 방식

신분증 전체를 보여준다.

점원에게 전달된 것
NAME김민수 ID NO.950614-1****** ADDRESS서울시 강남구 테헤란로···
노출: 이름, 주민번호, 주소, 사진, 발급일

필요한 것은 성인 여부 하나인데, 실제로는 불필요한 개인정보가 함께 노출됩니다. 수집 목적과 노출 정보의 범위가 맞지 않는 구조입니다.

AFTER / ZKP 방식

성인 여부만 확인한다.

점원에게 전달된 것
CLAIM
만 19세 이상
◆ VERIFIED
비공개: 이름, 주민번호, 주소, 생년월일

서비스는 정책에 필요한 결과만 확인하고, 이름·주소·생년월일 같은 원본은 알지 못합니다. 검증 목적과 수집 정보가 일치하는 구조입니다.

개발자 가이드를 확인해보세요.