KR20230100129A - Chaincode-based file integrity verification system - Google Patents

Chaincode-based file integrity verification system Download PDF

Info

Publication number
KR20230100129A
KR20230100129A KR1020210189753A KR20210189753A KR20230100129A KR 20230100129 A KR20230100129 A KR 20230100129A KR 1020210189753 A KR1020210189753 A KR 1020210189753A KR 20210189753 A KR20210189753 A KR 20210189753A KR 20230100129 A KR20230100129 A KR 20230100129A
Authority
KR
South Korea
Prior art keywords
chaincode
hyperledger
client
peer
explorer
Prior art date
Application number
KR1020210189753A
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 KR1020210189753A priority Critical patent/KR20230100129A/en
Publication of KR20230100129A publication Critical patent/KR20230100129A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Bioethics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 체인코드 기반 파일 무결성 검증 시스템에 관한 것으로, 더 상세하게는 클라이언트, 하이퍼레저 익스플로러, 채널, 노드 및 피어를 포함하는 플랫폼에서 파일의 무결성을 검증하고, 보증인 피어의 검증 단계에서 체인코드의 문제점이 발생한 경우 배포를 중지하는, 체인코드 기반 파일 무결성 검증 시스템에 관한 것이다.
본 발명의 실시 예에 따르면, 클라이언트, 하이퍼레저 익스플로러, 채널, 노드 및 피어를 포함하는 체인코드 기반 파일 무결성 검증 시스템에 있어서: 상기 클라이언트가 하이퍼레저 익스플로러에 계정접속 요청하는 단계; 상기 클라이언트가 인가된 클라이언트인 경우 인가된 클라이언트로 권한을 할당하는 단계; 상기 인가된 클라이언트가 채널에 대한 블록 요청을 피어로 송신하는 단계; 상기 피어가 노드로 해시를 공유하는 단계; 및 상기 노드가 클라이언트로 결과를 출력하는 단계;를 포함하는, 체인코드 기반 파일 무결성 검증 시스템을 제공한다.
The present invention relates to a chaincode-based file integrity verification system, and more particularly, to verify the integrity of a file on a platform including a client, hyperledger explorer, channel, node, and peer, and to verify the integrity of a chaincode in the verification step of a guarantor peer. It is about a chaincode-based file integrity verification system that stops deployment in case of problems.
According to an embodiment of the present invention, in a chaincode-based file integrity verification system including a client, Hyperledger Explorer, channel, node, and peer: the client requesting account access to Hyperledger Explorer; allocating authority to an authorized client when the client is an authorized client; sending, by the authorized client, a block request for a channel to a peer; the peer sharing the hash with the node; and outputting the result to the client by the node.

Description

체인코드 기반 파일 무결성 검증 시스템{Chaincode-based file integrity verification system}Chaincode-based file integrity verification system}

본 발명은 체인코드 기반 파일 무결성 검증 시스템에 관한 것으로, 더 상세하게는 클라이언트, 하이퍼레저 익스플로러, 채널, 노드 및 피어를 포함하는 플랫폼에서 파일의 무결성을 검증하고, 보증인 피어의 검증 단계에서 체인코드의 문제점이 발생한 경우 배포를 중지하는, 체인코드 기반 파일 무결성 검증 시스템에 관한 것이다.The present invention relates to a chaincode-based file integrity verification system, and more particularly, to verify the integrity of a file on a platform including a client, hyperledger explorer, channel, node, and peer, and to verify the integrity of a chaincode in the verification step of a guarantor peer. It is about a chaincode-based file integrity verification system that stops deployment in case of problems.

최근 네트워크 및 하드웨어 기술이 발전하여 블록체인 기술과 보안을 융합하는 연구가 활발히 진행되고 여러 네트워크 기술에 적용되고 있다.Recently, with the development of network and hardware technology, research on convergence of blockchain technology and security is being actively conducted and applied to various network technologies.

본 발명의 실시 예에서는 기존의 블록체인을 활용한 기술을 분석하고 제한된 환경에서 비공개 블록체인을 활용한 파일의 무결성을 검증하는 모델을 제안한다.In the embodiment of the present invention, we propose a model that analyzes existing blockchain technologies and verifies the integrity of files using private blockchains in a limited environment.

제안하는 모델은 비공개 블록체인 플랫폼인 하이퍼레저 패브릭의 체인 코드로 작성하고 비공개 블록체인 통합 관리 플랫폼인 하이퍼레저 익스플로러를 통해 파일의 무결성 검증을 확인할 수 있다. 제안한 모델의 성능을 개발자 관점과 사용자 관점에서 분석했다.The proposed model is written in the chain code of Hyperledger Fabric, a private blockchain platform, and the integrity of the file can be verified through Hyperledger Explorer, a private blockchain integrated management platform. The performance of the proposed model was analyzed from the perspective of developers and users.

1. J. S. Kim, S. C. Kim & N. J. Park. (2021). Blockchain-based Product Carry-in/out Management Mechanism. The Journal of Korean Institute of Information Technology, 19(1), 131-138.1. J. S. Kim, S. C. Kim & N. J. Park. (2021). Blockchain-based Product Carry-in/out Management Mechanism. The Journal of Korean Institute of Information Technology, 19(1), 131-138. 2. J. H. Kim. (2020). Fault Tolerance Enhancement for Distributed Storage Blockchain Systems. Journal of the Korea Institute of Information and Communication Engineering, 1558-1561.2. J. H. Kim. (2020). Fault Tolerance Enhancement for Distributed Storage Blockchain Systems. Journal of the Korea Institute of Information and Communication Engineering, 1558-1561. 3. S. H. Lee & K. C. Kim. (2021). Proposal of Blockchain Structure with Real-Time Capability Suitable for 5G-Based Service Provision. The Journal of Korean Institute of Communications and Information Sciences, 46(1), 102-113.3. S. H. Lee & K. C. Kim. (2021). Proposal of Blockchain Structure with Real-Time Capability Suitable for 5G-Based Service Provision. The Journal of Korean Institute of Communications and Information Sciences, 46(1), 102-113. 4. M. Y. Kim, H. S. Lee & J. D. Kim. (2020). A Blockchain Copyright Information Registration System for Content Protection of Online Sharing Platforms. Journal of the Korea Institute of Information and Communication Engineering, 24(12), 1718-1721.4. M. Y. Kim, H. S. Lee & J. D. Kim. (2020). A Blockchain Copyright Information Registration System for Content Protection of Online Sharing Platforms. Journal of the Korea Institute of Information and Communication Engineering, 24(12), 1718-1721. 5. J. K. Lee. (2018). A Docker Container Case Study for Implementing Block Chain Distributed General Ledger. Korean Computers and Accounting Review, 16(1), 27-41.5. J. K. Lee. (2018). A Docker Container Case Study for Implementing Block Chain Distributed General Ledger. Korean Computers and Accounting Review, 16(1), 27-41. 6. J. C. Yeom, Y. S. Lee & In-Ho Ra. (2019). Proposal of PublicKey_Based Node Authentication Method for Secure Private Block Chain Environment. Korea Institute Of Communication Sciences, 466-467.6. J. C. Yeom, Y. S. Lee & In-Ho Ra. (2019). Proposal of PublicKey_Based Node Authentication Method for Secure Private Block Chain Environment. Korea Institute Of Communication Sciences, 466-467. 7. W. S. Park, D. Y. Hwang & K. H. Kim. (2018). A Study on Certificate Issuance System Using Private Block chain. Korea Institute Of Communication Sciences, 1192-1193.7. W. S. Park, D. Y. Hwang & K. H. Kim. (2018). A Study on Certificate Issuance System Using Private Block chain. Korea Institute Of Communication Sciences, 1192-1193. 8. B. J. Cho. (2019). BOTP(Blockchain One Time Password) System. The Korean Institute of Information Scientists and Engineers, 1221-1223.8. B.J. Cho. (2019). BOTP(Blockchain One Time Password) System. The Korean Institute of Information Scientists and Engineers, 1221-1223. 9. H. G. Kim, S. H. Jung. (2020). IoT Authentication System Using Blockchain and TOTP. Journal of the Korea Society of Computer and Information, 25(2), 113-122.9. H. G. Kim, S. H. Jung. (2020). IoT Authentication System Using Blockchain and TOTP. Journal of the Korea Society of Computer and Information, 25(2), 113-122. 10. G. Y. Jung. (2018). A Study on the legal nature of cryptocurrency and a smart contract. Korea commercial law association, 109-150.10. G. Y. Jung. (2018). A Study on the legal nature of cryptocurrency and a smart contract. Korea commercial law association, 109-150. 11. H. K. Kwon, H. J. Kim, K. B. Jang & H. J. Seo. (2020). An Improvement of missing pet rescue system based on Smart Contract. Journal of the Korea Institute of Information and Communication Engineering, 24(6), 786-794.11. H. K. Kwon, H. J. Kim, K. B. Jang & H. J. Seo. (2020). An Improvement of missing pet rescue system based on Smart Contract. Journal of the Korea Institute of Information and Communication Engineering, 24(6), 786-794. 12. J. Y. Kim, J. H. Kwon, S. I. Jang, Y. K. Kim, M. J. Son & M. H. Kim. (2020). A Method to reduce transaction endorsement time based on network latency in Hyperledger Fabric. Proceedings of the Korean Society of Computer Information Conference, 28(2), 41-44.12. J. Y. Kim, J. H. Kwon, S. I. Jang, Y. K. Kim, M. J. Son & M. H. Kim. (2020). A Method to reduce transaction endorsement time based on network latency in Hyperledger Fabric. Proceedings of the Korean Society of Computer Information Conference, 28(2), 41-44. 13. S. I. Jang, J. H. Kwon, J. Y. Kim, C. H. Im & M. H. Kim. (2020). Study on Chaincode execution cost base endorsing peer routing method to reduce endorsement time in Hyperledger Fabric. Proceedings of the Korean Society of Computer Information Conference, 28(2), 37-40.13. S. I. Jang, J. H. Kwon, J. Y. Kim, C. H. Im & M. H. Kim. (2020). Study on Chaincode execution cost base endorsing peer routing method to reduce endorsement time in Hyperledger Fabric. Proceedings of the Korean Society of Computer Information Conference, 28(2), 37-40. 14. K. H. Lee. (2018). A Study on the type of BlockChain(Ethereum, Hyperledger Fabric). Proceedings of Symposium of the Korean Institute of communications and Information Sciences, 442-443.14. K. H. Lee. (2018). A Study on the type of Blockchain (Ethereum, Hyperledger Fabric). Proceedings of Symposium of the Korean Institute of communications and Information Sciences, 442-443. 15. J. K. Lee & H. Y. Choi. (2018). A Case Study of Using Hyperledger Composer based on Docker Container for Implementing Block Chain Distributed Ledger. Korean Computers and Accounting Review, 16(2), 1-18.15. J. K. Lee & H. Y. Choi. (2018). A Case Study of Using Hyperledger Composer based on Docker Container for Implementing Block Chain Distributed Ledger. Korean Computers and Accounting Review, 16(2), 1-18.

본 발명이 해결하고자 하는 과제는, 비공개 블록체인을 활용하여 파일의 무결성을 검증하는 체인코드 기반 파일 무결성 검증 시스템을 제공하는 것이다.The problem to be solved by the present invention is to provide a chaincode-based file integrity verification system that verifies the integrity of a file using a private blockchain.

본 발명의 실시 예에 따르면, 클라이언트, 하이퍼레저 익스플로러, 채널, 노드 및 피어를 포함하는 체인코드 기반 파일 무결성 검증 시스템에 있어서: 상기 클라이언트가 하이퍼레저 익스플로러에 계정접속 요청하는 단계; 상기 클라이언트가 인가된 클라이언트인 경우 인가된 클라이언트로 권한을 할당하는 단계; 상기 인가된 클라이언트가 채널에 대한 블록 요청을 피어로 송신하는 단계; 상기 피어가 노드로 해시를 공유하는 단계; 및 상기 노드가 클라이언트로 결과를 출력하는 단계;를 포함하는, 체인코드 기반 파일 무결성 검증 시스템을 제공한다.According to an embodiment of the present invention, in a chaincode-based file integrity verification system including a client, Hyperledger Explorer, channel, node, and peer: the client requesting account access to Hyperledger Explorer; allocating authority to an authorized client when the client is an authorized client; sending, by the authorized client, a block request for a channel to a peer; the peer sharing the hash with the node; and outputting the result to the client by the node.

본 발명의 실시 예에 따르면, 비공개 블록체인을 이용하여 파일의 무결성을 검증할 수 있다.According to an embodiment of the present invention, the integrity of a file can be verified using a private blockchain.

또한, 하이퍼레저 익스플로러를 이용함으로써 블록체인 관련 배경지식이 없는 초보자도 쉽게 블록체인 네트워크를 구축할 수 있다.In addition, by using the Hyperledger Explorer, even beginners without blockchain-related background can easily build a blockchain network.

도 1 은 본 발명의 실시 예에 따른 체인코드 기반 파일 무결성 검증 시스템의 네트워크 다이어그램이다.
도 2 는 본 발명의 실시 예에 따른 체인코드 기반 파일 무결성 검증 시스템의 동작 흐름도이다.
도 3 및 도 4 는 본 발명의 실시 예에 따른 체인코드 기반 파일 무결성 검증 시스템의 플랫폼 구성을 나타낸 도면이다.
도 5 는 본 발명의 실시 예에 따른 체인코드 기반 파일 무결성 검증 시스템의 체인코드 View를 나타낸 도면이다.
도 6 은 본 발명의 실시 예에 따른 체인코드 기반 파일 무결성 검증 시스템의 체인코드 개발 분석 과정을 나타낸 도면이다.
1 is a network diagram of a chaincode-based file integrity verification system according to an embodiment of the present invention.
2 is an operational flowchart of a chaincode-based file integrity verification system according to an embodiment of the present invention.
3 and 4 are diagrams showing a platform configuration of a chaincode-based file integrity verification system according to an embodiment of the present invention.
5 is a diagram showing a chaincode view of a chaincode-based file integrity verification system according to an embodiment of the present invention.
6 is a diagram illustrating a chaincode development and analysis process of a chaincode-based file integrity verification system according to an embodiment of the present invention.

이하, 본 문서의 다양한 실시예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 문서의 실시예의 다양한 변경(modifications), 균등물 (equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.Hereinafter, various embodiments of this document will be described with reference to the accompanying drawings. However, it should be understood that this is not intended to limit the technology described in this document to specific embodiments, and includes various modifications, equivalents, and/or alternatives of the embodiments of this document. . In connection with the description of the drawings, like reference numerals may be used for like elements.

본 문서에서, "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.In this document, expressions such as "comprises" or "may include" indicate the presence of corresponding features (eg, components such as numerical values, functions, operations, or parts), and do not exclude the presence of additional features. don't

본 문서에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.In this document, expressions such as “A or B,” “at least one of A and/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together. . For example, “A or B,” “at least one of A and B,” or “at least one of A or B” (1) includes at least one A, (2) includes at least one B, Or (3) may refer to all cases including at least one A and at least one B.

본 문서에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시 예들을 배제하도록 해석될 수 없다.Terms used in this document are only used to describe a specific embodiment, and may not be intended to limit the scope of other embodiments. Singular expressions may include plural expressions unless the context clearly dictates otherwise. Terms used herein, including technical or scientific terms, may have the same meaning as commonly understood by a person of ordinary skill in the technical field described in this document. Among the terms used in this document, terms defined in a general dictionary may be interpreted as having the same or similar meaning as the meaning in the context of the related art, and unless explicitly defined in this document, an ideal or excessively formal meaning. not be interpreted as In some cases, even terms defined in this document cannot be interpreted to exclude the embodiments of this document.

본 발명의 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.Of course, various modifications can be made by those skilled in the art without departing from the gist of the present invention claimed in the claims of the present invention, and these modifications are the technical spirit of the present invention or It should not be understood individually from the perspective.

또한, 본 발명에 따르는 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드(프로그램)로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함할 수 있다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 분산 컴퓨터 시스템에 의하여 분산 방식으로 실행될 수 있는 컴퓨터가 읽을 수 있는 코드를 저장할 수 있다.In addition, the method according to the present invention can be implemented as a computer readable code (program) on a computer readable recording medium. A computer-readable recording medium may include all types of recording devices storing data that can be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices, and also those implemented in the form of carrier waves (for example, transmission through the Internet). include In addition, the computer-readable recording medium may store computer-readable codes that can be executed in a distributed manner by distributed computer systems connected through a network.

1. 체인코드 기반의 검증 모델1. Chaincode-based verification model

종래 하이퍼레저 패브릭 구축 방법에 따르면, 하이퍼레저와 도커 이미지, 그리고 컴포즈를 통해 플레이그라운즈에 접속하여 다양한 비즈니스 모델링을 설정한다. 이후, 새로운 모델링을 추가하고 편집하기 위해서는 관리자가 항상 웹을 통해 로그인하고 관리해야한다. 이러한 기존 방식은 기업 내 특정 파일의 공유가 발생할 때, 매번 관리자를 통해 인증하고 조회를 해야 하는 번거로움과 불필요한 시간적 소모가 생긴다.According to the conventional Hyperledger fabric construction method, various business modeling is set by accessing Playgrounds through Hyperledger, Docker image, and Compose. Afterwards, in order to add and edit new modeling, the administrator must always log in and manage through the web. This existing method causes the hassle and unnecessary time consumption of having to authenticate and search through an administrator each time a specific file is shared within the company.

이러한 문제점을 해결하기 위해 본 발명의 실시 예에서는 체인코드 기반의 검증 모델을 제안한다. In order to solve this problem, an embodiment of the present invention proposes a chaincode-based verification model.

이하, 체인코드 기술을 이용한 파일 무결성 검증 모델을 하이퍼레저 패브릭과 하이퍼레저 익스플로러로 분류하여 모델을 구축한다.Hereinafter, the file integrity verification model using chaincode technology is classified into Hyperledger Fabric and Hyperledger Explorer to build the model.

1.1. 시스템 구성1.1. system configuration

파일 무결성 검증 시스템은 노드 그룹, 하이퍼레저 패브릭 플랫폼, 피어, 하이퍼레저 익스플로러로 구성된다.The file integrity verification system consists of node groups, Hyperledger Fabric platform, peers, and Hyperledger Explorer.

관리자는 체인코드를 개발하여 클라이언트 애플리케이션(Client App)으로 실행한 후, 보증인 피어(Endorser Peer)로 송신한다.The administrator develops the chaincode, executes it as a client application, and sends it to the endorser peer.

보증인 피어는 상기 체인코드를 확인한 후, 채널(Channel)을 통해 전체 피어(Peer)에게 배포한다.After verifying the chaincode, the guarantor peer distributes it to all peers through the channel.

채널에 연결된 오더러 노드(Orderer Node)는 트랜잭션을 수신하여 블록체인을 구성한다.An orderer node connected to the channel receives the transaction and constructs a blockchain.

오더러 노드는 트랜잭션을 블록에 적용하고 하이퍼레저 패브릭 네트워크의 피어 노드에게 송신한다.The orderer node applies the transaction to the block and sends it to peer nodes in the Hyperledger Fabric network.

피어 노드는 다른 피어에게 브로드캐스트 요청을 송신한다.Peer nodes send broadcast requests to other peers.

요청을 수신받은 피어들은 블록 업데이트를 진행하고 원장을 동기화한다. 이와 같은 과정은 도 1 및 도 2에 도시된 바와 같다.Peers receiving the request proceed with block updates and synchronize the ledger. This process is as shown in FIGS. 1 and 2 .

하이퍼레저 익스플로러(Hyperledger Explorer)는 클라이언트가 익스플로러에 계정접속 요청을 하면 인증(Authentication)을 통해 계정승인을 하고 인가된 사용자로 권한을 할당한다. 클라이언트는 권한이 할당된 계정을 통해 채널에 대한 블록 요청을 송신(View)한다.Hyperledger Explorer, when a client requests account access to the explorer, approves the account through authentication and assigns authority to the authorized user. The client transmits (views) a block request for a channel through an account to which authority is assigned.

클라이언트는 블록에 대한 요청을 수신받은 피어를 노드, 채널 및 익스플로러를 통해 확인할 수 있다.The client can check the peer that received the block request through the node, channel, and explorer.

1.2. 시스템 모델1.2. system model

하이퍼레저 패브릭은 체인코드 기술을 이용하여 X.509 Certificate의 무결성을 블록체인으로 검증하고 설계한다.Hyperledger Fabric uses chaincode technology to verify and design the integrity of the X.509 certificate on the blockchain.

본 발명의 실시 예에서는 검증 프로세스를 구현하기 위해, OS는 Microsoft 의 Windows 10 Pro 20H2, Environment는 Oracle 의 VirtualBox, Platform은 Hyperlger와 Docker, Dev language는 Google의 Go language를 사용하였으며, 개발 의존성에 의해 Node JS, Git을 사용하였다.In the embodiment of the present invention, in order to implement the verification process, Microsoft's Windows 10 Pro 20H2 was used as the OS, Oracle's VirtualBox was used as the environment, Hyperlger and Docker were used as the platform, and Google's Go language was used as the Dev language. JS and Git were used.

1.2.1 플랫폼 구축1.2.1 Building the platform

하이퍼레저 패브릭을 구축하기 전에 의존성을 위해 필요한 가상화 플랫폼, 다양한 프로그램들을 사전 설치한다.Before building Hyperledger Fabric, the necessary virtualization platform and various programs for dependencies are pre-installed.

프로그램 패키지인 apt-transport- https는 암호화 통신을 위한 패키지로 ca-certificates, curl, gnupgagent, software-properties-common과 같이 설치한 다.The program package, apt-transport-https, is a package for encrypted communication and is installed along with ca-certificates, curl, gnupgagent, and software-properties-common.

그리고, 하이퍼레저 패브릭 SDK에서 node.js를 사용하므로 필수 요소로 설치한다.And, since node.js is used in the Hyperledger Fabric SDK, install it as a required element.

본 발명의 실시 예에서는 Go 언어를 기반으로 작성하기 때문에 Go lang을 설치한다.In the embodiment of the present invention, Go lang is installed because it is written based on the Go language.

또한 하이퍼레저 패브릭을 Docker의 가상화 컨테이너에서 구동해야 하고 피어, 오더러 등의 여러 가상화 컨테이너를 구동해야 하므로 Docker Compose도 설치한다.In addition, Docker Compose is also installed because Hyperledger Fabric must be run in Docker's virtualization container and multiple virtualization containers such as peer and orderer must be run.

플랫폼 설치 구성은 Ubuntu Mirror Server와 Docker Mirror Server 그리고 Go lang Mirror Server 순서로 설치한다. 플랫폼 환경 구성은 도 3과 같다.The platform installation configuration is installed in the order of Ubuntu Mirror Server, Docker Mirror Server, and Go lang Mirror Server. The platform environment configuration is shown in FIG. 3 .

Mirror Server는 기본 플랫폼 구축을 위해 Ubuntu Mirror Server, Docker Mirror Server, Go lang Mirror Server, Npm Mirror Server 5단계로 구성된다.Mirror Server consists of 5 steps: Ubuntu Mirror Server, Docker Mirror Server, Go lang Mirror Server, and Npm Mirror Server to build the basic platform.

Mirror Server는 네트워크 노드의 복제본으로 다양한 프로토콜로 접근하여 네트워크 및 파일공유 서비스를 지원한다.Mirror Server is a duplicate of a network node and supports network and file sharing services by accessing it through various protocols.

Mirror Server에서, 다양한 프로그램과의 호환성을 위해 우분투를 업데이트한다. 기존의 설치된 프로그램을 자동으로 색인하여 업데이트를 진행한다. 이후, 우분투 서버의 가상화를 위해 도커 프로그램을 설치하고 GPG Key 인증 절차를 마무리한다. 그 다음, 하이퍼레저 패브릭의 체인코드 개발을 위해 Go 언어를 다운로드후 설치를 진행한다. 마지막으로 하이퍼레저 패브릭의 환경 구성을 위해 node js의 패키지 관리자를 설치한다.In Mirror Server, Ubuntu is updated for compatibility with various programs. It automatically indexes existing installed programs and updates them. Afterwards, install the Docker program for virtualization of Ubuntu server and complete the GPG Key authentication process. Next, download and install the Go language for hyperledger fabric chaincode development. Finally, install the node js package manager to configure the Hyperledger Fabric environment.

상기한 설치 과정을 리눅스 명령어와 함께 다시 설명하면 아래와 같다.The above installation process is explained again with Linux commands as follows.

① Ubuntu Mirror Server Ubuntu Mirror Server를 통해 현재 Ubuntu Platform을 최신 버전으로 업데이트 및 업그레이드를 하고 필수 프로그램을 다운로드 후 설치한다.① Ubuntu Mirror Server Update and upgrade the current Ubuntu Platform to the latest version through Ubuntu Mirror Server, and download and install essential programs.

$apt update && apt upgrade$apt update && apt upgrade

$apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common nodejs$apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common nodejs

② Docker Mirror Server APT 패키지에 대한 키관리 프로그램으로 다운로드를 검증하기 위해 GPG Key 인증절차를 완료한다. 인증 결과 "OK" 일 경우, docker repository 등록을 진행한다.② Complete the GPG Key authentication procedure to verify the download with the key management program for the Docker Mirror Server APT package. If the authentication result is "OK", proceed with registering the docker repository.

$curl -fsSL$curl -fsSL

https://download.docker.com/linux/ubuntu/gp g|sudo apt-key add -add-apt-repository \https://download.docker.com/linux/ubuntu/gp g|sudo apt-key add -add-apt-repository \

"deb [arch=amd64]"deb [arch=amd64]

https://download.docker.com/linux/ubuntu \https://download.docker.com/linux/ubuntu \

$(lsb_release -cs) \$(lsb_release -cs) \

stable"stable"

apt-get update 명령어를 통해 기존의 어플리케이션을 업데이트하고 sudo apt-get install 명령어로 도커의 필수 구성 파일을 다운로드 후 설치한다. 그리고 systemctl 명령어로 설치된 도커 프로세스의 서비스를 관리자 권한으로 실행한다. 명령어는 다음과 같다.Update the existing application with the apt-get update command, and download and install required configuration files for Docker with the sudo apt-get install command. And run the service of the Docker process installed with the systemctl command with administrator privileges. The command is:

$ apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io$ apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io

$ sudo usermod -a -G docker $USER$ sudo usermod -a -G docker $USER

$ sudo systemctl start docker$ sudo systemctl start docker

$ sudo systemctl enable docker$ sudo systemctl enable docker

Hyperledger fabric에서는 다중 컨테이너를 사용하고 관리하기 때문에 자동으로 어플리케이션을 관리하고 공유할 수 있는 Docker Compose 도구를 다운로드 후설치한다. 그리고 Docker Compose에서는 YAML 파일로 서비스를 정의하고 짧은 명령어로 다중 컨테이너를 실행하거나 종료할 수 있다. Docker Compose 설치 명령어는 다음과 같다.Since Hyperledger fabric uses and manages multiple containers, download and install the Docker Compose tool that can automatically manage and share applications. And in Docker Compose, you can define services in YAML files and run or terminate multiple containers with short commands. The Docker Compose installation command is as follows:

$ curl-L$ curl -L

"https://github.com/docker/compose/releases/ download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o/usr/local/bin/ docker-compose"https://github.com/docker/compose/releases/ download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o/usr/local/bin/ docker- compose

Docker compose를 설치를 성공적으로 완료했을 경우, compose의 파일에 대한 실행 권한을 chmod 명령어로 부여한다.When the Docker compose installation is successfully completed, the execution permission for the compose files is granted with the chmod command.

$ chmod +x/usr/local/bin/docker-compose$ chmod +x /usr/local/bin/docker-compose

③ Golang Mirror Server 하이퍼레저 패브릭 체인코드 개발을 위해 구글의 Go lang 프로그래밍 개발 언어를 추가로 설치한다. 설치 명령어는 다음과 같다.③ Golang Mirror Server Google's Go lang programming development language is additionally installed for Hyperledger Fabric chaincode development. The installation command is as follows.

$ wget https://golang.org/dl/go1.15.5.linux-amd64.tar.gz$ wget https://golang.org/dl/go1.15.5.linux-amd64.tar.gz

$ tar-xzvf go1.15.5.linux-amd64.tar.gz$ tar-xzvf go1.15.5.linux-amd64.tar.gz

$ sudo mv go//usr/local$ sudo mv go//usr/local

Go lang 프로그래밍 개발 언어 설치를 성공적으로 완료했을 경우, 운영체제 전역에서 호출할 수 있도록 환경 변수 등록 작업을 한다. 환경변수는 bashrc 파일 검색하여 해당 파일의 마지막에 다음 명령어를 추가한다.When the Go lang programming development language installation is successfully completed, register environment variables so that they can be called throughout the operating system. Search the bashrc file for environment variables and add the following command to the end of the file.

export GOPATH=/usr/local/goexport GOPATH=/usr/local/go

export PATH=$PATH:$GOPATH/binexport PATH=$PATH:$GOPATH/bin

④ Npm Mirror Server 하이퍼레저 패브릭의 SDK는 nodejs와 javascript 실행 가능 환경에서 사용하도록 설계되었기 때문에 nodejs 의 패키지 관리자로 npm(node package manager)을 설치한다. 설치 명령어는 다음과 같다.④ Npm Mirror Server Hyperledger Fabric's SDK is designed to be used in a nodejs and javascript execution environment, so install npm (node package manager) as a nodejs package manager. The installation command is as follows.

$ curl-L https://npmjs.org/install.sh$ curl -L https://npmjs.org/install.sh

1.2.2 하이퍼레저 패브릭 구축1.2.2 Building Hyperledger Fabric

하이퍼레저 패브릭 구축은 하이퍼레저 패브릭 Mirror Sever, 하이퍼레저 패브릭 Channel, 하이퍼레저 Explorer, Chaincode로 구성된다. 먼저 우분투 플랫폼 에서 하이퍼레저 패브릭 Mirror Sever를 통해 하이퍼레저 패브릭의 이미지를 다운로드 후, Docker 프로그램을 통해 실행한다. Docker는 각각의 가상화 이미지를 Docker Compose 프로그램으로 관리한다. 이후 하이 퍼레저 패브릭의 내부 구성은 Orderer Node, Peer, Channel, Client App, Endorser Peer이고 Channel 로 통신한다. Channel은 Hyperledger Explorer의 View를 통해 사용자가 블록체인의 상태를 확인한다. 체인코드는 관리자가 설계에 따라서 작성하는 블록체인의 부분이다. 플랫폼 구축은 도 4와 같다.Hyperledger Fabric construction consists of Hyperledger Fabric Mirror Sever, Hyperledger Fabric Channel, Hyperledger Explorer, and Chaincode. First, after downloading the image of Hyperledger Fabric through the Hyperledger Fabric Mirror Server on the Ubuntu platform, execute it through the Docker program. Docker manages each virtualized image with the Docker Compose program. Afterwards, the internal components of Hyperledger Fabric are Orderer Node, Peer, Channel, Client App, and Endorser Peer, and communicate through Channel. Channel allows users to check the state of the blockchain through the View of Hyperledger Explorer. Chaincode is the part of the blockchain that administrators write according to the design. The platform construction is as shown in FIG. 4 .

하이퍼레저 패브릭 환경 구축은 Mirror Server, Channel 생성, 하이퍼레저 Explorer, 체인코드 개발, View의 5단계로 진행된다.Building the Hyperledger Fabric environment proceeds in five steps: Mirror Server, Channel creation, Hyperledger Explorer, chaincode development, and View.

첫 번째로 Mirror Server는 외부의 하이퍼레저 패브릭 이미지를 다운로드 후, Docker를 통해 실행한다. 두 번째로 Docker를 통해 블록체인 채널을 생성하고 스크립트 파일을 생성한다. 세 번째로 웹 애플리케이션 연동을 위한 하이퍼레저 Explorer를 설치한다. 네 번째로 관리자는 설계에 따라 체인코드언어로 작성하고 배포를 진행한다. 마지막으로 Docker Compose를 통해 하이퍼레저 패브릭을 관리하고 사용자 관점에서 블록체인을 View로 확인한다.First, the Mirror Server downloads an external Hyperledger Fabric image and executes it through Docker. Second, a blockchain channel is created through Docker and a script file is created. Third, install Hyperledger Explorer for web application integration. Fourth, the manager writes in chaincode language according to the design and proceeds with distribution. Finally, it manages Hyperledger Fabric through Docker Compose and checks the blockchain as a view from the user's point of view.

① 하이퍼레저 패브릭 Mirror Server 하이퍼레저 패브릭 Mirror Server의 파일 주소를 통해 하이퍼레저 패브릭 2.2 버전을 다운로드 후 설치를 진행한다. 만약 다른 버전을 설치할 경우, bash-s x.y.z 명령어로 버전별로 설치할 수 있다. 명령어는 다음과 같다.① Hyperledger Fabric Mirror Server Download Hyperledger Fabric 2.2 version through the file address of the Hyperledger Fabric Mirror Server and proceed with the installation. If you want to install different versions, you can install them by version with bash-s x.y.z command. The command is:

$curl-sSL https://bit.ly/2ysbOFE | bash-s 2.2.0$curl-sSL https://bit.ly/2ysbOFE | bash-s 2.2.0

② Channel 생성 하이퍼레저 패브릭 2.2의 네트워크 자동 설정을 위해 test-network 폴더에서 "up createChannel" 명령어로 채널을 생성하고 스크립트 파일(network.sh)파일을 실행한다. 명령어는 다음과 같다.② Channel creation For automatic network configuration of Hyperledger Fabric 2.2, create a channel with the "up createChannel" command in the test-network folder and execute the script file (network.sh). The command is:

$./network.sh up create$./network.sh up create

Channel Docker의 명령어 중에서 "ps-a" 명령어로 현재 도커 에서 실행중인 프로세스와 컨테이너를 확인할 수 있다.Among Channel Docker's commands, you can use the "ps-a" command to check the processes and containers currently running in Docker.

만약 컨테이너가 동작하지 않는다면 스크립트파일 (network.sh)를 "down" 명령어로 실행 중지하고 다시 "up" 명령어로 컨테이너를 실행한다. 명령어는 다음과 같다.If the container does not operate, stop the execution of the script file (network.sh) with the "down" command and run the container again with the "up" command. The command is:

$docker ps-a$docker ps -a

③ 하이퍼레저 Explorer 하이퍼레저 Explorer는 블록과 네트워크 정보, 그리고 체인코드 등의 다양한 목록을 호출하고 배포, 실행하는 웹 애플리케이션 프로그램으로 하이퍼레저 패브릭과 연동하여 블록의 흐름과 노드를 간편하게 웹으로 모니터링 할 수 있다. 하이퍼레저 Explorer 설치를 위한 명령어는 다음과 같다.③ Hyperledger Explorer Hyperledger Explorer is a web application program that calls, distributes, and executes various lists such as block, network information, and chaincode. It is linked with Hyperledger Fabric to easily monitor the flow of blocks and nodes on the web. . The command to install Hyperledger Explorer is as follows.

$ wget$wget

https://raw.githubusercontent.com/hyperledge r/blockchain-explorer/master/examples/net1/config.jsonhttps://raw.githubusercontent.com/hyperledge r/blockchain-explorer/master/examples/net1/config.json

$ wget$wget

https://raw.githubusercontent.com/hyperledge r/blockchain-explorer/master/examples/net1/co n n e c t i o n - p r o f i l e / f i r s t - n e t w o r k . j s o n - P connection-profilehttps://raw.githubusercontent.com/hyperledge r/blockchain-explorer/master/examples/net1/co n n e c t i o n - p r o f i l e / f i r s t - n e t w o r k . j s o n -P connection-profile

$ wget$wget

https://raw.githubusercontent.com/hyperledge r/blockchain-explorer/master/docker-compose.yamlhttps://raw.githubusercontent.com/hyperledge r/blockchain-explorer/master/docker-compose.yaml

하이퍼레저 Explorer를 설치하기 전, 하이퍼레저 패브릭에서 스크립트파일 실행과정에서 생성된 인증서 폴더를 하이퍼레저 Explorer와 연동을 위해 explorer 폴더로 복사한다.Before installing Hyperledger Explorer, copy the certificate folder created during the script file execution process in Hyperledger Fabric to the explorer folder for interworking with Hyperledger Explorer.

$ c p - r ~ / f a b r i c - s a m p l e s / t e s t - n e t w o r k / organizations / ~/explorer "gedit" 명령어를 통해 docker-compose.yaml파일을 실행하여 볼륨의 설정을 변경한다.$ c p - r ~ / f a b r i c - s a m p l e s / t e s t - n e t w o r k / organizations / ~/explorer Execute the docker-compose.yaml file with the "gedit" command to change the volume settings.

$ gedit docker-compose.yaml$ gedit docker-compose.yaml

beforebefore

volumes:volumes:

--

./examples/net1/config.json:/opt/explorer/app/platform/fabric/config.json./examples/net1/config.json:/opt/explorer/app/platform/fabric/config.json

--

./examples/net1/connection-profile:/opt/explorer/app/platform/fabric/connection-profile./examples/net1/connection-profile:/opt/explorer/app/platform/fabric/connection-profile

- ./examples/net1/crypto:/tmp/crypto- ./examples/net1/crypto:/tmp/crypto

- walletstore:/opt/explorer/wallet- walletstore:/opt/explorer/wallet

afterafter

volumes:volumes:

--

./config.json:/opt/explorer/app/platform/fabric/config.json./config.json:/opt/explorer/app/platform/fabric/config.json

--

./connection-profile:/opt/explorer/app/platform/fabric/connection-profile./connection-profile:/opt/explorer/app/platform/fabric/connection-profile

- ./organizations:/tmp/crypto- ./organizations:/tmp/crypto

- walletstore:/opt/wallet- walletstore:/opt/wallet

본 발명의 실시 예에서 구축되는 서버는 Broken Authentication 취약점을 인식하여 하이퍼레저 Explorer의 보안 설정을 한다.The server built in the embodiment of the present invention recognizes the Broken Authentication vulnerability and configures the security of Hyperledger Explorer.

"gedit connection-profile/first-network.json" 명령어를 사용하여 json 언어로 작성된 first- network 의 설정정보를 편집한다. 그 후 "id", "password" 부분을 관리자 아이디, 비밀번호로 변경한다. 명령어는 다음과 같다.Use the "gedit connection-profile/first-network.json" command to edit the configuration information of first-network written in json language. After that, change the "id" and "password" parts to the administrator's ID and password. The command is:

$ gedit connection-profile/first-network.json$ gedit connection-profile/first-network.json

# Default username and password# Default username and password

"id": "exploreradmin","id": "exploreradmin",

"password": "exploreradminpw""password": "exploreradminpw"

체인코드는 Golang, node.js 또는 Java로 작성된 프로그램으로 하이퍼레저 패브릭에서 스마트 컨트랙트를 구현하고 개발한다. Docker 컨테이너에서 단독으로 실행되고 원장을 관리하며 권한이 주어지면 체인코드가 다른 체인코드를 호출하여 접근할 수 있다. 먼저 체인코드 환경변수를 등록하여 호출이 가능하도록 구성을 변경한다.Chaincode is a program written in Golang, node.js or Java that implements and develops smart contracts on Hyperledger Fabric. It runs standalone in a Docker container, manages the ledger, and, given permission, chaincodes can call other chaincodes to access them. First, register the chaincode environment variable to change the configuration so that it can be called.

# peer# peer

export PATH=${PWD}/../bin:${PWD}:$PATHexport PATH=${PWD}/../bin:${PWD}:$PATH

# core.yaml#core.yaml

export FABRIC_CFG_PATH=$PWD/../config/export FABRIC_CFG_PATH=$PWD/../config/

export CORE_PEER_TLS_ENABLED=trueexport CORE_PEER_TLS_ENABLED=true

export CORE_PEER_LOCALMSPID ="Org1MSP"export CORE_PEER_LOCALMSPID ="Org1MSP"

export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/or ganizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crtexport CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/or ganizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt

export CORE_PEER_MSPCONFIGPATH=${PWD}/organi zations/peerOrganizations/org1.example.com/us ers/Admin@org1.example.com/msp export CORE_PEER_ADDRESS=localhost:7051export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/us ers/Admin@org1.example.com/msp export CORE_PEER_ADDRESS=localhost:7051

④ 체인코드 개발 체인코드 개발을 위해서 관리자는 프로그램 설계에 따라 변수 A에 args[0]을 저장하고, 변수 Value에 args[1] 을 저장한다. 그리고 변수 Length는 파라미터의 길이를 저장한다. 만약 파라미터의 길이가 2가 아니면 Incorrect 문자열을 출력하고 Value값이 NULL이면 Error를 리턴 한다. Value의 값이 정상이면 해시를 조회한 후 리턴한다. 그리고 PutHash 함수의 파라미터로 전달한다. Input 변수는 PutHash 함수의 결과를 저장하고 만약 PutHash의 함수 결과가 NULL일 경우, Error를 출력하고 아닐 경우 Success를 리턴 한다. 체인코드의 의사코드는 다음과 같다.④ Chaincode development For chaincode development, the manager stores args[0] in variable A and args[1] in variable Value according to the program design. And the variable Length stores the length of the parameter. If the length of the parameter is not 2, an Incorrect string is output, and if the Value value is NULL, an error is returned. If the value of Value is normal, the hash is retrieved and returned. And pass it as a parameter to the PutHash function. The input variable stores the result of the PutHash function, and if the result of the PutHash function is NULL, an Error is output, otherwise it returns Success. The pseudocode of the chaincode is as follows:

A ← args[0]A ← args[0]

Value ← args[1]Value ← args[1]

Input ← errorInput ← error

Length ← argsLength ← args

if not Length = 2:if not Length = 2:

·················· RETURN Incorrect;··········· RETURN Incorrect;

if Value = NULL:if Value = NULL:

······················ RETURN Error;·············· RETURN Error;

RETURN ValueRETURN Value

Input = PutHash(A,Value)Input = PutHash(A,Value)

if not Input = NULL:if not Input = NULL:

··················· RETURN Error;····· RETURN Error;

RETURN Success;RETURN Success;

⑤ View (도 5)⑤ View (Fig. 5)

./network.sh deployCC./network.sh deployCC

하이퍼레저 Explorer의 기본설정을 한 뒤, "docker- compose up" 명령어로 도커 컴포즈를 실행한다. 만약 도커의 구성을 편집했거나 체인코드를 변경 했을 경우 "docker-compose down" 명령어로 도커 컴포즈를 중지한 후 재시작한다.After configuring the basic settings of Hyperledger Explorer, run Docker Compose with the "docker-compose up" command. If you edited the Docker configuration or changed the chaincode, stop Docker Compose with the "docker-compose down" command and then restart it.

$ docker-compose up-d$ docker-compose up -d

$ docker-compose down-v$ docker-compose down -v

2. 시스템 모델 분석2. System model analysis

시스템 모델 분석은 체인코드 관리자 관점과 체인코드 사용자 관점으로 분류하여 동작 과정을 분석한다.The system model analysis analyzes the operation process by classifying it into a chaincode administrator's point of view and a chaincode user's point of view.

체인 코드를 개발하고 보증인 피어를 통해 인증 받고 오더러 노드로 배포를 진행한다.Develop the chain code, get certified through the guarantor peer, and proceed with distribution to orderer nodes.

개발된 체인코드는 파일의 해시값을 등록하고 조회한다.The developed chaincode registers and retrieves the hash value of the file.

체인코드 등록 및 조회는 인가된 사용자만 가능하고 외부의 연결은 통제된다.Chaincode registration and inquiry are available only to authorized users, and external connections are controlled.

인가된 사용자는 하이퍼레저 패브릭 익스플로러 플랫폼으로 부터 인증된 파일 해시 정보 여부를 조회한다.The authorized user inquires whether the file hash information has been authenticated from the Hyperledger Fabric Explorer platform.

2.1 체인코드의 개발 분석2.1 Development Analysis of Chaincode

기존의 방식에서는 하이퍼레저와 도커 이미지, 그리고 컴포즈를 통해 비즈니스 모델링을 설정한다. 이후, 새로운 모델링을 추가하고 편집하기 위해 로그인하고 주기적으로 관리한다. 이러한 기존 방식은 매번 인증하고 조회를 해야 하는 불필요한 시간적 소모가 생긴다.In the existing method, business modeling is set up through Hyperledger, Docker images, and Compose. After that, log in and manage periodically to add and edit new modeling. Such an existing method causes unnecessary time consuming to authenticate and search each time.

본 발명의 실시 예에 따른 검증 모델에서 체인코드의 개발 분석은 체인코 드, 클라이언트 애플리케이션, 보증인 피어, 피어노드, 오더러 노드 5단계로 구성된다.Chaincode development analysis in the verification model according to the embodiment of the present invention consists of five steps: chaincode, client application, guarantor peer, peer node, and orderer node.

보증인 피어는 클라이언트 애플리케이션에서 트랜잭션 요청을 수신하면 트랜 잭션을 검증한다. 검증내용은 요청된 세부 정보와 요청자의 권한을 확인한다. 그리고 체인코드를 실행하고 결과를 사전 테스트한다. 사전 테스트 단계에서는 분산원 장과 블록을 업데이트하지 않는다. 사전 테스트 결과 정상적인 방법을 통해 거래가 발생하지 않을 경우 해당 거래를 차단한다.When the guarantor peer receives a transaction request from a client application, it verifies the transaction. Verification verifies the requested details and the requester's authority. Then run the chaincode and pre-test the results. Distributed ledger chapters and blocks are not updated during the pre-test phase. As a result of the preliminary test, if the transaction does not occur through normal methods, the transaction is blocked.

오더러 피어는 하이퍼레저 패브릭 네트워크의 핵심으로 블록체인 네트워크 전체에서 동일한 분산원장 상태를 유지한다. 그리고 권한에 따라 블록을 생성하고 브로드 캐스트를 통해 피어에게 송신한다. 피어 노드는 분산원장 업데이트를 수신하고 다른 개별 피어에게 브로드 캐스트로 원장 업데이트를 진행한다. 이와 같은 과정은 도 6과 같다.The orderer peer is the heart of the Hyperledger Fabric network, maintaining the same distributed ledger state across the blockchain network. Then, blocks are created according to authority and transmitted to peers through broadcast. Peer nodes receive distributed ledger updates and broadcast ledger updates to other individual peers. This process is shown in FIG. 6 .

본 발명의 실시 예에 따른 체인코드 개발 분석 과정에서는, 첫 번째로 하이퍼레저 패브릭의 관리자 관점에서 동작원리에 대해 분석한다. 블록체인 관리자는 프로그램 설계에 따라 체인코드를 작성하여 클라이언트 애플리케이션으로 배포를 요청한다. 그 후 클라이언트 애플리케이션은 보증인 피어로 수신받은 체인코드를 검증하고 트랜잭션을 진행한다.In the chaincode development analysis process according to an embodiment of the present invention, first, the operation principle is analyzed from the perspective of the manager of the Hyperledger Fabric. The blockchain manager writes chaincode according to the program design and requests distribution to the client application. After that, the client application verifies the chaincode received by the guarantor peer and proceeds with the transaction.

트랜잭션을 수신받은 오더러 노드는 블록체인을 구성하고 피어노드에게 송신한다. 피어노드는 브로드캐스트로 모든 노드를 최신 블록으로 업데이트하고 분산원장을 동기화한다.The orderer node receiving the transaction constructs a blockchain and transmits it to the peer node. Peer nodes broadcast to update all nodes with the latest block and synchronize the distributed ledger.

① 블록체인 관리자는 클라이언트 애플리케이션으로 체인코드 배포요청을 송신한다.① The blockchain manager sends a chaincode distribution request to the client application.

② 체인코드를 수신받은 클라이언트 애플리케이션은 보증인 피어로 전체에게 배포하고 클라이언트 애플리케이션으로부터 요청에 대한 정보를 확인하여 트랜잭션 한다. 그리고 체인코드를 실행하고 클라이언트 애플리케이션으로 응답을 송신한다.② The client application that received the chaincode distributes it to the whole as a guarantor peer, confirms the request information from the client application, and transacts. It then executes the chaincode and sends a response to the client application.

③ 보증인 피어는 트랜잭션 상태에 대한 성공이나 실패를 반환한다.③ The guarantor peer returns success or failure for the transaction status.

④ 클라이언트 애플리케이션은 성공한 트랜잭션을 오더러 노드로 송신하여 블록체인을 구성한다. 오더러 노드는 트랜잭션을 블록에 적용하고 하이퍼레저 패브릭 네트워크의 피어 노드에게 송신한다.④ The client application constructs a blockchain by sending successful transactions to the orderer node. The orderer node applies the transaction to the block and sends it to peer nodes in the Hyperledger Fabric network.

⑤ 수신받은 피어 노드는 다른 피어에게 브로드캐스트 요청을 송신한다. 브로드 캐스트 요청을 수신받은 피어들은 최신 블록으로 업데이트를 진행하고 분산 원장을 동기화한다.⑤ The received peer node transmits a broadcast request to other peers. Peers receiving the broadcast request proceed with updating to the latest block and synchronize the distributed ledger.

2.2 체인코드의 사용자 분석2.2 User Analysis of Chaincode

하이퍼레저 패브릭의 사용자 관점에서 동작원리에 대해 분석한다. 사용자는 블록체인 업무를 위해 하이퍼레저 익스플로러로 구성된 웹 서버로 접속한다. 그 후 사용자는 로그인 정보를 입력 후 검증시간을 대기한다. 검증 시간은 네트워크 상태에 따라 매번 달라질 수 있다. 검증이 끝난 인가된 사용자는 하이퍼레저 익스플로러 뷰로 블록체인의 정보를 확인한다.Analyzing the operating principles of Hyperledger Fabric from the user's point of view. Users connect to the web server configured with Hyperledger Explorer for blockchain work. After that, the user inputs login information and waits for the verification time. Verification time may vary each time depending on network conditions. After verification, the authorized user checks the information of the blockchain with the Hyperledger Explorer view.

① 하이퍼레저 익스플로러로 구성된 웹 서버로 사용자는 접속을 요청한다.① A user requests access to a web server composed of Hyperledger Explorer.

② 접속 요청을 수신 받은 하이퍼레저 익스플로러는 설정 정보와 데이터베이스 정보를 조회하여 인가된 사용자 여부를 확인한다.② Upon receiving the connection request, Hyperledger Explorer searches the setting information and database information to confirm whether or not the user is authorized.

③ 인가된 사용자일 경우, 체인코드 네트워크망에 다이렉트 요청은 불가하며 하이퍼레저 익스플로러를 통한 대리인으로 피어 노드에게 정보를 요청을 송신한다.③ In the case of an authorized user, direct requests to the chaincode network are not allowed, and requests for information are sent to peer nodes as agents through Hyperledger Explorer.

④ 수신 받은 피어 노드는 블록 정보를 하이퍼레저 익스플로러 뷰로 송신하여 사용자가 확인할 수 있다.④ The received peer node transmits the block information to the Hyperledger Explorer view so that the user can check it.

Claims (1)

클라이언트, 하이퍼레저 익스플로러, 채널, 노드 및 피어를 포함하는 체인코드 기반 파일 무결성 검증 시스템에 있어서:
상기 클라이언트가 하이퍼레저 익스플로러에 계정접속 요청하는 단계;
상기 클라이언트가 인가된 클라이언트인 경우 인가된 클라이언트로 권한을 할당하는 단계;
상기 인가된 클라이언트가 채널에 대한 블록 요청을 피어로 송신하는 단계;
상기 피어가 노드로 해시를 공유하는 단계; 및
상기 노드가 클라이언트로 결과를 출력하는 단계;를 포함하는, 체인코드 기반 파일 무결성 검증 시스템
In a chaincode-based file integrity verification system including clients, hyperledger explorers, channels, nodes and peers:
the client requesting account access to Hyperledger Explorer;
allocating authority to an authorized client when the client is an authorized client;
sending, by the authorized client, a block request for a channel to a peer;
the peer sharing the hash with the node; and
A chaincode-based file integrity verification system comprising; outputting the result to the client by the node;
KR1020210189753A 2021-12-28 2021-12-28 Chaincode-based file integrity verification system KR20230100129A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210189753A KR20230100129A (en) 2021-12-28 2021-12-28 Chaincode-based file integrity verification system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210189753A KR20230100129A (en) 2021-12-28 2021-12-28 Chaincode-based file integrity verification system

Publications (1)

Publication Number Publication Date
KR20230100129A true KR20230100129A (en) 2023-07-05

Family

ID=87158830

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210189753A KR20230100129A (en) 2021-12-28 2021-12-28 Chaincode-based file integrity verification system

Country Status (1)

Country Link
KR (1) KR20230100129A (en)

Non-Patent Citations (15)

* Cited by examiner, † Cited by third party
Title
1. J. S. Kim, S. C. Kim & N. J. Park. (2021). Blockchain-based Product Carry-in/out Management Mechanism. The Journal of Korean Institute of Information Technology, 19(1), 131-138.
10. G. Y. Jung. (2018). A Study on the legal nature of cryptocurrency and a smart contract. Korea commercial law association, 109-150.
11. H. K. Kwon, H. J. Kim, K. B. Jang & H. J. Seo. (2020). An Improvement of missing pet rescue system based on Smart Contract. Journal of the Korea Institute of Information and Communication Engineering, 24(6), 786-794.
12. J. Y. Kim, J. H. Kwon, S. I. Jang, Y. K. Kim, M. J. Son & M. H. Kim. (2020). A Method to reduce transaction endorsement time based on network latency in Hyperledger Fabric. Proceedings of the Korean Society of Computer Information Conference, 28(2), 41-44.
13. S. I. Jang, J. H. Kwon, J. Y. Kim, C. H. Im & M. H. Kim. (2020). Study on Chaincode execution cost base endorsing peer routing method to reduce endorsement time in Hyperledger Fabric. Proceedings of the Korean Society of Computer Information Conference, 28(2), 37-40.
14. K. H. Lee. (2018). A Study on the type of BlockChain(Ethereum, Hyperledger Fabric). Proceedings of Symposium of the Korean Institute of communications and Information Sciences, 442-443.
15. J. K. Lee & H. Y. Choi. (2018). A Case Study of Using Hyperledger Composer based on Docker Container for Implementing Block Chain Distributed Ledger. Korean Computers and Accounting Review, 16(2), 1-18.
2. J. H. Kim. (2020). Fault Tolerance Enhancement for Distributed Storage Blockchain Systems. Journal of the Korea Institute of Information and Communication Engineering, 1558-1561.
3. S. H. Lee & K. C. Kim. (2021). Proposal of Blockchain Structure with Real-Time Capability Suitable for 5G-Based Service Provision. The Journal of Korean Institute of Communications and Information Sciences, 46(1), 102-113.
4. M. Y. Kim, H. S. Lee & J. D. Kim. (2020). A Blockchain Copyright Information Registration System for Content Protection of Online Sharing Platforms. Journal of the Korea Institute of Information and Communication Engineering, 24(12), 1718-1721.
5. J. K. Lee. (2018). A Docker Container Case Study for Implementing Block Chain Distributed General Ledger. Korean Computers and Accounting Review, 16(1), 27-41.
6. J. C. Yeom, Y. S. Lee & In-Ho Ra. (2019). Proposal of PublicKey_Based Node Authentication Method for Secure Private Block Chain Environment. Korea Institute Of Communication Sciences, 466-467.
7. W. S. Park, D. Y. Hwang & K. H. Kim. (2018). A Study on Certificate Issuance System Using Private Block chain. Korea Institute Of Communication Sciences, 1192-1193.
8. B. J. Cho. (2019). BOTP(Blockchain One Time Password) System. The Korean Institute of Information Scientists and Engineers, 1221-1223.
9. H. G. Kim, S. H. Jung. (2020). IoT Authentication System Using Blockchain and TOTP. Journal of the Korea Society of Computer and Information, 25(2), 113-122.

Similar Documents

Publication Publication Date Title
JP7000442B2 (en) Systems and methods for providing interfaces for blockchain cloud services
US9432350B2 (en) System and method for intelligent workload management
US8955037B2 (en) Access management architecture
JP2021533448A (en) Systems and methods to support SQL-based rich queries in hyperlegger fabric blockchain
JP2021534512A (en) DAG-based transaction processing methods and systems in distributed ledgers
US11245577B2 (en) Template-based onboarding of internet-connectible devices
US20080046434A1 (en) Centralized management of technical records across an enterprise
US7904508B2 (en) Providing functionality to client services by implementing and binding contracts
KR20230100129A (en) Chaincode-based file integrity verification system
US11379434B2 (en) Efficient and automatic database patching using elevated privileges
Berdonces Bonelo OpenID Connect Client Registration API for Federated Cloud Platforms
CN112823501A (en) System and method for determining data connections between software applications
US20240071633A1 (en) Peer-to-Peer Secure and Scalable Network Architecture
Komulainen Developing a web API with. NET Core on an AWS Lambda platform
Rao et al. Building permissioned blockchain networks using hyperledger fabric
Affan et al. Towards Integrated Access Control for Software Product Line Engineering Web Development
Gore Cloud Migration of RPAT Tool
Chaganti et al. Cross-Node Synchronization
CN114820180A (en) Chain code endorsement method and device
Paz et al. Deploying the Application