ZKP PRIVACY / VERIFICATION BBATON 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
ON-DEVICE
CUSTODY / 로컬 보관

서버 대신 기기가 보관.

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

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

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

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

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

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

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

BEFORE / 기존 방식

신분증 전체를 보여준다.

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

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

AFTER / ZKP 방식

성인 여부만 확인한다.

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

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

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

개발자 가이드