• 대한전기학회
Mobile QR Code QR CODE : The Transactions of the Korean Institute of Electrical Engineers
  • COPE
  • kcse
  • 한국과학기술단체총연합회
  • 한국학술지인용색인
  • Scopus
  • crossref
  • orcid

  1. (Dept. of Computer Science Engineering, Kyonggi University, Korea.)



Blockchain, Decentralized Identity, Credential, Verification, Smart Contract

1. 서 론

디지털 매체는 고전 매체들보다 자료를 복제하기 쉬운 만큼 위변조가 발생하기 용이한 환경이다. 디지털 매체에서의 기록물은 전자 서명을 통해 저장되는 자료를 보완하는 방법이 필요하다. 전자 서명은 공개키 암호 방식의 기능 중 하나이며, 공개키 암호는 한 쌍의 개인키와 공개키로 이루어져 있다. 한 개인키로 서명된 데이터는 쌍으로 엮인 공개키를 사용하여 올바른 개인키로 서명하였는지 확인할 수 있다. 이와 같은 기술적 보완을 통해 디지털 형태의 전자 증명서는 신뢰성을 보장받고 디지털적 특성으로 공간적 제약에 종속되지 않는다.

전자 증명서는 기술적 안전성을 토대로 신뢰를 요구하는 영역에서 사용되고 있다. 마이크로소프트는 U-Prove(1)를 사용하여 다양한 디지털 자격(credential)을 생성하고 사용자가 필요에 따라 자신의 자격증을 전달할 수 있는 시스템을 제공한다. 사용자는 기기 내에 정보 단위로 저장된 개인키를 통해 자신이 적합하게 소유한 소유자임을 증명할 수 있으며, 마이크로소프트의 공개키를 이용하여 올바른 정보가 포함되었음을 증명할 수 있다.

상기한 증명서 검증 과정은 전자 증명서의 위조 방지의 판별을 위해 사전에 증명서 발행자의 공개키를 확보하는 과정이 필요하다. 또한, 검증 과정에서 소유자가 자신이 전달하고자 하는 정보를 소지해야 하므로 portability를 지원할 수 없고 모든 데이터가 근본적으로 발행자에게 있으므로 발행자가 사라지면 이를 증명하기 어렵다(2).

U-Prove와 같은 federated model에서 발전하여 Self-Sovereign(3) 형태의 증명 모델이 제안되었다. 졸업증, 자격증 등을 사용자가 관리하고 직접 검증자에게 제공할 수 있도록 지원한다. 사용자의 데이터는 블록체인에 기록되며 접근 권한을 사용자의 클라이언트에 기록하여 사용하므로 간소화된 형태로 증서들을 관리할 수 있고 접근 가능한 이는 누구나 데이터를 확인할 수 있다.

블록체인(4)을 활용한 데이터의 높은 접근성과 투명성, 지속성은 데이터가 가지는 문제를 해결하였다. 그러나 현재 블록체인을 이용한 증명 기록은 사용자 정보 공개의 최소화를 손쉽게 수행하기 위해 정보가 아닌 proof 데이터만 등록하기 때문에 블록체인에 기록된 데이터만으로는 무엇을 증명할 수 있는지 알 수 없다. 또한, 기록되는 값이 외부에서 제공되는 데이터와 매칭되기 위한 값이기 때문에, 데이터 형식 표준의 부재로 데이터 제공자 참여 수만큼 다양한 형태의 데이터가 발생한다. 이는 동일 클라이언트에서 사용자 데이터를 관리할 때부터 검증자가 활용할 때까지 데이터 형태에 따라 맞춰야 하는 운용 문제가 발생한다.

본 논문에서는 상단에 기술된 문제들을 해결하고 상호운용성을 보장하는 증명서 검증/관리 시스템을 제안한다. 제안 시스템은 블록체인에서 표준으로 진행되고 있는 DID(Decentralized Identity, 분산 신원)의 형태를 차용하여 이전 증명서들을 아우를 수 있을 뿐만 아니라 분산 신원 기술에서 적용 가능한 전자 증명서를 생성, 관리, 검증할 수 있다.

본 논문의 2장에서는 제안하고자 하는 시스템과 기술적으로 연관된 요소들을 소개하며 3장에서 제안하고자 하는 시스템의 구성 요소와 프로토콜을 소개한다. 4장은 시스템의 실제 동작과 환경을 설명하며, 5장에서 제안하는 시스템과 현존하는 시스템들을 비교하고 제안 시스템에 대하여 분석한다.

2. 관련 연구

2.1 Blockchain

블록체인(4)은 트랜잭션 단위의 데이터들을 수집하여 만든 블록을 연쇄적으로 연결하여 체인 형태로 데이터를 관리하는 전자 장부이다. 각 블록은 이전 블록의 해시를 블록 내 헤더 영역에 포함한 형태를 보인다. 이는 외부자가 블록에 포함된 트랜잭션을 임의로 수정할 경우, 수정된 트랜잭션이 포함된 블록의 이전 블록들도 수정하도록 강요하여 위변조를 막는다.

데이터의 성격에 따라, 블록체인에 트랜잭션을 기록하고 읽는 것은 제한될 수 있다. 참여자의 기여가 자유로운 블록체인을 퍼블릭 블록체인이라 하며 허가를 요구하는 것을 프라이빗 블록체인이라 한다.

블록체인은 신뢰성과 무결성을 보장하는 저장소의 역할 뿐만 아니라 애플리케이션 플랫폼(5)으로도 사용된다. 블록체인 플랫폼 위에서 동작하는 애플리케이션은 기본적으로 플랫폼 내 다른 애플리케이션, 그리고 트랜잭션들과 상호작용될 수 있으며 오라클을 통해 외부 데이터를 불러올 수 있다.

2.2 IPFS(InterPlanetary File System)

IPFS(6)는 분산 파일 시스템으로 데이터를 특정 하드디스크 또는 서버에 저장하지 않고 나눠가지며, 제 3자가 데이터를 요청할 때 여러 노드로부터 조각들을 합치는 방식으로 동작한다. 특정 서버에서 모든 데이터를 요청하지 않으므로 IPFS를 통한 데이터 요청은 기존보다 낮은 대역폭을 사용하며, 자료를 요청한 노드는 동일한 자료를 요청받을 때 자료 제공에 참여하게 되므로 사용자 요청이 많은 자료일수록 자료 손실 발생이 적어진다. 데이터와 저장된 노드들은 분산 해시 테이블로 관리되며 데이터는 개별적으로 부여되는 컨텐츠 주소를 통해 접근된다. 데이터의 변경이 발생할 경우 형상 관리처럼 이전 데이터와 최신 데이터로 나뉘어 개별적으로 기록된다.

2.3 분산 신원

Decentralized Identity(DID)(7)는 중앙 정부, 또는 기관에서 발급되는 신원, 또는 자격들을 소유자가 Attribute처럼 관리하고 인증이 요구될 때 필요한 정보만 제공할 수 있도록 하는 분산 신원 기술이다. DID는 자격을 발행하는 issuer, 발행한 자격을 소유하고 관리하는 holder, 자격을 제출받고 이를 검증할 수 있는 verifier로 구분되며 데이터의 무결성과 공개성을 보장하는 verifiable data registry로 구성된다. 블록체인의 tamper-proof, interoperability한 성질을 이용하여 블록체인 환경을 verifiable data registry의 기반으로 하는 DID가 다수 연구되었으며, U-Port(8), Sovrin(9) 와 같이 웹 표준을 개발하는 국제 조직인 W3C(World Wide Web Consortium)의 DID format protocol(10)을 따르는 DID가 존재한다.

제안 시스템은 정보의 분산과 상호운용성, 그리고 사람을 고려한 데이터 가독성에 목적을 두었으며 이는 기존 시스템과 일부 유사성, 그리고 차별성을 갖는다.

U-Prove는 다양한 전자 증명서를 생성하고 이를 타인이 요청할 경우 자격증 형태로 제공한다. 이는 사용자가 검증자에게 정보 없이 간접적으로, 또는 ID토큰을 통해 필요 정보만을 제공할 수 있고 서명 과정으로 자신의 개인정보 사용을 관리할 수 있다. 개인 정보는 개인키와 함께 기기에서 관리되며 정보 제공을 위해 외부 서비스와 연결되기 위해 기술 제공자인 Microsoft를 거치게 된다.

Stampery(11)는 비트코인에서 제공하는 80Byte의 여유 공간을 이용하여 개인정보를 증명하는 일종의 스탬프를 기록한다. 스탬프는 구체적인 데이터를 갖지 않은 Proof의 성격을 지니며 비트코인이 갖는 영속성과 무결성이 스탬프에 포함될 파일, 또는 정보가 변하지 않음을 보장한다. 정보에 대한 타임스탬프 개념에 가깝기 때문에 원본 데이터가 필요하다.

CredenceLedger(12)는 퍼미션 블록체인 환경의 신원 증명 서비스로 동일 네트워크 안에 참여된 서비스라면 SSO처럼 자신을 증명하거나 활동을 퍼미션 블록체인에 서명하고 기록할 수 있다. CredenceLedger는 교육과 관련된 증명 분야에서 사용되며 권한형 블록체인의 특성상 증명서 생성이 권한자에 한정되고 네트워크 참여 역시 권한을 요구하기 때문에 중앙형 서비스에 가까운 형태를 갖는다.

자기주권형 콘텐츠 관리 시스템(13)은 콘텐츠 소유자가 외부 서비스에게 자신의 콘텐츠 사용을 허가하고 관리할 수 있도록 한 시스템으로 IPFS를 사용하여 콘텐츠를 저장하고 이를 컨트랙트로 관리한다. 해당 서비스는 공개 콘텐츠를 대상으로 하므로 민감한 개인정보를 다루기 어렵고 작성한 데이터는 모두 공개된 형태이기 때문에 도용에 취약하다.

3. 제안 시스템

제안 시스템은 사용자가 증명서를 소유하지 않더라도 직접적으로 관리할 수 있고 사용자에 의해 제출된 증명서를 검증자가 스스로 검증하고 처리할 수 있는 기능을 제공한다. 또한, 사용자 자신에 대한 정보를 서명(proof) 대신 복합적 형태의 해시로 저장하여 사용 공간을 절약하고 실제 증명 정보와의 연결 고리를 별도로 관리하여 프라이버시를 향상하였다.

3.1 시스템 구조

제안하는 시스템은 누구나 자유롭게 자격증(credential)을 발행하고 이를 신뢰 가능한 블록체인에 배포할 수 있으며, 자격자(credential holder)는 기관의 부재와 관계없이 자신의 자격증을 관리할 수 있도록 한다. 이를 위한 방법으로 DID에서의 데이터 주권과 탈중앙화된 참여 방식을 블록체인을 통해 적용하였으며 그림 1의 구조와 같다.

그림. 1. 시스템 구조와 시나리오 흐름

Fig. 1. Solution structure and flow

../../Resources/kiee/KIEE.2022.71.1.210/fig1.png

Issuer는 소유자에게 온전한 형태의 자격증을 발급하고 블록체인상에서의 자격증 발행인(Issuer contract)에 텍스트 형태로 기록한다. Holder는 임의의 문자열을 기반으로 생성한 credential key를 credential identifier와 함께 공용 Holder contract에 기록한다. 생성한 key를 통해 소유자는 verifier에게 제공하고자 하는 정보들을 선택할 수 있으며 제공하는 증서의 key와 발급된 기관의 contract address를 함께 전달하면 검증자가 확인할 수 있다.

3.2 증명 규격

그림. 2. W3C에서 제안하는 credential과 context

Fig. 2. W3C recommended credential and context

../../Resources/kiee/KIEE.2022.71.1.210/fig2.png

시스템에서 참여자들이 주고받는 데이터의 형식으로 W3 DID가 표준화를 진행중인 context format(10)을 이용한다. Con- text format은 그림 2와 같이 JSON 형태로 구성되어 있으며 다양한 형태의 데이터들을 표현하는 방법을 사전에 정의하고 이를 누구나 시각적으로 확인할 수 있도록 만들어놓은 규격이다.

그림. 3. Contexts 컨트랙트 형태

Fig. 3. Contexts Contract format

../../Resources/kiee/KIEE.2022.71.1.210/fig3.png

제안하는 시스템에서는 이더리움 블록체인에 각 발급 기관들이 관련된 내용들을 합의하여 context화 시킬 수 있으며 그림 3과 같이 단일 contract에서 관리한다. Context는 투표를 통해 관리되어 부적절한 context는 제거된다.

3.3 시스템 요소

3.3.1 발행인(Issuer)

Issuer는 holder가 필요한 자격 정보들을 발급해주고 발급된 전자 문서가 올바른 것임을 자신의 전자 서명이 포함한 형태로 이더리움 블록체인에 그림 4의 Issue와 같이 등록한다.

그림. 4. IssuerHub과 목록으로 등록된 Issuer 컨트랙드들

Fig. 4. IssuerHub and included Issuer contracts

../../Resources/kiee/KIEE.2022.71.1.210/fig4.png

Issuer는 IssuerHub에 등록되어야 신뢰할 수 있는 발행인 자격을 얻을 수 있으며 등록하기 위해서는 발행인의 이더리움 주소와 컨트랙트 주소, 그리고 홈페이지 URL이 필요하다.

신뢰할 수 있는 발행인은 계층적 구조로 되어 있으며 도메인 규칙을 따른다. 발행인이 계층 구조에 포함되기 위해서는 다수의 검증된 발행인들의 동의를 구해야 한다. 검증되고자 하는 발행인은 포함되고자 하는 계층의 발행인들에게 추천을 받거나 일정량 이상의 해당 계층 발행인들에게 찬성을 받을 경우 스스로 포함될 수 있다. 새로운 발행인에 대한 검증은 발행인의 이더리움 주소와 발행인이 등록한 URL에서 응답받은 이더리움 주소와의 일치 여부로 판단한다.

그림. 5. 신뢰할 수 있는 Issuer들의 계층 구조

Fig. 5. Hierarchical structure of trustworthy issuers

../../Resources/kiee/KIEE.2022.71.1.210/fig5.png

그림 5는 계층적으로 구성된 Issuer를 표현한 예이다. 발행인의 성격에 따라 최초로 구분되며 한 발행인 그룹 안에서 다양한 기관들이 자격 정보를 발행할 수 있다면 대표 발행 기관 내에 존재하는 Issuer들이 속하는 새로운 계층(level)을 갖는다.

IssuerHub의 발행인 검증이 수행되기 위해 지정되는 최초의 신뢰할 수 있는 발행인은 IssuerHub contract의 배포자로 지정된다. 신뢰할 수 있는 issuer들은 도메인 형태의 계층 구조로 구성되어 동일한 계층의 다른 발행인의 평판을 감소시킬 수 있고 자신의 하위 그룹을 생성하고 수정할 수 있다. 감소된 평판은 일정량 누적될 경우 검증된 발행인의 자격이 취소된다. 최초로 등록된 신뢰할 수 있는 발행인 역할은 맡은 최상위 발행인은 검증인이 충분하다고 판단될 경우 스스로 자격을 말소한다. 충분한 검증인은 단순한 숫자보다 올바르게 역할을 수행할 수 있을 정도의 신뢰성, 또는 공신력을 요구하며 최선의 경우 시와 정부 부처, 단체 및 대기업이 최상단 참여자로 30개의 검증인이 참여한다면 충분하다고 판단할 수 있다. 상위 수준의 신뢰가능한 검증자가 없다면 분야별로 장기간 동안 적극적인 거버넌스 참여를 수행할 때 검증인이 최상위 검증인으로 재편성될 것이며 재편성은 거버넌스의 활성도와 문제 발생 빈도에 따라 가변적으로 이뤄진다.

3.3.2 소유자(Holder)

Holder는 전달받은 증서를 credential key – identifier 형태로 이더리움 블록체인에 기록하여 verifier가 원활하게 전달받고자 하는 identifier를 사용할 수 있도록 한다.

Credential key는 사용자가 생성한 임의의 문자열의 연속된 해시이며 credential key는 contract 외부에서 생성되어야 한다. Identifier와 매핑된 key는 verifier가 검증한 후에 전달받은 자격 정보를 다시 사용하는 것을 막기 위해 holder가 임의로 key를 바꿀 수 있다.

Holder는 그림 6의 Record에 선택적으로 credential에 대한 메모를 할 수 있다. 메모는 사용자가 해당 credential을 인지할 수 있을 수준으로 작성한다. Record는 구체적인 데이터가 등록된 issuer contract의 주소를 숨김으로써 추적할 수 없도록 한다.

그림. 6. HolderHub contract

Fig. 6. HolderHub contract

../../Resources/kiee/KIEE.2022.71.1.210/fig6.png

3.3.3 검증인(Verifier)

Verifier는 이더리움 블록체인과 holder로부터 전달받은 cre- dential key를 사용하여 holder가 제시한 증서들을 검증한다. 검증 과정은 이더리움 블록체인상에서 이뤄지지 않으며 web3를 통해 구현된 라이브러리들을 통해 확인하거나 Issuer가 데이터 검증에 대한 서비스를 제공하는 경우 관련 기능을 통해 확인할 수 있다. 검증 과정을 위해 verifier가 이더리움 내 가상화폐를 보유하거나 사용할 필요가 없으며 검증 정보 역시 별도로 저장되거나 시각적으로 확인될 필요 없이 자동으로 처리된다. Verifier는 필요할 경우 이더리움에 기록된 증서와 함께 IPFS에 등록된 문서를 확인할 수 있다.

Verifier는 발행인이 가지는 대표 URL과 issuer group 정보를 통해 유사한 발행인으로 혼동하는 문제를 막을 수 있다.

3.4 시스템 흐름

3.4.1 사용자 인증

Issuer와 holder는 Issuance Step에서 사전에 알고 있음을 전제로 진행되므로 그림 7과 같이 handshake step을 통해 issuer가 holder의 이더리움 주소를 인지해야 한다. 그러므로 사전에 안전한 방법으로 holder의 이더리움 주소를 알고 있다면 본 step은 생략 가능하다.

Holder가 issuer의 대회 참여 또는 입사를 위해 제출한 이더리움 주소는 메타 마스크를 통한 전자 서명을 통해 Holder가 해당 이더리움 주소를 소유하고 있음을 증명한다.

최초 연결에서 issuer는 holder의 이더리움 주소를 요청한다. Issuer는 holder의 이더리움 주소와 임의의 nonce를 사상한 후 이를 자신의 메모리에서 일정 시간 동안 관리하며 holder에게 nonce를 전달한다. Holder는 nonce를 자신의 개인 키로 전자서명한 후 Issuer에게 이더리움 주소와 함께 전달한다. 전자서명은 ECRecover를 통해 누가 서명하였는지 확인할 수 있으며, Web3는 ECrecover 과정을 통해서 서명자의 이더리움 주소를 생성할 수 있다. 전자서명과 같이 전달된 이더리움 주소가 자신이 메모리상에서 사상한 것과 동일하면 올바르게 인증된 것으로 판단한다.

그림. 7. Handshake step의 진행 순서

Fig. 7. Process of handshake step

../../Resources/kiee/KIEE.2022.71.1.210/fig7.png

3.4.2 증명서 발행

Issuer는 그림 8과 같이 웹사이트, 또는 QR코드 등을 통해 holder에게 credential을 전달하고 이더리움 블록체인에 credential을 기록하여 검증 과정에서 고정된 데이터 제공자가 필요하지 않도록 한다. Holder는 issuer에게 전달받은 credential에서 identifier와 자신이 임의로 생성한 key를 한 쌍으로 하여 블록체인에 기록한다. Key는 검증자에게 전달하고자 하는 요소들을 표현하는 데 쓰인다.

그림. 8. Issuance step의 진행 순서

Fig. 8. process of issuance step

../../Resources/kiee/KIEE.2022.71.1.210/fig8.png

Issuer는 임의의 허가되지 않은 사용자가 credential의 holder를 확인하는 것을 막기 위해 그림 9와 같이 credential과 holder 값을 이용하여 생성한 xholder 값을 사용한다. credential을 Context에 맞게 JSON 형태로 생성한 후 Handshake step에서 확보한 Holder의 이더리움 주소를 JSON 끝에 Holder의 이더리움 주소를 추가한 후 해싱한다.

해시 값은 Holder의 이더리움 주소와 XOR 연산하며 이를 통해 생성된 값을 xholder attribute로 취급하여 credential에 포함한다. 포함된 xholder 값은 Holder가 발급 기관을 기억하지 못할 경우 자신의 credential들을 탐색할 때 사용될 수 있으며 Holder와 Issuer를 제외한 외부인은 해싱되기 전의 JSON값 뒤에 포함된 값이 무엇인지 알 수 없으므로 증서의 소유자를 유추하거나 임의의 대상과 연관 관계를 생성할 수 없다.

Holder는 발행인에게 credential을 발급받으며 xholder 값을 credential identifier로 삼는다. Holder는 Issuer contract address와 credential identifier를 이용하여 그림 9의 과정을 역으로 수행하는 방법으로 이더리움 블록체인에서 자신의 Credential을 찾아낼 수 있다.

Holder는 자신이 발급받은 credential identifier를 임의로 생성한 문자열을 반복하여 해싱한 값과 identifier를 사상한다.

그림. 9. 익명성과 검증 가능성을 보장하는 ID 생성

Fig. 9. verifiable ID generation method to ensure privacy

../../Resources/kiee/KIEE.2022.71.1.210/fig9.png

3.4.3 증명서 검증

Verifier는 holder로부터 다양한 credential identifier와 Issuer contract가 연결된 key set을 받는다. 검증자는 그림 10과 같이 각각 사상된 contract에서 identifier를 사용하고 해싱을 통해 나온 결과 값으로 올바른 holder가 제시한 값인지 확인한다.

그림. 10. Verification step의 진행 순서

Fig. 10. Process of verification step

../../Resources/kiee/KIEE.2022.71.1.210/fig10.png

Issuer contract에서 검색된 credential과 Holder의 이더리움 주소를 통해 소유 여부를 확인할 수 있다. 검증은 그림 X의 과정을 역으로 수행하여 검증할 수 있다. Issuer의 issuer 계층 그룹과 신뢰 가능 여부를 확인하여 credential이 적합하게 소유했더라도 credential이 내포한 내용을 신뢰할 수 있는지 가늠할 수 있다.

Verifier는 filePath 값을 통해 IPFS 또는 Issuer가 제공하는 시스템에서 시각적으로 문서화 된 credential을 확인할 수 있다.

4. 구 현

제안 시스템은 표 1과 같이 구분된 참여자들로 구성된다.

표 1. 제안 시스템의 참여자 구성

Table 1. Components in proposed system

Component

Issuer

Holder

Verifier

Endpoint

Server

Metamask

Server

Uploaded Data

Credential

Credential ID

-

Handled Data

-

Credentials

Holder's Credential IDs in Resume

Accessible Range

Issued Credentials

My Credentials

Credentials by ID

참여 가능한 컴포넌트는 세 개로 구성되어 있으며 이들은 서로 다른 엔드포인트와 업로드하는 데이터, 관리하게 되는 데이터, 그리고 전체 Credential 중에서 접근가능한 범위를 갖는다. 실험은 각 컴포넌트를 개별 노드로 구성하여 세 개의 노드를 사용하였으며 Kovan 네트워크에서 테스트 되었다.

그림. 11. UUID를 전자서명하는 과정

Fig. 11. Signing UUID on the Metamask

../../Resources/kiee/KIEE.2022.71.1.210/fig11.png

Web3와 Issuer가 holder의 ethereum address를 사전에 알아야 하므로 holder는 issuer가 제공하는 웹서비스를 통해 ethereum address를 전달한다. 그림 11에서 issuer가 전달한 uuid를 전자서명한 값을 통해 올바른 holder인지 확인할 수 있다. 웹 클라이언트는 Metamask를 통해 전자서명을 수행한다.

holder는 issuer가 제공하는 credential viewer 페이지를 통해 그림 12와 같이 해당 issuer가 발행한 자신의 credential들을 확인할 수 있다.

그림. 12. Holder가 Issuer에게 발급받은 증명들

Fig. 12. credentials issued by the issuer

../../Resources/kiee/KIEE.2022.71.1.210/fig12.png

그림. 13. Holder가 구성한 Credential들

Fig. 13. Credential selected by holder

../../Resources/kiee/KIEE.2022.71.1.210/fig13.png

그림. 14. 블록체인에 기록된 Credential

Fig. 14. Credential recorded on blockchain

../../Resources/kiee/KIEE.2022.71.1.210/fig14.png

Holder는 선택적으로 자신이 제공하고자 하는 Credential을 제공할 수 있다. 그림 13과 같이 Verifier가 제공하는 증명 제출 기능을 사용하거나 제 3자가 생성한 관련 도구들을 통해 전달할 Credential을 선택할 수 있다.

Verifier는 holder가 전달하는 xholder 값과 issuer contract address 쌍을 통해 체인에서 데이터를 조회하고 holder의 주소를 키로 XOR 연산하여 해당 Credential이 맞는지 확인할 수 있으며 블록체인상에서는 그림 14와 같은 형태를 갖는다.

5. 분석 및 비교

제안하는 시스템은 전자 증명 분야에서 사용자의 데이터 주권을 강화하고 DID에서 진행중인 표준화 형식을 근거로 다양한 데이터를 포괄할 수 있는 데이터 증명 포맷을 제안한다.

5.1 시스템 분석

모든 Holder의 증명 데이터는 이더리움 블록체인을 분석하는 것으로 사용자 정보를 추측할 수 없도록 구성되었다.

Holder의 정보를 알기 위해서는 개별적으로 발급된 credential들의 Issuer contract를 알고 있어야 하며 이 정보는 블록체인에 기록되어 있지 않다. 그러나 holder의 address를 XOR하는 방식으로 생성한 xholder가 각 credential에 포함되어 있으므로 holder는 특별한 요소 없이 자신의 모든 credential을 찾아낼 수 있다.

Issuer가 속한 계층을 통해서 해당 issuer의 신뢰도를 확인할 수 있다. Trustworthy issuer는 계층적인 형태의 issuer group에 포함되어 있으므로 사용자는 issuer의 group 정보를 통해 별도의 확인 절차 없이 신뢰할 수 있다.

Issuer group은 verifier와 연동된 홈페이지가 제공하는 이더리움 주소를 통해 신뢰하고자 하는 대상을 검증한다. 검증된 대상은 반대로 인해 신뢰도를 상실할 수 있으며 누적될 경우 group에서 제외될 수 있다. 신뢰할 수 있는 verifier라 하더라도 계층 권한 이상의 작업은 처리할 수 없다.

credential은 context에 정의된 유형에 따라 credential 값이 블록체인에 기록되며 credential에 관련된 문서 이미지가 포함될 수 있다.

5.2 시스템 비교

제안하는 시스템과 유사한 목적, 또는 서비스를 제공하고자 하는 시스템들을 비교한다.

U-Prove는 credential을 생성하고 소유자에게 제공하는 Issuance Protocol과 제공받은 credential을 요구하는 검증자에게 전달하는 Presentation Protocol로 나뉜다. Microsoft로부터 적합하다고 인정되는 attribute는 Microsoft의 이름으로 서명되어 소유자에게 제공된다. 소유자는 이를 Device 내에 존재하는 개별 개인 키로 서명한다.

Stampery(11)는 비트코인 블록체인에서 증명의 무결성과 지속성, 그리고 Self-Sovereign을 제공하는 서비스이다. 비트코인에서 사용 가능한 80 Byte의 공간을 사용하여 제공되며 크기의 문제로 인해 증명에 관련된 인간 친화적인 데이터가 아닌 holder와 증명을 해싱한 값만 기록된다. 실질적인 증명에 관련된 부분은 이메일 등의 서비스를 통해 제공되며 issuer가 holder의 bitcoin address를 획득하는 과정도 이메일 내 포함된 invitation을 통해 얻는다. Stampery는 버전에 따라 이더리움 블록체인에 proof를 기록하는 방법도 제공하며 proof는 W3ID의 chainpoint 형식을 따른다.

CredenceLedger(11)는 허가형 이더리움 블록체인을 기반으로 구축되었으며 학업에 관련된 자격증, 수료증의 증명 제공을 목표로 한다. 사용자는 CredenceLedger Client에서 Verifier에게 블록체인에 기록된 Credential에 접근할 수 있도록 할 수 있으며 Credential의 주소를 받은 검증자는 이를 확인할 수 있도록 구성된다. 사용 가능한 구성원이 한 기관 내의 한정된 인원이기 때문에 광범위한 영역에서 사용되기 위해서는 새로운 CredenceLedger를 형성해야 한다.

표 2. 기존 연구와 제안 연구의 비교

Table 2. Comparison between previous solutions and proposed solution

Solution

Decentralization

Inter-operability

Human Readable

U-Prove

None

No

Yes

Stampery

Bitcoin & Ethereum

Yes

No

Credence Ledger

Permission based Ethereum

No

paper image

SS Content Management

Ethereum

Yes

No

Proposed Solution

Ethereum

Yes

Yes

6. 결 론

제안 시스템은 중앙화된 증명서를 사용자가 직접 관리할 수 있도록 하여 데이터 주권을 제공한다. 또한 발급된 증명서를 특정 조건을 만족하는 제 3자가 발행인과 증명서 정보를 스스로 확인할 수 있도록 하여 공개 블록체인상에서의 개인 정보 노출을 최소화하고 검증 과정을 간소화한다.

제안 시스템은 기업 수준부터 민간까지 폭넓게 쓰일 수 있다. 수많은 지원자들이 증명하는 문서들은 검증하거나 곧바로 전산화되기 어렵다. 제안 시스템을 활용한 증명서는 수취, 검증, 그리고 전산화를 자동화 형태로 처리할 수 있다. 민간에서는 프리랜서의 이력 및 자격증 관리, 학사 정보, 검사 이력 등에 사용되어 간단한 형태로 주고 받거나 서비스에 접목할 수 있다.

제안 시스템의 유용성은 특정 대상에게 한정되지 않으며 성장가능성이 큰 DApp 생태계에서 KYC, Audit Report 등에 활용된다면 더 큰 가치를 지닐 수 있을 것으로 생각된다.

Acknowledgements

This work was supported by Kyonggi University Research Grant 2019.

References

1 
P. Christian, Z. Greg, Dec 2013, U-Prove Cryptographic Specifi- cation, Available online: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/U-Prove20Cryptographic20Specification20V1.1.pdf.Google Search
2 
Z. Khattak, 2010, A Study on Threat Model for Federated Identities in Federated Identity Management System, Inter- national Symposium on Information TechnologyDOI
3 
Sovrin-Protocol-and-Token-White-Paper Available online: , accessed on 01 March 2021, http://sovrin.org/wp-content/uploads/2018/03/Sovrin-Protocol-and-Token-White-Paper.pdfGoogle Search
4 
A. T. Aram, A. Sargolzaei, Aug 2017, Blockchain technology innovations, 2017 IEEE Technology and Engineering Manage- ment Conference, pp. 8-10DOI
5 
F. N. Najm, Dec 1994, A Survey of Power Estimation Techniques in VLSI Circuits, IEEE Trans. on VLSI Systems, pp. 446-455DOI
6 
Z. Zheng, S. Xie, June 2017, An Overview of Blockchain Tech- nology: Architecture, Consensus, and Future Trends, 2017 IEEE International Congress on Big Data, pp. 25-30DOI
7 
J. Benet, accessed on 01 March 2021, IPFS-Content Addressed, Versioned, P2P File System(Draft 3), Available online: https://ipfs.io/ipfs/QmR-7GSQM93Cx5eAg6a6yRzNde1FQv7uL6X1o4k7zrJa3LX/ipfs.draft3.pdfGoogle Search
8 
T. Hardjono, December 2019, Federated Authorization over Access to Per- sonal Data for Decentralized Identity Management, IEEE Communications Standards Magazine, Vol. 3, No. 4, pp. 32-38DOI
9 
uPort: A Platform for Self-Sovereign Identity. Available online:, accessed on 01 March 2021, https://blockchainlab.com/pdf/uPort_whitepapaer_DRAFT-20161020.pdfGoogle Search
10 
Sovrin-Protocol-and-Token-White-Paper Available online: , accessed on 01 March 2021, http://sovrin.org/wp-content/uploads/2018/03/Sovrin-Protocol-and-Token-White-Paper.pdfGoogle Search
11 
“DID Specification Registries”, Available online: , accessed on 01 March 2021, https://www.w3.org/TR/did-spec-registries/Google Search
12 
C. Adan, G. Luis, , Stampery Blockchain Timestamping Architecture (BTA), Available online: https://s3.amazonaws.com/stampery-cdn/docs/Stampery-BTA-v6.whitepaper.pdfGoogle Search
13 
R. Arenas, P. Fernaandez, August 2018, CredenceLedger: A Permis- sioned Blockchain for Verifiable Academic Credentials, 2018 IEEE International Conference on Engineering Tech- nology and Innovation, pp. 1-6DOI
14 
S. Minsung, K. Heeyoul, May 2021, A Self Sovereign Contents Management System based on Blockchain, 2021 The tran- sactions of The Korean Institute of Electrical Engineers, pp. 784-790Google Search

저자소개

홍성호 (Seongho Hong)
../../Resources/kiee/KIEE.2022.71.1.210/au1.png

He received his B.S. degree in Computer Science from Kyonggi University in 2019.

His major research interests include blockchain and information security.

김희열 (Heeyoul Kim)
../../Resources/kiee/KIEE.2022.71.1.210/au2.png

He received his B.S., M.S., and Ph.D. degree in Computer Science from KAIST in 2000, 2002, and 2007, respectively.

He worked at Samsung Electronics as a senior engineer from 2007 to 2009.

Since 2009 he has been a faculty member of Department of Computer Science at Kyonggi University.

His major research interests include cryptography, security and blockchain.