비밀번호에서 휴대 가능한 증명으로: 2025 빌더를 위한 Web3 아이덴티티 가이드
대부분의 앱은 여전히 아이디, 비밀번호, 중앙 집중식 데이터베이스에 아이덴티티를 고정합니다. 이 모델은 취약(침해), 누출(데이터 재판매), 그리고 번거로움(끝없는 KYC 반복)이라는 문제를 안고 있습니다. 분산 식별자(DID), 검증 가능한 증명(VC), 그리고 어태스테이션을 중심으로 떠오르는 새로운 스택은 다른 미래를 제시합니다: 사용자는 자신에 대한 암호학적 증명을 휴대하고, 필요한 것만 공개합니다—그 이상도 이하도 아닙니다.
이 글은 현황을 정리하고 오늘 바로 적용할 수 있는 실용적인 청사진을 제공합니다.
변화: 계정에서 증명으로
이 새로운 아이덴티티 스택의 핵심은 두 가지 기본 W3C 표준 위에 구축됩니다. 이는 사용자 데이터를 다루는 방식을 근본적으로 바꿉니다.
- 분산 식별자(DIDs): 중앙 레지스트리(예: 도메인 네임 시스템)가 필요 없는 사용자 제어 식별자입니다. DID는 영구적인, 자체 소유 주소와 같습니다. DID는 공개키와 서비스 엔드포인트를 포함한 서명된 “DID 문서”로 해석되어 안전하고 분산된 인증을 가능하게 합니다.
v1.0
표준은 2022년 7월 19일에 공식 W3C 권고안이 되었으며, 생태계에 중요한 이정표를 세웠습니다. - 검증 가능한 증명(VCs): “나이 18세 이상”, “X 대학 학위 보유”, “KYC 통과”와 같은 클레임을 변조 방지 디지털 형식으로 표현합니다. VC Data Model 2.0은 2025년 5월 15일에 W3C 권고안이 되어, 증명의 발행 및 검증 방식에 현대적인 기반을 마련했습니다.
개발자에게 어떤 변화가 있나요? 민감한 개인식별정보(PII)를 데이터베이스에 저장하는 대신, 사용자의 지갑이 제공하는 암호학적 증명을 검증합니다. 선택적 공개(selective disclosure)와 같은 강력한 프리미티브 덕분에, 필요한 특정 정보(예: 특정 국가 거주)만 요청하고 원본 문서는 보지 않을 수 있습니다.
기존 로그인 방식과의 접점
새로운 세계가 기존 로그인 경험을 포기하도록 요구하지는 않습니다. 오히려 보완합니다.
- 패스키 / WebAuthn: 피싱에 강한 인증 방식입니다. 패스키는 기기 또는 바이오메트릭(예: Face ID, 지문)과 결합된 FIDO 자격증명이며, 주요 브라우저와 운영체제에서 널리 지원됩니다. 앱이나 지갑에 비밀번호 없는 원활한 로그인 경험을 제공합니다.
- Sign-In with Ethereum (SIWE / EIP-4361): 사용자가 블록체인 주소를 제어하고 이를 애플리케이션 세션에 연결함을 증명합니다. 간단한 nonce 기반 서명 메시지를 통해 작동하며, 전통적인 Web2 세션과 Web3 제어 사이의 깔끔한 다 리를 만듭니다.
베스트 프랙티스는 두 가지를 함께 사용하는 것입니다: 패스키는 일상적인 로그인에, SIWE는 암호화폐와 연관된 흐름에 적용합니다.
증명 발행 및 검증을 위한 레일
증명을 유용하게 만들려면 표준화된 발행 및 제시 방법이 필요합니다. OpenID Foundation이 두 가지 핵심 프로토콜을 제공합니다.
- 발행: OpenID for Verifiable Credential Issuance (OID4VCI) – 발행자(정부 기관, KYC 제공자 등)로부터 사용자의 디지털 지갑으로 증명을 가져오는 OAuth 보호 API를 정의합니다. 다양한 증명 형식을 지원하도록 설계되었습니다.
- 제시: OpenID for Verifiable Presentations (OID4VP) – 애플리케이션이 “증명 요청”을 만들고 사용자의 지갑이 응답하는 방식을 표준화합니다. 기존 OAuth 리다이렉트나 최신 브라우저 API를 통해 동작합니다.
구현 시 마주하게 될 주요 증명 형식:
- W3C VC with Data Integrity Suites (JSON‑LD): 보통 BBS+ 암호와 결합돼 강력한 선택적 공개를 지원합니다.
- VC‑JOSE‑COSE 및 SD‑JWT VC (IETF): JWT와 CBOR 기반 생태계에 맞춰 설계됐으며, 역시 선택적 공개 기능을 갖추고 있습니다.
상호운용성은 빠르게 개선되고 있습니다. OpenID4VC High Assurance 프로파일은 기술 옵션을 좁혀 개발자가 벤더 간 통합을 더 쉽게 할 수 있게 돕습니다.
DID 메서드: 올바른 주소 체계 선택
DID는 단순히 식별자일 뿐이며, “DID 메서드”는 신뢰 근원을 정의합니다. 흔히 쓰이는 두 가지를 지원하는 것이 좋습니다.
- did:web: 도메인에 기반한 DID입니다. 배포가 매우 쉽고, 기존 웹 인프라를 신뢰 근원으로 활용하려는 기업, 발행자, 조직에 최적입니다.
- did:pkh: 블록체인 주소(예: 이더리움 주소)에서 직접 파생되는 DID입니다. 이미 암호화폐 지갑을 보유한 사용자와 온체인 자산을 연결할 때 유용합니다.
원칙: 최소 두 가지 메서드—did:web
은 조직용, did:pkh
는 개인 사용자용—를 지원하세요. 표준 DID resolver 라이브러리를 사용해 조회하고, 새로운 메서드를 추가하기 전 공식 레지스트리에서 보안·지속성·거버넌스를 검토합니다.
바로 사용할 수 있는 빌딩 블록
핵심 표준 외에도 아이덴티티 스택을 강화하는 도구들이 있습니다.
- ENS (Ethereum Name Service): 인간 친화적인 이름(
yourname.eth
)을 블록체인 주소와 DID에 매핑합니다. 사용자 경험을 개선하고 오류를 줄이며 간단한 프로 필 레이어를 제공합니다. - 어태스테이션: “무엇이든지에 대한 검증 가능한 사실”을 온체인·오프체인에 기록할 수 있습니다. 예를 들어 **Ethereum Attestation Service (EAS)**는 퍼블릭 레저에 PII를 저장하지 않으면서 평판·신뢰 그래프를 구축할 수 있는 견고한 기반을 제공합니다.
추적해야 할 규제 흐름
규제는 장벽이 아니라 가속도입니다. 가장 중요한 발전은 **EU 디지털 아이덴티티 프레임워크(eIDAS 2.0)**이며, 2024년 5월 20일에 EU 2024/1183 규정으로 채택되었습니다. 이는 모든 EU 회원국이 시민에게 무료 **EU 디지털 아이덴티티 지갑(EUDI)**을 제공하도록 의무화합니다. 구현 규정은 2025년 5월 7일에 발표돼, 유럽 전역의 공공·민간 서비스에서 지갑 기반 증명의 채택을 강력히 촉진합니다.
EU 외 지역이라도 EUDI 지갑과 그 기반 프로토콜은 전 세계 사용자 기대치와 지갑 채택을 형성할 것입니다.
2025년 실전 디자인 패턴
- 패스키 우선, 지갑 선택적: 기본 로그인은 패스키를 사용합니다. 보안·간편·친숙합니다. 사용자가 NFT 민팅·지급 등 암호화폐 연관 행동을 할 때만 SIWE를 도입합니다.
- 문서 대신 증명 요청: 번거로운 문서 업로드를 OID4VP 기반 VC 증명 요청으로 대체합니다. 운전면허증 대신 “18세 이상” 혹은 “거주 국가가 X”와 같은 증명을 요청합니다. BBS+ 또는 SD‑JWT와 같은 선택적 공개를 지원하는 증명을 받아야 합니다.
- 서버에 PII 저장 금지: 사용자가 무언가를 증명하면 어태스테이션이나 단기 검증 결과만 기록하고 원본 증명은 저장하지 않습니다. 온체인 어태스테이션은 “사용자 Y가 발행자 Z로부터 D일에 KYC 통과”와 같은 감사 가능한 기록을 제공하면서 개인 데이터를 보관하지 않습니다.
- did:web 로 조직을 발행자화: 기업·대학·기관은 이미 도메인을 보유하고 있습니다.
did:web
을 사용해 증명을 서명하도록 하면 기존 웹 거버넌스 모델 아래 키를 관리할 수 있습니다. - ENS는 이름용, 아이덴티티는 아니다: ENS는 친숙한 핸들과 프로필 포인터 역할을 합니다. UX에는 좋지만 권위 있는 아이덴티티 클레임은 증명·어태스테이션에 두세요.
시작 아키텍처
현대적인 증명 기반 아이덴티티 시스템 청사진:
- 인증
- 기본 로그인: 패스키(FIDO/WebAuthn).
- 암호 연계 세션: Sign‑In with Ethereum(SIWE)으로 지갑 기반 행동을 처리.
- 증명
- 발행: 선택한 발행자(KYC 제공자, 대학 등)의 OID4VCI 엔드포인트와 통합.
- 제시: 웹·네이티브 앱에서 OID4VP 증명 요청을 트리거. W3C VC(BBS+)와 SD‑JWT VC 모두 수용 준비.
- 해결·신뢰
- DID Resolver: 최소
did:web
·did:pkh
지원 라이브러리 사용. 스푸핑 방지를 위해 신뢰할 수 있는 발행자 DID 허용 목록 유지.
- DID Resolver: 최소
- 어태스테이션·평판
- 내구성 기록: 검증 신호가 필요할 때는 원본 클레임 대신 해시·발행자 DID·타임스탬프를 포함한 어태스테이션을 발행.
- 스토리지·프라이버시
- 미니멀리즘: 서버에 저장하는 PII를 극단적으로 최소화. 모든 데이터를 암호화하고 TTL 정책을 엄격히 적용. 일시적인 증명에 의존하고, 제로-지식·선택적 공개를 적극 활용.
UX 교훈
- 보이지 않게 시작: 대부분의 사용자는 지갑을 인식하고 싶어 하지 않습니다. 패스키로 로그인 흐름을 매끄럽게 처리하고, 지갑 상호작용은 절대 필요할 때만 노출합니다.
- 점진적 공개: 한 번에 모든 정보를 요구하지 마세요. 사용자의 즉각적인 목표를 해제하는 최소 증명만 요청합니다. 선택적 공개 덕분에 전체 문서를 볼 필요가 없습니다.
- 키 복구는 필수: 단일 디바이스 키에 묶인 증명은 위험합니다. 재발급·다중 디바이스 이식성을 처음부터 설계하세요. 이는 SD‑JWT VC와 클레임 기반 홀더 바인딩이 채택 되는 주요 이유입니다.
- 읽기 쉬운 핸들: ENS 이름은 긴 16진수 주소보다 친숙합니다. 오류를 줄이고 컨텍스트를 제공하지만, 실제 권한은 증명과 어태스테이션에 두세요.
다음 분기 로드맵: 실용적인 단계
- 1~2주차:
- 기본 로그인 흐름에 패스키 도입.
- 모든 암호화폐 연관 행동을 SIWE 검증 뒤에 배치.
- 3~6주차:
- OID4VP 요청을 활용한 간단한 연령·지역 제한 파일럿.
- 선택적 공개를 지원하는 VC 2.0(BBS+ 또는 SD‑JWT) 수용.
- “검증 통과” 이벤트에 대해 어태스테이션 생성, PII 로그 대신 사용.
- 7~10주차:
- 파트너 발행자(예: KYC 제공자)와
did:web
연동 및 DID 허용 목록 구현. - 사용자 프로필에 ENS 이름 연결 기능 추가로 주소 UX 개선.
- 파트너 발행자(예: KYC 제공자)와
- 11~12주차:
- 증명·폐기 흐름에 대한 위협 모델링 수행. 만료된 증명·신뢰할 수 없는 발행자 등 일반 오류에 대한 텔레메트리 추가.
- 프라이버시 정책 공개: 어떤 정보를 왜 요청하는지, 보관 기간, 사용자 감사 방법 명시.
빠르게 변하는 영역 (주시 필요)
- EU EUDI 지갑 출시: 구현·호환성 테스트가 전 세계 UX와 검증 능력에 큰 영향을 미칩니다.
- OpenID4VC 프로파일: 새로운 프로파일·테스트 스위트 덕분에 발행자·지갑·검증자 간 상호운용성이 지속적으로 향상됩니다.
- 선택적 공개 암호 스위트: BBS+와 SD‑JWT VC용 라이브러리와 개발자 가이드가 급속히 성숙해져 구현 난이도가 낮아지고 있습니다.
구축 원칙
- 증명하고 저장하지 말 것: 원시 PII 대신 클레임 검증을 기본으로 합니다.
- 기본 상호운용성: 초기부터 여러 증명 형식·DID 메서드를 지원해 스택을 미래 지향적으로 설계합니다.
- 최소·투명: 가장 작은 클레임만 요청하고, 사용자가 무엇을, 왜 확인하는지 명확히 고지합니다.
- 복구는 평범하게: 디바이스 분실·발행자 교체 상황을 대비해 견고한 복구 흐름을 설계하고, 키 바인딩이 너무 경직되지 않도록 합니다.
Fintech, 소셜, 크리에이터 플랫폼을 구축한다면, 이제 증명 우선 아이덴티티는 미래의 선택이 아니라 위험 감소·온보딩 간소화·글로벌 상호운용성을 위한 최단 경로입니다.