KR20240074718A - 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
KR20240074718A
KR20240074718A KR1020240060612A KR20240060612A KR20240074718A KR 20240074718 A KR20240074718 A KR 20240074718A KR 1020240060612 A KR1020240060612 A KR 1020240060612A KR 20240060612 A KR20240060612 A KR 20240060612A KR 20240074718 A KR20240074718 A KR 20240074718A
Authority
KR
South Korea
Prior art keywords
certificate
blockchain
personal information
module
authentication
Prior art date
Application number
KR1020240060612A
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 KR1020240060612A priority Critical patent/KR20240074718A/en
Publication of KR20240074718A publication Critical patent/KR20240074718A/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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Finance (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)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 블록체인 플랫폼에서 트랜잭션에 포함된 개인정보를 보호하기 위한 서명 및 검증 기술로서, 제1증명서를 생성하는 인증모듈, 인증모듈에서 생성된 제1증명서를 이용하여 개인정보가 생략되며 영지식(Zero-Knowledge)이 적용된 제2증명서 및 제2증명서가 포함된 트랜잭션을 생성하는 노드, 노드에서 생성된 트랜잭션을 검증하는 검증모듈을 포함한다.The present invention is a signature and verification technology for protecting personal information included in transactions on a blockchain platform. By using an authentication module that generates a first certificate, and the first certificate generated by the authentication module, personal information is omitted and zero knowledge is used. It includes a second certificate to which (Zero-Knowledge) is applied, a node that generates a transaction containing the second certificate, and a verification module that verifies the transaction created in the node.

Description

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

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

블록체인은 2009년 등장한 비트코인에서 실용화된 개념으로, P2P 네트워크상에서 공유 원장을 통해 해킹을 방지하면서 데이터를 저장하는 데이터베이스 기술이다.Blockchain is a concept 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 개념을 제시하면서, 블록체인 기술은 플랫폼 영역으로 확장되기 시작하였다.Afterwards, as Ethereum presented the concept of smart contracts, which are existing digital commands, and DApps that provide services based on them, 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 personal information. Due to the nature of distributed ledger technology, 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, the anonymity of personal information in Internet of Things devices is not guaranteed.

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

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

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

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

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

또한, 상기 노드는 BBS서명 프로토콜을 이용하여 영지식이 적용된 제2증명서를 생성하는 것을 특징으로 할 수 있다.Additionally, 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 further include an auditing module that tracks the transaction using a public key for auditing and a private key for auditing.

또한, 폐기가 필요한 상기 제2증명서를 폐기하고, 상기 제2증명서의 폐기 사실을 노드에 전달하는 폐기모듈을 더 포함하는 것을 특징으로 할 수 있다.In addition, it may further include a discard module that discards the second certificate that needs to be discarded and transmits the fact of revocation of the second certificate to the node.

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

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

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

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

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

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

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

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

도 1을 참조하면, 블록체인의 블록은 최종 데이터를 제공하는 하나의 단위로, 헤더(Header)와 바디(Body)로 구성된다. 블록 중 유효성 검증 및 합의 알고리즘을 거쳐 허가된 블록만이 블록체인에 등록된다. 각 블록체인 플랫폼마다 정의된 데이터 구조는 상이하지만, 일반적으로 블록 헤더(Header)에는 이전 블록의 해쉬(Hash)값, MRH(Merkle Root Hash)값 등과 같이 블록에 대한 정보, 검증에 필요한 정보, 및 네트워크에 필요한 정보들을 담고 있다. 블록 바디(Body)는 트랜잭션이 담겨져 있다.Referring to Figure 1, a blockchain block is a unit that provides final data and consists of a header and body. Among blocks, only blocks approved through validation and consensus algorithms are registered in the blockchain. The data structure defined for each blockchain platform is different, but in general, the block header contains information about the block, information necessary for verification, such as the hash value of the previous block and the MRH (Merkle Root Hash) value, 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 in a P2P manner, and is a database technology that provides immortality for blocks that cannot be forged or altered. As the concept of smart contracts at the logic level and DApp at the application level were included in blockchain, it developed into a platform technology capable of developing, distributing, and managing services in addition to database functions.

블록체인 구조는 퍼미션 구조(Permissioned)와, 비퍼미션 구조(Permissionless)로 구분될 수 있다.Blockchain structure can be divided into permissioned and non-permissioned structures.

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

비퍼미션 구조는 컨소시엄(Consortium) 구조 또는 개인(Private) 구조의 블록체인으로, 제한적으로 검증된 노드만이 트랜잭션 유효성을 검증하고, 합의 알고리즘을 수행하는 구조이다. 컨소시엄 구조의 경우 검증된 노드들이 동등한 위치에서 합의 알고리즘을 수행한다. 개인(Private) 구조의 경우 하나의 집단(Enterprise)이 모든 것을 담당하는 완전 중앙집중식 구조이다. 개인(Private) 구조는 합의 알고리즘에 참여하는 노드의 수가 적고, 검증된 노드들만이 참여할 수 있기 때문에, 공개(Public) 구조보다 트랜잭션 처리 속도가 월등히 뛰어나다. 대표적으로는 R3 Corda, Hyperledger-Fabric 등이 있다.The non-permission structure is a consortium or private blockchain in which only verified nodes verify transaction validity and perform the consensus algorithm. In the case of a consortium structure, 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. Because 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 far superior to 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 on who will have authority over a block on a shared ledger to store transaction data on the blockchain. Peers selected by the consensus algorithm register the blocks they create in their ledgers and disseminate them to other peers. Peers who receive a 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. It is written as a digital command and can execute the contents of the contract according to conditions. This had a clear contract outcome based on the conditions, but had the limitation that it could be manipulated due to the nature of digital commands. However, as it is integrated with blockchain, the results of smart contract operations are reflected in the blockchain and cannot be manipulated, making it a core technology of blockchain. Smart contracts serve as the logic layer of a platform that provides blockchain-based services in that they provide Turing completeness while executing the contract according to conditions and can perform processes based on the blockchain. .

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

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

하이퍼레져(Hyperledger)는 리눅스 재단(Linux Foundation)에서 지원하는 표준 블록체인 기술 구현을 목적으로 하는 프로젝트다. 그 중 Fabric은 기업용 블록체인 프레임워크로, 멤버쉽 서비스(Membership Service) 기반 퍼미션 구조의 블록체인 플랫폼이다. 체인코드(Chaincode)라고 불리는 go, java 언어 기반의 스마트 컨트랙트 작성이 가능하며, 네트워크에는 피어(Peer), 주문자(Orderer), MSP(Membership Service Provider) 등 여러 구성 요소들이 있다.Hyperledger is a project aimed at implementing standard blockchain technology supported by the Linux Foundation. Among them, Fabric is an enterprise blockchain framework and is a blockchain platform with a membership service-based permission structure. It is possible to create smart contracts based on go and java languages, called chaincode, and the network has several components such as peers, orderers, and MSP (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. The Number variable stores the index of the block, the PreviousHash variable is the hash value of the previous block header, and the DataHash variable is the MRH (Merkle Root Hash) 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 is simply composed 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. It consists of:

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

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

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

커미터(Committer)는 원장(Ledger)과 이벤트허브(Event-hub)를 가지고 있다. 원장(Ledger)은 블록체인과 로컬데이터베이스(Local Database)로 이루어진 공유 원장이며, 이벤트허브(Event-hub)는 커미터(Committer)로부터 기능을 요청하고, 응답을 받을 때 사용하는 인터페이스(Interface)이다. 클라이언트(Client)로부터 요청받은 쿼리(Query) 명령에 의해 원장(Ledger)의 콘텐츠를 클라이언트(Client)로 반환해주는 기능(read)과, 주문자(Orderer)로부터 전달받은 블록에 대해 유효성 검증을 수행한 후 원장(Ledger)에 저장하는 기능을 수행한다. The committer has a ledger and an event hub. The ledger is a shared ledger consisting of a blockchain and a local database, and the event hub is an interface used to request functions from the committer and receive responses. After performing a function (read) that returns the contents of the ledger to the client by a query command requested from the client, and validation of the block received from the orderer, Performs the function of saving to 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 blockchain and a State Database that tracks and stores the state of the blockchain. Like existing blockchains, it is a ledger that provides immortality that cannot be forged or altered, and contains information about transactions and networks. State Database is a LevelDB-based database composed of key-value based pairs and has the function of recording and tracking the latest state stored in the blockchain. This reduces the time to retrieve state information within the blockchain by avoiding searching 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 an endorsement from the client and performs the function of storing it in the blockchain. First, since the header information of the next block in blockchain varies depending on the order of transactions, the order of endorsements to be registered is ordered. Afterwards, a packaging process is performed to convert it into block form for storage in the blockchain. It plays the role of delivering the created block to peers (transferr, committer) with the ledger in order to reflect the last created block in the ledger of the corresponding channel. The orderer that performs the above function is an essential element of the channel of the Hyperledger-Fabric network. Multiple orderers can exist in one channel, and in this case, the orderer ( Orderers determine the authority 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 permission control in the Hyperledger-Fabric network. It is conceptually divided into four types depending on the required role, such as network, channel, peer, and orderer, and provides access control functions through certificate-based authority. The network MSP controls the authority to perform network management (channel creation, etc.). Channel MSP controls authority for peers within the channel. Peer MSP controls authority for peers in the same way as channel MSP, but applies only to the 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 optionally. It is linked to MSP and performs the role of issuing and managing certificates requested by peers, and provides two types of certificates. Ecert (Enrollment Certificate) is the peer's identifier and is used continuously. Tcert (Transaction Certificate) is used to verify transactions and is disposable.

채널(Channel)은 하이퍼레져-패브릭(Hyperledger-Fabric)의 기본 네트워크 단위로, 각 채널(Channel)은 독립된 블록체인 공유 원장과 체인코드(Chaincode)를 가진다. 채널(Channel) 생성은 네트워크MSP에서 시스템에 대한 권한이 있는 사용자만이 가능하며, 기본적으로 피어(Peer)를 포함한 조직(Organization), 주문자(Orderer) 및 MSP로 구성되어 있다. 즉, 각 채널(Channel)은 하나의 전체 네트워크 내에서 다른 채널(Channel)과는 독립된 파일 시스템을 가진 서브 네트워크이다.Channel is the basic network unit of Hyperledger-Fabric, and each channel has an independent blockchain shared ledger and chaincode. Channel creation is possible only for users with system permissions at the network MSP, and is basically composed of an organization including peers, orderer, and MSP. In other words, each channel is a subnetwork with a file system that is independent from 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)에 반영된다.Hyperledger-Fabric's chaincode is a smart contract concept based on the go and java languages. However, unlike Ethereum's smart contract, which has a binary source code registered on the blockchain, verified peers registered on the blockchain network have a chaincode. Chaincode is divided into system chaincode and general chaincode. The system chaincode is a chaincode that performs network system processes and 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 endorser at the request of users. It can be created, modified, etc., and is maintained on a channel basis. The result of executing a general chaincode is one transaction. The chaincode proposed by the client is executed and verified (signed) by the endorser and sent to the client in the form of an endorsement. Afterwards, the client checks the endorsement policy, which is the transaction execution condition, and transmits it to the orderer. The transaction, which is the result of the transmitted chaincode, goes through the ordering and packaging process by the orderer, and the created block is sent to the endorser and committer for validation. ) After performing the process, it is reflected in the ledger.

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

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

확인(Validation)는 원장(Ledger)를 가지고 있는 피어에서 수행되는 과정으로, 주문자(Orderer)로부터 전송받은 블록에 대한 유효성 검증 과정이다.Validation is a process performed by the peer that holds the ledger, and is a validation process for the block transmitted from the 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 DApp and Chaincode to provide blockchain services. It supports go, node.js, and java languages, and services such as the function of obtaining access to applications through MSP and the function of suggesting transactions (Chaincode) are possible.

하이퍼레져-패브릭(Hyperledger-Fabric)의 DApp의 동작 과정 및 블록체인 연동 구조는 기존의 블록체인 플랫폼과 유사하다. HTTP 기반의 프로토콜을 사용하며, SDK tool을 통해 체인코드(Chaincode)에서 제공하는 기능을 기반으로 DApp에서 서비스를 개발, 배포한다.The operation process and blockchain interconnection structure of Hyperledger-Fabric's DApp are similar to existing blockchain platforms. It uses an HTTP-based protocol and develops and distributes services in DApp based on the functions provided by Chaincode through the 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 the certifier has confidential information even if the certifier does not disclose the confidential information. In other words, the validity of the user's personal information can be verified even if the user's personal information is not disclosed. Zero knowledge must meet the following three basic conditions: Completeness means that if a statement is true, an honest certifier should be able to convince an honest verifier of this fact. Soundness means that if a statement is false, no dishonest certifier can convince an honest verifier that the statement is true. Zero knowledge means that if a sentence is true, the verifier should know nothing other than the truth/false of the sentence.

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

영지식 기반의 익명성을 제공하는 서명(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: CL (Camenish-Lysyanskaya) signature and BBS (Boneh-Boyen-Shacham) signature. Both techniques use bilinear groups. The above signatures do not transmit a message signed with a private key, but can prove that the user has the secret key by providing the calculated value required by the verifier.

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 SDH (Strong Diffie-Hellman). Since then, it has been improved in terms of efficiency and is now based on the LRSW (Lysyanskaya-Rivest-Sahai-Wolf) assumption. Unlike the SDH assumption, LRSW supports independent discrete-logarithm according to the attributes of the message, and has the characteristic of being more flexible. CL signature can prove that the user has the secret key by providing the calculated value required by the verifier without going through the authentication process of sending a message signed with the secret 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 called DLIN (Decision LINear). It is a zero-knowledge-based signature technique, identical to CL signatures, and provides anonymity. The Proof of Knowledge protocol, which verifies the presence or absence of information, has features that are more efficient than CL signatures.

무작위 디지털 서명(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. However, many 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 features 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 for each message m in CL signature. signature for message m
Figure pat00001
When this exists, random
Figure pat00002
select a value,
Figure pat00003
Randomizability is provided by creating a new signature by calculating .

본 발명의 실시예에 따른 개인정보의 익명성을 제공하는 블록체인 시스템(100)은 익명성 제공이 가능한 블록체인 플랫폼에 관한 기술이다. 이 실시예는 퍼미션 구조(Permissioned)의 블록체인 플랫폼상에서 개인정보가 담긴 트랜잭션에 대한 익명성을 제공한다.The blockchain system 100, which provides 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 blockchain networks. For efficient processing of transaction creation, the key generation protocol of Randomizable Digital Signature is used, and the BBS signature protocol 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, and tracking a certificate containing the personal information of the node 110, and attaches attributes, which are personal information in the certificate. ) provides anonymity for.

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

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

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

노드(110)는 다양하게 실시될 수 있다. 이 실시예가 IoT(Internet of Thing) 환경에 적용된다면, 노드(110)는 개별 IoT센서장치가 될 수 있다.Node 110 may be implemented in various ways. If this embodiment is applied to an IoT (Internet of Things) 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 of the authentication module 120.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

증명서 폐기 요청은 인증모듈(120), 폐기모듈(180), 해당 증명서(Certificate)의 노드(110)만이 가능하다. 검증모듈(140)은 폐기에 대한 요청 권한이 없다.Requests for certificate revocation can only be made 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 authority to request disposal.

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

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

이 실시예의 피어(Peer)는 증명서(Certificate)를 등록(또는 폐기)하기 위해 인증모듈(120)로 요청하는 기능과, 트랜잭션에 대해 서명 및 검증을 위해 증명 서비스 제공모듈(122)로 요청하는 블록체인의 참여 노드(110)이다.The peer in this embodiment has a function of requesting the authentication module 120 to register (or discard) a certificate, and a block requesting the certification service providing module 122 to sign and verify a transaction. This is the 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 in the previously described embodiment.

증명 서비스 제공모듈(Certificate Service Provider, 122)는 피어로부터 전송 받은 서명 및 검증 요청을 암호화부에 전달한다. 증명 서비스 제공모듈(122)은 검증모듈(140)의 기능과 서명자(Signer)의 역할을 동시에 수행한다.The certificate service provider (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) 기반의 키 생성, 서명, 발행, 증명, 폐기, 추적 등에 대한 기능을 제공하는 라이브러리 모듈이다.Crypto Library Module (124) is a library module that provides functions for zero-knowledge-based key generation, signature, issuance, proof, disposal, and tracking.

도면을 참조하여 블록체인 플랫폼 적용 단계부터 익명성 제공 단계까지의 동작 프로토콜에 대해 설명한다.Referring to the drawing, the operation protocol from the blockchain platform application stage to the anonymity provision stage is explained.

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

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

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

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

이어서, 본 발명의 실시예에 따른 블록체인에서 개인정보의 익명성을 제공하는 방법을 설명한다.Next, a method for providing anonymity of personal information in blockchain 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 a first certificate (S120), and the node 110 uses the first certificate to omit personal information and zero-knowledge. It includes a step of generating the applied second certificate and a transaction including the second certificate (S140), and a step of the verification module 140 verifying the transaction (S160).

S120 단계는 세부적으로, 무작위 디지털 서명(Randomizable Digital Signature)을 이용하여 인증 공개 키 및 인증 비밀 키를 생성하는 단계(S122) 및 BBS서명 프로토콜을 이용하여 인증 비밀 키로 서명함으로써 제1증명서를 생성하는 단계(S124)를 포함할 수 있다.In detail, step S120 includes generating an authentication public key and an authentication secret key using a random digital signature (S122) and generating a first certificate by signing with an authentication secret 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 blockchain system 100 was built using an embodiment of the present invention, and it was confirmed whether normal operation was possible while maintaining anonymity.

실험.Experiment.

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

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

서명 생성은 노드(110)가 트랜잭션을 생성할 때마다 수행된다. 이는 트랜잭션 병목과 밀접한 연관을 가지게 된다. 도 12를 참조하면, 한 개의 새로운 서명의 생성 및 검증에는 약 92.77ms의 추가적인 시간 비용이 소모된다. 서명 생성 과정과 검증 과정은 하나의 트랜잭션이 처리되기까지 소요되는 서비스 응답 속도를 지연시키는 단점이 있다.Signature generation is performed each time node 110 creates a transaction. This is closely related to transaction bottlenecks. Referring to Figure 12, generating and verifying one new signature consumes an additional time cost of approximately 92.77ms. The signature creation 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 memory based on Map or Index data structures, but do not require signatures for duplicate requested attributes.
Figure pat00005
Implemented to meet time complexity.

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

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

100 : 블록체인 시스템 110 : 노드
120 : 인증모듈 122 : 증명 서비스 제공모듈
124 : 암호화모듈 140 : 검증모듈
160 : 감사모듈 180 : 폐기모듈
100: Blockchain system 110: Node
120: Authentication module 122: Certification service provision module
124: Encryption module 140: Verification module
160: Audit module 180: Disposal module

Claims (8)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020240060612A KR20240074718A (en) 2021-03-02 2024-05-08 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain

Applications Claiming Priority (3)

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
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
KR1020240060612A KR20240074718A (en) 2021-03-02 2024-05-08 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
KR1020230079828A Division 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

Publications (1)

Publication Number Publication Date
KR20240074718A true KR20240074718A (en) 2024-05-28

Family

ID=75148628

Family Applications (5)

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
KR1020240060612A KR20240074718A (en) 2021-03-02 2024-05-08 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain

Family Applications Before (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

Country Status (1)

Country Link
KR (5) KR20210027332A (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112865983B (en) * 2021-04-09 2024-06-07 杭州云象网络技术有限公司 Method and system for replacing alliance chain organization certificate
KR102594355B1 (en) * 2021-05-17 2023-10-26 주식회사 에이씨엘 Method and apparatus for providing non-face-to-face used goods transaction service
KR102563944B1 (en) * 2021-05-17 2023-08-08 주식회사 에이씨엘 Method and apparatus for providing used cell phone rental 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
KR102649940B1 (en) * 2022-11-29 2024-03-22 부산대학교 산학협력단 Operation method and device for a blockchain-based location-based service that does not require delivery of location information using zero-knowledge proof

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
KR20210151020A (en) 2021-12-13

Similar Documents

Publication Publication Date Title
US11651362B2 (en) Method and system for zero-knowledge and identity based key management for decentralized applications
KR20240074718A (en) Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain
Zhang et al. A group signature and authentication scheme for blockchain-based mobile-edge computing
CN111797159A (en) Information management and access control in a database
KR20090015026A (en) Peer-to-peer contact exchange
KR20040055674A (en) Method and architecture to provide client session failover
Li et al. Decentralized public key infrastructures atop blockchain
Ouaddah A blockchain based access control framework for the security and privacy of IoT with strong anonymity unlinkability and intractability guarantees
Li et al. A Blockchain‐Based Public Auditing Protocol with Self‐Certified Public Keys for Cloud Data
Abraham et al. Privacy-preserving eID derivation for self-sovereign identity systems
Ghaffari et al. Identity and access management using distributed ledger technology: A survey
KR20200081101A (en) Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain
Rathee et al. A self-sovereign identity management system using blockchain
Riad et al. A blockchain‐based key‐revocation access control for open banking
WO2020113546A1 (en) Privacy protection and identity management method and system for multi-mode identifier network
Khurana et al. Reasoning about joint administration of access policies for coalition resources
CN117528516A (en) Cross-chain identity management method and system
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
Mittal et al. A three-phase framework for secure storage and sharing of healthcare data based on blockchain, IPFS, proxy re-encryption and group communication
Bakhtina et al. A decentralised public key infrastructure for X-Road
Noh et al. PyRos: A State Channel‐Based Access Control System for a Public Blockchain Network
Sunil Kumar et al. A Data Privacy Approach Using Shamir’s Secret Scheme in Permissioned Blockchain
Piechotta et al. A secure dynamic collaboration environment in a cloud context
Persiano et al. A secure and private system for subscription-based remote services

Legal Events

Date Code Title Description
A107 Divisional application of patent