Search

SSI

대분류
블록체인
서적
소분류
자기주권 신원증명 구조분석서
최종 편집 일시
2024/10/27 16:23
생성 일시
2023/03/22 07:29
16 more properties

SSI(Self-Sovereign Identity, 자기주권 신원증명)

ID 기술의 부족한 부분을 개선하기 위한 기술

블록체인

분산원장(Distributed Leger)

블록체인을 탈중앙화된 시스템으로 만들어주는 핵심 기술
거래 기록 등의 데이터를 저장하는 데이터베이스(원장)를 중앙화된 서버가 소유하는 것이 아니라, 블록체인에 참여하는 모든 사람이 동일한 원장을 소유하고 관리하는 기술
불가변성의 특성 : 모든 정보가 암호화되어 Append-Onley 방식으로 원장 저장 - 수정 불가

스마트 컨트랙트(Smart Contract, 스마트 계약)

분산 원장에 정보를 기록하거나 불러옴.
분산 애플리케이션(Decentralized Application, DApp) : 스마트 컨트랙트를 통해 개발된 어플리케이션

합의(Consensus)

비트코인, 이더리움
블록체인에 참여한 모든 노드 중 암호화된 퍼즐의 답을 가장 먼저 찾아내는 노드의 블록을 최신 블록으로 업데이트하는 PoW(Proof of Work) 합의 방식 사용
이오스
블록체인 참여자가 21명으 블록 생성자를 선출하여 선출된 블록 생성자가 최신 블록을 생성하는 DPoS(Delegated Proof of Stake)합의 방식 사용
소규모 노드가 운영하는 프라이빗 블록체인
PBFT(Practical Byzantine Fault Tolerance) 계열의 알고리즘 사용하여 블록체인 합의 진행

SSI 특징

블록체인에 참여하는 모든 사람이 동일한 저장소(원장)를 신뢰성 있는 환경에서 소유
블록체인이 기존 시스템과 대비 각광받는 이유? 신뢰 환경을 더욱 쉽고 효율적으로 구축할 수 있게 돕기 떄문에
ID에 새로운 속성 추가, 민감한 정보 삭제 제출 가능
보관용 ID (Verifiable Credential) : 각 기관에서 발급하는 전자 신분증/증명서
제출용 ID (Verifiable Presentation) : 보관용 ID에서 필요 부분만 추출하여 제출 가능
사용자가 보관용 ID에서 추출하여 제출용 ID를 만들어 로그인하기 때문에 RP에게 어떤 정보를 제공하는지 정확하게 파악 가능
ZKP(Zero-Knowledge Proof, 영지식 증명)기술을 사용한다면 검증자에게 ID 속성 값을 알려주지않고 ID 속성 검증 가능
나이 검사 페이지에서 나이 증명을 할 때 실제 나이를 알려주지 않고도 True/False 등 판별값 만으로 판별 가능
전자기기에 암호화되어 안전하게 저장돼서 사용되므로 ID 사용자 정보가 유출되는 경우가 줄어듬

SSI 구성요소

DID
VC와 VP에 들어가는 식별자로 사용
DID document
VC(Verifiable Credential, 검증 가능한 자격증명) : 보관용 ID
사용자가 발행기관으로부터 발급받은 신분증, 졸업증명서, 재직증명서 등과 같은 신원증명을 의미
VP(Verifiable Presentation, 검증 가능한 제공 ID 데이터 집합) : 제출용 ID
SSI 플랫폼 주요 참여자
발행인(Issuer) : VC를 발행하는 사람
사용자(Holder) : VC를 발급받은 후 VP로 가공하여 검증기관에 제출하는 사람
검증인(Verifier) : 사용자로부터 VP를 수신하여 VP의 진위를 검증하는 사람
DID 및 ID 관련 정보 저장하는 분산저장소 (블록체인)
VP를 수신한 검증기관은 VP를 올바른 사용자로부터 수신했는지 VP 제출자 DID를 통해 확인
VP내 포함된 VC속성을 가진 사람이 사용자가 맞는지는 VC 내 명시된 Subject(사용자) DID를 통해 알 수 있다.
VP 내 포함된 VC 속성값이 어떤 발행기관에서 뱔행됐는지는 뱔행기관의 DID를 통해 알 수 있다.
검증기관은 VP 내 존재하는 VC의 Subject DID가 진짜 사용자의 것인지 DI D Auth를 통해 알 수 있다.

하이퍼레저 SSI 프로젝트

하이퍼레저 인디(Hyperledger Indy)
SSI에 특화된 블록체인과, 블록체인 노드와 클라이언트 간 연동을 위한 SDK를 개발
Hyperledger/indy-node: SSI 플랫폼에 특화된 블록체인 노드 개발
Hyperledger/indy-plenum: indy-node의 합의 알고리즘 개발
Hyperledger/indy-sdk: indy-node와 연동하는 클라이언트발행기관 사용자, 검증기관 등) 애플리케이션 개발용 SDK 개발
하이퍼레저 에어리즈(Hyperledge Aries)
블록체인, 혹은 분산저장소와는 독립적으로 클라이언트 애플리케이션 간 SSI 관련 데이터를 처리하기 위한 P2P 프로토콜을 개발
Hyperledger/aries-rfcs: DID, VC, VP 등 SSI 구성요소 관련 기술 사양 및 프로토콜 정의 (RFC)
RFC(Request For Comment) SSI 플랫폼 클라이언트와 서버 개발에 대한 요구사항, DID, VC, VP 관련 통신 프로토콜, 암호화 키를 관리하는 방법 등이 프로젝트 내에 제출
RFC의 4가지 상태
PROPOSED : 개발 진행 중인 RFC로서 아직 개발 커뮤니티의 승인을 받지 못한 상태
ACCEPTED : PROPOSED 상태 RFC가 커뮤니티로부터 SSI 플랫폼에 사용 승인 받은 상태
ADOPTED : ACCEPTED 상태 RFC가 실제 서비스에 적용된 상태
RETIRED : 개발이 더 이상 진행되지 않거나 치명적인 결함이 발견되었을 때
Hyperledger/aries-framework-go: ACCEPTED 상태가 된 aries-rfcs의 RFC 내용을 바탕으로 Go 언어로 구현된 SSI 프레임워크 개발(자바, 닷넷 구현도 진행 중)
그 외 다수의 클라이언트 개발 프로젝트 존재
Hyperledger/Ursa : ZKP 등 암호화 관련 라이브러리 제공 프로젝트
하이퍼레저 페브릭(Hyperledger Fabric)
블록체인 솔루션과 응용 프로그램을 개발하기 위해 허가형 프라이빗 블록체인의 형태를 가진 모듈형 아키텍처 플랫폼,
특징
1.
허가형 블록체인
멤버십 관리 서비스(MSP)를 통해 허가된 참여자의 접근을 허용한다.
2.
일반 프로그래밍 언어 사용
체인코드