-
[블록체인] 블록체인이란 / 작업증명 / DID 란/ 하이퍼레저 인디블록체인 2022. 3. 18. 13:40반응형
블록체인이란
블록체인은 비트코인에 대해 얘기할 때 가장 많이 언급된다. '은행 없는 글로벌 금융 시스템'이 바로 비트코인이다. 사토시 나카모토는 비트코인을 '전적으로 거래 당사자 사이에서만 오가는 전자화폐' 라고 소개하고, 'P2P 네트워크를 통해 이중 지불을 막는다.' 라고 설명했다. (-> 전자투표에 활용한다면, 선거 비용을 아낄 수 있겠다.)
전자화폐는 물리적인 실체 없이 컴퓨터 상에 데이터로만 존재할 수 있다. 하지만 무한정 복제할 수 있는 돈은 가치가 없다. 그러니 전자화폐를 돈으로 쓰려면 데이터를 함부로 고칠 수 없도록 장치를 해둬야 한다. 블록체인이 이런 장치를 갖고 있다.
블록체인은 '공공 거래장부'라고도 불린다. 말 그대로 거래장부를 공개해 두고 관리한다는 뜻이다.
예를 들어, 내가 은행에서 '돈 만원을 달라.' 라고 요구하면, 은행은 거래장부를 뒤져 내가 돈을 맡긴 기록이 있는지 확인한다. 내 주장대로 만원을 맡긴 기록이 있다면 은행은 만원을 내게 건넬 테다. 거래장부에서 거래 내역을 제대로 확인하지 못하면 은행은 제 역할을 하지 못한다.
거래장부는 거래의 핵심이다. 돈이 오고간 내역을 바탕으로 거래가 이뤄지기 때문이다. 그러니 거래장부를 보관하기 위해 은행은 서버 보안을 철저히 한다.
블록체인은 이러한 보안 방법을 달리 한다. 비트코인을 사용하는 모든 사용자가 함께 거래장부를 관리하도록 하는 것이다.
모든 비트코인 사용자는 P2P네트워크에 접속해 똑같은 거래장부 사본을 나눠 관리한다. 새로 생긴 거래 내역을 거래장부에 써넣는 일도 사용자 몫이다. 10분에 한 번씩 모여 거래장부를 최신 상태로 갱신한다. 이때 장부를 조작할 수 없도록 과반수가 인정한 거래내역만 거래장부에 기록한다.
P2P 는 중앙 서버를 거치지 않고 컴퓨터들끼리 직접 통신하는 방식을 통칭한다. ㅇ
이 때 10분에 한 번씩 만드는 거래내역 묶음을 블록(Block)이라고 부른다. 블록체인은 블록이 모인 거래장부 전체를 가리킨다.
블록체인은 '작업 증명 체계(proof-of-work scheme)'를 도입해 서로 믿을 수 없는 이들끼리 모두 신뢰할 수 있는 방법을 제시한다. 작업 증명 체계란, 해시값을 구하는 과정이다.
유효한 해시값을 구한다는 것은 유효한 블록을 만들기 위해 필요한 값이다. 한 블록을 생성하기 위해서는 10분의 연산력을 투입해야 한다. 여기서 연산력은 블록을 만들 때 필요한 수학 연산이다.
해시 함수란? 데이터를 고정된 길이의 데이터로 매핑하는 함수를 말한다. 해시 함수는 같은 입력값에 대해 같은 출력값을 보장하며, 출력값은 균일하게 분표하는 특성을 갖는다.
DID 란
지갑에서 신분증 꺼내듯 필요한 상호아에만 블록체인 지갑에서 DID를 제출해 신원을 증명할 수 있다. 기존 방식과 비교하면 신원 확인 과정에서 개개인이 자기 정보에 완전한 통제권을 행사하는 것이 특징이다. 분산 아이디 또는 탈중앙화 신원 확인이라고 한다.
인터넷에서 신원을 증명하려면 이를 인증해 주는 '제 3기관'이 필요하다. 공인인증서와 같이 인증서 비밀번호를 알고 있다면 비대면 상태에서도 본인임을 증명하는 전자서명 역할을 하는 것이다.
다만 이런 방식은 개인정보를 제3기관이 관리한다는 한계가 드러난다. 해킹으로 유출되는 문제점 때문에 개인정보 통제권을 개인에게 돌려주자는 주장이 늘었다.(진짜?)
DID는 개인정보를 공인증서처럼 중앙 서버가 아니라 개인 태블릿 등 개인의 기기에 분산시켜서 관리한다. 위,변조가 불가능한 블록체인 상에는 해당 정보의 진위 여부만 기록한다. 정보를 매개하는 중개자(공인인증서) 없이 본인이 자신의 신원을 증명할 수 있다.
기존의 신원 관리 시스템은 중앙에서 사용자의 ID랑 패스워드를 발행하고, 이름이나 주소 등의 정보를 보유했다. 이 시스템에서 정보는 중앙에게 위임되어 관리되는데, 블록체인(분산 네트워크)을 활용하면 사용자가 정보를 관리할 수 있다.
크리덴셜은 신원에 증거로 제시하는 데이터 집합이다. Personal information. 패스워드
DID란 SSI(self sovereign identity, 자기주권 신원증명)에 사용하는 개념이고, 다음과 같은 특징이 있다.
1. verifiable credential 이라는 보관용 ID와 verifiable presentation이라는 제출용 ID가 따로 존재한다.
2. ZKP (Zero Knowledge Proof)를 사용하는데, 이는 속성을 알려주지 않고 검증이 가능한 검증 방식이다.
와 대체 어떻게 하길래?
SIS의 구성요소
: DID, DID document, Verifiable Credential, Verifiable Presentation
DID는 Issuer, Holder, Verifier, Verifiable data registry 가 참여하는 환경에서 사용한다.
- Issuer는 사용자에게 크리덴셜을 발행한다.
- Holder는 Issuer에게 크리덴셜을 발급받고, 필요할 때 Verifier에게 이를 제공한다.
- Verifier는 신원 정보가 필요한 경우 Holder에게 크리덴셜을 요구하고 검증한다.
- Verifiable data registry는 DID를 저장하는 메커니즘(블록체인)
(네이버 지식백과)
DID(Decentralized IDentifier) 이용자가 직접 생성하고 제어할 수 있는 분산형 식별자이다. 인증수단인 DID Document는 참조할 수 있는 URI로 DID를 사용하게 된다.
DID의 구성은 세 부분으로 나눌 수 있다.
did:sov:3k9dg356wdcj5gf2kdjdog2jf
- 맨 왼쪽은 scheme, DID를 사용한다고 해서 did라고 적혀있다.
- 그 다음은 method(저장소 이름). 소버린이라는 저장소를 사용한다.
- 마지막으로 method-specific identifier. DID Document가 저장된 주소를 나타낸다.
DID Document란,
DID의 소유권을 증명할 수 있는 인증수단이 포함돼 있는 JSON 문서이다.
유저가 프라이빗 키를 생성하고 DID를 생성한 다음에 DID Document에 자신의 퍼블릭 키를 포함하여 블록체인에 저장한다. 그럼 다른 유저가 이 유저의 데이터를 검증하기 위해서는 블록체인에서 퍼블릭 키를 가져와서 이 유저가 프라이빗 키로 사인한 데이터를 검증해 볼 수 있다.
DID Auth란,
DID의 소유권 인정이다. 유저와 애플리케이션이 있을 때 서로가 각자의 프라이빗 키를 생성하고 각자의 DID와 DID Document를 만들어서 해당 퍼블릭 키를 블록체인에 저장한다. 그럼 서로의 사인한 데이터를 검증을 할 수 있다.
VC & VP
VC(Verifiable Credential) : 검증 가능한 자격 증명, issuer가 user에게 발급해주는 데이터이다. 학점 정보 같은 것. 구성요소는 다음과 같다.
- Credential metadata
- Claim : 유저의 데이터가 들어감
- Proof : issuer가 자신의 개인키로 서명한 검증 데이터
VP(Verifiable Presentation) : 검증 가능한 제공 id 데이터 집합. 여러 발급자에게 학점 정보 같은 걸 제공 받는데, 이 중에서 필요한 데이터만 추려서 VP로 만들 수 있다.
Hyperledger Indy 란
블록체인에서 identity를 지원하는 프로젝트. 블록체인을 기반으로 하는 디지털 ID를 제공하기 위한 도구, 라이브러리를 제공한다.
- 블록체인 기반 아이덴티티 프레임워크
하이퍼레저 인디는 인증에 특화된 프레임워크이다. 블록체인에 탈중앙화된 아이덴티티 시스템을 만드는 데에 제한이 있었다. 이를 보완한 하이퍼레저 인디는 아이덴티티 인증에 특화된 프레임워크다.
- 하이퍼레저 인디와 DID
DID(Decentralized Identifier)를 중심으로 설계한 아이덴티티를 위한 최초의 블록체인 기술이 하이퍼레저 인디이다. DID란, 탈중앙 방식의 디지털 ID를 가능하게 하는 새로운 식별자이다. DID는 분산된 환경에서 약속된 암호화 체계를 통해서만 확인할 수 있어 신뢰할 수 있다.(??)
- 하이퍼레저에서 개인 데이터 전달
여기에서 개인 데이터는 레저에 저장되지 않는다. 모든 개인 데이터는 암호화 기술을 사용하여 에이전트 간에 P2P로 전송한다. 레저에는 암호화된 데이터를 저장하는 것이 아니라, 해시값을 저장하여 위,변조를 확인하거나 데이터를 검증할 때 사용한다.
- ZKP, Zero-Knowledge Proof
아이덴티티에 대해 필요한 정보만을 증명하기 위해 ZKP 기반의 증명을 사용한다. ZKP란, 정보에 대해 자신이 가지고 있는 정보를 노출하지 않고 그 정보를 알고 있다는 사실을 증명하여 검증하는 프로토콜이다.
반응형'블록체인' 카테고리의 다른 글
[블록체인] 패브릭 네트워크 세팅 (0) 2022.03.25 [블록체인] 하이퍼레저 패브릭으로 네트워크 생성하자 (0) 2022.03.24 [블록체인] 체인코드 동작 과정 (0) 2022.03.23 [블록체인] 하이퍼레저 패브릭 - 블록체인 (0) 2022.03.22 [블록체인] 블록체인의 수익 창출 원리 (0) 2022.03.19