KR20200081101A - 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법 - Google Patents
개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법 Download PDFInfo
- Publication number
- KR20200081101A KR20200081101A KR1020180171237A KR20180171237A KR20200081101A KR 20200081101 A KR20200081101 A KR 20200081101A KR 1020180171237 A KR1020180171237 A KR 1020180171237A KR 20180171237 A KR20180171237 A KR 20180171237A KR 20200081101 A KR20200081101 A KR 20200081101A
- Authority
- KR
- South Korea
- Prior art keywords
- certificate
- blockchain
- personal information
- authentication
- transaction
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H04L2209/38—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/42—Anonymization, e.g. involving pseudonyms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
본 발명은 블록체인 플랫폼에서 트랜잭션에 포함된 개인정보를 보호하기 위한 서명 및 검증 기술로서, 제1증명서를 생성하는 인증모듈, 인증모듈에서 생성된 제1증명서를 이용하여 개인정보가 생략되며 영지식(Zero-Knowledge)이 적용된 제2증명서 및 제2증명서가 포함된 트랜잭션을 생성하는 노드, 노드에서 생성된 트랜잭션을 검증하는 검증모듈을 포함한다.
Description
본 발명은 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법에 관한 것으로, 더욱 상세하게는 블록체인 플랫폼에서 트랜잭션에 포함된 개인정보를 보호하기 위한 서명 및 검증 기술에 관한 것이다.
블록체인은 2009년 등장한 비트코인에서 실용화된 개념으로, P2P 네트워크상에서 공유 원장을 통해 해킹을 방지하면서 데이터를 저장하는 데이터베이스 기술이다.
이후, 이더리움이 기존의 디지털 명령어인 스마트 컨트랙트와 이것을 기반으로 서비스를 제공하는 DApp 개념을 제시하면서, 블록체인 기술은 플랫폼 영역으로 확장되기 시작하였다.
다수의 블록체인 플랫폼은 개인(Private) 정보와 같이 민감한 데이터를 안전하게 관리하기 위한 별도의 장치가 없다. 분산 원장의 기술 특성상 블록체인 상에 저장되는 트랜잭션의 경우, 네트워크 참여자에게 모두 공유된다. 따라서 블록체인 기술이 사물인터넷과 같은 환경에 적용되는 경우, 사물인터넷 기기의 개인 정보에 대한 익명성을 보장 받지 못한다.
기존의 사용자에 대한 인증 기법은 제3의 인증기관을 통한 인증 방법과, X.509 기반의 증명서 방법이 주로 이용되고 있다. 제3의 인증기관의 경우 검증에 필요한 속성을 명시적으로 정해두어야 하고, 시스템에 대한 병목현상을 유발한다는 단점이 있다. X.509 기반의 증명서의 경우 인증 과정에 인증장치(Certificate Authority)의 도움 없이 인증 과정을 수행하지만, 이후 다른 입증(Verifier) 요청에 따라 서명된 속성(Attributes)의 전체를 공개해야만 하는 문제가 있다.
본 발명은 상기와 같은 문제를 해결하기 위한 것으로, 본 발명의 목적은 블록체인 플랫폼에서 트랜잭션에 포함된 개인정보를 보호하기 위한 서명 및 검증 기술을 제공함에 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 개인정보의 익명성을 제공하는 블록체인 시스템은 제1증명서를 생성하는 인증모듈; 상기 인증모듈에서 생성된 제1증명서를 이용하여 개인정보가 생략되며 영지식(Zero-Knowledge)이 적용된 제2증명서 및 상기 제2증명서가 포함된 트랜잭션을 생성하는 노드; 및 상기 노드에서 생성된 트랜잭션을 검증하는 검증모듈을 포함하는 것을 특징으로 한다.
또한, 상기 인증모듈은 무작위 디지털 서명(Randomizable Digital Signature)을 이용하여 인증 공개 키 및 인증 비밀 키를 생성하고, BBS서명 프로토콜을 이용하여 상기 인증 비밀 키로 서명함으로써 상기 제1증명서를 생성하는 것을 특징으로 할 수 있다.
또한, 상기 노드는 BBS서명 프로토콜을 이용하여 영지식이 적용된 제2증명서를 생성하는 것을 특징으로 할 수 있다.
또한, 상기 트랜잭션을 감사용 공개 키 및 감사용 비밀 키를 이용하여 추적하는 감사모듈을 더 포함하는 것을 특징으로 할 수 있다.
또한, 폐기가 필요한 상기 제2증명서를 폐기하고, 상기 제2증명서의 폐기 사실을 노드에 전달하는 폐기모듈을 더 포함하는 것을 특징으로 할 수 있다.
한편, 상기와 같은 목적을 달성하기 위한 본 발명에 따른 블록체인에서 개인정보의 익명성을 제공하는 방법은 (A)인증모듈이 제1증명서를 생성하는 단계; (B)노드가 상기 제1증명서를 이용하여 개인정보가 생략되며 영지식(Zero-Knowledge)이 적용된 제2증명서 및 상기 제2증명서가 포함된 트랜잭션을 생성하는 단계; 및 (C)검증모듈이 상기 트랜잭션을 검증하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 (A) 단계는, 무작위 디지털 서명(Randomizable Digital Signature)을 이용하여 인증 공개 키 및 인증 비밀 키를 생성하는 단계; 및 상기 BBS서명 프로토콜을 이용하여 상기 인증 비밀 키로 서명함으로써 상기 제1증명서를 생성하는 단계를 포함하는 것을 특징으로 할 수 있다.
또한, 상기 (B) 단계는, 상기 제2증명서 생성 시 BBS서명 프로토콜을 이용하는 것을 특징으로 할 수 있다.
본 발명의 실시예에 의한 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법에 따르면,
첫째, 퍼미션 구조(Permissioned)의 블록체인 네트워크 상에 영지식(Zero-Knowledge) 기반 증명서를 이용하여 익명성을 제공하면 노드의 개인 정보를 보호할 수 있게 된다.
둘째, 증명서 생성, 발급, 서명 생성, 폐기 및 검증 프로토콜을 각 참여 노드에게 분할함으로 인증과정에서 발생되는 인증모듈의 시스템 병목현상이 해소되어 효율적인 네트워크 구성이 가능하게 된다.
도 1은 블록체인 블록의 구조를 나타낸 도면.
도 2는 하이퍼레져-패브릭(Hyperledger-Fabric)의 블록 구조를 나타낸 도면.
도 3은 본 발명의 실시예에 따른 개인정보의 익명성을 제공하는 블록체인 시스템의 구성도.
도 4는 인증모듈과 노드 간의 영지식 증명서 발급과 트랜잭션 생성 과정을 나타낸 도면.
도 5는 영지식 증명서를 이용하여 익명성을 제공하는 트랜잭션을 생성하는 과정을 보다 구체적으로 나타낸 도면.
도 6은 감사모듈이 트랜잭션을 추적하는 과정을 나타낸 도면.
도 7은 인증모듈, 폐기모듈, 노드가 증명서를 폐기하는 관계를 나타낸 도면.
도 8은 블록체인에 적용된 다른 실시예의 동작 프로토콜을 나타내는 순서도.
도 9는 본 발명의 실시예에 따른 블록체인에서 개인정보의 익명성을 제공하는 방법의 순서도.
도 10은 모든 속성이 공개되지 않는 증명서를 생성하는 소스코드(a) 및 생성된 증명서를 검증하는 소스코드(b)를 나타낸 도면.
도 11은 도 10(a)의 소스코드에서 생성된 증명서를 검증한 결과를 나타낸 도면.
도 12는 증명서의 생성과 검증에 소요되는 시간을 나타내는 그래프.
도 13은 속성 중 ProofOfAge만 공개하는 증명서를 생성하는 소스코드(a) 및 생성된 증명서를 검증한 결과를 나타낸 도면.
도 2는 하이퍼레져-패브릭(Hyperledger-Fabric)의 블록 구조를 나타낸 도면.
도 3은 본 발명의 실시예에 따른 개인정보의 익명성을 제공하는 블록체인 시스템의 구성도.
도 4는 인증모듈과 노드 간의 영지식 증명서 발급과 트랜잭션 생성 과정을 나타낸 도면.
도 5는 영지식 증명서를 이용하여 익명성을 제공하는 트랜잭션을 생성하는 과정을 보다 구체적으로 나타낸 도면.
도 6은 감사모듈이 트랜잭션을 추적하는 과정을 나타낸 도면.
도 7은 인증모듈, 폐기모듈, 노드가 증명서를 폐기하는 관계를 나타낸 도면.
도 8은 블록체인에 적용된 다른 실시예의 동작 프로토콜을 나타내는 순서도.
도 9는 본 발명의 실시예에 따른 블록체인에서 개인정보의 익명성을 제공하는 방법의 순서도.
도 10은 모든 속성이 공개되지 않는 증명서를 생성하는 소스코드(a) 및 생성된 증명서를 검증하는 소스코드(b)를 나타낸 도면.
도 11은 도 10(a)의 소스코드에서 생성된 증명서를 검증한 결과를 나타낸 도면.
도 12는 증명서의 생성과 검증에 소요되는 시간을 나타내는 그래프.
도 13은 속성 중 ProofOfAge만 공개하는 증명서를 생성하는 소스코드(a) 및 생성된 증명서를 검증한 결과를 나타낸 도면.
이하 첨부된 도면을 참조하여 본 발명에 따른 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법의 바람직한 실시예를 상세히 설명한다.
도 1을 참조하면, 블록체인의 블록은 최종 데이터를 제공하는 하나의 단위로, 헤더(Header)와 바디(Body)로 구성된다. 블록 중 유효성 검증 및 합의 알고리즘을 거쳐 허가된 블록만이 블록체인에 등록된다. 각 블록체인 플랫폼마다 정의된 데이터 구조는 상이하지만, 일반적으로 블록 헤더(Header)에는 이전 블록의 해쉬(Hash)값, MRH(Merkle Root Hash)값 등과 같이 블록에 대한 정보, 검증에 필요한 정보, 및 네트워크에 필요한 정보들을 담고 있다. 블록 바디(Body)는 트랜잭션이 담겨져 있다.
블록체인은 네트워크 참여자들이 트랜잭션이 담긴 블록을 P2P 방식으로 생성된 체인 형태의 분산 데이터 저장 환경에 저장하는 기술로, 블록에 대한 위변조가 불가능한 불멸성을 제공하는 데이터베이스 기술이다. 로직수준(Logic Level)의 스마트 컨트랙트와 애플리케이션 수준(Application Level)의 DApp 개념이 블록체인에 포함되면서 데이터베이스 기능에 더하여 서비스 개발, 배포, 관리가 가능한 플랫폼 영역의 기술로 발전하였다.
블록체인 구조는 퍼미션 구조(Permissioned)와, 비퍼미션 구조(Permissionless)로 구분될 수 있다.
퍼미션 구조는 공개(Public) 구조의 블록체인으로 누구나 자유롭게 네트워크에 참여할 수 있는 구조이다. 비검증 노드들이 트랜잭션을 생성, 검증, 합의 알고리즘에 참여해 블록체인에 데이터를 저장할 수 있는 완전 탈중앙화 구조이다. 블록체인 네트워크가 활성화되기 위해서는 자발적으로 네트워크의 합의 알고리즘에 참여하는 구조가 되어야 한다. 일반적으로 암호화폐와 같은 토큰(Token)을 제공하면서 네트워크 신뢰성을 위해 블록 생성 시간을 네트워크 자체에서 알고리즘상으로 유지하는 방식으로서 PoW(Proof of Work), PoS(Proof of Stake) 기반의 합의 알고리즘을 사용한다. 비트코인, 이더리움 등이 해당된다.
비퍼미션 구조는 컨소시엄(Consortium) 구조 또는 개인(Private) 구조의 블록체인으로, 제한적으로 검증된 노드만이 트랜잭션 유효성을 검증하고, 합의 알고리즘을 수행하는 구조이다. 컨소시엄 구조의 경우 검증된 노드들이 동등한 위치에서 합의 알고리즘을 수행한다. 개인(Private) 구조의 경우 하나의 집단(Enterprise)이 모든 것을 담당하는 완전 중앙집중식 구조이다. 개인(Private) 구조는 합의 알고리즘에 참여하는 노드의 수가 적고, 검증된 노드들만이 참여할 수 있기 때문에, 공개(Public) 구조보다 트랜잭션 처리 속도가 월등히 뛰어나다. 대표적으로는 R3 Corda, Hyperledger-Fabric 등이 있다.
합의 알고리즘은 블록체인에 트랜잭션 데이터를 저장하기 위해 공유 원장(Ledger)에 누가 블록에 대한 권한을 가질 것인지 합의하는 과정이다. 합의 알고리즘에 의해 선택된 피어(Peer)는 자신이 생성한 블록을 자신의 원장에 등록하고 다른 피어들에게 이를 전파한다. 새로운 블록을 전달받은 피어들은 블록에 대한 유효성 검증을 수행하고, 유효하다면 이를 원장에 반영한다. 대표적인 합의 알고리즘은 PoW(Proof of Work), PoS(Proof of Stake), DPoS(Delegated Proof of Stake), PBFT(Practical Byzantine Fault Tolerance) 등이 있다.
스마트 컨트랙트는 1994년 Nick Szabo가 제안한 개념으로, 디지털 명령어로 작성되어, 조건에 따라 계약 내용을 실행할 수 있다. 이는 조건에 따른 계약 결과가 명확하지만 디지털 명령어의 특성상 조작 가능하다는 한계점이 있었다. 하지만 블록체인과 융합되면서 스마트 컨트랙트 동작 결과가 블록체인에 반영되어 조작이 불가능하게 되면서 블록체인의 핵심 기술로 자리 잡았다. 스마트 컨트랙트는 조건에 따라 계약 내용을 수행하면서 튜링 완전성을 제공하고, 블록체인을 기반으로 프로세스를 수행할 수 있다는 점에서 블록체인 기반의 서비스를 제공하는 플랫폼의 로직 레이어(Logic Layer) 역할을 수행한다.
DApp은 블록체인 기반의 탈중앙화 애플리케이션이다. 서비스에 사용되는 자원이 블록체인 네트워크에 분산되어 저장되며, 블록체인에 등록되는 고신뢰 데이터의 경우, 한 번 저장되면 위변조가 불가능하다는 특징을 가지고 있다. DApp 서비스는 스마트 컨트랙트를 통해 블록체인에 대한 프로세스를 수행하며, 여러 개의 스마트 컨트랙트 기능을 조합하여 서비스를 제공한다. 애플리케이션의 가장 중요한 요소인 서비스 응답 시간의 경우 블록체인 네트워크의 트랜잭션 처리 속도에 영향을 받기 때문에, 필요한 애플리케이션의 용도에 따라 적합한 블록체인 네트워크 구조를 선택해야 한다.
DApp 서비스 개발을 위해서는 스마트 컨트랙트를 애플리케이션에서 호출하기 위한 인터페이스가 요구된다. 스마트 컨트랙트 개념을 포함하는 블록체인 플랫폼들은 연동 인터페이스를 지원하는 도구들을 지원한다.
하이퍼레져(Hyperledger)는 리눅스 재단(Linux Foundation)에서 지원하는 표준 블록체인 기술 구현을 목적으로 하는 프로젝트다. 그 중 Fabric은 기업용 블록체인 프레임워크로, 멤버쉽 서비스(Membership Service) 기반 퍼미션 구조의 블록체인 플랫폼이다. 체인코드(Chaincode)라고 불리는 go, java 언어 기반의 스마트 컨트랙트 작성이 가능하며, 네트워크에는 피어(Peer), 주문자(Orderer), MSP(Membership Service Provider) 등 여러 구성 요소들이 있다.
도 2를 참조하면, 블록은 헤더(Header), 데이터(Data), 메타데이터(Metadata)를 포함한다.
헤더(Header)는 총 3가지 변수를 가지고 있다. 블록의 색인(Index)을 저장하는 Number 변수, 이전 블록 헤더(Header)의 해쉬(Hash)값인 PreviousHash 변수, 데이터(트랜잭션들)에 대한 MRH(Merkle Root Hash)값인 DataHash 변수이다.
데이터(Data)는 단순히 트랜잭션들의 배열로 구성되며, 각각의 트랜잭션은 Type, Version, Timestamp, Channel ID, TxID, Epoch, Chaincode info, Creator Identity, Endorser Identity, Status, Read Set, Write Set, Key value 등으로 구성되어 있다.
메타데이터(Metadata)는 주문자 신원(Orderer Identity), 제작자 신원(Creator Identity), 및 각 트랜잭션에 대한 플래그(Flag) 정보로 구성되어 있다.
피어(Peer)는 블록체인 네트워크의 필수 요소로, 하이퍼레져-패브릭(Hyperledger-Fabric)에서 피어(Peer)의 역할에 따라 양도인(Endorser), 커미터(Committer)로 구분된다.
양도인(Endorser)은 커미터(Committer)를 포함하는 개념으로, 추가적으로 클라이언트의 요청으로부터 보증(Endorse) 기능을 수행한다. 유저(User, 노드)로부터 요청받은 체인코드(Chaincode)를 실행하고, 이에 대한 결과 상태(State)를 양도인(Endorser)의 개인 키로 서명하는 보증(endorse) 과정을 거친다. 이후 과정에 따른 결과인 보증서(endorsement)를 유저에게 반환하는 기능을 수행한다.
커미터(Committer)는 원장(Ledger)과 이벤트허브(Event-hub)를 가지고 있다. 원장(Ledger)은 블록체인과 로컬데이터베이스(Local Database)로 이루어진 공유 원장이며, 이벤트허브(Event-hub)는 커미터(Committer)로부터 기능을 요청하고, 응답을 받을 때 사용하는 인터페이스(Interface)이다. 클라이언트(Client)로부터 요청받은 쿼리(Query) 명령에 의해 원장(Ledger)의 콘텐츠를 클라이언트(Client)로 반환해주는 기능(read)과, 주문자(Orderer)로부터 전달받은 블록에 대해 유효성 검증을 수행한 후 원장(Ledger)에 저장하는 기능을 수행한다.
하이퍼레져-패브릭(Hyperledger-Fabric)에서 원장(Ledger)은 기존의 블록체인과 블록체인의 상태를 추적, 저장하는 State Database로 이루어져 있다. 기존의 블록체인과 동일하게, 위변조가 불가능한 불멸성을 제공하는 원장(Ledger)으로 트랜잭션과 네트워크에 대한 정보를 담고 있다. 상태 데이터베이스(State Database)는 키값(key-value) 기반의 페어(pair)로 구성된 LevelDB 기반의 데이터베이스로, 블록체인에 저장되는 최근 상태(State)를 기록하고 추적하는 기능을 가진다. 이는 원장의 현재 상태(State)를 알기 위해 전체 블록체인을 탐색하지 않도록 하여 블록체인 내에서 상태 정보 검색 시간을 줄인다.
주문자(Orderer)는 클라이언트(Client)로부터 보증서(endorsement)를 전달받고, 이를 블록체인에 저장하기 위한 기능을 수행한다. 먼저, 블록체인은 트랜잭션의 순서에 따라 다음 블록의 헤더(Header) 정보가 달라지기 때문에, 등록을 수행할 보증서(endorsement)의 순서를 정리(Ordering)한다. 이후, 블록체인에 저장하기 위해 블록의 형태로 변환하는 패키징(Packaging) 과정을 수행한다. 마지막으로 만들어진 블록을 해당되는 채널(Channel)의 원장(Ledger)에 반영하기 위해 원장(Ledger)를 가진 피어(Peer)들(양도인, 커미터)에게 생성된 블록을 전달하는 역할을 수행한다. 위 기능을 수행하는 주문자(Orderer)는 하이퍼레져-패브릭(Hyperledger-Fabric) 네트워크의 채널(Channel) 필수 요소로, 한 채널(Channel)에 여러 개의 주문자(Orderer)가 존재할 수 있으며, 이 때 주문자(Orderer)들은 합의 과정을 통해 블록에 대한 생성 권한을 결정한다.
MSP(Membership Service Provider)는 하이퍼레져-패브릭(Hyperledger-Fabric) 네트워크에서 접근 권한 제어를 수행하는 핵심 요소이다. 네트워크, 채널(Channel), 피어(Peer), 주문자(Orderer) 등 필요 역할에 따라 개념적으로 4가지로 구분되며, 증명서 기반의 권한을 통한 접근 제어 기능을 제공한다. 네트워크MSP는 네트워크 관리 수행(채널 생성 등) 권한을 제어한다. 채널MSP는 채널(Channel) 내의 피어(Peer)에 대한 권한을 제어한다. 피어MSP는 채널MSP와 동일하게 피어(Peer)에 대한 권한을 제어하지만, 해당 피어(Peer)에 대해서만 적용된다. 주문자MSP는 주문자(Orderer)에 대한 권한을 제어한다.
Fabric-CA는 하이퍼레져-패브릭(Hyperledger-Fabric) 네트워크에서 인증장치(Certificate Authority) 역할을 수행하는 요소로, 선택적으로 사용할 수 있다. MSP와 연동되어 피어(Peer)가 요청한 증명서(Certificate)를 발급 및 관리하는 역할을 수행하며, 2가지의 증명서(Certificate)를 제공한다. Ecert(Enrollment Certificate)는 피어(Peer)의 식별자(Identity)로, 지속적으로 사용된다. Tcert(Transaction Certificate)는 트랜잭션 검증에 사용되며, 일회용이다.
채널(Channel)은 하이퍼레져-패브릭(Hyperledger-Fabric)의 기본 네트워크 단위로, 각 채널(Channel)은 독립된 블록체인 공유 원장과 체인코드(Chaincode)를 가진다. 채널(Channel) 생성은 네트워크MSP에서 시스템에 대한 권한이 있는 사용자만이 가능하며, 기본적으로 피어(Peer)를 포함한 조직(Organization), 주문자(Orderer) 및 MSP로 구성되어 있다. 즉, 각 채널(Channel)은 하나의 전체 네트워크 내에서 다른 채널(Channel)과는 독립된 파일 시스템을 가진 서브 네트워크이다.
하이퍼레져-패브릭(Hyperledger-Fabric)의 체인코드(Chaincode)는 경우 go, java 언어 기반의 스마트 컨트랙트 개념이다. 하지만 블록체인 위에 바이너리 소스코드(Binary Source Code)가 등록되는 이더리움의 스마트 컨트랙트와는 다르게, 블록체인 네트워크에 등록된 검증된 피어(Peer)들이 체인코드(Chaincode)를 가지고 있다. 체인코드(Chaincode)는 시스템 체인코드와 일반 체인코드로 구분된다. 시스템 체인코드는 네트워크 시스템 프로세스를 수행하는 체인코드(Chaincode)로 네트워크 생성 때 등록할 수 있으며, 네트워크가 활성화된 이후 변경이 불가능하다. 일반 체인코드는 서비스를 제공하는 체인코드(Chaincode)로, 사용자들의 요청에 따라 양도인(Endorser)를 통해 트랜잭션의 형태로 수행된다. 생성, 수정 등이 가능하며, 채널(Channel) 단위로 유지된다. 일반 체인코드의 실행 결과는 하나의 트랜잭션이다. 클라이언트(Client)가 제안한 체인코드(Chaincode)는 양도인(Endorser)에 의해 실행 및 검증(서명)되고, 보증서(endorsement) 형태로 클라이언트(Client)에게 전송된다. 이후 클라이언트(Client)는 트랜잭션의 실행 조건인 보증정책(Endorsement Policy)를 확인하고 주문자(Orderer)에게 전송한다. 전송된 체인코드(Chaincode)의 결과 상태인 트랜잭션은 주문자(Orderer)에 의해 정리(Ordering), 패키징(Packaging) 과정을 거치고 생성된 블록은 양도인(Endorser), 커미터(Committer)에게 전송되어 확인(Validation) 과정을 수행 후 원장(Ledger)에 반영된다.
하이퍼레져-패브릭(Hyperledger-Fabric)에서의 합의 알고리즘은 트랜잭션에 대한 보증서(endorsement)와 정리(Ordering), 확인(Validation) 과정을 뜻한다. 즉, 클라이언트로부터 요청된 트랜잭션이 피어(Peer)에게 검증받고, 합의 과정을 통해 블록을 생성하는 주문자(Orderer)에 의해 정리(Ordering), 패키징(Packaging) 과정을 거치고, 원장(Ledger)에 저장되기 위해 확인(Validation)을 수행하는 전반적인 트랜잭션 수행 과정을 뜻한다. 보증서(endorsement)는 요청된 트랜잭션에 대해 피어(Peer)가 실행, 검증 및 서명을 수행한 결과이다.
정리(Ordering)는 여러 클라이언트(Client)로부터 전송받은 승인된 트랜잭션들을 블록에 등록할 순서를 결정하는 과정이다(합의 알고리즘 적용).
확인(Validation)는 원장(Ledger)를 가지고 있는 피어에서 수행되는 과정으로, 주문자(Orderer)로부터 전송받은 블록에 대한 유효성 검증 과정이다.
Fabric-SDK는 하이퍼레져-패브릭(Hyperledger-Fabric)에서 지원하는 도구로, 블록체인 서비스를 제공하기 위해 DApp과 체인코드(Chaincode)를 연결해주는 인터페이스를 제공한다. go, node.js, java 언어를 지원하며, MSP를 통해 애플리케이션에 대한 접근 권한을 획득하는 기능부터, 트랜잭션(Chaincode)을 제안하는 기능 등의 서비스가 가능하다.
하이퍼레져-패브릭(Hyperledger-Fabric)의 DApp의 동작 과정 및 블록체인 연동 구조는 기존의 블록체인 플랫폼과 유사하다. HTTP 기반의 프로토콜을 사용하며, SDK tool을 통해 체인코드(Chaincode)에서 제공하는 기능을 기반으로 DApp에서 서비스를 개발, 배포한다.
영지식(Zero-Knowledge)은 익명성을 보장하는 프로토콜로, 증명자(Certifier)가 자신이 가진 비밀 정보를 공개하지 않더라도, 비밀 정보를 가지고 있다는 것을 증명하는 방법이다. 즉, 사용자의 개인 정보를 공개하지 않더라도 사용자의 개인 정보에 대한 유효성 검증을 수행할 수 있다. 영지식은 다음의 3가지 기본 조건이 충족되어야 한다. 완전성(Completeness)은 어떤 문장이 참이면, 정직한 증명자(Certifier)는 정직한 검증장치(Verifier)에게 이 사실을 납득시킬 수 있어야 한다. 안정성(Soundness)는 어떤 문장이 거짓이면, 어떠한 부정직한 증명자(Certifier)라도 정직한 검증장치(Verifier)에게 이 문장이 사실이라고 납득시킬 수 없어야 한다. 영지식은 어떤 문장이 참이면, 검증장치(Verifier)는 문장의 참/거짓 이외에는 아무것도 알 수 없어야 한다.
영지식은 사용자 인증 정보의 해쉬(Hash) 값을 전송하는 기존의 시스템과 다르게, 사용자 인증 정보를 네트워크 통신상에 포함하지 않고도 정보가 올바르게 있다는 것을 증명 가능하다.
영지식 기반의 익명성을 제공하는 서명(Signature) 프로토콜은 대표적으로 CL(Camenish-Lysyanskaya)서명과 BBS(Boneh-Boyen-Shacham)서명 2가지가 있다. 둘 모두 bilinear groups를 이용한 기법이다. 위 서명(Signature)들은 비밀 키로 서명된 메시지를 전송하지 않고, 검증장치(Verifier)가 요구하는 계산된 값을 제공함으로 사용자가 비밀 키를 가지고 있다는 것을 증명해 낼 수 있다.
CL(Camenish-Lysyanskaya)서명은 초기 SDH(Strong Diffie-Hellman) 기반으로 제안되었다. 이후 효율적인 측면에서 개선되어 현재는 LRSW(Lysyanskaya-Rivest-Sahai- Wolf) 가정을 기반으로 한다. LRSW는 SDH 가정과는 다르게, 메시지의 속성(Attributes)에 따라 독립적인 이상대수(discrete-logarithm)을 지원하여, 더욱 유연하다는 특징을 가지고 있다. CL서명은 사용자가 비밀 키로 서명된 메시지를 전송하는 인증 과정을 거치지 않고, 검증장치(Verifier)가 요구하는 계산된 값을 제공함으로 사용자가 비밀 키를 가지고 있다는 것을 증명해 낼 수 있다.
BBS(Boneh-Boyen-Shacham)서명은 DLIN(Decision LINear)이라는 새로운 가정을 기반으로 제안된 서명(Signature) 기법이다. CL서명과 동일한 영지식 기반의 서명 기법으로, 익명성을 제공한다. 정보에 대한 유무를 검증하는 지식증명(Proof of Knowledge) 프로토콜에서는 CL서명보다 더 효율적인 특징이 있다.
무작위 디지털 서명(Randomizable Digital Signature)은 메시지 수에 상관없이 항상 두 개의 요소로 구성된 서명(Signature) 기법이다. 무작위 디지털 서명은 CL서명과는 다르게 bilinear groups의 type-3 페어링 방식을 무조건 사용해야만 한다. 하지만 최근 CL서명 기반의 여러 프로토콜들은 효율성과 보안상의 이유로 bilinear groups의 type-3 페어링 방식을 사용하기 때문에, CL서명과 동일한 보안성과 특징을 제공하면서도 더욱 효율적이다.
무작위 디지털 서명(Randomizable Digital Signature)은 CL서명에서 각각의 메시지 m에 따라 각각의 서명을 새로 만드는 것이 아니라, 기존의 서명을 이용해 새로운 서명을 만드는 방법이다. 메시지 m에 대한 서명 이 존재할 때, 랜덤(random)한 값을 선택하고, 을 계산함으로 새로운 서명을 만들어서 임의성(Randomizability)를 제공한다.
본 발명의 실시예에 따른 개인정보의 익명성을 제공하는 블록체인 시스템(100)은 익명성 제공이 가능한 블록체인 플랫폼에 관한 기술이다. 이 실시예는 퍼미션 구조(Permissioned)의 블록체인 플랫폼상에서 개인정보가 담긴 트랜잭션에 대한 익명성을 제공한다.
이 실시예는 블록체인 네트워크의 익명성 문제점을 해결하기 위해 영지식 기반의 서명 기법을 적용하는 방법을 제안한다. 트랜잭션 생성에 대한 효율적인 처리를 위하여, 무작위 디지털 서명(Randomizable Digital Signature)의 키 생성 프로토콜을 사용하고, 지식증명(Proof of Knowledge)에는 BBS서명의 프로토콜을 적용한다.
이 실시예는 블록체인 네트워크와 연결되어 노드(110)의 개인 정보를 담는 증명서(Certificate) 생성, 서명, 발급, 폐기, 추적 등의 기능을 수행하며, 증명서(Certificate) 내의 개인 정보인 속성(Attributes)에 대한 익명성을 제공한다.
도 3을 참조하면, 이 실시예는 제1증명서를 생성하는 인증모듈(120); 인증모듈(120)에서 생성된 제1증명서를 이용하여 개인정보가 생략되며 영지식(Zero-Knowledge)이 적용된 제2증명서 및 제2증명서가 포함된 트랜잭션을 생성하는 노드(110); 노드(110)에서 생성된 트랜잭션을 검증하는 검증모듈(140)을 포함한다.
인증모듈(Certificate Authority, 120)은 증명서(Certificate)를 발급하는 검증된 객체다. 무작위 디지털 서명(Randomizable Digital Signature) 기반의 인증 공개 키 및 인증 비밀 키를 생성하고 이것을 이용해 증명서를 발급한다. 발급된 증명서는 영지식 개념이 적용되어 유연한 특징을 가진다.
노드(110)는 증명서(Certificate)를 발급받고 이를 통해 자신의 속성(Attribute)을 제공하는 블록체인의 참여 노드(110)이다. 발급 받은 증명서를 기반으로 BBS(Boneh-Boyen-Shacham)서명 기반의 서명을 거쳐, 일부 속성(Attribute)에 대한 정보만을 포함하는 트랜잭션을 생성한다.
노드(110)는 다양하게 실시될 수 있다. 이 실시예가 IoT(Internet of Thing) 환경에 적용된다면, 노드(110)는 개별 IoT센서장치가 될 수 있다.
검증모듈(Verifier, 140)은 인증모듈(120)의 공개 키(Public Key)를 이용하여 노드(110)의 증명서를 검증한다.
폐기모듈(Revocation Authority, 180)은 증명서(Certificate)의 폐기를 수행하는 구성이다. 폐기에 대한 요청을 수행하고, 결과를 노드(110)와 검증모듈(140)에게 전달하는 과정을 수행한다. 다른 실시예로서, 인증모듈(120)이 증명서(Certificate) 발급과 더불어 이 역할을 병행할 수 있다.
도 4를 참조하면, 블록체인 플랫폼에서 트랜잭션 생성자의 개인(Private) 정보를 공개하지 않으면서 그 정보를 가지고 있음을 보장해주기 위한 익명성 제공을 위해 다음의 구조를 정의한다.
인증모듈(120)은 효율성을 높이기 위해 인증 공개 키 및 인증 비밀 키 생서 시 무작위 디지털 서명(Randomizable Digital Signature)을 이용한다.
노드(110)는 무작위 디지털 서명을 이용하여 제1 공개 키 및 제1 비밀 키를 생성한다.
인증모듈(120)은 BBS서명 프로토콜을 이용하여 인증 비밀 키로 서명함으로써 제1증명서를 생성한다. 노드(110)는 제1증명서를 함께 이용하여 제1 공개 키를 생성한다.
노드(110)는 트랜잭션 생성 시 개인정보가 일부 또는 전체 생략된 제2증명서를 생성한다. 제2증명서는 BBS서명 프로토콜을 이용해 영지식이 적용되어 생성된다. 노드(110)는 제2증명서의 생성을 위해, 제2 공개 키 및 제2 비밀 키를 생성한다. 다른 노드는 제2 공개 키를 이용하여 제2증명서의 내용을 확인할 수 있게 된다.
각 트랜잭션에는 생성자(노드)의 증명서(Certificate)가 포함된다. 영지식이 적용된 서명 기법을 기반으로 작성된 증명서(Certificate)는 트랜잭션에 포함되더라도 개인 정보에 대해 익명성을 제공할 수 있다.
도 5는 트랜잭션 생성 및 검증 과정을 나타낸 것이다. 인증모듈(120)에서 발급된 제1증명서에는 노드(110)의 개인(Private) 정보가 속성(Attributes)에 모두 담겨있다.
트랜잭션 생성 시 트랜잭션에는 노드(110)의 증명서(Certificate)가 포함되어야 한다. 하지만, 제1증명서가 트랜잭션에 포함되면 속성(Attributes)이 모두 공개되는 문제가 있다.
따라서 선택적으로 공개를 원하는 속성(Attributes)만 검증모듈(140)이 확인할 수 있도록 새로운 서명(Signature), 즉 제2증명서를 생성하여 검증모듈(140)에 제공한다.
검증모듈(140)에 제공되는 제2증명서에는 노드(110)가 공개를 허용한 개인 정보만 포함되어 있으므로, 검증 시 개인정보가 노출되는 것이 방지된다.
검증모듈(140)은 인증모듈(120)에서 생성된 인증 공개 키를 이용하여 트랜잭션에 포함된 제2증명서를 검증한다.
도 6은 감사(Auditor(Inspector)) 과정을 나타낸 것이다. 도 5의 구조는 분산된 각 트랜잭션들을 추적하여 속성(Attribute) 정보들을 수집하면 노드(110)의 개인 정보를 획득할 수도 있다.
이러한 만약의 문제 방지하기 위해, 트랜잭션에 대한 추적 기능을 수행하는 감사모듈(160)이 추가로 구성될 수 있다. 감사모듈(160)은 블록체인 네트워크 내에서 트랜잭션에 대한 읽기 권한을 가진 검증된 객체이다. 감사모듈(160)은 트랜잭션 추적 권한 수행을 위한 감사용 공개 키와 감사용 비밀 키를 가지고 있다. 감사모듈(160)은 블록체인 네트워크의 참여 노드(110)로 구성하여 선택적으로 이용될 수 있다. 감사모듈(160)에서 생성되는 키는 영지식 개념이 적용되지 않은, 기존의 비대칭 키 암호 기법이 적용되는 것도 가능하다.
도 7은 폐기(Revocation) 과정을 나타낸 것이다. 증명서(Certificate)의 속성(Attribute)이 변경되거나, 전체 속성(Attribute)이 포함된 증명서가 유출되는 경우, 증명서가 더 이상 사용되지 못하도록 폐기하는 과정이 필요하다.
폐기 과정을 위해, 폐기모듈(180)은 먼저 폐기 권한을 가진 객체임을 증명하기 위한 공개 키 및 비밀 키를 생성한다. 이후, 증명서 폐기가 필요한 노드(110)가 폐기모듈(180)에 폐기 요청을 전달한다. 폐기모듈(180)은 해당 노드(110)가 권한이 있는지 확인하고, 자신의 키 서명을 이용하여 해당 노드(110)의 증명서가 폐기됨을 네트워크에 연결된 노드(110)들에게 알린다.
증명서 폐기 요청은 인증모듈(120), 폐기모듈(180), 해당 증명서(Certificate)의 노드(110)만이 가능하다. 검증모듈(140)은 폐기에 대한 요청 권한이 없다.
블록체인 플랫폼 적용을 위해서는 이 실시예에 대해 적합한 블록체인 구조를 설계해야 한다. 특히 암호 라이브러리 모듈과의 연동을 위해 트랜잭션을 생성하는 노드(110)에 대한 증명서(Certificate) 및 키를 관리하는 객체가 필요하다.
도 8은 블록체인에 적용된 다른 실시예의 동작 프로토콜을 나타내는 순서도이다.
이 실시예의 피어(Peer)는 증명서(Certificate)를 등록(또는 폐기)하기 위해 인증모듈(120)로 요청하는 기능과, 트랜잭션에 대해 서명 및 검증을 위해 증명 서비스 제공모듈(122)로 요청하는 블록체인의 참여 노드(110)이다.
인증모듈(120)은 앞서 설명된 실시예의 인증모듈(120)과 동일한 기능을 수행하는 객체이다.
증명 서비스 제공모듈(Certificate Service Provider, 122)는 피어로부터 전송 받은 서명 및 검증 요청을 암호화부에 전달한다. 증명 서비스 제공모듈(122)은 검증모듈(140)의 기능과 서명자(Signer)의 역할을 동시에 수행한다.
암호화모듈(Crypto Library Module, 124)은 영지식(Zero-Knowledge) 기반의 키 생성, 서명, 발행, 증명, 폐기, 추적 등에 대한 기능을 제공하는 라이브러리 모듈이다.
도면을 참조하여 블록체인 플랫폼 적용 단계부터 익명성 제공 단계까지의 동작 프로토콜에 대해 설명한다.
먼저, 피어와 인증모듈(120) 및 증명 서비스 제공모듈(122)이 노드(110)로서 참여하는 블록체인 네트워크를 구축한다.
블록체인 네트워크 구축 시 인증모듈(120)에서 이용하는 영지식 기반의 인증 키(공개 키, 비밀 키)를 생성한다.
이어서, 피어는 인증모듈(120)에 등록을 요청한다. 인증모듈(120)은 생성된 인증 키를 기반으로 피어의 증명서를 생성 및 등록한다.
블록체인 네트워크는 트랜잭션에 대한 기능을 수행한다. 피어는 증명 서비스 제공모듈(122)에 트랜잭션 서명 또는 검증을 요청한다. 증명 서비스 제공모듈(122)은 피어의 증명서를 이용하여 서명 또는 검증을 실시한다.
이어서, 본 발명의 실시예에 따른 블록체인에서 개인정보의 익명성을 제공하는 방법을 설명한다.
도 9를 참조하면, 이 실시예는 인증모듈(120)이 제1증명서를 생성하는 단계(S120), 노드(110)가 제1증명서를 이용하여 개인정보가 생략되며 영지식(Zero-Knowledge)이 적용된 제2증명서 및 제2증명서가 포함된 트랜잭션을 생성하는 단계(S140), 검증모듈(140)이 트랜잭션을 검증하는 단계(S160)를 포함한다.
S120 단계는 세부적으로, 무작위 디지털 서명(Randomizable Digital Signature)을 이용하여 인증 공개 키 및 인증 비밀 키를 생성하는 단계(S122) 및 BBS서명 프로토콜을 이용하여 인증 비밀 키로 서명함으로써 제1증명서를 생성하는 단계(S124)를 포함할 수 있다.
S140 단계는 제2증명서 생성 시 BBS서명 프로토콜을 이용한다.
다음은 본 발명의 실시예를 이용하여 실제 블록체인 시스템(100)을 구축하고, 익명성이 유지되면서도 정상적인 동작이 가능한지 확인하였다.
실험.
도 10(a)의 소스코드는 모든 속성(Attributes)이 공개되지 않는 새로운 서명(증명서)을 생성하는 기능을 수행한다. 도 10(b)는 생성된 서명에 대해 검증을 수행함으로써, 지식증명(Proof of Knowledge) 프로토콜의 동작 여부를 확인하였다.
도 11은 도 10(a)의 소스코드에서 생성된 증명서를 검증한 결과이다. 도시된 바와 같이, 증명서에 속성(Attributes)에 포함된 uID, Name, Birthday, City, Country, ProofOfAge의 정보가 표시되지 않는 것으로 나타났다.
서명 생성은 노드(110)가 트랜잭션을 생성할 때마다 수행된다. 이는 트랜잭션 병목과 밀접한 연관을 가지게 된다. 도 12를 참조하면, 한 개의 새로운 서명의 생성 및 검증에는 약 92.77ms의 추가적인 시간 비용이 소모된다. 서명 생성 과정과 검증 과정은 하나의 트랜잭션이 처리되기까지 소요되는 서비스 응답 속도를 지연시키는 단점이 있다.
따라서 속성(Attributes)의 개수를 n이라 할 때, 만큼의 서명 배열을 선언하여 Map 또는 Index 자료 구조 기반의 메모리를 소모하되, 중복 요청되는 속성(Attributes)에 대한 서명을 시간 복잡도에 찾아갈 수 있도록 구현한다.
도 13을 참조하면, 속성(Attributes)의 정보 중 ProofOfAge만을 확인할 수 있는 서명을 생성하였다. ProofOfAge는 18세 이상의 성인인지 아닌지 확인할 수 있는 속성(Attributes)로서, 이 실시예를 이용하면 개인 정보를 공개하지 않더라도 투표와 같은 성인만 참여 가능한 서비스를 제공할 수 있다. 도 13(b)를 참조하면, ProofOfAge 정보만이 공개된 것을 확인할 수 있다. 이로써 이 실시예의 노드(110), 인증모듈(120), 검증모듈(140) 등의 구성을 활용하면 블록체인 네트워크에서 생성되는 트랜잭션 내의 개인 정보들에 대해 익명성을 제공할 수 있음을 알 수 있다.
이상에서 본 발명은 실시예를 참조하여 상세히 설명되었으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 상기에서 설명된 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 부가 및 변형이 가능할 것임은 당연하며, 이와 같은 변형된 실시 형태들 역시 아래에 첨부한 특허청구범위에 의하여 정하여지는 본 발명의 보호 범위에 속하는 것으로 이해되어야 할 것이다.
100 : 블록체인 시스템
110 : 노드
120 : 인증모듈 122 : 증명 서비스 제공모듈
124 : 암호화모듈 140 : 검증모듈
160 : 감사모듈 180 : 폐기모듈
120 : 인증모듈 122 : 증명 서비스 제공모듈
124 : 암호화모듈 140 : 검증모듈
160 : 감사모듈 180 : 폐기모듈
Claims (8)
- 제1증명서를 생성하는 인증모듈;
상기 인증모듈에서 생성된 제1증명서를 이용하여 개인정보가 생략되며 영지식(Zero-Knowledge)이 적용된 제2증명서 및 상기 제2증명서가 포함된 트랜잭션을 생성하는 노드; 및
상기 노드에서 생성된 트랜잭션을 검증하는 검증모듈을 포함하는 것을 특징으로 하는 개인정보의 익명성을 제공하는 블록체인 시스템. - 제1항에 있어서,
상기 인증모듈은 무작위 디지털 서명(Randomizable Digital Signature)을 이용하여 인증 공개 키 및 인증 비밀 키를 생성하고, BBS서명 프로토콜을 이용하여 상기 인증 비밀 키로 서명함으로써 상기 제1증명서를 생성하는 것을 특징으로 하는 개인정보의 익명성을 제공하는 블록체인 시스템. - 제2항에 있어서,
상기 노드는 BBS서명 프로토콜을 이용하여 영지식이 적용된 제2증명서를 생성하는 것을 특징으로 하는 개인정보의 익명성을 제공하는 블록체인 시스템. - 제3항에 있어서,
상기 트랜잭션을 감사용 공개 키 및 감사용 비밀 키를 이용하여 추적하는 감사모듈을 더 포함하는 것을 특징으로 하는 개인정보의 익명성을 제공하는 블록체인 시스템. - 제3항에 있어서,
폐기가 필요한 상기 제2증명서를 폐기하고, 상기 제2증명서의 폐기 사실을 노드에 전달하는 폐기모듈을 더 포함하는 것을 특징으로 하는 개인정보의 익명성을 제공하는 블록체인 시스템. - (A) 인증모듈이 제1증명서를 생성하는 단계;
(B) 노드가 상기 제1증명서를 이용하여 개인정보가 생략되며 영지식(Zero-Knowledge)이 적용된 제2증명서 및 상기 제2증명서가 포함된 트랜잭션을 생성하는 단계; 및
(C) 검증모듈이 상기 트랜잭션을 검증하는 단계를 포함하는 것을 특징으로 하는 블록체인에서 개인정보의 익명성을 제공하는 방법. - 제6항에 있어서, 상기 (A) 단계는,
무작위 디지털 서명(Randomizable Digital Signature)을 이용하여 인증 공개 키 및 인증 비밀 키를 생성하는 단계; 및
상기 BBS서명 프로토콜을 이용하여 상기 인증 비밀 키로 서명함으로써 상기 제1증명서를 생성하는 단계를 포함하는 것을 특징으로 하는 블록체인에서 개인정보의 익명성을 제공하는 방법. - 제7항에 있어서, 상기 (B) 단계는,
상기 제2증명서 생성 시 BBS서명 프로토콜을 이용하는 것을 특징으로 하는 블록체인에서 개인정보의 익명성을 제공하는 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180171237A KR20200081101A (ko) | 2018-12-27 | 2018-12-27 | 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법 |
PCT/KR2019/016472 WO2020138733A1 (ko) | 2018-12-27 | 2019-11-27 | 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180171237A KR20200081101A (ko) | 2018-12-27 | 2018-12-27 | 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210027629A Division KR20210027332A (ko) | 2021-03-02 | 2021-03-02 | 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200081101A true KR20200081101A (ko) | 2020-07-07 |
Family
ID=71125832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180171237A KR20200081101A (ko) | 2018-12-27 | 2018-12-27 | 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20200081101A (ko) |
WO (1) | WO2020138733A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102346880B1 (ko) * | 2020-09-01 | 2022-01-03 | 김바올 | 블록체인에 기반한 성인인증정보 관리 방법 및 장치 |
KR20220047132A (ko) * | 2020-10-08 | 2022-04-15 | 한국과학기술원 | 강인한 데이터 모델 및 검증 메커니즘을 갖춘 블록체인 플랫폼을 이용한 공급망의 신뢰 강화 방법 및 시스템 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113673893A (zh) * | 2021-08-27 | 2021-11-19 | 杭州协能科技股份有限公司 | 退役动力电池管理方法及系统 |
CN115051807B (zh) * | 2022-06-02 | 2024-05-24 | 昆明理工大学 | 一种基于超级账本Fabric的零知识身份认证方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101837169B1 (ko) | 2016-12-29 | 2018-03-09 | 주식회사 코인플러그 | 영지식 증명 알고리즘을 사용하여 머클 트리 구조의 블록체인 기반 비밀 전자 투표 서비스를 제공하기 위한 방법, 및 이를 이용한 투표 코인 발행 서버, 투표 토큰 분배 서버 및 투표 지원 서버 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7698557B2 (en) * | 2003-12-22 | 2010-04-13 | Guardtime As | System and method for generating a digital certificate |
US8839381B2 (en) * | 2010-12-07 | 2014-09-16 | Microsoft Corporation | Revoking delegatable anonymous credentials |
SG11201708000PA (en) * | 2015-03-31 | 2017-10-30 | Nasdaq Inc | Systems and methods of blockchain transaction recordation |
WO2017079652A1 (en) * | 2015-11-05 | 2017-05-11 | Pulsifer Allen | Cryptographic transactions system |
-
2018
- 2018-12-27 KR KR1020180171237A patent/KR20200081101A/ko active Application Filing
-
2019
- 2019-11-27 WO PCT/KR2019/016472 patent/WO2020138733A1/ko active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101837169B1 (ko) | 2016-12-29 | 2018-03-09 | 주식회사 코인플러그 | 영지식 증명 알고리즘을 사용하여 머클 트리 구조의 블록체인 기반 비밀 전자 투표 서비스를 제공하기 위한 방법, 및 이를 이용한 투표 코인 발행 서버, 투표 토큰 분배 서버 및 투표 지원 서버 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102346880B1 (ko) * | 2020-09-01 | 2022-01-03 | 김바올 | 블록체인에 기반한 성인인증정보 관리 방법 및 장치 |
KR20220047132A (ko) * | 2020-10-08 | 2022-04-15 | 한국과학기술원 | 강인한 데이터 모델 및 검증 메커니즘을 갖춘 블록체인 플랫폼을 이용한 공급망의 신뢰 강화 방법 및 시스템 |
Also Published As
Publication number | Publication date |
---|---|
WO2020138733A1 (ko) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11895248B2 (en) | Method and apparatus for generating blockchain transaction | |
US11979493B2 (en) | Methods and systems to establish trusted peer-to-peer communications between nodes in a blockchain network | |
US20190158298A1 (en) | Public key infrastructure based on the public certificates ledger | |
EP3130104B1 (en) | System and method for sequential data signatures | |
KR20210027332A (ko) | 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법 | |
KR20200081101A (ko) | 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법 | |
JP2023504535A (ja) | アイデンティティ(id)ベース公開鍵生成プロトコル | |
Chalaemwongwan et al. | A practical national digital ID framework on blockchain (NIDBC) | |
Abraham et al. | Privacy-preserving eID derivation for self-sovereign identity systems | |
Li et al. | A Blockchain‐Based Public Auditing Protocol with Self‐Certified Public Keys for Cloud Data | |
Riad et al. | A blockchain‐based key‐revocation access control for open banking | |
Rathee et al. | A self-sovereign identity management system using blockchain | |
CN117528516A (zh) | 一种跨链身份管理方法及系统 | |
Polychronaki et al. | Identity management in internet of things with blockchain | |
Ozcelik et al. | Cryptorevocate: A cryptographic accumulator based distributed certificate revocation list | |
Kim et al. | Can we create a cross-domain federated identity for the industrial Internet of Things without Google? | |
Dumas et al. | LocalPKI: An interoperable and IoT friendly PKI | |
Sousa et al. | Secure provisioning for achieving end-to-end secure communications | |
Karagiannidis et al. | Report on Tools for Secure Ledger Systems | |
Song et al. | Traceable revocable anonymous registration scheme with zero-knowledge proof on blockchain | |
Kravitz | Exploration and impact of blockchain-enabled adaptive non-binary trust models | |
Palomar et al. | A protocol for secure content distribution in pure p2p networks | |
Kurbatov et al. | Decentralized Identification and Certification System | |
Danda et al. | SSH-DAuth: Secret Sharing based Decentralized OAuth using Decentralized Identifier | |
Shamugam et al. | Elliptical curve cryptography-kerberos authentication model for keystone in open stack |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application | ||
A107 | Divisional application of patent |