KR20210151020A - Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain - Google Patents

Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain Download PDF

Info

Publication number
KR20210151020A
KR20210151020A KR1020210167688A KR20210167688A KR20210151020A KR 20210151020 A KR20210151020 A KR 20210151020A KR 1020210167688 A KR1020210167688 A KR 1020210167688A KR 20210167688 A KR20210167688 A KR 20210167688A KR 20210151020 A KR20210151020 A KR 20210151020A
Authority
KR
South Korea
Prior art keywords
certificate
authentication
transaction
module
personal information
Prior art date
Application number
KR1020210167688A
Other languages
Korean (ko)
Inventor
김호원
김명길
박찬희
Original Assignee
부산대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 부산대학교 산학협력단 filed Critical 부산대학교 산학협력단
Priority to KR1020210167688A priority Critical patent/KR20210151020A/en
Publication of KR20210151020A publication Critical patent/KR20210151020A/en
Priority to KR1020220103133A priority patent/KR20220122940A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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/3268Cryptographic 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3218Cryptographic 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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic 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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)

Abstract

The present invention relates to a signature and verification technology for protecting personal information included in a transaction in a blockchain platform which comprises: an authentication module for generating a first certificate; a node that generates a transaction including a second certificate and the second certificate, which personal information is omitted from and zero-knowledge is applied to by using the first certificate generated by the authentication module; and a verification module that verifies the transaction generated in the node.

Description

개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법 {BLOCKCHAIN SYSTEM FOR PROVIDING ANONYMITY OF PRIVACY INFORMATION AND METHOD FOR PROVIDING ANONYMITY OF PRIVACY INFORMATION IN A BLOCKCHAIN}A block chain system that provides anonymity of personal information and a method of providing anonymity of personal information in a block chain

본 발명은 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법에 관한 것으로, 더욱 상세하게는 블록체인 플랫폼에서 트랜잭션에 포함된 개인정보를 보호하기 위한 서명 및 검증 기술에 관한 것이다.The present invention relates to a block chain system that provides anonymity of personal information and a method for providing anonymity of personal information in a block chain, and more particularly, a signature for protecting personal information included in a transaction on a block chain platform and verification techniques.

블록체인은 2009년 등장한 비트코인에서 실용화된 개념으로, P2P 네트워크상에서 공유 원장을 통해 해킹을 방지하면서 데이터를 저장하는 데이터베이스 기술이다.Blockchain is a concept that was put to practical use in Bitcoin, which appeared in 2009, and is a database technology that stores data while preventing hacking through a shared ledger on a P2P network.

이후, 이더리움이 기존의 디지털 명령어인 스마트 컨트랙트와 이것을 기반으로 서비스를 제공하는 DApp 개념을 제시하면서, 블록체인 기술은 플랫폼 영역으로 확장되기 시작하였다.After that, as Ethereum presented the concept of a smart contract, which is an existing digital command, and a DApp that provides services based on it, the blockchain technology began to expand into the platform area.

다수의 블록체인 플랫폼은 개인(Private) 정보와 같이 민감한 데이터를 안전하게 관리하기 위한 별도의 장치가 없다. 분산 원장의 기술 특성상 블록체인 상에 저장되는 트랜잭션의 경우, 네트워크 참여자에게 모두 공유된다. 따라서 블록체인 기술이 사물인터넷과 같은 환경에 적용되는 경우, 사물인터넷 기기의 개인 정보에 대한 익명성을 보장 받지 못한다.Many blockchain platforms do not have separate devices to safely manage sensitive data such as private information. Due to the technical nature of the distributed ledger, transactions stored on the blockchain are shared by all network participants. Therefore, when blockchain technology is applied to an environment such as the Internet of Things, anonymity of personal information of IoT devices is not guaranteed.

기존의 사용자에 대한 인증 기법은 제3의 인증기관을 통한 인증 방법과, X.509 기반의 증명서 방법이 주로 이용되고 있다. 제3의 인증기관의 경우 검증에 필요한 속성을 명시적으로 정해두어야 하고, 시스템에 대한 병목현상을 유발한다는 단점이 있다. X.509 기반의 증명서의 경우 인증 과정에 인증장치(Certificate Authority)의 도움 없이 인증 과정을 수행하지만, 이후 다른 입증(Verifier) 요청에 따라 서명된 속성(Attributes)의 전체를 공개해야만 하는 문제가 있다.As for the existing user authentication method, the authentication method through a third-party authentication authority and the X.509-based authentication method are mainly used. In the case of a third-party certification body, the properties required for verification must be explicitly set, and there is a disadvantage in that it causes a bottleneck for the system. In the case of an X.509-based certificate, the authentication process is performed without the help of a certificate authority in the authentication process, but there is a problem in that all signed attributes must be disclosed in response to other verification requests. .

등록특허공보 제10-1837169호Registered Patent Publication No. 10-1837169

본 발명은 상기와 같은 문제를 해결하기 위한 것으로, 본 발명의 목적은 블록체인 플랫폼에서 트랜잭션에 포함된 개인정보를 보호하기 위한 서명 및 검증 기술을 제공함에 있다.The present invention is to solve the above problems, and an object of the present invention is to provide a signature and verification technology for protecting personal information included in a transaction in a blockchain platform.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 개인정보의 익명성을 제공하는 블록체인 시스템은 제1증명서를 생성하는 인증모듈; 상기 인증모듈에서 생성된 제1증명서를 이용하여 개인정보가 생략되며 영지식(Zero-Knowledge)이 적용된 제2증명서 및 상기 제2증명서가 포함된 트랜잭션을 생성하는 노드; 및 상기 노드에서 생성된 트랜잭션을 검증하는 검증모듈을 포함하는 것을 특징으로 한다.A blockchain system for providing anonymity of personal information according to the present invention for achieving the above object includes: an authentication module for generating a first certificate; a node generating a second certificate to which personal information is omitted and zero-knowledge applied and a transaction including the second certificate by using the first certificate generated by the authentication module; and a verification module for verifying the transaction generated in the node.

또한, 상기 인증모듈은 무작위 디지털 서명(Randomizable Digital Signature)을 이용하여 인증 공개 키 및 인증 비밀 키를 생성하고, BBS서명 프로토콜을 이용하여 상기 인증 비밀 키로 서명함으로써 상기 제1증명서를 생성하는 것을 특징으로 할 수 있다.In addition, the authentication module generates an authentication public key and an authentication private key using a randomizable digital signature, and generates the first certificate by signing with the authentication private key using a BBS signature protocol. can do.

또한, 상기 노드는 BBS서명 프로토콜을 이용하여 영지식이 적용된 제2증명서를 생성하는 것을 특징으로 할 수 있다.In addition, the node may be characterized in that it generates a second certificate to which zero-knowledge is applied using the BBS signature protocol.

또한, 상기 트랜잭션을 감사용 공개 키 및 감사용 비밀 키를 이용하여 추적하는 감사모듈을 더 포함하는 것을 특징으로 할 수 있다.In addition, it may be characterized in that it further comprises an audit module for tracking the transaction using a public key for auditing and a private key for auditing.

또한, 폐기가 필요한 상기 제2증명서를 폐기하고, 상기 제2증명서의 폐기 사실을 노드에 전달하는 폐기모듈을 더 포함하는 것을 특징으로 할 수 있다.The method may further include a revocation module for revoking the second certificate requiring revocation, and transmitting the revocation fact of the second certificate to the node.

한편, 상기와 같은 목적을 달성하기 위한 본 발명에 따른 블록체인에서 개인정보의 익명성을 제공하는 방법은 (A)인증모듈이 제1증명서를 생성하는 단계; (B)노드가 상기 제1증명서를 이용하여 개인정보가 생략되며 영지식(Zero-Knowledge)이 적용된 제2증명서 및 상기 제2증명서가 포함된 트랜잭션을 생성하는 단계; 및 (C)검증모듈이 상기 트랜잭션을 검증하는 단계를 포함하는 것을 특징으로 한다.On the other hand, a method for providing anonymity of personal information in a block chain according to the present invention for achieving the above object includes the steps of: (A) generating, by an authentication module, a first certificate; (B) generating, by a node, a second certificate to which personal information is omitted and Zero-Knowledge is applied and a transaction including the second certificate using the first certificate; and (C) a verification module verifying the transaction.

또한, 상기 (A) 단계는, 무작위 디지털 서명(Randomizable Digital Signature)을 이용하여 인증 공개 키 및 인증 비밀 키를 생성하는 단계; 및 상기 BBS서명 프로토콜을 이용하여 상기 인증 비밀 키로 서명함으로써 상기 제1증명서를 생성하는 단계를 포함하는 것을 특징으로 할 수 있다.In addition, the step (A) may include generating an authentication public key and an authentication private key using a randomizable digital signature; and generating the first certificate by signing with the authentication secret key using the BBS signing protocol.

또한, 상기 (B) 단계는, 상기 제2증명서 생성 시 BBS서명 프로토콜을 이용하는 것을 특징으로 할 수 있다.In addition, the step (B) may be characterized in that the BBS signature protocol is used when generating the second certificate.

본 발명의 실시예에 의한 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법에 따르면,According to the block chain system for providing anonymity of personal information and the method for providing anonymity of personal information in the block chain according to an embodiment of the present invention,

첫째, 퍼미션 구조(Permissioned)의 블록체인 네트워크 상에 영지식(Zero-Knowledge) 기반 증명서를 이용하여 익명성을 제공하면 노드의 개인 정보를 보호할 수 있게 된다.First, if anonymity is provided using a Zero-Knowledge-based certificate on a permissioned blockchain network, the personal information of the node can be protected.

둘째, 증명서 생성, 발급, 서명 생성, 폐기 및 검증 프로토콜을 각 참여 노드에게 분할함으로 인증과정에서 발생되는 인증모듈의 시스템 병목현상이 해소되어 효율적인 네트워크 구성이 가능하게 된다.Second, by dividing the certificate generation, issuance, signature generation, revocation, and verification protocols to each participating node, the system bottleneck of the authentication module that occurs in the authentication process is resolved and an efficient network configuration is possible.

도 1은 블록체인 블록의 구조를 나타낸 도면.
도 2는 하이퍼레져-패브릭(Hyperledger-Fabric)의 블록 구조를 나타낸 도면.
도 3은 본 발명의 실시예에 따른 개인정보의 익명성을 제공하는 블록체인 시스템의 구성도.
도 4는 인증모듈과 노드 간의 영지식 증명서 발급과 트랜잭션 생성 과정을 나타낸 도면.
도 5는 영지식 증명서를 이용하여 익명성을 제공하는 트랜잭션을 생성하는 과정을 보다 구체적으로 나타낸 도면.
도 6은 감사모듈이 트랜잭션을 추적하는 과정을 나타낸 도면.
도 7은 인증모듈, 폐기모듈, 노드가 증명서를 폐기하는 관계를 나타낸 도면.
도 8은 블록체인에 적용된 다른 실시예의 동작 프로토콜을 나타내는 순서도.
도 9는 본 발명의 실시예에 따른 블록체인에서 개인정보의 익명성을 제공하는 방법의 순서도.
도 10은 모든 속성이 공개되지 않는 증명서를 생성하는 소스코드(a) 및 생성된 증명서를 검증하는 소스코드(b)를 나타낸 도면.
도 11은 도 10(a)의 소스코드에서 생성된 증명서를 검증한 결과를 나타낸 도면.
도 12는 증명서의 생성과 검증에 소요되는 시간을 나타내는 그래프.
도 13은 속성 중 ProofOfAge만 공개하는 증명서를 생성하는 소스코드(a) 및 생성된 증명서를 검증한 결과를 나타낸 도면.
1 is a diagram showing the structure of a block chain block.
2 is a diagram showing a block structure of Hyperledger-Fabric.
3 is a block diagram of a block chain system that provides anonymity of personal information according to an embodiment of the present invention.
4 is a diagram illustrating a process of issuing a zero-knowledge certificate and generating a transaction between an authentication module and a node;
5 is a diagram illustrating in more detail a process of generating a transaction providing anonymity using a zero-knowledge certificate.
6 is a diagram illustrating a process in which an audit module tracks a transaction;
7 is a diagram illustrating a relationship in which an authentication module, a revocation module, and a node cancel a certificate;
8 is a flowchart illustrating an operation protocol of another embodiment applied to a blockchain.
9 is a flowchart of a method for providing anonymity of personal information in a block chain according to an embodiment of the present invention.
Fig. 10 is a view showing a source code (a) for generating a certificate in which all attributes are not disclosed and a source code (b) for verifying the generated certificate.
11 is a view showing a result of verifying a certificate generated from the source code of FIG. 10 (a);
Fig. 12 is a graph showing the time required for generating and verifying a certificate;
13 is a view showing a source code (a) for generating a certificate that discloses only ProofOfAge among attributes and a result of verifying the generated certificate;

이하 첨부된 도면을 참조하여 본 발명에 따른 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법의 바람직한 실시예를 상세히 설명한다.Hereinafter, a preferred embodiment of a block chain system for providing anonymity of personal information and a method for providing anonymity of personal information in a block chain according to the present invention will be described in detail with reference to the accompanying drawings.

도 1을 참조하면, 블록체인의 블록은 최종 데이터를 제공하는 하나의 단위로, 헤더(Header)와 바디(Body)로 구성된다. 블록 중 유효성 검증 및 합의 알고리즘을 거쳐 허가된 블록만이 블록체인에 등록된다. 각 블록체인 플랫폼마다 정의된 데이터 구조는 상이하지만, 일반적으로 블록 헤더(Header)에는 이전 블록의 해쉬(Hash)값, MRH(Merkle Root Hash)값 등과 같이 블록에 대한 정보, 검증에 필요한 정보, 및 네트워크에 필요한 정보들을 담고 있다. 블록 바디(Body)는 트랜잭션이 담겨져 있다.Referring to FIG. 1 , a block of a block chain is a unit that provides final data, and is composed of a header and a body. Only blocks approved through validation and consensus algorithms among blocks are registered in the blockchain. Although the data structure defined for each blockchain platform is different, in general, the block header includes information about the block, such as the hash value of the previous block and the Merkle Root Hash (MRH) value, information necessary for verification, and It contains information necessary for the network. The block body contains transactions.

블록체인은 네트워크 참여자들이 트랜잭션이 담긴 블록을 P2P 방식으로 생성된 체인 형태의 분산 데이터 저장 환경에 저장하는 기술로, 블록에 대한 위변조가 불가능한 불멸성을 제공하는 데이터베이스 기술이다. 로직수준(Logic Level)의 스마트 컨트랙트와 애플리케이션 수준(Application Level)의 DApp 개념이 블록체인에 포함되면서 데이터베이스 기능에 더하여 서비스 개발, 배포, 관리가 가능한 플랫폼 영역의 기술로 발전하였다.Blockchain is a technology in which network participants store blocks containing transactions in a distributed data storage environment in the form of a chain created by P2P method. As the smart contract at the logic level and the DApp concept at the application level were included in the block chain, it developed into a technology in the platform area that enables service development, distribution, and management in addition to database functions.

블록체인 구조는 퍼미션 구조(Permissioned)와, 비퍼미션 구조(Permissionless)로 구분될 수 있다.The block chain structure can be divided into a permission structure and a permissionless structure.

퍼미션 구조는 공개(Public) 구조의 블록체인으로 누구나 자유롭게 네트워크에 참여할 수 있는 구조이다. 비검증 노드들이 트랜잭션을 생성, 검증, 합의 알고리즘에 참여해 블록체인에 데이터를 저장할 수 있는 완전 탈중앙화 구조이다. 블록체인 네트워크가 활성화되기 위해서는 자발적으로 네트워크의 합의 알고리즘에 참여하는 구조가 되어야 한다. 일반적으로 암호화폐와 같은 토큰(Token)을 제공하면서 네트워크 신뢰성을 위해 블록 생성 시간을 네트워크 자체에서 알고리즘상으로 유지하는 방식으로서 PoW(Proof of Work), PoS(Proof of Stake) 기반의 합의 알고리즘을 사용한다. 비트코인, 이더리움 등이 해당된다.The permission structure is a block chain with a public structure, and anyone can freely participate in the network. It is a fully decentralized structure in which non-verified nodes can create, verify, and participate in the consensus algorithm to store data in the blockchain. In order for the blockchain network to be active, it must be structured to voluntarily participate in the network's consensus algorithm. In general, a PoW (Proof of Work) and PoS (Proof of Stake)-based consensus algorithm is used as a method of maintaining the block creation time in the network itself for network reliability while providing a token such as a cryptocurrency in general. do. This includes Bitcoin and Ethereum.

비퍼미션 구조는 컨소시엄(Consortium) 구조 또는 개인(Private) 구조의 블록체인으로, 제한적으로 검증된 노드만이 트랜잭션 유효성을 검증하고, 합의 알고리즘을 수행하는 구조이다. 컨소시엄 구조의 경우 검증된 노드들이 동등한 위치에서 합의 알고리즘을 수행한다. 개인(Private) 구조의 경우 하나의 집단(Enterprise)이 모든 것을 담당하는 완전 중앙집중식 구조이다. 개인(Private) 구조는 합의 알고리즘에 참여하는 노드의 수가 적고, 검증된 노드들만이 참여할 수 있기 때문에, 공개(Public) 구조보다 트랜잭션 처리 속도가 월등히 뛰어나다. 대표적으로는 R3 Corda, Hyperledger-Fabric 등이 있다.The non-permission structure is a block chain of a consortium structure or a private structure, in which only limitedly verified nodes validate transaction validity and perform a consensus algorithm. In the case of the consortium structure, the verified nodes perform the consensus algorithm in equal positions. In the case of the Private structure, it is a completely centralized structure in which one group (Enterprise) is in charge of everything. Since the private structure has a small number of nodes participating in the consensus algorithm and only verified nodes can participate, the transaction processing speed is significantly superior to that of the public structure. Representative examples include R3 Corda and Hyperledger-Fabric.

합의 알고리즘은 블록체인에 트랜잭션 데이터를 저장하기 위해 공유 원장(Ledger)에 누가 블록에 대한 권한을 가질 것인지 합의하는 과정이다. 합의 알고리즘에 의해 선택된 피어(Peer)는 자신이 생성한 블록을 자신의 원장에 등록하고 다른 피어들에게 이를 전파한다. 새로운 블록을 전달받은 피어들은 블록에 대한 유효성 검증을 수행하고, 유효하다면 이를 원장에 반영한다. 대표적인 합의 알고리즘은 PoW(Proof of Work), PoS(Proof of Stake), DPoS(Delegated Proof of Stake), PBFT(Practical Byzantine Fault Tolerance) 등이 있다. The consensus algorithm is the process of agreeing who will have authority over blocks on a shared ledger to store transaction data on the blockchain. The peer selected by the consensus algorithm registers the block created by it in its own ledger and propagates it to other peers. Peers that have received the new block perform validation on the block, and if valid, reflect it on the ledger. Representative consensus algorithms include Proof of Work (PoW), Proof of Stake (PoS), Delegated Proof of Stake (DPoS), and Practical Byzantine Fault Tolerance (PBFT).

스마트 컨트랙트는 1994년 Nick Szabo가 제안한 개념으로, 디지털 명령어로 작성되어, 조건에 따라 계약 내용을 실행할 수 있다. 이는 조건에 따른 계약 결과가 명확하지만 디지털 명령어의 특성상 조작 가능하다는 한계점이 있었다. 하지만 블록체인과 융합되면서 스마트 컨트랙트 동작 결과가 블록체인에 반영되어 조작이 불가능하게 되면서 블록체인의 핵심 기술로 자리 잡았다. 스마트 컨트랙트는 조건에 따라 계약 내용을 수행하면서 튜링 완전성을 제공하고, 블록체인을 기반으로 프로세스를 수행할 수 있다는 점에서 블록체인 기반의 서비스를 제공하는 플랫폼의 로직 레이어(Logic Layer) 역할을 수행한다.A smart contract is a concept proposed by Nick Szabo in 1994, written in digital commands, and can execute contract contents according to conditions. Although the contract result according to the conditions is clear, there is a limitation in that it can be manipulated due to the nature of the digital command. However, as the result of smart contract operation is reflected in the block chain as it converges with the block chain, operation becomes impossible, and it has established itself as a core technology of the block chain. Smart contracts provide Turing completeness while performing contract contents according to conditions, and serve as the logic layer of the platform that provides blockchain-based services in that they can perform processes based on blockchain. .

DApp은 블록체인 기반의 탈중앙화 애플리케이션이다. 서비스에 사용되는 자원이 블록체인 네트워크에 분산되어 저장되며, 블록체인에 등록되는 고신뢰 데이터의 경우, 한 번 저장되면 위변조가 불가능하다는 특징을 가지고 있다. DApp 서비스는 스마트 컨트랙트를 통해 블록체인에 대한 프로세스를 수행하며, 여러 개의 스마트 컨트랙트 기능을 조합하여 서비스를 제공한다. 애플리케이션의 가장 중요한 요소인 서비스 응답 시간의 경우 블록체인 네트워크의 트랜잭션 처리 속도에 영향을 받기 때문에, 필요한 애플리케이션의 용도에 따라 적합한 블록체인 네트워크 구조를 선택해야 한다.DApp is a decentralized application based on blockchain. The resources used for the service are distributed and stored in the blockchain network, and in the case of high-trust data registered in the blockchain, once stored, forgery is impossible. DApp services perform processes on the block chain through smart contracts, and provide services by combining the functions of several smart contracts. Since the service response time, which is the most important element of the application, is affected by the transaction processing speed of the blockchain network, it is necessary to select an appropriate blockchain network structure according to the purpose of the required application.

DApp 서비스 개발을 위해서는 스마트 컨트랙트를 애플리케이션에서 호출하기 위한 인터페이스가 요구된다. 스마트 컨트랙트 개념을 포함하는 블록체인 플랫폼들은 연동 인터페이스를 지원하는 도구들을 지원한다.For DApp service development, an interface for calling a smart contract from an application is required. Blockchain platforms that include the concept of smart contracts support tools that support interworking interfaces.

하이퍼레져(Hyperledger)는 리눅스 재단(Linux Foundation)에서 지원하는 표준 블록체인 기술 구현을 목적으로 하는 프로젝트다. 그 중 Fabric은 기업용 블록체인 프레임워크로, 멤버쉽 서비스(Membership Service) 기반 퍼미션 구조의 블록체인 플랫폼이다. 체인코드(Chaincode)라고 불리는 go, java 언어 기반의 스마트 컨트랙트 작성이 가능하며, 네트워크에는 피어(Peer), 주문자(Orderer), MSP(Membership Service Provider) 등 여러 구성 요소들이 있다.Hyperledger is a project that aims to implement standard blockchain technology supported by the Linux Foundation. Among them, Fabric is a blockchain framework for businesses, and is a blockchain platform with a membership service-based permission structure. It is possible to write smart contracts based on the go and java languages called Chaincode, and there are several components in the network, such as peers, orderers, and MSPs (Membership Service Provider).

도 2를 참조하면, 블록은 헤더(Header), 데이터(Data), 메타데이터(Metadata)를 포함한다.Referring to FIG. 2 , a block includes a header, data, and metadata.

헤더(Header)는 총 3가지 변수를 가지고 있다. 블록의 색인(Index)을 저장하는 Number 변수, 이전 블록 헤더(Header)의 해쉬(Hash)값인 PreviousHash 변수, 데이터(트랜잭션들)에 대한 MRH(Merkle Root Hash)값인 DataHash 변수이다.Header has a total of 3 variables. It is a Number variable that stores the index of a block, a PreviousHash variable that is a hash value of the previous block header, and a DataHash variable that is a Merkle Root Hash (MRH) value for data (transactions).

데이터(Data)는 단순히 트랜잭션들의 배열로 구성되며, 각각의 트랜잭션은 Type, Version, Timestamp, Channel ID, TxID, Epoch, Chaincode info, Creator Identity, Endorser Identity, Status, Read Set, Write Set, Key value 등으로 구성되어 있다.Data simply consists of an array of transactions, and each transaction includes Type, Version, Timestamp, Channel ID, TxID, Epoch, Chaincode info, Creator Identity, Endorser Identity, Status, Read Set, Write Set, Key value, etc. is composed of

메타데이터(Metadata)는 주문자 신원(Orderer Identity), 제작자 신원(Creator Identity), 및 각 트랜잭션에 대한 플래그(Flag) 정보로 구성되어 있다.Metadata consists of an orderer identity, a creator identity, and flag information for each transaction.

피어(Peer)는 블록체인 네트워크의 필수 요소로, 하이퍼레져-패브릭(Hyperledger-Fabric)에서 피어(Peer)의 역할에 따라 양도인(Endorser), 커미터(Committer)로 구분된다.A peer is an essential element of the blockchain network, and it is divided into an Endorser and a Committer according to the role of the Peer in Hyperledger-Fabric.

양도인(Endorser)은 커미터(Committer)를 포함하는 개념으로, 추가적으로 클라이언트의 요청으로부터 보증(Endorse) 기능을 수행한다. 유저(User, 노드)로부터 요청받은 체인코드(Chaincode)를 실행하고, 이에 대한 결과 상태(State)를 양도인(Endorser)의 개인 키로 서명하는 보증(endorse) 과정을 거친다. 이후 과정에 따른 결과인 보증서(endorsement)를 유저에게 반환하는 기능을 수행한다.Endorser is a concept that includes a committer, and additionally performs an Endorse function from a client's request. The chaincode requested by the user (user, node) is executed, and the resulting state is signed with the private key of the transferor (Endorser) through an endorsement process. It performs a function of returning an endorsement, which is a result of the subsequent process, to the user.

커미터(Committer)는 원장(Ledger)과 이벤트허브(Event-hub)를 가지고 있다. 원장(Ledger)은 블록체인과 로컬데이터베이스(Local Database)로 이루어진 공유 원장이며, 이벤트허브(Event-hub)는 커미터(Committer)로부터 기능을 요청하고, 응답을 받을 때 사용하는 인터페이스(Interface)이다. 클라이언트(Client)로부터 요청받은 쿼리(Query) 명령에 의해 원장(Ledger)의 콘텐츠를 클라이언트(Client)로 반환해주는 기능(read)과, 주문자(Orderer)로부터 전달받은 블록에 대해 유효성 검증을 수행한 후 원장(Ledger)에 저장하는 기능을 수행한다. A committer has a ledger and an event-hub. Ledger is a shared ledger composed of block chain and local database, and event-hub is an interface used when requesting a function from a committer and receiving a response. After performing the function to return the contents of the ledger to the client by the Query command requested from the client (read), and after performing validation on the block received from the orderer It performs the function of storing in the ledger.

하이퍼레져-패브릭(Hyperledger-Fabric)에서 원장(Ledger)은 기존의 블록체인과 블록체인의 상태를 추적, 저장하는 State Database로 이루어져 있다. 기존의 블록체인과 동일하게, 위변조가 불가능한 불멸성을 제공하는 원장(Ledger)으로 트랜잭션과 네트워크에 대한 정보를 담고 있다. 상태 데이터베이스(State Database)는 키값(key-value) 기반의 페어(pair)로 구성된 LevelDB 기반의 데이터베이스로, 블록체인에 저장되는 최근 상태(State)를 기록하고 추적하는 기능을 가진다. 이는 원장의 현재 상태(State)를 알기 위해 전체 블록체인을 탐색하지 않도록 하여 블록체인 내에서 상태 정보 검색 시간을 줄인다.In Hyperledger-Fabric, the ledger consists of an existing block chain and a state database that tracks and stores the state of the block chain. As with the existing blockchain, it is a ledger that provides immortality that cannot be forged or altered, and contains information about transactions and networks. The state database is a LevelDB-based database composed of key-value-based pairs, and has a function of recording and tracking the latest state stored in the block chain. This reduces the time to search for state information within the blockchain by avoiding traversing the entire blockchain to know the current state of the ledger.

주문자(Orderer)는 클라이언트(Client)로부터 보증서(endorsement)를 전달받고, 이를 블록체인에 저장하기 위한 기능을 수행한다. 먼저, 블록체인은 트랜잭션의 순서에 따라 다음 블록의 헤더(Header) 정보가 달라지기 때문에, 등록을 수행할 보증서(endorsement)의 순서를 정리(Ordering)한다. 이후, 블록체인에 저장하기 위해 블록의 형태로 변환하는 패키징(Packaging) 과정을 수행한다. 마지막으로 만들어진 블록을 해당되는 채널(Channel)의 원장(Ledger)에 반영하기 위해 원장(Ledger)를 가진 피어(Peer)들(양도인, 커미터)에게 생성된 블록을 전달하는 역할을 수행한다. 위 기능을 수행하는 주문자(Orderer)는 하이퍼레져-패브릭(Hyperledger-Fabric) 네트워크의 채널(Channel) 필수 요소로, 한 채널(Channel)에 여러 개의 주문자(Orderer)가 존재할 수 있으며, 이 때 주문자(Orderer)들은 합의 과정을 통해 블록에 대한 생성 권한을 결정한다.The orderer receives the endorsement from the client and performs a function to store it in the block chain. First, since the header information of the next block changes according to the order of the transaction in the block chain, the order of endorsements to be registered is ordered. After that, a packaging process is performed, which is converted into a block form for storage in the block chain. In order to reflect the last created block on the ledger of the corresponding channel, it plays a role of delivering the created block to peers (transferors, committers) with the ledger. The orderer performing the above function is an essential element of the channel of the Hyperledger-Fabric network, and there may be multiple orderers in one channel, at this time the orderer ( Orderers) determine the right to create blocks through a consensus process.

MSP(Membership Service Provider)는 하이퍼레져-패브릭(Hyperledger-Fabric) 네트워크에서 접근 권한 제어를 수행하는 핵심 요소이다. 네트워크, 채널(Channel), 피어(Peer), 주문자(Orderer) 등 필요 역할에 따라 개념적으로 4가지로 구분되며, 증명서 기반의 권한을 통한 접근 제어 기능을 제공한다. 네트워크MSP는 네트워크 관리 수행(채널 생성 등) 권한을 제어한다. 채널MSP는 채널(Channel) 내의 피어(Peer)에 대한 권한을 제어한다. 피어MSP는 채널MSP와 동일하게 피어(Peer)에 대한 권한을 제어하지만, 해당 피어(Peer)에 대해서만 적용된다. 주문자MSP는 주문자(Orderer)에 대한 권한을 제어한다.MSP (Membership Service Provider) is a key element that performs access right control in the Hyperledger-Fabric network. It is conceptually divided into four types according to required roles such as network, channel, peer, and orderer, and provides access control function through certificate-based authority. The network MSP controls the authority to perform network management (channel creation, etc.). The channel MSP controls the authority for the peer in the channel (Channel). The peer MSP controls the authority for the peer in the same way as the channel MSP, but is applied only to the corresponding peer. The orderer MSP controls the authority for the orderer.

Fabric-CA는 하이퍼레져-패브릭(Hyperledger-Fabric) 네트워크에서 인증장치(Certificate Authority) 역할을 수행하는 요소로, 선택적으로 사용할 수 있다. MSP와 연동되어 피어(Peer)가 요청한 증명서(Certificate)를 발급 및 관리하는 역할을 수행하며, 2가지의 증명서(Certificate)를 제공한다. Ecert(Enrollment Certificate)는 피어(Peer)의 식별자(Identity)로, 지속적으로 사용된다. Tcert(Transaction Certificate)는 트랜잭션 검증에 사용되며, 일회용이다.Fabric-CA is an element that acts as a Certificate Authority in the Hyperledger-Fabric network, and can be used selectively. It works in conjunction with the MSP to issue and manage the certificate requested by the peer, and provides two types of certificates. Ecert (Enrollment Certificate) is an identifier of a peer and is continuously used. Tcert (Transaction Certificate) is used for transaction verification and is disposable.

채널(Channel)은 하이퍼레져-패브릭(Hyperledger-Fabric)의 기본 네트워크 단위로, 각 채널(Channel)은 독립된 블록체인 공유 원장과 체인코드(Chaincode)를 가진다. 채널(Channel) 생성은 네트워크MSP에서 시스템에 대한 권한이 있는 사용자만이 가능하며, 기본적으로 피어(Peer)를 포함한 조직(Organization), 주문자(Orderer) 및 MSP로 구성되어 있다. 즉, 각 채널(Channel)은 하나의 전체 네트워크 내에서 다른 채널(Channel)과는 독립된 파일 시스템을 가진 서브 네트워크이다.A channel is a basic network unit of Hyperledger-Fabric, and each channel has an independent blockchain shared ledger and chaincode. Channel creation is possible only by a user with authority to the system in the network MSP, and it is basically composed of an organization including peers, an orderer, and an MSP. That is, each channel is a sub-network having a file system independent of other channels within one overall network.

하이퍼레져-패브릭(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)에 반영된다.The chaincode of Hyperledger-Fabric is a smart contract concept based on the go and java languages. However, unlike Ethereum smart contracts in which binary source codes are registered on the blockchain, verified peers registered in the blockchain network have chaincodes. Chaincode is divided into system chaincode and general chaincode. The system chaincode is a chaincode that performs the network system process. It can be registered when the network is created, and cannot be changed after the network is activated. A general chaincode is a chaincode that provides a service, and is performed in the form of a transaction through an Endor at the request of users. Creation, modification, etc. are possible, and it is maintained in units of channels. The execution result of the general chaincode is one transaction. The Chaincode proposed by the Client is executed and verified (signed) by the Endor, and transmitted to the Client in the form of an endorsement. After that, the client checks the guarantee policy, which is the execution condition of the transaction, and transmits it to the orderer. The transaction, which is the result of the transmitted chaincode, goes through ordering and packaging processes by the orderer, and the generated block is transmitted to the endor and the committer for validation. ) is reflected in the ledger after performing the process.

하이퍼레져-패브릭(Hyperledger-Fabric)에서의 합의 알고리즘은 트랜잭션에 대한 보증서(endorsement)와 정리(Ordering), 확인(Validation) 과정을 뜻한다. 즉, 클라이언트로부터 요청된 트랜잭션이 피어(Peer)에게 검증받고, 합의 과정을 통해 블록을 생성하는 주문자(Orderer)에 의해 정리(Ordering), 패키징(Packaging) 과정을 거치고, 원장(Ledger)에 저장되기 위해 확인(Validation)을 수행하는 전반적인 트랜잭션 수행 과정을 뜻한다. 보증서(endorsement)는 요청된 트랜잭션에 대해 피어(Peer)가 실행, 검증 및 서명을 수행한 결과이다.The consensus algorithm in Hyperledger-Fabric refers to the process of endorsement, ordering, and validation of transactions. That is, the transaction requested from the client is verified by the peer, goes through the ordering and packaging processes by the orderer who creates the block through the consensus process, and is stored in the ledger. It refers to the overall transaction execution process that performs validation. The endorsement is the result of executing, verifying, and signing the requested transaction by the peer.

정리(Ordering)는 여러 클라이언트(Client)로부터 전송받은 승인된 트랜잭션들을 블록에 등록할 순서를 결정하는 과정이다(합의 알고리즘 적용).Ordering is the process of determining the order to register the approved transactions received from multiple clients in the block (applying the consensus algorithm).

확인(Validation)는 원장(Ledger)를 가지고 있는 피어에서 수행되는 과정으로, 주문자(Orderer)로부터 전송받은 블록에 대한 유효성 검증 과정이다.Validation is a process performed by a peer having a ledger, and is a validation process for a block received from an orderer.

Fabric-SDK는 하이퍼레져-패브릭(Hyperledger-Fabric)에서 지원하는 도구로, 블록체인 서비스를 제공하기 위해 DApp과 체인코드(Chaincode)를 연결해주는 인터페이스를 제공한다. go, node.js, java 언어를 지원하며, MSP를 통해 애플리케이션에 대한 접근 권한을 획득하는 기능부터, 트랜잭션(Chaincode)을 제안하는 기능 등의 서비스가 가능하다.Fabric-SDK is a tool supported by Hyperledger-Fabric and provides an interface that connects DApps and chaincodes to provide blockchain services. Go, node.js, and java languages are supported, and services such as a function to obtain access to an application through MSP and a function to suggest a transaction (Chaincode) are available.

하이퍼레져-패브릭(Hyperledger-Fabric)의 DApp의 동작 과정 및 블록체인 연동 구조는 기존의 블록체인 플랫폼과 유사하다. HTTP 기반의 프로토콜을 사용하며, SDK tool을 통해 체인코드(Chaincode)에서 제공하는 기능을 기반으로 DApp에서 서비스를 개발, 배포한다.The operation process and block chain interworking structure of Hyperledger-Fabric's DApp is similar to the existing block chain platform. It uses HTTP-based protocol and develops and distributes services in DApp based on functions provided by Chaincode through SDK tool.

영지식(Zero-Knowledge)은 익명성을 보장하는 프로토콜로, 증명자(Certifier)가 자신이 가진 비밀 정보를 공개하지 않더라도, 비밀 정보를 가지고 있다는 것을 증명하는 방법이다. 즉, 사용자의 개인 정보를 공개하지 않더라도 사용자의 개인 정보에 대한 유효성 검증을 수행할 수 있다. 영지식은 다음의 3가지 기본 조건이 충족되어야 한다. 완전성(Completeness)은 어떤 문장이 참이면, 정직한 증명자(Certifier)는 정직한 검증장치(Verifier)에게 이 사실을 납득시킬 수 있어야 한다. 안정성(Soundness)는 어떤 문장이 거짓이면, 어떠한 부정직한 증명자(Certifier)라도 정직한 검증장치(Verifier)에게 이 문장이 사실이라고 납득시킬 수 없어야 한다. 영지식은 어떤 문장이 참이면, 검증장치(Verifier)는 문장의 참/거짓 이외에는 아무것도 알 수 없어야 한다.Zero-Knowledge is a protocol that guarantees anonymity, and is a method of proving that a certifier has confidential information even if it does not disclose its confidential information. That is, even if the user's personal information is not disclosed, validation of the user's personal information can be performed. For zero knowledge, the following three basic conditions must be satisfied. Completeness means that if a statement is true, an honest certifier must be able to convince an honest verifier of this fact. Soundness is that if a statement is false, no dishonest certifier should be able to convince an honest verifier that this statement is true. Zero-knowledge means that if a certain sentence is true, the verifier should not know anything other than the truth/false of the sentence.

영지식은 사용자 인증 정보의 해쉬(Hash) 값을 전송하는 기존의 시스템과 다르게, 사용자 인증 정보를 네트워크 통신상에 포함하지 않고도 정보가 올바르게 있다는 것을 증명 가능하다.Unlike the existing system that transmits a hash value of user authentication information, zero knowledge can prove that information is correct without including user authentication information in network communication.

영지식 기반의 익명성을 제공하는 서명(Signature) 프로토콜은 대표적으로 CL(Camenish-Lysyanskaya)서명과 BBS(Boneh-Boyen-Shacham)서명 2가지가 있다. 둘 모두 bilinear groups를 이용한 기법이다. 위 서명(Signature)들은 비밀 키로 서명된 메시지를 전송하지 않고, 검증장치(Verifier)가 요구하는 계산된 값을 제공함으로 사용자가 비밀 키를 가지고 있다는 것을 증명해 낼 수 있다. There are two representative signature protocols that provide zero-knowledge-based anonymity: Camenish-Lysyanskaya (CL) signature and BBS (Boneh-Boyen-Shacham) signature. Both are techniques using bilinear groups. The above signatures do not transmit the message signed with the private key, but provide the calculated value required by the verifier to prove that the user has the private key.

CL(Camenish-Lysyanskaya)서명은 초기 SDH(Strong Diffie-Hellman) 기반으로 제안되었다. 이후 효율적인 측면에서 개선되어 현재는 LRSW(Lysyanskaya-Rivest-Sahai- Wolf) 가정을 기반으로 한다. LRSW는 SDH 가정과는 다르게, 메시지의 속성(Attributes)에 따라 독립적인 이상대수(discrete-logarithm)을 지원하여, 더욱 유연하다는 특징을 가지고 있다. CL서명은 사용자가 비밀 키로 서명된 메시지를 전송하는 인증 과정을 거치지 않고, 검증장치(Verifier)가 요구하는 계산된 값을 제공함으로 사용자가 비밀 키를 가지고 있다는 것을 증명해 낼 수 있다. CL (Camenish-Lysyanskaya) signature was initially proposed based on Strong Diffie-Hellman (SDH). Since then, it has been improved in terms of efficiency and is now based on the Lysyanskaya-Rivest-Sahai-Wolf (LRSW) assumption. Unlike the SDH assumption, LRSW supports independent discrete-logarithm according to message attributes, and thus has more flexibility. The CL signature can prove that the user has the secret key by providing the calculated value required by the verifier, without the user going through the authentication process of transmitting the message signed with the private key.

BBS(Boneh-Boyen-Shacham)서명은 DLIN(Decision LINear)이라는 새로운 가정을 기반으로 제안된 서명(Signature) 기법이다. CL서명과 동일한 영지식 기반의 서명 기법으로, 익명성을 제공한다. 정보에 대한 유무를 검증하는 지식증명(Proof of Knowledge) 프로토콜에서는 CL서명보다 더 효율적인 특징이 있다.BBS (Boneh-Boyen-Shacham) signature is a signature technique proposed based on a new assumption of DLIN (Decision Liner). It is the same zero-knowledge-based signature technique as the CL signature, and provides anonymity. The Proof of Knowledge protocol, which verifies the existence of information, has a more efficient feature than CL signature.

무작위 디지털 서명(Randomizable Digital Signature)은 메시지 수에 상관없이 항상 두 개의 요소로 구성된 서명(Signature) 기법이다. 무작위 디지털 서명은 CL서명과는 다르게 bilinear groups의 type-3 페어링 방식을 무조건 사용해야만 한다. 하지만 최근 CL서명 기반의 여러 프로토콜들은 효율성과 보안상의 이유로 bilinear groups의 type-3 페어링 방식을 사용하기 때문에, CL서명과 동일한 보안성과 특징을 제공하면서도 더욱 효율적이다.Randomizable Digital Signature is a signature technique that always consists of two elements regardless of the number of messages. Unlike CL signatures, random digital signatures must use the type-3 pairing method of bilinear groups unconditionally. However, recent CL signature-based protocols use the type-3 pairing method of bilinear groups for efficiency and security reasons, so they are more efficient while providing the same security and characteristics as CL signatures.

무작위 디지털 서명(Randomizable Digital Signature)은 CL서명에서 각각의 메시지 m에 따라 각각의 서명을 새로 만드는 것이 아니라, 기존의 서명을 이용해 새로운 서명을 만드는 방법이다. 메시지 m에 대한 서명

Figure pat00001
이 존재할 때, 랜덤(random)한
Figure pat00002
값을 선택하고,
Figure pat00003
을 계산함으로 새로운 서명을 만들어서 임의성(Randomizability)를 제공한다.Randomizable Digital Signature is a method of creating a new signature using an existing signature, rather than creating a new signature according to each message m in the CL signature. signature for message m
Figure pat00001
When is present, random
Figure pat00002
select a value,
Figure pat00003
It provides randomizability by creating a new signature by calculating

본 발명의 실시예에 따른 개인정보의 익명성을 제공하는 블록체인 시스템(100)은 익명성 제공이 가능한 블록체인 플랫폼에 관한 기술이다. 이 실시예는 퍼미션 구조(Permissioned)의 블록체인 플랫폼상에서 개인정보가 담긴 트랜잭션에 대한 익명성을 제공한다.The blockchain system 100 for providing anonymity of personal information according to an embodiment of the present invention is a technology related to a blockchain platform capable of providing anonymity. This embodiment provides anonymity for transactions containing personal information on a permissioned blockchain platform.

이 실시예는 블록체인 네트워크의 익명성 문제점을 해결하기 위해 영지식 기반의 서명 기법을 적용하는 방법을 제안한다. 트랜잭션 생성에 대한 효율적인 처리를 위하여, 무작위 디지털 서명(Randomizable Digital Signature)의 키 생성 프로토콜을 사용하고, 지식증명(Proof of Knowledge)에는 BBS서명의 프로토콜을 적용한다.This embodiment proposes a method of applying a zero-knowledge-based signature technique to solve the anonymity problem of a blockchain network. For efficient processing of transaction generation, the key generation protocol of Randomizable Digital Signature is used, and the protocol of BBS signature is applied to Proof of Knowledge.

이 실시예는 블록체인 네트워크와 연결되어 노드(110)의 개인 정보를 담는 증명서(Certificate) 생성, 서명, 발급, 폐기, 추적 등의 기능을 수행하며, 증명서(Certificate) 내의 개인 정보인 속성(Attributes)에 대한 익명성을 제공한다.This embodiment is connected to the blockchain network and performs functions such as generating, signing, issuing, discarding, tracking, etc., a certificate containing personal information of the node 110, and personal information in the certificate (Attributes) ) to provide anonymity.

도 3을 참조하면, 이 실시예는 제1증명서를 생성하는 인증모듈(120); 인증모듈(120)에서 생성된 제1증명서를 이용하여 개인정보가 생략되며 영지식(Zero-Knowledge)이 적용된 제2증명서 및 제2증명서가 포함된 트랜잭션을 생성하는 노드(110); 노드(110)에서 생성된 트랜잭션을 검증하는 검증모듈(140)을 포함한다.Referring to Fig. 3, this embodiment includes an authentication module 120 for generating a first certificate; a node 110 for generating a transaction including a second certificate and a second certificate to which personal information is omitted and zero-knowledge is applied using the first certificate generated by the authentication module 120; It includes a verification module 140 for verifying the transaction generated in the node (110).

인증모듈(Certificate Authority, 120)은 증명서(Certificate)를 발급하는 검증된 객체다. 무작위 디지털 서명(Randomizable Digital Signature) 기반의 인증 공개 키 및 인증 비밀 키를 생성하고 이것을 이용해 증명서를 발급한다. 발급된 증명서는 영지식 개념이 적용되어 유연한 특징을 가진다.The authentication module (Certificate Authority, 120) is a verified object that issues a certificate. Generates an authentication public key and an authentication private key based on a Randomizable Digital Signature, and issues a certificate using this. The issued certificate has a flexible feature by applying the zero-knowledge concept.

노드(110)는 증명서(Certificate)를 발급받고 이를 통해 자신의 속성(Attribute)을 제공하는 블록체인의 참여 노드(110)이다. 발급 받은 증명서를 기반으로 BBS(Boneh-Boyen-Shacham)서명 기반의 서명을 거쳐, 일부 속성(Attribute)에 대한 정보만을 포함하는 트랜잭션을 생성한다.The node 110 is a participating node 110 of the block chain that receives a certificate and provides its own attributes through this. Based on the issued certificate, the BBS (Boneh-Boyen-Shacham) signature-based signature is performed, and a transaction including only information about some attributes is created.

노드(110)는 다양하게 실시될 수 있다. 이 실시예가 IoT(Internet of Thing) 환경에 적용된다면, 노드(110)는 개별 IoT센서장치가 될 수 있다.The node 110 may be implemented in various ways. If this embodiment is applied to an Internet of Things (IoT) environment, the node 110 may be an individual IoT sensor device.

검증모듈(Verifier, 140)은 인증모듈(120)의 공개 키(Public Key)를 이용하여 노드(110)의 증명서를 검증한다.The verification module (Verifier, 140) verifies the certificate of the node 110 using the public key (Public Key) of the authentication module (120).

폐기모듈(Revocation Authority, 180)은 증명서(Certificate)의 폐기를 수행하는 구성이다. 폐기에 대한 요청을 수행하고, 결과를 노드(110)와 검증모듈(140)에게 전달하는 과정을 수행한다. 다른 실시예로서, 인증모듈(120)이 증명서(Certificate) 발급과 더불어 이 역할을 병행할 수 있다.The revocation module (Revocation Authority, 180) is a component that performs revocation of a certificate. A process for requesting the discard is performed, and a process of delivering the result to the node 110 and the verification module 140 is performed. As another embodiment, the authentication module 120 may concurrently perform this role along with issuing a certificate.

도 4를 참조하면, 블록체인 플랫폼에서 트랜잭션 생성자의 개인(Private) 정보를 공개하지 않으면서 그 정보를 가지고 있음을 보장해주기 위한 익명성 제공을 위해 다음의 구조를 정의한다.Referring to FIG. 4 , the following structure is defined to provide anonymity to ensure that the transaction creator's private information is not disclosed on the block chain platform and has the information.

인증모듈(120)은 효율성을 높이기 위해 인증 공개 키 및 인증 비밀 키 생서 시 무작위 디지털 서명(Randomizable Digital Signature)을 이용한다.The authentication module 120 uses a randomizable digital signature when generating an authentication public key and an authentication private key to increase efficiency.

노드(110)는 무작위 디지털 서명을 이용하여 제1 공개 키 및 제1 비밀 키를 생성한다.The node 110 generates a first public key and a first private key using the random digital signature.

인증모듈(120)은 BBS서명 프로토콜을 이용하여 인증 비밀 키로 서명함으로써 제1증명서를 생성한다. 노드(110)는 제1증명서를 함께 이용하여 제1 공개 키를 생성한다.The authentication module 120 generates the first certificate by signing with the authentication secret key using the BBS signature protocol. The node 110 generates the first public key by using the first certificate together.

노드(110)는 트랜잭션 생성 시 개인정보가 일부 또는 전체 생략된 제2증명서를 생성한다. 제2증명서는 BBS서명 프로토콜을 이용해 영지식이 적용되어 생성된다. 노드(110)는 제2증명서의 생성을 위해, 제2 공개 키 및 제2 비밀 키를 생성한다. 다른 노드는 제2 공개 키를 이용하여 제2증명서의 내용을 확인할 수 있게 된다.The node 110 generates a second certificate in which some or all of personal information is omitted when a transaction is created. The second certificate is generated by applying zero knowledge using the BBS signature protocol. The node 110 generates a second public key and a second private key for generating the second certificate. Another node can verify the contents of the second certificate by using the second public key.

각 트랜잭션에는 생성자(노드)의 증명서(Certificate)가 포함된다. 영지식이 적용된 서명 기법을 기반으로 작성된 증명서(Certificate)는 트랜잭션에 포함되더라도 개인 정보에 대해 익명성을 제공할 수 있다.Each transaction includes a certificate of the creator (node). A certificate created based on a signature technique to which zero-knowledge is applied can provide anonymity for personal information even if it is included in a transaction.

도 5는 트랜잭션 생성 및 검증 과정을 나타낸 것이다. 인증모듈(120)에서 발급된 제1증명서에는 노드(110)의 개인(Private) 정보가 속성(Attributes)에 모두 담겨있다.5 shows a transaction creation and verification process. In the first certificate issued by the authentication module 120 , all of the private information of the node 110 is contained in Attributes.

트랜잭션 생성 시 트랜잭션에는 노드(110)의 증명서(Certificate)가 포함되어야 한다. 하지만, 제1증명서가 트랜잭션에 포함되면 속성(Attributes)이 모두 공개되는 문제가 있다.When a transaction is created, a certificate of the node 110 must be included in the transaction. However, there is a problem in that all attributes are disclosed when the first certificate is included in the transaction.

따라서 선택적으로 공개를 원하는 속성(Attributes)만 검증모듈(140)이 확인할 수 있도록 새로운 서명(Signature), 즉 제2증명서를 생성하여 검증모듈(140)에 제공한다.Accordingly, a new signature, that is, a second certificate, is generated and provided to the verification module 140 so that the verification module 140 can verify only the attributes that are selectively disclosed.

검증모듈(140)에 제공되는 제2증명서에는 노드(110)가 공개를 허용한 개인 정보만 포함되어 있으므로, 검증 시 개인정보가 노출되는 것이 방지된다.Since the second certificate provided to the verification module 140 includes only the personal information that the node 110 has allowed to be disclosed, the personal information is prevented from being exposed during verification.

검증모듈(140)은 인증모듈(120)에서 생성된 인증 공개 키를 이용하여 트랜잭션에 포함된 제2증명서를 검증한다.The verification module 140 verifies the second certificate included in the transaction by using the authentication public key generated by the authentication module 120 .

도 6은 감사(Auditor(Inspector)) 과정을 나타낸 것이다. 도 5의 구조는 분산된 각 트랜잭션들을 추적하여 속성(Attribute) 정보들을 수집하면 노드(110)의 개인 정보를 획득할 수도 있다.6 shows an audit (Auditor (Inspector)) process. In the structure of FIG. 5 , personal information of the node 110 may be acquired by collecting attribute information by tracking each distributed transaction.

이러한 만약의 문제 방지하기 위해, 트랜잭션에 대한 추적 기능을 수행하는 감사모듈(160)이 추가로 구성될 수 있다. 감사모듈(160)은 블록체인 네트워크 내에서 트랜잭션에 대한 읽기 권한을 가진 검증된 객체이다. 감사모듈(160)은 트랜잭션 추적 권한 수행을 위한 감사용 공개 키와 감사용 비밀 키를 가지고 있다. 감사모듈(160)은 블록체인 네트워크의 참여 노드(110)로 구성하여 선택적으로 이용될 수 있다. 감사모듈(160)에서 생성되는 키는 영지식 개념이 적용되지 않은, 기존의 비대칭 키 암호 기법이 적용되는 것도 가능하다.In order to prevent such a problem, the audit module 160 that performs a tracking function for a transaction may be additionally configured. The audit module 160 is a verified object with read permission for transactions in the blockchain network. The audit module 160 has a public key for auditing and a private key for auditing for performing transaction tracking authority. The audit module 160 may be configured as a participating node 110 of a block chain network and used selectively. The key generated by the audit module 160 may apply the existing asymmetric key cryptography method to which the zero-knowledge concept is not applied.

도 7은 폐기(Revocation) 과정을 나타낸 것이다. 증명서(Certificate)의 속성(Attribute)이 변경되거나, 전체 속성(Attribute)이 포함된 증명서가 유출되는 경우, 증명서가 더 이상 사용되지 못하도록 폐기하는 과정이 필요하다.7 shows a revocation process. When the attribute of a certificate is changed or a certificate including all attributes is leaked, a process of discarding the certificate is necessary so that it can no longer be used.

폐기 과정을 위해, 폐기모듈(180)은 먼저 폐기 권한을 가진 객체임을 증명하기 위한 공개 키 및 비밀 키를 생성한다. 이후, 증명서 폐기가 필요한 노드(110)가 폐기모듈(180)에 폐기 요청을 전달한다. 폐기모듈(180)은 해당 노드(110)가 권한이 있는지 확인하고, 자신의 키 서명을 이용하여 해당 노드(110)의 증명서가 폐기됨을 네트워크에 연결된 노드(110)들에게 알린다.For the revocation process, the revocation module 180 first generates a public key and a private key for proving that the object has the right to revocation. Thereafter, the node 110 requiring certificate revocation transmits a revocation request to the revocation module 180 . The revocation module 180 checks whether the corresponding node 110 has authority, and notifies the nodes 110 connected to the network that the certificate of the corresponding node 110 is to be revoked using its own key signature.

증명서 폐기 요청은 인증모듈(120), 폐기모듈(180), 해당 증명서(Certificate)의 노드(110)만이 가능하다. 검증모듈(140)은 폐기에 대한 요청 권한이 없다.The certificate revocation request can be made only by the authentication module 120 , the revocation module 180 , and the node 110 of the corresponding certificate. The verification module 140 does not have the request authority for revocation.

블록체인 플랫폼 적용을 위해서는 이 실시예에 대해 적합한 블록체인 구조를 설계해야 한다. 특히 암호 라이브러리 모듈과의 연동을 위해 트랜잭션을 생성하는 노드(110)에 대한 증명서(Certificate) 및 키를 관리하는 객체가 필요하다.In order to apply the blockchain platform, it is necessary to design a blockchain structure suitable for this embodiment. In particular, for interworking with the cryptographic library module, an object for managing a certificate and a key for the node 110 that generates a transaction is required.

도 8은 블록체인에 적용된 다른 실시예의 동작 프로토콜을 나타내는 순서도이다.8 is a flowchart illustrating an operation protocol of another embodiment applied to a block chain.

이 실시예의 피어(Peer)는 증명서(Certificate)를 등록(또는 폐기)하기 위해 인증모듈(120)로 요청하는 기능과, 트랜잭션에 대해 서명 및 검증을 위해 증명 서비스 제공모듈(122)로 요청하는 블록체인의 참여 노드(110)이다.In this embodiment, the peer requests the authentication module 120 to register (or discard) the certificate, and the block requesting the authentication service providing module 122 to sign and verify the transaction. It is a participating node 110 of the chain.

인증모듈(120)은 앞서 설명된 실시예의 인증모듈(120)과 동일한 기능을 수행하는 객체이다.The authentication module 120 is an object that performs the same function as the authentication module 120 of the above-described embodiment.

증명 서비스 제공모듈(Certificate Service Provider, 122)는 피어로부터 전송 받은 서명 및 검증 요청을 암호화부에 전달한다. 증명 서비스 제공모듈(122)은 검증모듈(140)의 기능과 서명자(Signer)의 역할을 동시에 수행한다.The certificate service providing module (Certificate Service Provider, 122) transmits the signature and verification request received from the peer to the encryption unit. The authentication service providing module 122 simultaneously performs the function of the verification module 140 and the role of a signer.

암호화모듈(Crypto Library Module, 124)은 영지식(Zero-Knowledge) 기반의 키 생성, 서명, 발행, 증명, 폐기, 추적 등에 대한 기능을 제공하는 라이브러리 모듈이다.The Crypto Library Module (124) is a library module that provides functions such as zero-knowledge-based key generation, signature, issuance, proof, revocation, and tracking.

도면을 참조하여 블록체인 플랫폼 적용 단계부터 익명성 제공 단계까지의 동작 프로토콜에 대해 설명한다.With reference to the drawings, the operation protocol from the stage of applying the blockchain platform to the stage of providing anonymity will be described.

먼저, 피어와 인증모듈(120) 및 증명 서비스 제공모듈(122)이 노드(110)로서 참여하는 블록체인 네트워크를 구축한다.First, a blockchain network in which the peer, the authentication module 120 and the authentication service providing module 122 participate as the node 110 is constructed.

블록체인 네트워크 구축 시 인증모듈(120)에서 이용하는 영지식 기반의 인증 키(공개 키, 비밀 키)를 생성한다.A zero-knowledge-based authentication key (public key, private key) used in the authentication module 120 when constructing a block chain network is generated.

이어서, 피어는 인증모듈(120)에 등록을 요청한다. 인증모듈(120)은 생성된 인증 키를 기반으로 피어의 증명서를 생성 및 등록한다.Next, the peer requests registration from the authentication module 120 . The authentication module 120 generates and registers a peer certificate based on the generated authentication key.

블록체인 네트워크는 트랜잭션에 대한 기능을 수행한다. 피어는 증명 서비스 제공모듈(122)에 트랜잭션 서명 또는 검증을 요청한다. 증명 서비스 제공모듈(122)은 피어의 증명서를 이용하여 서명 또는 검증을 실시한다.The blockchain network performs the functions of transactions. The peer requests the authentication service providing module 122 to sign or verify the transaction. The authentication service providing module 122 performs signature or verification using the peer's certificate.

이어서, 본 발명의 실시예에 따른 블록체인에서 개인정보의 익명성을 제공하는 방법을 설명한다.Next, a method for providing anonymity of personal information in a block chain according to an embodiment of the present invention will be described.

도 9를 참조하면, 이 실시예는 인증모듈(120)이 제1증명서를 생성하는 단계(S120), 노드(110)가 제1증명서를 이용하여 개인정보가 생략되며 영지식(Zero-Knowledge)이 적용된 제2증명서 및 제2증명서가 포함된 트랜잭션을 생성하는 단계(S140), 검증모듈(140)이 트랜잭션을 검증하는 단계(S160)를 포함한다.Referring to FIG. 9 , in this embodiment, the authentication module 120 generates the first certificate ( S120 ), the node 110 uses the first certificate to omit personal information, and zero-knowledge It includes the step of generating the applied second certificate and the transaction including the second certificate (S140), and the step of verifying the transaction by the verification module 140 (S160).

S120 단계는 세부적으로, 무작위 디지털 서명(Randomizable Digital Signature)을 이용하여 인증 공개 키 및 인증 비밀 키를 생성하는 단계(S122) 및 BBS서명 프로토콜을 이용하여 인증 비밀 키로 서명함으로써 제1증명서를 생성하는 단계(S124)를 포함할 수 있다.In step S120, in detail, a step of generating an authentication public key and an authentication secret key using a randomizable digital signature (S122) and a step of generating a first certificate by signing with an authentication private key using the BBS signature protocol (S124) may be included.

S140 단계는 제2증명서 생성 시 BBS서명 프로토콜을 이용한다.Step S140 uses the BBS signature protocol when generating the second certificate.

다음은 본 발명의 실시예를 이용하여 실제 블록체인 시스템(100)을 구축하고, 익명성이 유지되면서도 정상적인 동작이 가능한지 확인하였다.Next, an actual block chain system 100 was constructed using an embodiment of the present invention, and it was confirmed whether a normal operation was possible while maintaining anonymity.

실험.Experiment.

도 10(a)의 소스코드는 모든 속성(Attributes)이 공개되지 않는 새로운 서명(증명서)을 생성하는 기능을 수행한다. 도 10(b)는 생성된 서명에 대해 검증을 수행함으로써, 지식증명(Proof of Knowledge) 프로토콜의 동작 여부를 확인하였다.The source code of FIG. 10(a) performs a function of generating a new signature (certificate) in which all attributes are not disclosed. In FIG. 10( b ), by performing verification on the generated signature, it was confirmed whether the Proof of Knowledge protocol was operated.

도 11은 도 10(a)의 소스코드에서 생성된 증명서를 검증한 결과이다. 도시된 바와 같이, 증명서에 속성(Attributes)에 포함된 uID, Name, Birthday, City, Country, ProofOfAge의 정보가 표시되지 않는 것으로 나타났다.11 is a result of verifying the certificate generated from the source code of FIG. 10(a). As shown, it was found that the information of uID, Name, Birthday, City, Country, and ProofOfAge included in Attributes was not displayed in the certificate.

서명 생성은 노드(110)가 트랜잭션을 생성할 때마다 수행된다. 이는 트랜잭션 병목과 밀접한 연관을 가지게 된다. 도 12를 참조하면, 한 개의 새로운 서명의 생성 및 검증에는 약 92.77ms의 추가적인 시간 비용이 소모된다. 서명 생성 과정과 검증 과정은 하나의 트랜잭션이 처리되기까지 소요되는 서비스 응답 속도를 지연시키는 단점이 있다.Signature generation is performed whenever node 110 creates a transaction. This is closely related to the transaction bottleneck. Referring to FIG. 12 , an additional time cost of about 92.77 ms is consumed for generating and verifying one new signature. The signature generation process and verification process have the disadvantage of delaying the service response speed required for one transaction to be processed.

따라서 속성(Attributes)의 개수를 n이라 할 때,

Figure pat00004
만큼의 서명 배열을 선언하여 Map 또는 Index 자료 구조 기반의 메모리를 소모하되, 중복 요청되는 속성(Attributes)에 대한 서명을
Figure pat00005
시간 복잡도에 찾아갈 수 있도록 구현한다.Therefore, when the number of attributes is n,
Figure pat00004
Declare as many signature arrays as possible to consume Map or Index data structure-based memory, but to register duplicate requested attributes.
Figure pat00005
Implement it so that it can be found in time complexity.

도 13을 참조하면, 속성(Attributes)의 정보 중 ProofOfAge만을 확인할 수 있는 서명을 생성하였다. ProofOfAge는 18세 이상의 성인인지 아닌지 확인할 수 있는 속성(Attributes)로서, 이 실시예를 이용하면 개인 정보를 공개하지 않더라도 투표와 같은 성인만 참여 가능한 서비스를 제공할 수 있다. 도 13(b)를 참조하면, ProofOfAge 정보만이 공개된 것을 확인할 수 있다. 이로써 이 실시예의 노드(110), 인증모듈(120), 검증모듈(140) 등의 구성을 활용하면 블록체인 네트워크에서 생성되는 트랜잭션 내의 개인 정보들에 대해 익명성을 제공할 수 있음을 알 수 있다.Referring to FIG. 13 , a signature capable of confirming only ProofOfAge among attribute information was generated. ProofOfAge is an attribute that can confirm whether or not an adult is 18 years of age or older. Using this embodiment, it is possible to provide a service that only adults can participate in, such as voting, even if personal information is not disclosed. Referring to FIG. 13B , it can be confirmed that only ProofOfAge information is disclosed. Accordingly, it can be seen that by utilizing the configuration of the node 110, the authentication module 120, the verification module 140, etc. of this embodiment, anonymity can be provided for the personal information in the transaction generated in the blockchain network. .

이상에서 본 발명은 실시예를 참조하여 상세히 설명되었으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 상기에서 설명된 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 부가 및 변형이 가능할 것임은 당연하며, 이와 같은 변형된 실시 형태들 역시 아래에 첨부한 특허청구범위에 의하여 정하여지는 본 발명의 보호 범위에 속하는 것으로 이해되어야 할 것이다.In the above, the present invention has been described in detail with reference to the embodiments, but those of ordinary skill in the art to which the present invention pertains may make various substitutions, additions and modifications within the scope not departing from the technical spirit described above. Of course, it should be understood that such modified embodiments also fall within the protection scope of the present invention as defined by the appended claims below.

100 : 블록체인 시스템 110 : 노드
120 : 인증모듈 122 : 증명 서비스 제공모듈
124 : 암호화모듈 140 : 검증모듈
160 : 감사모듈 180 : 폐기모듈
100: blockchain system 110: node
120: authentication module 122: authentication service providing module
124: encryption module 140: verification module
160: audit module 180: discard module

Claims (8)

제1증명서를 생성하는 인증모듈;
상기 인증모듈에서 생성된 제1증명서를 이용하여 개인정보가 생략되며 영지식(Zero-Knowledge)이 적용된 제2증명서 및 상기 제2증명서가 포함된 트랜잭션을 생성하는 노드; 및
상기 노드에서 생성된 트랜잭션을 검증하는 검증모듈을 포함하는 것을 특징으로 하는 개인정보의 익명성을 제공하는 블록체인 시스템.
an authentication module for generating a first certificate;
a node generating a second certificate to which personal information is omitted and zero-knowledge applied and a transaction including the second certificate by using the first certificate generated by the authentication module; and
A blockchain system that provides anonymity of personal information, characterized in that it includes a verification module that verifies the transaction generated in the node.
제1항에 있어서,
상기 인증모듈은 무작위 디지털 서명(Randomizable Digital Signature)을 이용하여 인증 공개 키 및 인증 비밀 키를 생성하고, BBS서명 프로토콜을 이용하여 상기 인증 비밀 키로 서명함으로써 상기 제1증명서를 생성하는 것을 특징으로 하는 개인정보의 익명성을 제공하는 블록체인 시스템.
According to claim 1,
The authentication module generates an authentication public key and an authentication private key using a randomizable digital signature, and generates the first certificate by signing with the authentication private key using a BBS signature protocol. A blockchain system that provides anonymity of information.
제2항에 있어서,
상기 노드는 BBS서명 프로토콜을 이용하여 영지식이 적용된 제2증명서를 생성하는 것을 특징으로 하는 개인정보의 익명성을 제공하는 블록체인 시스템.
3. The method of claim 2,
The block chain system for providing anonymity of personal information, characterized in that the node generates a second certificate to which zero knowledge is applied using the BBS signature protocol.
제3항에 있어서,
상기 트랜잭션을 감사용 공개 키 및 감사용 비밀 키를 이용하여 추적하는 감사모듈을 더 포함하는 것을 특징으로 하는 개인정보의 익명성을 제공하는 블록체인 시스템.
4. The method of claim 3,
A block chain system for providing anonymity of personal information, characterized in that it further comprises an audit module for tracking the transaction using the public key for audit and the secret key for audit.
제3항에 있어서,
폐기가 필요한 상기 제2증명서를 폐기하고, 상기 제2증명서의 폐기 사실을 노드에 전달하는 폐기모듈을 더 포함하는 것을 특징으로 하는 개인정보의 익명성을 제공하는 블록체인 시스템.
4. The method of claim 3,
The block chain system for providing anonymity of personal information, characterized in that it further comprises a revocation module which discards the second certificate that needs to be revoked, and transmits the fact of revocation of the second certificate to a node.
(A) 인증모듈이 제1증명서를 생성하는 단계;
(B) 노드가 상기 제1증명서를 이용하여 개인정보가 생략되며 영지식(Zero-Knowledge)이 적용된 제2증명서 및 상기 제2증명서가 포함된 트랜잭션을 생성하는 단계; 및
(C) 검증모듈이 상기 트랜잭션을 검증하는 단계를 포함하는 것을 특징으로 하는 블록체인에서 개인정보의 익명성을 제공하는 방법.
(A) generating, by the authentication module, a first certificate;
(B) generating, by a node, a second certificate to which personal information is omitted and Zero-Knowledge is applied and a transaction including the second certificate using the first certificate; and
(C) A method for providing anonymity of personal information in a block chain comprising the step of verifying the transaction by a verification module.
제6항에 있어서, 상기 (A) 단계는,
무작위 디지털 서명(Randomizable Digital Signature)을 이용하여 인증 공개 키 및 인증 비밀 키를 생성하는 단계; 및
상기 BBS서명 프로토콜을 이용하여 상기 인증 비밀 키로 서명함으로써 상기 제1증명서를 생성하는 단계를 포함하는 것을 특징으로 하는 블록체인에서 개인정보의 익명성을 제공하는 방법.
The method of claim 6, wherein (A) step,
generating an authentication public key and an authentication private key using a randomizable digital signature; and
and generating the first certificate by signing with the authentication secret key using the BBS signature protocol.
제7항에 있어서, 상기 (B) 단계는,
상기 제2증명서 생성 시 BBS서명 프로토콜을 이용하는 것을 특징으로 하는 블록체인에서 개인정보의 익명성을 제공하는 방법.
The method of claim 7, wherein (B) step,
A method for providing anonymity of personal information in a block chain, characterized in that the BBS signature protocol is used when generating the second certificate.
KR1020210167688A 2021-03-02 2021-11-29 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain KR20210151020A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210167688A KR20210151020A (en) 2021-03-02 2021-11-29 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain
KR1020220103133A KR20220122940A (en) 2021-03-02 2022-08-18 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210027629A KR20210027332A (en) 2021-03-02 2021-03-02 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain
KR1020210167688A KR20210151020A (en) 2021-03-02 2021-11-29 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020210027629A Division KR20210027332A (en) 2021-03-02 2021-03-02 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020220103133A Division KR20220122940A (en) 2021-03-02 2022-08-18 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain

Publications (1)

Publication Number Publication Date
KR20210151020A true KR20210151020A (en) 2021-12-13

Family

ID=75148628

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020210027629A KR20210027332A (en) 2021-03-02 2021-03-02 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain
KR1020210167688A KR20210151020A (en) 2021-03-02 2021-11-29 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain
KR1020220103133A KR20220122940A (en) 2021-03-02 2022-08-18 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain
KR1020230079828A KR20230098755A (en) 2021-03-02 2023-06-21 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020210027629A KR20210027332A (en) 2021-03-02 2021-03-02 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020220103133A KR20220122940A (en) 2021-03-02 2022-08-18 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain
KR1020230079828A KR20230098755A (en) 2021-03-02 2023-06-21 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain

Country Status (1)

Country Link
KR (4) KR20210027332A (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102563944B1 (en) * 2021-05-17 2023-08-08 주식회사 에이씨엘 Method and apparatus for providing used cell phone rental service
KR102594355B1 (en) * 2021-05-17 2023-10-26 주식회사 에이씨엘 Method and apparatus for providing non-face-to-face used goods transaction service
KR102598227B1 (en) * 2021-09-24 2023-11-06 주식회사 올리브텍 Data management method for guaranteeing the integrity of large capacity content using distributed storage with immutability and blockchain

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101837169B1 (en) 2016-12-29 2018-03-09 주식회사 코인플러그 Method for providing secret electronic voting service on the basis of blockchain with merkle tree structure by using zero knowledge proof algorithm, and voting coin minter server, voting token distributor server and voting supporting server using the same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101837169B1 (en) 2016-12-29 2018-03-09 주식회사 코인플러그 Method for providing secret electronic voting service on the basis of blockchain with merkle tree structure by using zero knowledge proof algorithm, and voting coin minter server, voting token distributor server and voting supporting server using the same

Also Published As

Publication number Publication date
KR20230098755A (en) 2023-07-04
KR20210027332A (en) 2021-03-10
KR20220122940A (en) 2022-09-05

Similar Documents

Publication Publication Date Title
TWI725655B (en) Method, apparatus and system for program execution and data proof for executing a sub-logic code within a trusted execution environment
US11895248B2 (en) Method and apparatus for generating blockchain transaction
EP3465578B1 (en) Methods and systems to establish trusted peer-to-peer communications between nodes in a blockchain network
Zhang et al. BTCAS: A blockchain-based thoroughly cross-domain authentication scheme
KR20210151020A (en) Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain
JP2023504535A (en) Identity (ID) based public key generation protocol
US20100154040A1 (en) Method, apparatus and system for distributed delegation and verification
Abraham et al. Privacy-preserving eID derivation for self-sovereign identity systems
KR20200081101A (en) Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain
Li et al. P-cft: A privacy-preserving and crash fault tolerant consensus algorithm for permissioned blockchains
Kim et al. Can we create a cross-domain federated identity for the industrial Internet of Things without Google?
Polychronaki et al. Identity Management in Internet of Things with Blockchain
Ozcelik et al. Cryptorevocate: A cryptographic accumulator based distributed certificate revocation list
Dumas et al. LocalPKI: An interoperable and IoT friendly PKI
KR20240074718A (en) Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain
Song et al. Traceable revocable anonymous registration scheme with zero-knowledge proof on blockchain
Dai et al. Dizar: An Architecture of Distributed Public Key Infrastructure Based on Permissoned Blockchain
Karagiannidis et al. Report on Tools for Secure Ledger Systems
Gagged et al. Improved secure dynamic bit standard technique for a private cloud platform to address security challenges
Palomar et al. A protocol for secure content distribution in pure p2p networks
Kravitz Exploration and impact of blockchain-enabled adaptive non-binary trust models
Kurbatov et al. Decentralized Identification and Certification System
Banerjee et al. A Holistic Blockchain Architecture for IoT Systems: Design Considerations and Challenges
Kumari et al. Decentralized and Multi-Authority based Public Key Infrastructure for Sharing Electronic Health Records
Danda et al. SSH-DAuth: Secret Sharing based Decentralized OAuth using Decentralized Identifier

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application