[go: up one dir, main page]

KR102532319B1 - Method of operating multi-channel node based on cloud virtual machine using blockchain and system thereof - Google Patents

Method of operating multi-channel node based on cloud virtual machine using blockchain and system thereof Download PDF

Info

Publication number
KR102532319B1
KR102532319B1 KR1020220159840A KR20220159840A KR102532319B1 KR 102532319 B1 KR102532319 B1 KR 102532319B1 KR 1020220159840 A KR1020220159840 A KR 1020220159840A KR 20220159840 A KR20220159840 A KR 20220159840A KR 102532319 B1 KR102532319 B1 KR 102532319B1
Authority
KR
South Korea
Prior art keywords
virtual machine
channel
blockchain
node
based multi
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020220159840A
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 KR1020220159840A priority Critical patent/KR102532319B1/en
Application granted granted Critical
Publication of KR102532319B1 publication Critical patent/KR102532319B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • H04L41/0897Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/102Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 클라우드 가상머신을 기반으로 다중 채널 노드를 운용하는 시스템 및 그 방법에 관한 것이다.
일 실시예에 따른 본 발명의 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법은, 클라우드 서버 상에 존재하는 복수의 가상머신(Virtual Machine)에 대하여, 각 가상머신 별로 하나 이상의 채널을 할당하는 단계 및 동일한 채널에 속하는 가상머신들 간에 소정의 블록체인 프로세스를 수행하는 단계를 포함하고, 상기 가상머신은 블록체인 시스템에서 검증을 수행하는 참여 노드로 기능할 수 있다.
The present invention relates to a system and method for operating a multi-channel node based on a cloud virtual machine.
A cloud virtual machine-based multi-channel node operating method using a blockchain according to an embodiment of the present invention allocates one or more channels to each virtual machine for a plurality of virtual machines existing on a cloud server. and performing a predetermined blockchain process between virtual machines belonging to the same channel, and the virtual machine may function as a participating node performing verification in a blockchain system.

Description

블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법 및 시스템{METHOD OF OPERATING MULTI-CHANNEL NODE BASED ON CLOUD VIRTUAL MACHINE USING BLOCKCHAIN AND SYSTEM THEREOF}Cloud virtual machine-based multi-channel node operation method and system using blockchain

본 발명은 클라우드 가상머신을 기반으로 다중 채널 노드를 운용하는 시스템 및 그 방법에 관한 것이다.The present invention relates to a system and method for operating a multi-channel node based on a cloud virtual machine.

다수의 사용자들로 구성되는 그룹 내에서 구성원들 간에 업무상 각종 문서, 자료, 컨텐츠 등 데이터를 비밀을 유지하면서 안전하게 주고 받아야 할 필요가 있다. 예를 들면, 기업에서는 업무의 수행을 위해 구성원들 간에 각종 저장 매체, 회사 이메일이나 관리 시스템을 이용하여 업무용 디지털 문서나 자료를 전달한다.In a group composed of a large number of users, there is a need to securely exchange data such as various documents, materials, and contents in the course of business among members while maintaining confidentiality. For example, in corporations, business digital documents or data are transferred between members to perform business by using various storage media, company e-mail, or a management system.

저장 매체나 회사 이메일을 통한 문서/자료의 전달은 전달 과정에서 해당 문서/자료가 유출될 우려가 있으며, 회사의 직원이나 또는 그 직원으로부터 문서/자료를 전달받은 제3자에 의해 정보가 무단으로 복제될 수 있다는 문제점이 있다.Delivery of documents/data through storage media or company e-mail may result in leakage of the document/data during the delivery process, and information may be unauthorized by company employees or a third party who has received the documents/data from the employee. There is a problem with duplication.

한편, 저장 매체나 이메일을 이용할 때의 정보의 무단 유출/복제의 문제점을 해결하기 위한 기술로서, 디지털 문서/자료를 보호하는 DRM(Digital Rights Management) 기술이 존재하며, 이를 적용한 회사의 문서/자료 관리 시스템이 존재한다. 디지털 권한 관리라고도 불리는 DRM 기술은 디지털 컨텐츠의 불법 유출/복제를 방지하기 위해 정당한 권리를 가진 자에게만 컨텐츠 접근을 허용하는 시스템이다. On the other hand, as a technology to solve the problem of unauthorized leakage/copying of information when using storage media or e-mail, DRM (Digital Rights Management) technology exists to protect digital documents/data, and the company's documents/data to which it is applied A management system exists. DRM technology, also called digital rights management, is a system that allows access to content only to those with legitimate rights to prevent illegal leakage/copying of digital content.

예를 들면 DRM 기술은 컨텐츠를 암호화된 형태로 보호하고, 인증된 사용자가 복호화 키를 라이센스로 패키징하여 발급받도록 함으로써, 정당한 사용자가 인증 후 컨텐츠에 접근할 수 있도록 하는 메커니즘을 제공한다. 이러한 DRM 기술은 허가되지 않은 사용자가 불법으로 컨텐츠에 접근하는 것을 차단하고, 각 사용자가 그 부여된 권한 범위 내에서 디지털 컨텐츠에 접근할 수 있도록 관리함으로써 디지털 자산의 지속적인 보호 기능을 제공한다. For example, DRM technology protects content in an encrypted form, and provides a mechanism for a legitimate user to access content after authentication by packaging and issuing a decryption key as a license for an authenticated user. This DRM technology provides a function of continuous protection of digital assets by blocking unauthorized users from illegally accessing contents and managing each user to access digital contents within the scope of the granted authority.

예를 들면, 특허문헌 1 (등록특허 제10-2448531호, 공고일자 : 2022년 9월 27일)는 전자 문서의 암복호화 권한 제어를 수행하는 DRM 모듈과, 클라이언트 서버로부터 상기 전자 문서의 암복호화 요청 시 수신된 상기 전자 문서의 정보를 임시파일로 저장하는 암복호화 관리 모듈을 포함하는 DRM 서버 및 상기 클라이언트 서버로부터 요청되는 전자 문서를 수신하고, 수신된 상기 전자 문서를 상기 DRM 서버로 전송하는 DRM Open API 서버를 포함하는 전자 문서의 암복호화 시스템을 제공한다.For example, Patent Document 1 (Registered Patent No. 10-2448531, Publication Date: September 27, 2022) is a DRM module that performs encryption/decryption authority control of an electronic document, and encryption/decryption of the electronic document from a client server. A DRM server including an encryption/decryption management module that stores information on the received electronic document as a temporary file upon request and a DRM that receives the requested electronic document from the client server and transmits the received electronic document to the DRM server It provides an encryption/decryption system for electronic documents including an Open API server.

또한 블록체인을 이용하여 데이터 파일을 관리하는 기술이 존재한다. 예를 들면, 특허문헌 2 (등록특허 제10-1781583호, 공고일자 : 2017년 9월 27일)는 각 노드들에 저장된 데이터 파일들에 대한 정보를 블록체인의 형태로 저장 및 관리하고, 모든 노드들에 대한 IP 주소 및 Port 번호를 저장한 IP 리스트 기반으로 각 데이터 파일에 대한 소유주를 확인하고 검색할 수 있도록 하는 블록체인을 기반으로 한 파일 관리 및 검색 시스템을 제공하는 것으로 소유주 확인에 중점을 두는 기술이다.In addition, there is a technology for managing data files using blockchain. For example, Patent Document 2 (Registered Patent No. 10-1781583, Publication Date: September 27, 2017) stores and manages information on data files stored in each node in the form of a blockchain, and all It focuses on verifying the owner by providing a file management and search system based on a block chain that allows the owner of each data file to be identified and searched based on the IP list that stores the IP address and port number of the nodes. It is a technique to put

종래의 DRM 기술을 이용한 컨텐츠 관리 시스템은 통상 중앙 집중 시스템의 형태로 존재하며, 컨텐츠 접근이나 사용자 인증을 위한 라이선스를 발급 및 관리하는 서버가 공격을 당하면, 전체 DRM 서비스가 정상적으로 동작할 수 없다는 문제점을 갖는다.Content management systems using conventional DRM technology usually exist in the form of a centralized system, and if a server that issues and manages licenses for content access or user authentication is attacked, the entire DRM service cannot operate normally. have

또한 디지털 문서, 자료, 컨텐츠 등의 디지털 데이터는 그 성격상 용이하게 복제되거나 수정될 수 있기 때문에 위·변조에 취약하다는 문제점이 있다. 이러한 문제점을 해결하기 위해 DRM 시스템에 워터마킹과 같은 복제 방지 기술을 적용하는 경우도 있지만, 해킹의 가능성으로 인해 워터마킹으로도 위·변조를 완전히 방지하는 것은 용이하지 않다는 한계점이 있다.In addition, since digital data such as digital documents, materials, and contents can be easily copied or modified due to their nature, there is a problem that they are vulnerable to forgery and falsification. In order to solve this problem, in some cases, a copy protection technology such as watermarking is applied to the DRM system, but due to the possibility of hacking, there is a limit in that it is not easy to completely prevent forgery and alteration even with watermarking.

이러한 종래의 디지털 데이터 관리 기술의 한계를 극복하기 위해, 블록체인 기술이 활용될 수 있다. 블록체인에서는 블록에 연관된 데이터를 사후적으로 변경하면, 블록체인이 변경되기 때문에 데이터의 변경을 용이하게 인지할 수 있고, 다수의 노드들의 참여로 블록체인이 운영되기 때문에 사용자 중 일부가 임의로 블록체인의 데이터를 변경하는 것이 실질적으로 불가능하다는 특징이 있다. 따라서 블록체인 기술을 이용하면 디지털 문서, 자료 컨텐츠 등의 디지털 데이터의 위·변조를 효과적으로 방지할 수 있다.In order to overcome the limitations of these conventional digital data management technologies, block chain technology can be utilized. In the blockchain, if the data related to the block is changed ex post facto, the blockchain is changed, so it is easy to recognize the change in data, and since the blockchain is operated with the participation of a large number of nodes, some of the users arbitrarily It is characterized in that it is practically impossible to change the data of . Therefore, using blockchain technology can effectively prevent forgery and falsification of digital data such as digital documents and data contents.

그러나 블록체인이 동작하기 위해서는, 블록체인에 참여하는 노드들이 블록체인의 검증을 위해 상시 'ON' 상태로 동작하여야 하며, 따라서 노드들을 운영함에 있어서 자원상의 부담이 존재한다. 따라서 회사의 업무용 데이터 관리 시스템에 블록체인을 적용할 경우, 업무용 문서/자료를 확인하는 확인자(Verifier) 역할을 수행하는 각 업무 담당자의 단말기가 블록체인의 노드로서 운영되기는 어렵다.However, in order for the blockchain to operate, the nodes participating in the blockchain must operate in an 'ON' state at all times to verify the blockchain, and thus there is a burden on resources in operating the nodes. Therefore, when blockchain is applied to a company's business data management system, it is difficult for the terminal of each person in charge to operate as a node of the blockchain, which serves as a verifier to check business documents/data.

또한, 특허문헌 2 와 같이 종래에 블록체인을 이용하여 데이터를 관리하는 기술이 존재하지만, 효율적인 데이터 공유와 보안성 및 무결성의 관점에서 기술적 한계점이 있다.In addition, there is a technology for managing data using a blockchain in the past, as in Patent Document 2, but there are technical limitations in terms of efficient data sharing, security and integrity.

이에 본 발명은 상술한 종래 기술들의 문제점을 해결하고, 블록체인을 이용하여 기업/그룹의 각종 문서, 자료, 컨텐츠 등의 데이터를 관리함에 있어서 정보 보안성과 무결성을 제공하고, 또한 이러한 기능을 기업/그룹의 자원을 고려하여 블록체인 시스템 상에서 효율적으로 구현하기 위한, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법 및 그 시스템을 제공한다.Accordingly, the present invention solves the problems of the prior art described above, provides information security and integrity in managing data such as various documents, materials, and contents of companies / groups using a block chain, and also provides these functions to companies / groups. Provides a cloud virtual machine-based multi-channel node operating method and system using a block chain for efficient implementation on a block chain system in consideration of group resources.

또한 본 발명은 스마트 컨트랙트로 블록체인 상에서 기업/그룹의 구성원/사용자들 간에 효율적으로 업무용 문서 등의 데이터를 송수신 및 관리하고 스마트 계약을 체결할 수 있는 방법 및 그 시스템을 제공한다.In addition, the present invention provides a method and system capable of efficiently transmitting and receiving and managing data such as business documents between members/users of companies/groups on a blockchain with a smart contract and concluding a smart contract.

상기 과제를 해결하기 위해 일 실시예에 따른 본 발명의 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법은, 클라우드 서버 상에 존재하는 복수의 가상머신(Virtual Machine)에 대하여, 각 가상머신 별로 하나 이상의 채널을 할당하는 단계; 및 동일한 채널에 속하는 가상머신들 간에 소정의 블록체인 프로세스를 수행하는 단계를 포함하고, 상기 가상머신은 블록체인 시스템에서 검증을 수행하는 참여 노드로 기능할 수 있다.In order to solve the above problem, a method for operating a cloud virtual machine-based multi-channel node using a block chain according to an embodiment of the present invention, for a plurality of virtual machines existing on a cloud server, for each virtual machine allocating one or more channels; and performing a predetermined blockchain process between virtual machines belonging to the same channel, wherein the virtual machine may function as a participating node performing verification in a blockchain system.

일 실시예에서, 서로 다른 채널을 보유하는 적어도 2 개의 가상머신이 클라우드 서버 상에 존재할 수 있다.In one embodiment, at least two virtual machines having different channels may exist on the cloud server.

일 실시예에서, 본 발명의 방법은, 상기 클라우드 서버 상에 복수의 가상머신을 생성하는 단계를 더 포함할 수 있다.In one embodiment, the method of the present invention may further include creating a plurality of virtual machines on the cloud server.

일 실시예에서 본 발명의 방법은, 상기 가상머신에 접속하는 사용자를 인증하는 단계를 더 포함할 수 있다.In one embodiment, the method of the present invention may further include authenticating a user accessing the virtual machine.

일 실시예에서 상기 블록체인 프로세스를 수행하는 단계는, 상기 참여 노드로 기능하는 상기 가상머신의 자원 스케쥴링 단계를 포함하고, 상기 가상머신의 자원 스케쥴링 단계는, 임의의 가상머신에 할당된 모든 채널의 자원의 용량의 합이 소정의 임계치를 초과하는지 여부를 판정하는 단계를 포함할 수 있다.In one embodiment, the step of performing the block chain process includes a step of resource scheduling of the virtual machine functioning as the participating node, and the step of resource scheduling of the virtual machine includes all channels allocated to an arbitrary virtual machine. and determining whether the sum of the capacities of the resources exceeds a predetermined threshold.

일 실시예에서 상기 가상머신의 자원 스케쥴링 단계는, 상기 가상머신에 할당된 모든 채널의 자원의 용량의 합이 소정의 임계치를 초과하는 것으로 판정된 경우, 그 초과하는 것으로 판정된 해당 가상머신을 자원 용량이 포화된 노드로 판정하는 단계를 포함할 수 있다.In one embodiment, in the resource scheduling step of the virtual machine, when it is determined that the sum of the resource capacities of all channels allocated to the virtual machine exceeds a predetermined threshold, the resource It may include determining that the node has a capacity saturation.

일 실시예에서 상기 가상머신의 자원 스케쥴링 단계는, 상기 자원 용량이 포화된 노드가 존재하는 경우, 해당 노드의 상기 자원 용량의 포화가 해소될 때까지, 해당 노드가 포함된 채널의 노드들이 상기 블록체인 프로세스 중 적어도 검증 단계를 수행하지 않고 대기하도록 하는 요청을 생성하는 단계를 포함할 수 있다.In one embodiment, in the resource scheduling step of the virtual machine, if there is a node whose resource capacity is saturated, the nodes of a channel including the corresponding node block the block until the saturation of the resource capacity of the corresponding node is resolved. It may include generating a request to wait without performing at least a verification step during the chain process.

일 실시예에서 상기 가상머신의 자원 스케쥴링 단계는, 상기 가상머신에 할당된 모든 채널의 자원의 용량의 합이 소정의 임계치를 초과하지 않는 것으로 판정된 경우, 해당 가상머신을 블록체인 프로세스 중 적어도 검증 단계를 수행할 수 있는 노드로 판정하는 단계를 포함할 수 있다.In one embodiment, in the resource scheduling step of the virtual machine, when it is determined that the sum of the resource capacities of all channels allocated to the virtual machine does not exceed a predetermined threshold, the corresponding virtual machine is verified at least during the blockchain process It may include determining as a node capable of performing the step.

일 실시예에서, 상기 블록체인 프로세스를 수행하는 단계는, 임의의 채널의 모든 노드들이, 상기 검증 단계를 수행할 수 있는 노드로 판정된 경우, 해당 채널에 속하는 가상머신들 간에 상기 검증 단계를 수행하는 단계를 포함할 수 있다.In one embodiment, in the step of performing the blockchain process, if all nodes of any channel are determined to be nodes capable of performing the verification step, the verification step is performed between virtual machines belonging to the corresponding channel. steps may be included.

일 실시예에서, 상기 블록체인 프로세스를 수행하는 단계는, 동일한 채널에 속하는 복수의 가상머신을 상기 참여 노드로 하여, 트랜잭션 또는 상기 트랜잭션을 포함하는 블록 중 적어도 하나를 상기 참여 노드들에게 브로드캐스팅하는 단계; 및 각 참여 노드들이 수신한 트랜잭션 또는 블록 중 적어도 하나를 검증하는 검증 단계를 포함할 수 있다.In one embodiment, the step of performing the blockchain process includes broadcasting at least one of a transaction or a block including the transaction to the participating nodes using a plurality of virtual machines belonging to the same channel as the participating nodes. step; and a verification step of verifying at least one of the transactions or blocks received by each participating node.

일 실시예에서, 상기 검증 단계는 미리 결정된 블록체인의 합의 알고리즘에 기초하여 상기 블록을 검증하는 것을 포함할 수 있다.In one embodiment, the verifying step may include verifying the block based on a predetermined blockchain consensus algorithm.

일 실시예에서 본 발명의 방법은 상기 검증 단계에서 검증된 블록을 블록체인에 추가하는 단계를 더 포함할 수 있다.In one embodiment, the method of the present invention may further include adding the block verified in the verification step to the blockchain.

일 실시예에서 상기 트랜잭션은 소정 그룹의 인사 정보, 재무 정보, 계약 정보 중 적어도 하나를 포함할 수 있다.In one embodiment, the transaction may include at least one of a predetermined group of personnel information, financial information, and contract information.

일 실시예에서 상기 채널은 소정 그룹의 인사, 재무, 계약 중 적어도 하나에 기초하여 설정되는 채널일 수 있다.In one embodiment, the channel may be a channel established based on at least one of a predetermined group of personnel, finance, and contracts.

일 실시예에서 본 발명의 방법은, 동일한 채널에 속하는 임의의 가상머신들 간에 스마트 컨트랙트를 생성하는 단계; 및 상기 생성된 스마트 컨트랙트 중 적어도 일부의 정보를 포함하는 트랜잭션을 생성하는 단계를 더 포함할 수 있다.In one embodiment, the method of the present invention includes generating a smart contract between arbitrary virtual machines belonging to the same channel; and generating a transaction including at least some information of the generated smart contract.

일 실시예에서, 상기 블록체인 프로세스를 수행하는 단계는, 동일한 채널에 속하는 복수의 가상머신을 상기 참여 노드로 하여, 상기 스마트 컨트랙트 중 적어도 일부의 정보를 포함하는 트랜잭션 또는 상기 트랜잭션을 포함하는 블록 중 적어도 하나를 상기 참여 노드들에게 브로드캐스팅하는 단계를 포함할 수 있다.In one embodiment, the step of performing the block chain process includes a plurality of virtual machines belonging to the same channel as the participating nodes, and among a transaction including at least some information of the smart contract or a block including the transaction It may include broadcasting at least one to the participating nodes.

일 실시예에서, 상기 스마트 컨트랙트를 생성하는 단계는, 제 1 가상머신이 제 1 계약에 관한 정보를 포함하는 전자 문서를 생성하는 단계; 및 제 1 가상머신 및 제 2 가상머신 중 적어도 하나가 상기 전자 문서에 전자서명하여, 서명된 상기 스마트 컨트랙트를 생성하는 단계를 포함할 수 있다.In one embodiment, generating the smart contract may include generating, by a first virtual machine, an electronic document including information about a first contract; and digitally signing the electronic document by at least one of the first virtual machine and the second virtual machine, thereby generating the signed smart contract.

본 발명의 일 실시예에 따른 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 시스템은, 메모리; 및 상기 메모리에 연결된 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는: 상술한 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법을 수행하도록 구성될 수 있다.A cloud virtual machine-based multi-channel node operating system using a block chain according to an embodiment of the present invention includes a memory; and at least one processor connected to the memory, wherein the at least one processor may be configured to perform the cloud virtual machine-based multi-channel node operating method using the above-described blockchain.

본 발명의 일 실시예에 따른 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 시스템의 적어도 하나의 프로세서에 의해 실행 가능하고 컴퓨터 판독 가능 저장 매체에 저장되는 컴퓨터 프로그램은, 상술한 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법을 수행할 수 있다.A computer program executable by at least one processor of a cloud virtual machine-based multi-channel node operating system using a blockchain according to an embodiment of the present invention and stored in a computer-readable storage medium is a cloud using the above-described blockchain. A virtual machine-based multi-channel node operation method can be performed.

본 발명의 일 실시예에 따른 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 저장 매체는, 상술한 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법을 수행하는 컴퓨터 프로그램을 기록할 수 있다. A computer readable storage medium recording a computer program according to an embodiment of the present invention may record a computer program for performing the cloud virtual machine-based multi-channel node operating method using the above-described block chain.

본 발명의 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 시스템 및 그 방법에 의하면, 블록체인 기술을 이용하여 분산 시스템에서 데이터를 관리함으로써 해킹에 강인한 데이터 관리 시스템을 제공할 수 있다. 또한, 클라우드 서버 상에 구현된 가상머신으로 노드를 구현하고 이에 기업/그룹의 업무 담당자들이 접속하여 업무를 처리함으로 인해, 효율적인 자원의 운용이 가능하며 업무 담당자가 사용하는 단말기의 자원을 과대하게 투입하지 않고도 해당 시스템을 운영할 수 있다.According to the cloud virtual machine-based multi-channel node operating system and method using the block chain of the present invention, it is possible to provide a hacking-resistant data management system by managing data in a distributed system using block chain technology. In addition, by implementing a node as a virtual machine implemented on a cloud server, and business managers of companies/groups connect to it to process tasks, efficient resource management is possible and resources of terminals used by business managers are excessively invested. You can operate the system without it.

또한, 본 발명의 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 시스템 및 그 방법에 의하면, 클라우드 서버 상에 가상머신을 분산하여 노드로 운용하므로, 노드를 상시 운용할 필요가 없이 필요시에만 운용할 수 있으며, 노드가 비밀이 요구되는 데이터에 연관된 블록을 채널 별로 관리할 수 있으므로 업무 보안성이 보장된다.In addition, according to the cloud virtual machine-based multi-channel node operating system and method using the block chain of the present invention, virtual machines are distributed on a cloud server and operated as nodes, so there is no need to operate the node all the time and operate only when necessary. And since the node can manage blocks related to confidential data by channel, business security is guaranteed.

또한, 본 발명에 의하면, 하나의 노드가 여러 채널을 보유하고 운영함으로 인해 발생할 수 있는 가상머신의 자원의 병목 현상을 해결하여, 효율적인 블록체인 노드의 운용이 가능하다.In addition, according to the present invention, it is possible to efficiently operate a blockchain node by solving a resource bottleneck of a virtual machine that may occur due to one node holding and operating multiple channels.

또한, 본 발명에 의하면, 다수의 원격지에 분산된 부서들에서 업무를 수행하는 기업에서 부서 간에 업무용 문서를 송수신할 때 정보의 보안성 및 무결성을 제공할 수 있다.In addition, according to the present invention, security and integrity of information can be provided when business documents are transmitted and received between departments in a company performing business in departments distributed in a plurality of remote locations.

도 1 은 일 실시예에 있어서의 본 발명의 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법이 실행되는 전체 시스템을 나타내는 도면이다.
도 2 는 일 실시예에 있어서의 본 발명의 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법의 흐름도이다.
도 3 은 본 발명의 일 실시예에 따른 가상머신에서의 채널 구성을 나타내는 도면이다.
도 4 는 블록체인 프로세스 단계의 세부 흐름도이다.
도 5 는 가상머신의 자원을 스케쥴링하는 단계의 세부 흐름도이다.
도 6 은 일 실시예에 있어서의 노드의 가상머신 자원 운용을 나타내는 세부 흐름도이다.
도 7 은 스마트 컨트랙트를 수행하는 본 발명의 일 실시예에 있어서의 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법의 흐름도이다.
도 8 은 본 발명의 일 실시예에 따른 스마트 컨트랙트 처리를 나타내는 도면이다.
도 9 는 본 발명의 일 실시예에 따른 블록에 저장되는 정보를 나타내는 도면이다.
도 10 은 본 발명의 일 실시예에 따른 블록체인의 합의 알고리즘의 예를 설명하기 위한 참고 도면이다.
도 11 은 일 실시예에 있어서의 본 발명의 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법의 흐름도이다.
1 is a diagram showing an entire system in which a cloud virtual machine-based multi-channel node operating method using a block chain according to an embodiment of the present invention is executed.
2 is a flowchart of a method for operating a multi-channel node based on a cloud virtual machine using a block chain according to an embodiment of the present invention.
3 is a diagram showing a channel configuration in a virtual machine according to an embodiment of the present invention.
4 is a detailed flow chart of blockchain process steps;
5 is a detailed flowchart of a step of scheduling resources of a virtual machine.
6 is a detailed flow chart showing virtual machine resource management of a node according to an embodiment.
7 is a flowchart of a method for operating a multi-channel node based on a cloud virtual machine using a blockchain in an embodiment of the present invention performing a smart contract.
8 is a diagram illustrating smart contract processing according to an embodiment of the present invention.
9 is a diagram illustrating information stored in a block according to an embodiment of the present invention.
10 is a reference diagram for explaining an example of a blockchain consensus algorithm according to an embodiment of the present invention.
11 is a flowchart of a method for operating a multi-channel node based on a cloud virtual machine using a block chain according to an embodiment of the present invention.

이하에서는 본 발명의 다양한 실시예들을 설명할 것이나, 본 발명의 기술적 사상은 이에 한정되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다. 또한, 본 명세서에서 사용한 용어는 본 발명의 개념 및 그에 따른 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 해당 용어의 사전적 또는 어구적 의미만으로 한정하려는 의도가 아니다. 예를 들어, 본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 또한, 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 어느 구성, 단계, 동작 또는 이들을 조합한 것의 존재를 의미하며, 문맥상 명백하게 다르게 뜻하지 않는 한 다른 구성, 단계, 동작의 존재 또는 부가 가능성을 배제하지 않는다.Hereinafter, various embodiments of the present invention will be described, but the technical idea of the present invention is not limited thereto and can be modified and implemented in various ways by those skilled in the art. In addition, the terms used in this specification are used to describe the concept of the present invention and its embodiments thereof, and are not intended to limit the present invention only to the dictionary or phraseological meaning of the term. For example, in this specification, singular expressions may include plural expressions unless the context clearly dictates otherwise. In addition, in this specification, terms such as "include" or "having" mean the presence of any configuration, step, operation, or combination thereof, and unless the context clearly indicates otherwise, the presence or absence of other configurations, steps, operations, or the like. Additions do not rule out the possibility.

본 명세서에서 달리 언급되지 않는다면, "접속되는" 또는 "연결되는" 은 하나의 엘리먼트/특징이 다른 엘리먼트/특징과 직접적으로 접속 또는 연결되는 것 또는 타 엘리먼트/특징을 개재하여 간접적으로 접속 또는 연결되는 것을 포함할 수 있고, 반드시 기계적으로 바로 접속 또는 연결되는 것만을 의미하는 것은 아니다. 따라서, 도면들에 도시된 다양한 모식도들은 엘리먼트들과 컴포넌트들의 예시적인 배열들을 도시하지만, 추가의 중재 엘리먼트들, 디바이스들, 특징들 또는 컴포넌트들이 (도시된 엘리먼트들의 기능이 악영향을 받지 않는다고 가정할 때) 실제 실시형태에서 존재할 수도 있다.Unless otherwise stated herein, "connected" or "connected" means that one element/feature is directly connected or connected to another element/feature or indirectly connected or connected through another element/feature. It may include, and does not necessarily mean only directly connected or connected mechanically. Accordingly, while the various schematic diagrams shown in the drawings illustrate exemplary arrangements of elements and components, additional intervening elements, devices, features or components may be used (assuming that the functionality of the depicted elements is not adversely affected). ) may exist in an actual embodiment.

또한, 본 명세서에서 "전송하는" 또는 "수신하는" 은 전송자와 수신자 간에 정보를 직접 전송 또는 수신하는 것뿐만 아니라, 달리 언급되지 않는다면 타 객체를 개재하여 정보를 전송 또는 수신하는 것을 포함할 수 있다.In addition, "transmitting" or "receiving" in this specification may include not only directly transmitting or receiving information between the sender and the receiver, but also transmitting or receiving information through another object unless otherwise noted. .

본 발명의 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 시스템은, 클라우드 서버 상에 존재하는 복수의 가상머신들을 포함한다. 가상머신(Virtual Machine, VM)은 물리적 하드웨어 시스템에 구축되어 CPU, 메모리, 네트워크 인터페이스 및 스토리지 등의 자원을 점유하며 가상 환경에서 가상 컴퓨터 시스템으로 작동할 수 있다. 가상머신들은 CPU, 메모리, 스토리지 등의 컴퓨팅 리소스를 처리하는 리소스의 풀로부터 자원을 배치받아 사용할 수 있다. 본 발명의 가상머신은 상술한 방식 이외에도 알려진 방식으로 네트워크로 연결된 하나 이상의 물리적 하드웨어 시스템에서 구축되는 클라우드 서버 상에 구현되는 가상머신이 될 수 있다.The cloud virtual machine-based multi-channel node operating system using the block chain of the present invention includes a plurality of virtual machines existing on a cloud server. A virtual machine (VM) is built on a physical hardware system, occupies resources such as CPU, memory, network interface, and storage, and can operate as a virtual computer system in a virtual environment. Virtual machines may receive and use resources from a resource pool that processes computing resources such as CPU, memory, and storage. The virtual machine of the present invention may be a virtual machine implemented on a cloud server constructed in one or more physical hardware systems connected by a network in a known manner other than the above-described manner.

본 발명에서 이들 가상머신은 블록체인 시스템에서 블록체인의 검증을 수행하는 참여 노드로 기능하며, 후술하는 블록체인 프로세스를 수행하는 노드들로 기능한다. 가상머신은 클라우드 서버를 관리하는 디바이스의 요청에 의해 생성될 수 있으며, 복수의 가상머신을 운영하는 가상머신이 할당될 수 있다. 예를 들면, 슈퍼 노드가 결정되고 그 슈퍼 노드가 다른 복수의 노드들인 가상머신들을 생성/관리/종료시킬 수 있다.In the present invention, these virtual machines function as participating nodes that perform blockchain verification in a blockchain system, and function as nodes that perform a blockchain process described later. The virtual machine may be created at the request of a device managing the cloud server, and a virtual machine operating a plurality of virtual machines may be allocated. For example, a super node is determined, and the super node can create/manage/terminate virtual machines that are a plurality of other nodes.

본 발명의 가상머신들은 소정의 그룹에 속하는 구성원들이 사용하는 단말기에 의해 접속될 수 있고, 구성원들은 해당 단말기를 통해 가상머신에 접속할 수 있다. 단말기는 사용자인 구성원들로부터의 입력을 수신하여 가상머신에 그 입력에 따른 요청을 전송할 수 있고, 그 처리 결과를 수신하고 이를 사용자에게 제공할 수 있다.The virtual machines of the present invention can be accessed by terminals used by members belonging to a predetermined group, and members can access the virtual machines through the corresponding terminals. The terminal may receive input from members who are users, transmit a request according to the input to the virtual machine, receive the processing result, and provide it to the user.

본 발명의 가상머신들은 그룹에 속하는 구성원들이 업무 상 필요로 하는 문서, 자료, 컨텐츠 등의 데이터를 송수신할 수 있고, 이와 관련된 전자적 처리를 할 수 있다. 여기서 문서는 각종 오피스 파일이나 웹 문서를 포함할 수 있고, 가상머신들이 처리하고 송수신하는 데이터는 파일 형식과 무관한 모든 문서, 자료, 컨텐츠를 포함할 수 있다. 예를 들면, 본 발명의 일 실시예에 있어서 블록체인 시스템에서 블록으로서 저장되는 트랜잭션은 기업에서 관리하는 인사 정보, 재무 정보, 계약 정보 등이 될 수 있다.The virtual machines of the present invention can transmit/receive data such as documents, materials, contents, etc. that members belonging to a group need for work, and can perform electronic processing related thereto. Here, documents may include various office files or web documents, and data processed and transmitted/received by virtual machines may include all documents, materials, and contents irrespective of file formats. For example, in one embodiment of the present invention, transactions stored as blocks in a blockchain system may be personnel information, financial information, contract information, and the like managed by a company.

본 발명은 기업 등 소정의 그룹에서 업무 담당자 간에 문서 등 데이터를 블록체인을 기반으로 공유 및 보관하면서 위변조 발생을 방지 하기 위한 기술을 제공하며, 업무 담당자의 단말기가 직접 노드로 기능하지 않더라도, 클라우드 서버의 가상머신을 다중의 가상머신으로 분산하여 노드로 활용하는 기술을 제공한다.The present invention provides a technology for preventing forgery and falsification while sharing and storing data such as documents based on a block chain between business personnel in a predetermined group such as a company, and even if the terminal of the business person does not directly function as a node, a cloud server It provides a technology that distributes virtual machines into multiple virtual machines and utilizes them as nodes.

도 1 은 일 실시예에 있어서의 본 발명의 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법이 실행되는 전체 시스템(1)을 나타내는 도면이다. 도 1 의 도시와 같이 업무 담당자(30a, 30b, 30c, 30d)들은 확인자(Verifier)로서 각 할당된 가상머신(20a, 20b, 20c, 20d)에 접속할 수 있고, 예를 들면 업무 담당자들은 담당자 단말기를 통해 가상머신에 접속할 수 있다. 여기서 가상머신은 클라우드 서버 상에 생성 및 운용되며, 각 가상머신은 블록체인을 운용하는 참여 노드로서 기능한다. 예를 들면, 가상머신(20a, 20b, 20c, 20d)은 각각 A국가 지사의 재무팀, B국가 지사의 본사, A국가 지사의 인사팀, C국가 지사의 현지 팀 등과 같이 업무 담당자의 역할과 업무 분담에 따라 생성 및 할당될 수 있다. 또한, 각 노드들은 노드들 간에 송수신하는 문서, 자료, 컨텐츠 등의 데이터를 트랜잭션으로 한 블록을 구성하여 함께 검증한다. 예를 들면, 노드들이 공유하는 블록체인에 블록으로서 저장되는 데이터는 연봉 계약서, 급여 대장, 인력 휴가 정보, 클라이언트 계약 정보, 재무 정보, 회계 정보, 경비 지출 정보 등이 될 수 있다. 또한, 다수의 노드들을 생성/관리하기 위한 관리 기능을 제공하는 슈퍼 노드(10)가 존재할 수 있다. 1 is a diagram showing an entire system 1 in which a method for operating a multi-channel node based on a cloud virtual machine using a block chain according to an embodiment of the present invention is executed. As shown in FIG. 1, the business person in charge (30a, 30b, 30c, 30d) can access each assigned virtual machine (20a, 20b, 20c, 20d) as a verifier. You can access the virtual machine via . Here, virtual machines are created and operated on a cloud server, and each virtual machine functions as a participating node that operates a blockchain. For example, the virtual machines (20a, 20b, 20c, 20d) share the roles and duties of the person in charge, such as the finance team of the branch in country A, the head office of the branch in country B, the personnel team of the branch in country A, and the local team at the branch in country C, respectively. can be created and assigned according to In addition, each node forms a block of data such as documents, materials, and contents transmitted and received between nodes as a transaction and verifies them together. For example, the data stored as blocks in the blockchain shared by the nodes can be salary contracts, payroll books, employee leave information, client contract information, financial information, accounting information, expense information, and the like. In addition, there may be a super node 10 providing a management function for creating/managing multiple nodes.

도 2 는 일 실시예에 있어서의 본 발명의 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법의 흐름도이다.2 is a flowchart of a method for operating a multi-channel node based on a cloud virtual machine using a block chain according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법은, 클라우드 서버 상에 복수의 가상머신(Virtual Machine)을 생성하는 단계(S101), 클라우드 서버 상에 존재하는 복수의 가상머신에 대하여, 각 가상머신 별로 하나 이상의 채널을 할당하는 단계(S200) 및 동일한 채널에 속하는 가상머신들 간에 소정의 블록체인 프로세스를 수행하는 단계(S400)를 포함할 수 있다. A cloud virtual machine-based multi-channel node operating method using a block chain according to an embodiment of the present invention includes generating a plurality of virtual machines on a cloud server (S101), a plurality of It may include allocating one or more channels for each virtual machine (S200) and performing a predetermined blockchain process between virtual machines belonging to the same channel (S400).

본 발명의 일 실시예에 따른 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법은, 각 가상머신에 접속하는 사용자를 인증하는 단계(S102)를 추가로 포함할 수 있다. 각 가상머신 별로 할당된 채널의 가상머신들에는 업무의 수행을 위해 사용자들이 접속할 수 있으며, 노드는 접속을 허용하기 위해 사용자를 인증할 수 있다. A cloud virtual machine-based multi-channel node operating method using a block chain according to an embodiment of the present invention may further include a step (S102) of authenticating a user accessing each virtual machine. Users can access virtual machines of a channel assigned to each virtual machine to perform tasks, and the node can authenticate users to allow access.

1) 채널 구성1) Channel composition

본 발명에서는 가상머신 별로 하나 이상의 채널이 할당되며, 서로 다른 채널을 보유하는 적어도 2 개의 가상머신이 클라우드 서버 상에 존재하게 된다. 또한 각각의 채널은 하나 이상의 가상머신과 연관되며 소정의 업무와 연관되어 채널이 구성될 수 있다. 본 발명의 일 실시예에서, 채널은 기업의 인사, 재무, 계약 등과 같은 특정 업무를 처리하기 위해 부여 및 설정되는 채널일 수 있다. 예를 들면, 인사 업무의 처리를 위해 특정 가상머신들을 포함하는 하나의 채널이 구성될 수 있다. 즉, 본 발명에서는 공통의 채널에 속하는 가상머신들이 노드로서 기능하여 해당 채널과 연관된 특정 업무를 블록체인을 이용하여 처리한다.In the present invention, one or more channels are assigned to each virtual machine, and at least two virtual machines having different channels exist on the cloud server. In addition, each channel is associated with one or more virtual machines, and a channel may be configured in association with a predetermined task. In one embodiment of the present invention, a channel may be a channel assigned and configured to handle specific tasks such as human resources, finance, and contracts of a company. For example, one channel including specific virtual machines may be configured to process personnel affairs. That is, in the present invention, virtual machines belonging to a common channel function as nodes to process specific tasks related to the corresponding channel using a blockchain.

본 발명에서 특정 채널에 속한 노드들이 함께 특정 업무를 처리함에 있어서, 특정 업무에 상응하는 특정 이벤트를 주도하는 호스트 노드가 설정될 수 있다. 예를 들면, 계약서 A 를 작성하는 업무 이벤트를 주도하는 호스트 노드가 설정될 수 있다. 이와 같이 본 발명에서 호스트 노드는 특정 이벤트를 발생시키거나 주도하는 노드이며, 해당 이벤트에 상응하는 트랜잭션 및/또는 블록의 생성 및 추가를 요청할 수 있다. 따라서 호스트 노드는 이벤트마다 변경될 수 있다. 또한, 최초의 채널 생성시 호스트 노드는 채널 생성을 위해 가상머신의 자원 할당을 요청할 수 있다.In the present invention, when nodes belonging to a specific channel process a specific task together, a host node leading a specific event corresponding to the specific task can be set. For example, a host node can be set up that drives a business event that creates contract A. As described above, in the present invention, the host node is a node that generates or leads a specific event, and can request creation and addition of transactions and/or blocks corresponding to the event. Thus, the host node may change per event. In addition, when a channel is initially created, the host node may request resource allocation of a virtual machine for channel creation.

도 3 은 본 발명의 일 실시예에 따른 가상머신(VM)에서의 채널(Ch) 구성을 나타내는 도면이다.3 is a diagram showing a configuration of a channel (Ch) in a virtual machine (VM) according to an embodiment of the present invention.

예를 들면 도 3 의 도시와 같이 채널1(Ch1)에 대하여는 VM1(Ch1), VM2(Ch1), VM3(Ch1)이 하나의 채널로 그룹핑 되고, 채널3(Ch3)에 대하여는 VM1(Ch3), VM3(Ch3), VMn(Ch3)이 하나의 채널로 그룹핑 될 수 있다. 그리고 동일 채널로 그룹핑된 노드들은 동일 채널이 수행하는 소정의 업무 처리를 위한 소정의 블록체인 프로세스를 수행한다. 예를 들면, 채널1은 연봉 계약서의 관리를 위해 운영되는 채널일 수 있고, VM1, VM2, VM3 은 연봉 계약서의 관리에 관여된 업무 담당자들에게 할당된 가상머신들일 수 있다. 또한, 채널3은 기업 회계 관리를 위해 운영되는 채널일 수 있고, VM1, VM3, VMn 은 회계 관리에 관여된 업무 담당자들에게 할당된 가상머신들일 수 있다.For example, as shown in FIG. 3, for channel 1 (Ch1), VM1 (Ch1), VM2 (Ch1), and VM3 (Ch1) are grouped into one channel, and for channel 3 (Ch3), VM1 (Ch3), VM3 (Ch3) and VMn (Ch3) may be grouped into one channel. Nodes grouped on the same channel perform a predetermined block chain process for a predetermined task performed by the same channel. For example, channel 1 may be a channel operated for management of an annual salary contract, and VM1, VM2, and VM3 may be virtual machines allocated to persons in charge of managing an annual salary contract. In addition, channel 3 may be a channel operated for corporate accounting management, and VM1, VM3, and VMn may be virtual machines allocated to persons in charge of accounting management.

도 4 는 블록체인 프로세스 단계(S400)의 세부 흐름도이다.4 is a detailed flowchart of the blockchain process step (S400).

본 발명의 일 실시예에 있어서, 동일한 채널에 속하는 가상머신들 간에 소정의 블록체인 프로세스를 수행하는 단계(S400)는, 동일한 채널에 속하는 복수의 가상머신을 블록체인의 참여 노드로 하여, 트랜잭션 및/또는 그 트랜잭션을 포함하는 블록을 참여 노드들에게 브로드캐스팅하는 단계(S410), 참여 노드로 기능하는 가상머신의 자원 스케쥴링 단계(S420), 각 참여 노드들이 수신한 트랜잭션 및/또는 블록을 검증하는 검증 단계(S430), 및 검증 단계(S430)에서 검증된 블록을 블록체인에 추가하는 단계(S440)를 포함할 수 있다. 여기서 검증 단계(S430)는 미리 결정된 블록체인의 합의 알고리즘에 기초하여 상기 블록을 검증하는 것을 포함할 수 있다.In one embodiment of the present invention, in the step of performing a predetermined block chain process between virtual machines belonging to the same channel (S400), a plurality of virtual machines belonging to the same channel are used as participating nodes of the blockchain, and transactions and / or broadcasting a block including the transaction to participating nodes (S410), scheduling resources of virtual machines functioning as participating nodes (S420), verifying the transaction and / or block received by each participating node It may include a verification step (S430) and a step of adding the block verified in the verification step (S430) to the blockchain (S440). Here, the verification step (S430) may include verifying the block based on a predetermined consensus algorithm of the block chain.

2) 클라우드 서버에서의 가상머신 자원 스케쥴링2) Scheduling virtual machine resources in the cloud server

본 발명의 블록체인 시스템에서 복수의 채널들은 동시에 블록체인 프로세스를 수행할 수 있다. 그러나 노드로 기능하는 각 가상머신에 할당된 자원에 한계가 존재하므로, 노드에 할당된 채널들의 동작을 모두 수행하기 위한 자원의 부족이 발생할 수 있다. 이 경우 자원의 부족이 발생한 노드로 인한 병목현상이 발생할 수 있기 때문에, CPU, 메모리, 스토리지 등의 자원을 고려하여 복수의 노드들의 동작이 스케쥴링될 필요가 있다.In the blockchain system of the present invention, a plurality of channels can simultaneously perform a blockchain process. However, since there is a limit to the resources allocated to each virtual machine functioning as a node, a lack of resources for performing all operations of channels allocated to the node may occur. In this case, since a bottleneck may occur due to a node having a shortage of resources, operations of a plurality of nodes need to be scheduled in consideration of resources such as CPU, memory, and storage.

따라서 본 발명의 일 실시예에 있어서, 동일한 채널에 속하는 가상머신들 간에 소정의 블록체인 프로세스를 수행하는 단계(S400)는, 다음과 같이 채널에 기초하여 클라우드 서버 상에서 참여 노드로 기능하는 가상머신의 자원을 스케쥴링하는 단계(S420)를 포함할 수 있다.Therefore, in one embodiment of the present invention, the step of performing a predetermined blockchain process between virtual machines belonging to the same channel (S400) is the following of the virtual machine functioning as a participating node on the cloud server based on the channel It may include scheduling resources (S420).

도 5 는 가상머신의 자원을 스케쥴링하는 단계(S420)의 세부 흐름도이다.5 is a detailed flowchart of scheduling the resources of the virtual machine (S420).

일 실시예에서 가상머신의 자원을 스케쥴링하는 단계(S420)는, 각 노드들의 가용 자원이 포화되었는지 여부에 따라 블록체인 프로세스를 진행하거나 또는 대기하도록 하는 처리를 할 수 있고, 이를 위하여 임의의 가상머신에 할당된 모든 채널의 자원의 용량의 합이 소정의 임계치를 초과하는지 여부를 판정하는 단계(S421)를 포함할 수 있다. 여기서 소정의 임계치는 각 노드에 대하여 미리 정해진 설정 값이 될 수 있고, 필요에 따라 클라우드 서버의 자원의 현황을 반영하여 각 노드에 대하여 가변적으로 설정될 수도 있다.In one embodiment, in the step of scheduling the resources of the virtual machine (S420), the block chain process may proceed or wait according to whether the available resources of each node are saturated, and for this purpose, any virtual machine It may include determining whether the sum of the resource capacities of all channels allocated to exceeds a predetermined threshold (S421). Here, the predetermined threshold may be a predetermined setting value for each node, and may be variably set for each node by reflecting the current state of resources of the cloud server, if necessary.

여기서 만일 가상머신에 할당된 모든 채널의 자원의 용량의 합이 소정의 임계치를 초과하는 것으로 판정된 경우, 그 초과하는 것으로 판정된 해당 가상머신을 자원 용량이 포화된 노드로 판정하는 단계(S422)가 수행될 수 있다. 즉, 노드 별로 할당된 가상머신의 자원이 각 가상머신에 할당된 모든 채널이 동작할 경우 해당 노드에 있어서 포화되는지 여부를 판정할 수 있다. 여기서 자원 용량이 포화된 노드가 존재하는 경우, 해당 노드의 자원 용량의 포화가 해소될 때까지, 해당 노드가 포함된 채널의 노드들이 블록체인 프로세스 중 적어도 검증 단계를 수행하지 않고 대기하도록 하는 요청을 생성하는 단계(S423)가 수행될 수 있다. 여기서 검증 단계 이외의 다른 블록체인의 동작을 수행하지 않도록 대기하도록 하는 요청을 생성할 수도 있다. 이와 같은 대기 요청이 생성되면 해당 노드가 포함된 채널은 블록체인 프로세스를 진행하지 않고 대기하는 상태로 설정될 수 있다.Here, if it is determined that the sum of the resource capacities of all channels allocated to the virtual machine exceeds a predetermined threshold, determining the virtual machine determined to exceed the threshold as a node whose resource capacity is saturated (S422) can be performed. That is, it is possible to determine whether resources of virtual machines allocated for each node are saturated in a corresponding node when all channels allocated to each virtual machine operate. Here, if there is a node whose resource capacity is saturated, a request for the nodes of the channel including the node to wait without performing at least the verification step of the blockchain process until the saturation of the resource capacity of the node is resolved. A generating step (S423) may be performed. Here, you can also create a request to wait so that other blockchain operations other than the verification step are not performed. When such a standby request is generated, the channel including the corresponding node may be set to a standby state without proceeding with the blockchain process.

한편, 가상머신에 할당된 모든 채널의 자원의 용량의 합이 소정의 임계치를 초과하지 않는 것으로 판정된 경우, 해당 가상머신을 블록체인 프로세스 중 적어도 검증 단계를 수행할 수 있는 노드로 판정하는 단계(S424)가 수행될 수 있다. On the other hand, if it is determined that the sum of the resource capacities of all channels allocated to the virtual machine does not exceed a predetermined threshold, determining the virtual machine as a node capable of performing at least a verification step of the blockchain process ( S424) may be performed.

여기서 임의의 채널의 모든 노드들이, 검증 단계를 수행할 수 있는 노드로 판정된 경우, 해당 채널에 속하는 가상머신들 간에 검증 단계를 수행하는 단계(S430)가 수행될 수 있다. 여기서 검증 단계 이외의 다른 블록체인의 동작을 수행하도록 하는 요청을 생성할 수도 있으며, 해당 노드가 포함된 채널은 임의의 블록체인 프로세스를 진행하는 상태로 설정될 수 있다.Here, when all nodes of a channel are determined to be nodes capable of performing the verification step, a step of performing the verification step between virtual machines belonging to the corresponding channel (S430) may be performed. Here, a request to perform other block chain operations other than the verification step may be created, and the channel including the corresponding node may be set to a state in which an arbitrary block chain process is in progress.

예를 들면, 상술한 본 발명의 클라우드 서버의 가상머신들은 다음과 같이 스케쥴링될 수 있다.For example, virtual machines of the above-described cloud server of the present invention may be scheduled as follows.

가상머신(VM) 이 채널(Ch)에 대해 갖는 자원의 용량은 다음 식 1 과 같이 표기될 수 있다.The capacity of the resource that the virtual machine (VM) has for the channel (Ch) can be expressed as in Equation 1 below.

Figure 112022126172221-pat00001
(식1)
Figure 112022126172221-pat00001
(Equation 1)

여기서 i 는 가상머신의 인덱스이고, j 는 채널의 인덱스이다.Here, i is the index of the virtual machine and j is the index of the channel.

여기서 동일한 채널 j = k 에 속하는 가상머신들

Figure 112022126172221-pat00002
은 해당 채널에 부여된 업무의 처리를 위한 공통의 블록체인 프로세스를 수행한다. 이때 특정
Figure 112022126172221-pat00003
에서 해당 가상머신에 할당된 복수의 채널들의 블록체인 프로세스들을 동시에 수행하는 중 해당 가상머신이 자원의 포화 상태에 이르게 되면, 해당 가상머신에서 병목현상이 발생하여 해당 가상머신이 속한 채널들의 블록체인 프로세스의 진행에 지연 또는 자원 부족으로 인한 오류가 발생할 수 있다. 따라서 본 발명에서는 이러한 병목현상의 발생을 예방하기 위해 상술한 각 단계를 제공한다.Here, virtual machines belonging to the same channel j = k
Figure 112022126172221-pat00002
performs a common blockchain process for the processing of tasks assigned to the channel. At this time, specific
Figure 112022126172221-pat00003
If the virtual machine reaches a resource saturation state while concurrently performing block chain processes of a plurality of channels assigned to the virtual machine in Errors may occur due to delays or lack of resources in the progress of Therefore, the present invention provides each of the above-described steps to prevent the occurrence of such a bottleneck.

일 실시예에서, 노드(가상머신)에 할당된 전체 자원의 용량(처리 용량)의 임계치를 100으로 가정하면, 다음의 식 2의 조건이 만족되어야 정상적으로 블록체인 프로세스가 운용될 수 있다.In one embodiment, assuming that the threshold of the capacity (processing capacity) of all resources allocated to a node (virtual machine) is 100, the blockchain process can be normally operated only when the condition of Equation 2 below is satisfied.

Figure 112022126172221-pat00004
(식2)
Figure 112022126172221-pat00004
(Equation 2)

도 6 은 일 실시예에 있어서의 노드의 가상머신 자원 운용을 나타내는 세부 흐름도이다. 일 실시예에 있어서 도 6 의 도시와 같이 정상적인 블록체인 프로세스를 운용하기 위한 가상머신의 스케쥴링은 다음 단계로 수행될 수 있다.6 is a detailed flow chart showing virtual machine resource management of a node according to an embodiment. In one embodiment, as shown in FIG. 6, scheduling of a virtual machine for operating a normal blockchain process may be performed in the next step.

먼저, 호스트 노드가 블록을 생성한다(S405a). 여기서 소정의 데이터 처리를 위한 트랜잭션을 생성하여 블록체인에 추가하려는 노드가 호스트 노드가 될 수 있고, 호스트 노드는 각 데이터의 처리마다 변경될 수 있다. 여기서 호스트 노드는 데이터 처리를 위한 트랜잭션 및 이에 상응하는 블록을 생성하고 그 과정에서 블록 해시를 생성할 수 있다.First, the host node creates a block (S405a). Here, a node to create a transaction for processing predetermined data and add it to the blockchain may be a host node, and the host node may be changed for each data processing. Here, the host node may generate a transaction for data processing and a corresponding block, and generate a block hash in the process.

다음으로 호스트 노드가 처리하려는 데이터에 상응하는 채널로 그룹핑된 노드들에게, 호스트 노드가 생성된 블록 및 그 블록의 해시 값을 브로드캐스팅한다(S410a).Next, the host node broadcasts the created block and the hash value of the block to the nodes grouped on the channel corresponding to data to be processed by the host node (S410a).

다음으로 새로운 블록을 추가하는 블록체인 프로세스를 수행하기 위하여, 동일 채널로 그룹핑된 각 노드들에 대해 각 노드의 자원(처리 용량)이 상기

Figure 112022126172221-pat00005
(식2)의 조건을 만족하는지를 확인하는 가상머신 자원 스케쥴링을 수행한다(S420a). Next, in order to perform the blockchain process of adding a new block, the resource (processing capacity) of each node is required for each node grouped in the same channel.
Figure 112022126172221-pat00005
Virtual machine resource scheduling is performed to check whether the condition of (Equation 2) is satisfied (S420a).

여기서 동일 채널로 그룹핑된 노드들 중 (식2)의 조건을 만족하지 않은 포화 노드가 존재하는 경우, 포화 노드는 동일 채널의 다른 노드들에게 대기 요청을 하며, 차후 자원이 확보되어 위 조건을 만족하는 상태가 되면 호스트 노드에게 처리 가능 메세지를 전송한다. 이때 호스트 노드는 필요에 따라 다시 S410a 단계를 수행할 수 있다.Here, if there is a saturated node that does not satisfy the condition of (Equation 2) among the nodes grouped on the same channel, the saturated node makes a standby request to other nodes on the same channel, and resources are secured in the future to satisfy the above condition. When it is in this state, it transmits a processable message to the host node. At this time, the host node may perform step S410a again as needed.

상기 (식2)의 조건을 충족하면, 참여 노드들은 수신한 블록을 미리 정해진 합의 알고리즘에 기초하여 검증하여 블록체인에 추가한다(S430a).If the condition of (Equation 2) is satisfied, the participating nodes verify the received block based on a predetermined consensus algorithm and add it to the blockchain (S430a).

3) 스마트 컨트랙트3) Smart contract

도 7 은 스마트 컨트랙트를 수행하는 본 발명의 일 실시예에 있어서의 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법의 흐름도이다.7 is a flowchart of a method for operating a multi-channel node based on a cloud virtual machine using a blockchain in an embodiment of the present invention performing a smart contract.

일 실시예에서 블록체인 프로세스에서 처리되는 블록의 트랜잭션은 스마트 컨트랙트에 관한 것일 수 있고, 이를 위해 본 발명의 일 실시예에 따른 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법은, 스마트 컨트랙트 프로세스를 수행하는 단계(S300)를 수행하는 단계를 더 포함할 수 있다.In one embodiment, the transaction of the block processed in the blockchain process may be related to a smart contract. It may further include the step of performing the step (S300) of performing.

일 실시예에서 스마트 컨트랙트 프로세스를 수행하는 단계(S300)는, 동일한 채널에 속하는 임의의 가상머신들 간에 스마트 컨트랙트를 생성하는 단계(S310) 및 상기 생성된 스마트 컨트랙트 중 적어도 일부의 정보를 포함하는 트랜잭션을 생성하는 단계(S320)를 포함할 수 있다.In one embodiment, the step of performing the smart contract process (S300) includes the step of generating a smart contract between arbitrary virtual machines belonging to the same channel (S310) and a transaction including at least some information of the generated smart contract. It may include a step of generating (S320).

일 실시예에 있어서 스마트 컨트랙트를 생성하는 단계(S310)는, 제 1 가상머신이 제 1 계약에 관한 정보를 포함하는 전자 문서를 생성하는 단계(S311) 및 제 1 가상머신 및 제 2 가상머신 중 적어도 하나가 전자 문서에 전자서명하여, 서명된 스마트 컨트랙트를 생성하는 단계(S312)를 포함할 수 있다.In one embodiment, the step of generating a smart contract (S310) is the step of generating an electronic document including information on the first contract by a first virtual machine (S311), and among the first virtual machine and the second virtual machine. At least one may include digitally signing the electronic document and generating a signed smart contract (S312).

이와 같이 스마트 컨트랙트에 관한 정보를 트랜잭션으로 하여 블록을 형성할 경우, 상술한 블록체인 프로세스를 수행하는 단계(S400)는, 동일한 채널에 속하는 복수의 가상머신을 참여 노드로 하여, 스마트 컨트랙트 중 적어도 일부의 정보를 포함하는 트랜잭션 및/또는 그 트랜잭션을 포함하는 블록을 참여 노드들에게 브로드캐스팅하는 단계(S410a)를 포함할 수 있다. 예를 들면, 스마트 컨트랙트가 트랜잭션으로 포함된 블록을 참여 노드들에게 브로드캐스팅할 수 있다. 예를 들면 본 발명의 일 실시예에서 어느 채널의 그룹핑된 노드 중 하나는 문서를 생성할 수 있으며, 문서를 암호화하여 스마트 컨트랙트를 생성할 수 있고, 이에 상응하는 블록을 브로드캐스팅할 수 있다.In this way, when a block is formed by using information about a smart contract as a transaction, in the step of performing the above-described blockchain process (S400), a plurality of virtual machines belonging to the same channel are used as participating nodes, and at least some of the smart contracts Broadcasting a transaction including information of and/or a block including the transaction to participating nodes (S410a) may be included. For example, a smart contract can broadcast a block included in a transaction to participating nodes. For example, in one embodiment of the present invention, one of the grouped nodes of a certain channel can create a document, encrypt the document to create a smart contract, and broadcast a block corresponding to it.

도 8 은 본 발명의 일 실시예에 따른 스마트 컨트랙트 처리를 나타내는 도면이며, 연봉 계약서를 스마트 컨트랙트로 처리하는 일 실시예를 나타내며 이하의 단계들을 통해 수행될 수 있다.8 is a diagram showing smart contract processing according to an embodiment of the present invention, and shows an example of processing an annual salary contract as a smart contract, which can be performed through the following steps.

호스트 노드인 A 노드는 연봉 계약서에 상응하는 스마트 컨트랙트 코드를 작성하여 타 노드들에 전송한다(S311a). The host node, node A, creates a smart contract code corresponding to the annual salary contract and transmits it to other nodes (S311a).

호스트 노드인 A 노드는 계약기간, 업무내용, 연봉, 연 휴가일수, 그 밖의 복지 정보를 포함하는 스마트 컨트랙트 코드를 생성한다(S311b).Node A, which is the host node, generates a smart contract code including the contract period, work details, annual salary, number of vacation days per year, and other welfare information (S311b).

B 노드는 스마트 컨트랙트의 내용을 확인한 후 전자서명한다(S312a).Node B confirms the content of the smart contract and then electronically signs it (S312a).

A 노드는 B 노드가 전자서명한 스마트 컨트랙트를 전자서명하고, B 노드에게 피드백한다(S312b).Node A digitally signs the smart contract digitally signed by node B and feeds back to node B (S312b).

일 실시예에서 전자서명은 공개키 기반 구조 (Public Key Infrastructure, PKI) 방식에 기초할 수 있다. 예를 들면, 어느 문서에 대해 문서와 관련된 유저의 개인키로 서명한 전자서명이 저장되고, 상기 전자서명 및 유저의 공개키는 일반 사용자들에게 공개될 수 있다. 이로써, 일반 사용자는 해당 서명이 특정 유저에 의해 전자서명된 진정한 서명임을 확인할 수 있다. 이를 위하여, 본 발명에서 공개키(Public Key)와 개인키(Private Key)는 공개키 기반 구조(Public Key Infrastructure, PKI) 방식으로 생성된 키들이 이용될 수 있다. 본 발명에서 개인키는 서명의 대상이 되는 정보를 전자서명하는데 이용되며, 공개키는 그 서명을 검증하기 위하여 이용될 수 있다. 예를 들면, 서명의 대상이 되는 정보 또는 그 해시 값을 개인키로 암호화함으로써 서명이 생성될 수 있고, 그 생성된 서명은 공개키로 이용하여 복호화되고 서명의 대상이 되는 정보 또는 그 해시 값과 비교됨으로서 검증될 수 있다. 또는 PKI 방식의 공개키 및 개인키를 이용한 알려진 다른 디지털 서명 방식이 사용될 수도 있다.In one embodiment, the digital signature may be based on a Public Key Infrastructure (PKI) method. For example, an electronic signature signed with a user's private key related to a document is stored, and the electronic signature and the user's public key can be disclosed to general users. In this way, the general user can confirm that the corresponding signature is a true signature digitally signed by a specific user. To this end, in the present invention, keys generated by a public key infrastructure (PKI) method may be used as a public key and a private key. In the present invention, the private key is used to digitally sign the information to be signed, and the public key can be used to verify the signature. For example, a signature may be generated by encrypting information to be signed or its hash value with a private key, and the generated signature is decrypted using a public key and compared with information to be signed or its hash value. can be verified Alternatively, another known digital signature method using a public key and a private key of the PKI method may be used.

도 9 는 본 발명의 일 실시예에 따른 블록에 저장되는 정보를 나타내는 도면이다.9 is a diagram illustrating information stored in a block according to an embodiment of the present invention.

도 8 과 같이 생성된 스마트 컨트랙트에 대하여, 노드는 도 9 와 같이 스마트 컨트랙트가 체결된 연봉 계약서를 트랜잭션으로 구성한 블록을 생성할 수 있고, 해당 블록은 동일 채널에 속한 노드들에게 브로드캐스팅 됨으로써 각 노드들에 접속하는 담당 확인자(Verfier)가 이를 확인할 수 있다.Regarding the smart contract created as shown in FIG. 8, the node can create a block composed of the annual salary contract signed with the smart contract as a transaction, as shown in FIG. 9, and the block is broadcast to nodes belonging to the same channel, so that each node The verifier responsible for accessing the field can verify this.

4) 블록 생성 및 합의 알고리즘4) Block generation and consensus algorithm

본 발명의 일 실시예에 있어서, 동일한 채널에 속하는 가상머신들 간에 소정의 블록체인 프로세스를 수행하는 단계(S400)는, 상술한 바와 같이 동일한 채널에 속하는 복수의 가상머신을 블록체인의 참여 노드로 하여, 트랜잭션 및/또는 그 트랜잭션을 포함하는 블록을 참여 노드들에게 브로드캐스팅하는 단계(S410), 참여 노드로 기능하는 가상머신의 자원 스케쥴링 단계(S420), 각 참여 노드들이 수신한 트랜잭션 및/또는 블록을 검증하는 검증 단계(S430), 및 검증 단계(S430)에서 검증된 블록을 블록체인에 추가하는 단계(S440)를 포함할 수 있다. In one embodiment of the present invention, in the step of performing a predetermined blockchain process between virtual machines belonging to the same channel (S400), as described above, a plurality of virtual machines belonging to the same channel are used as participating nodes of the blockchain. Then, broadcasting the transaction and/or a block including the transaction to participating nodes (S410), scheduling resources of virtual machines functioning as participating nodes (S420), each participating node receives the transaction and/or It may include a verification step of verifying the block (S430), and a step of adding the block verified in the verification step (S430) to the blockchain (S440).

여기서 검증 단계(S430)는 미리 결정된 블록체인의 합의 알고리즘에 기초하여 블록을 검증하는 것을 포함할 수 있고, 알려진 합의 알고리즘에 기초할 수 있다.Here, the verification step (S430) may include verifying the block based on a predetermined consensus algorithm of the block chain, or may be based on a known consensus algorithm.

본 발명의 블록체인의 노드들은 공유 원장의 방식으로 블록체인을 보유하며, 새로 발생한 트랜잭션을 수신하는 처리, 이를 포함하는 블록을 생성하는 처리, 그 생성한 블록을 블록체인에 추가하려는 요청을 다른 노드에 전송하는 처리, 다른 노드로부터 수신한 블록 추가 요청을 미리 규정된 합의 알고리즘에 따라 검증하여 본인이 보유 또는 접속하고 있는 블록체인에 해당 블록을 추가하는 처리 중 적어도 하나를 수행할 수 있다. 노드 전부 또는 이들 중 일부 노드는, 미리 규정된 합의 알고리즘에 따라, 블록 및/또는 트랜잭션의 유효성 검증, 블록 및/또는 트랜잭션의 순서 결정, 새로운 블록의 블록체인에의 추가 중 적어도 하나를 수행할 수 있다. 그리고 합의 알고리즘에 의해 검증된 블록만이 블록체인에 최종적으로 추가될 수 있다. 이때 경우에 따라서 임시적으로 블록이 추가된 복수개의 블록체인이 동시에 존재할 수도 있고, 합의 알고리즘에 따른 후속 검증에 의해 유효하지 않은 것으로 판정된 블록체인이 폐기됨으로써, 최종적인 블록체인이 결정될 수도 있다. 이로써, 각 노드들이 보유 또는 접속하고 있는 블록체인들이 서로 일치화되어 공유될 수 있다. 본 발명의 합의 알고리즘은 상기 기능을 수행할 수 있도록 정의된 알고리즘이면 되며, 특정한 합의 알고리즘으로 한정되는 것은 아니다. 예를 들면, 작업 증명 (Proof-of-Work, POW) 알고리즘, 지분 증명 (Proof-of-Stake, POS) 알고리즘, 프랙티컬 비잔틴 장애 허용 (Practical Byzantine Fault Tolerance, PBFT) 알고리즘, 경과 시간 증명 (Proof of Elapsed Time, PoET) 알고리즘 등이 이용될 수 있으며, 이외에도 상기 기능을 수행하도록 설계된 임의의 알고리즘이 이용될 수도 있다.The nodes of the block chain of the present invention hold the block chain in the manner of a shared ledger, and the processing of receiving newly generated transactions, the processing of generating blocks including them, and the request to add the created blocks to the block chain are sent to other nodes. At least one of the processing of transmitting to the node and the processing of adding the corresponding block to the blockchain owned or accessed by verifying the request for adding a block received from another node according to a predefined consensus algorithm can be performed. All or some of the nodes may perform at least one of validating blocks and/or transactions, determining the order of blocks and/or transactions, and adding new blocks to the blockchain according to a predefined consensus algorithm. there is. And only blocks verified by the consensus algorithm can be finally added to the blockchain. At this time, depending on the case, a plurality of blockchains with temporarily added blocks may exist at the same time, and the final blockchain may be determined by discarding a blockchain determined to be invalid by subsequent verification according to a consensus algorithm. As a result, the blockchains owned or connected by each node can be synchronized and shared. The consensus algorithm of the present invention may be an algorithm defined to perform the above functions, and is not limited to a specific consensus algorithm. For example, Proof-of-Work (POW) algorithm, Proof-of-Stake (POS) algorithm, Practical Byzantine Fault Tolerance (PBFT) algorithm, Elapsed Time Proof (Proof-of-Stake) algorithm. of Elapsed Time (PoET) algorithm, etc. may be used, and any algorithm designed to perform the above function may be used.

도 10 은 본 발명의 일 실시예에 따른 블록체인의 합의 알고리즘의 예를 설명하기 위한 참고 도면이다. 본 발명의 노드들은 수신한 블록을 미리 정해진 합의 알고리즘에 기초하여 검증할 수 있다. 도 10 의 실시예에서 본 발명의 블록체인 시스템은, 대표적인 지분증명 방식 중 하나인 BFT(Byzantine Fault Tolerance) 방식을 이용하여 하기 ① 내지 ④ 의 단계에 따라 합의 알고리즘을 수행할 수 있다.10 is a reference diagram for explaining an example of a blockchain consensus algorithm according to an embodiment of the present invention. The nodes of the present invention can verify the received block based on a predetermined consensus algorithm. In the embodiment of FIG. 10 , the blockchain system of the present invention may perform the consensus algorithm according to steps ① to ④ below using the Byzantine Fault Tolerance (BFT) method, which is one of the representative proof-of-stake methods.

① 계약서를 작성하고 이에 상응하는 블록을 생성하여 블록체인에 추가하는 것을 요청하는 주체를 호스트 노드로 정의한다.① A subject requesting to write a contract, create a block corresponding to it, and add it to the blockchain is defined as a host node.

② 호스트 노드는 계약서 {v} 정보를 포함하는 블록을 동일 채널에 속한 모든 노드들에게 브로드캐스팅한다.② The host node broadcasts a block containing contract {v} information to all nodes belonging to the same channel.

③ 각각의 노드는 호스트 노드로부터 수신한 계약서 {v} 정보를 포함하는 블록을 다른 모든 노드들과 공유한다. 도 10 의 실시예에서 노드 1은 노드 2로부터 {v}를, 노드 1은 노드 3로부터 {x}를, 노드 2는 노드 1로부터 {v}를, 노드 2는 노드 3로부터 {x}를, 노드 3은 노드 1로부터 {v}를, 노드 3은 노드 2로부터 {v}를 수신한다.③ Each node shares the block containing the contract {v} information received from the host node with all other nodes. 10, node 1 receives {v} from node 2, node 1 receives {x} from node 3, node 2 receives {v} from node 1, node 2 receives {x} from node 3, Node 3 receives {v} from node 1, and node 3 receives {v} from node 2.

④ 합의 알고리즘에 따라 다수의 가치를 인정받는 블록이 블록체인에 추가된다. 예를 들면 도 10 의 실시예에서 노드들은 {v, v, x} 중 다수의 가치를 차지하는 {v}로 진정한 계약서를 합의하며, 그 합의에 따라서 노드 3이 공유한 계약서 {x}가 아닌 합의된 계약서 {v} 정보를 포함하는 블록으로 블록체인을 업데이트한다. 도 10 의 실시예와 같이 노드 3에 문제가 있을 경우, 블록체인 시스템은 상술한 동작을 통해 합의된 계약서 {v} 정보를 포함하는 블록으로 블록체인을 업데이트함으로써 블록체인의 무결성을 확보할 수 있다.④ According to the consensus algorithm, blocks that are recognized for their multiple values are added to the blockchain. For example, in the embodiment of FIG. 10, the nodes agree on a true contract with {v} occupying a majority value among {v, v, x}, and according to the agreement, the contract {x} shared by node 3 is not an agreement. update the block chain with a block containing the information of the contract {v}. As in the embodiment of FIG. 10, if there is a problem with node 3, the blockchain system can secure the integrity of the blockchain by updating the blockchain with a block containing the agreed contract {v} information through the above-described operation. .

도 11 은 일 실시예에 있어서의 본 발명의 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법의 흐름도이다.11 is a flowchart of a method for operating a multi-channel node based on a cloud virtual machine using a block chain according to an embodiment of the present invention.

도 11 의 도시와 같이 본 발명의 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법은, 가상머신을 채널으로 그룹핑하는 단계(S2000), 채널에 속하는 어느 노드(가상머신)이 문서 생성 요청을 생성하는지 여부를 주기적 또는 계속적으로 확인하는 단계(S3001), 문서 생성 요청이 있는 경우 그 요청을 한 노드를 호스트 노드로 하여 호스트 노드의 요청에 따라 문서를 암호화하는 단계(S3002), 암호화한 문서에 상응하는 스마트 컨트랙트를 생성하는 단계(S3003), 암호화된 문서와 그 스마트 컨트랙트에 상응하는 블록을 생성하는 단계(S3004), 생성된 블록을 동일 채널 내의 참여 노드들에게 브로드캐스팅하는 단계(S4100), 노드들 간에 미리 정해진 합의 알고리즘에 기초하여 블록을 검증하는 단계(S4300), 검증을 통과한 블록으로 블록체인을 업데이트하는 단계(S4400)를 포함할 수 있다.As shown in FIG. 11, in the cloud virtual machine-based multi-channel node operating method using the block chain of the present invention, grouping virtual machines into channels (S2000), a node (virtual machine) belonging to the channel receives a document creation request A step of periodically or continuously checking whether a document is generated (S3001), a step of encrypting a document according to the request of the host node by using the node that made the request as a host node if there is a request for document creation (S3002), Creating a corresponding smart contract (S3003), generating an encrypted document and a block corresponding to the smart contract (S3004), broadcasting the generated block to participating nodes in the same channel (S4100), It may include verifying a block based on a predetermined agreement algorithm between nodes (S4300) and updating the block chain with a block that has passed the verification (S4400).

일 실시예에서 블록체인은 퍼블릭 블록체인 (비트코인, 이더리움, EOS 등), 프라이빗 블록체인 혹은 콘소시엄 블록체인 (하이퍼레저, EEA 등) 등을 지원할 수 있다. 일 실시예에 있어서 블록체인은 퍼미션드 블록체인 (Permissioned Block Chain) 의 형태로 운영될 수 있다. 퍼미션드 블록체인에서는 허가된 참여자만이 블록체인에 접근할 수 있고, 그 접근에 권한이 설정될 수 있다. 이러한 퍼미션드 블록체인에서는, 제한적인 사용자만 블록체인 네트워크에 참여하며, 사용자의 참여를 관리하는 멤버십이 존재하고, 블록을 생성하는 일부 노드만 합의에 참여할 수 있다. 이러한 퍼미션드 블록체인은 일 예로써, 제한된 사용자만 블록 생성 및 데이터 열람이 가능한 사설 블록체인이나, 제한된 사용자만 블록을 생성하되, 열람은 누구나 가능한 콘소시엄 블록체인 등이 될 수 있고, 이에 제한되지는 않는다.In one embodiment, the blockchain may support a public blockchain (Bitcoin, Ethereum, EOS, etc.), a private blockchain, or a consortium blockchain (Hyperledger, EEA, etc.). In one embodiment, the block chain may be operated in the form of a permissioned block chain. In a permissioned blockchain, only authorized participants can access the blockchain, and permissions can be set for that access. In this permissioned blockchain, only limited users participate in the blockchain network, there is a membership that manages user participation, and only some nodes that create blocks can participate in consensus. As an example, such a permissioned blockchain may be a private blockchain in which only limited users can create blocks and view data, or a consortium blockchain in which only limited users can create blocks but can be viewed by anyone, but is not limited thereto. don't

본 발명의 블록체인의 블록은 적어도 하나 이상의 트랜잭션을 포함할 수 있다. 일 실시예에 있어서 블록은 타임 스탬프를 포함할 수 있고, 타임 스탬프는 블록 및/또는 트랜잭션과 관련된 시간 정보(예를 들면, 블록 생성 시간)를 나타낼 수 있다. 본 발명의 블록체인과 연동되는 노드는 트랜잭션을 생성하여 다른 노드들에 전송 및/또는 브로드캐스팅할 수 있다. 노드들 전부 또는 이들 중 일부 노드는, 시스템에서 새로 발생한 적어도 하나 이상의 트랜잭션을 포함하는 새로운 블록을 생성할 수 있다. A block of the blockchain of the present invention may include at least one or more transactions. In one embodiment, a block may include a time stamp, and the time stamp may indicate time information (eg, block creation time) related to the block and/or transaction. Nodes that work with the blockchain of the present invention can create transactions and transmit and/or broadcast them to other nodes. All or some of the nodes may create a new block including at least one transaction newly generated in the system.

본 발명에서 블록체인은 메시지의 암호학적 해시 값 (Cryptographic Hash Output) 을 체인으로 연결함으로써, 블록체인에 등록된 데이터의 위변조를 방지할 수 있다. 여기서 해시 값을 계산할 때 사용하는 해시 함수는 일 방향 (One-way) 특성을 만족하는 함수로서, 입력으로부터 출력값은 계산하기 쉬우나 출력값을 이용해 입력값을 유추하기 어려운 함수라는 특성을 갖는다. 이러한 해시 함수로는 예를 들어 NIST 표준으로 등록되어있는 SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512), SHA3, 혹은 암호 해시(Cryptographic Hash) 함수나 다른 해시 함수를 사용할 수 있다. 이 경우 블록체인을 구성하는 각 블록들은 해시를 기반으로 한 연관 관계를 갖도록 상호 연결된다. 예를 들면 어느 블록이 그 이전 순번의 블록의 해시 값을 저장하는 해시 체인의 구조를 갖는 방식으로 블록들이 연결될 수 있다. 이와 같이 해시를 기반으로 연결된 블록들로 이루어지는 블록체인에서는, 어느 한 블록의 정보의 변경은 해당 블록으로부터 산출한 해당 블록의 해시 값의 변경을 초래하고, 이는 그 다음 블록의 내용의 변경을 초래하기 때문에, 필수적으로 해당 블록 이후의 모든 블록들의 정보의 변경을 초래한다. 따라서, 악의적인 사용자가 블록의 특정 트랜잭션을 조작하면, 블록체인의 해시가 변경되므로 그 조작 여부를 쉽게 검증할 수 있다.In the present invention, the block chain can prevent forgery and falsification of data registered in the block chain by connecting the cryptographic hash output of the message into a chain. Here, the hash function used to calculate the hash value is a function that satisfies the one-way characteristic, and has the characteristic of being a function that is easy to calculate the output value from the input but difficult to infer the input value using the output value. These hash functions include, for example, SHA-2 (SHA-224, SHA-256, SHA-384, and SHA-512), SHA3, or Cryptographic Hash functions registered as NIST standards, or other hash functions. can be used In this case, each block constituting the blockchain is interconnected to have a hash-based relationship. For example, blocks may be connected in such a way that a certain block has a hash chain structure in which a hash value of a previous block is stored. In a blockchain composed of blocks connected based on hashes, a change in the information of a block causes a change in the hash value of the block calculated from the corresponding block, which causes a change in the contents of the next block. Therefore, it inevitably results in the change of information of all blocks after the corresponding block. Therefore, if a malicious user manipulates a specific transaction in a block, the hash of the block chain is changed, so it can be easily verified whether or not the manipulation has occurred.

또한, 블록체인에서는 일부 소수의 참여자가 블록체인의 데이터를 위변조하는 것을 방지하기 위해 다수의 참여자가 블록체인을 공유하는 공유 원장 방식을 사용될 수 있다. 이 경우 복수의 노드에 의해 공유되는 블록체인에서는 악의적인 사용자가 블록체인에 조작된 데이터를 갖는 블록을 추가하고, 이와 같이 조작된 블록을 순차적으로 추가함으로써 블록체인이 조작될 가능성이 존재한다. 블록체인에서는 이와 같은 악의적인 사용자에 의한 데이터의 위변조를 방지하기 위해, 다수의 블록체인의 노드들이 각자 블록체인을 보유하면서 새로 발생한 트랜잭션을 수신하여 이를 포함하는 블록을 생성하고, 그 생성한 블록을 블록체인에 추가하려는 요청을 다른 노드에 전송하며, 또한 다른 노드로부터 수신한 블록 추가 요청을 미리 규정된 합의 알고리즘에 따라 검증함으로써, 결국 다수의 노드에 의해 검증되어 추가가 승인된 블록이 블록체인에 추가된다. 따라서, 블록체인에 추가하려는 블록이 악의적인 사용자에 의해 위변조된 블록이라고 하더라도, 블록체인을 공유하는 다수의 노드들이 작업 증명 (Proof-of-Work, POW) 알고리즘, 지분 증명 (Proof-of-Stake, POS) 알고리즘 등 미리 규정된 합의 알고리즘에 따른 검증에 의해 유효하지 않은 것으로 판정된 블록을 폐기함으로써, 최종적으로 유효한 블록체인이 남겨질 수 있다. 이로써, 노드들이 보유하는 블록체인이 서로 일치화 되어 공유될 수 있다.In addition, in the blockchain, a shared ledger method in which a large number of participants share the blockchain can be used to prevent forgery and falsification of blockchain data by a small number of participants. In this case, in a blockchain shared by a plurality of nodes, there is a possibility that the blockchain may be manipulated by a malicious user adding a block having manipulated data to the blockchain and sequentially adding the manipulated blocks. In blockchain, in order to prevent forgery and falsification of data by such malicious users, nodes of multiple blockchains receive newly generated transactions while holding their respective blockchains, create blocks that include them, and store the generated blocks. Requests to be added to the blockchain are sent to other nodes, and block addition requests received from other nodes are verified according to a pre-defined consensus algorithm. Eventually, blocks that are verified by multiple nodes and approved for addition are added to the blockchain. Added. Therefore, even if the block to be added to the blockchain is forged by a malicious user, multiple nodes sharing the blockchain can use the Proof-of-Work (POW) algorithm, Proof-of-Stake , POS) algorithm, etc., by discarding blocks determined to be invalid by verification according to a predefined consensus algorithm, a finally valid block chain can be left. As a result, the blockchains owned by the nodes can be synchronized and shared.

본 발명의 일 실시예에 따른 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 시스템은, 메모리 및 상기 메모리에 연결된 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는: 상술한 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법을 수행하도록 구성될 수 있다.A cloud virtual machine-based multi-channel node operating system using a block chain according to an embodiment of the present invention includes a memory and at least one processor connected to the memory, and the at least one processor: It may be configured to perform a cloud virtual machine-based multi-channel node operating method.

본 발명의 일 실시예에 따른 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 시스템의 적어도 하나의 프로세서에 의해 실행 가능하고 컴퓨터 판독 가능 저장 매체에 저장되는 컴퓨터 프로그램은, 상술한 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법을 수행하는 컴퓨터 프로그램이 될 수 있다.A computer program executable by at least one processor of a cloud virtual machine-based multi-channel node operating system using a blockchain according to an embodiment of the present invention and stored in a computer-readable storage medium is a cloud using the above-described blockchain. It can be a computer program that performs a virtual machine-based multi-channel node operating method.

본 발명의 일 실시예에 따른 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 저장 매체는 상술한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 저장 매체일 수 있다.A computer readable storage medium recording a computer program according to an embodiment of the present invention may be a computer readable storage medium recording the above-described computer program.

본 발명의 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 시스템/장치는 통신부와 저장부(일시적/비일시적 저장 장치, 메모리 등) 및 제어부(적어도 하나의 프로세서나 논리 회로 등)를 포함하도록 구성될 수 있다. 여기서 저장부는 각 장치의 기능 실행을 위한 프로그램 인스트럭션들과 데이터베이스들 중 적어도 일부를 일시적/비일시적으로 저장할 수 있고, 저장부에 저장된 프로그램 인스트럭션이 제어부에서 수행됨에 따라 상술한 각 장치의 기능들이 실행될 수 있다. 이와 같은 장치로 상용되는 컴퓨터가 이용될 수도 있고 임베디드 시스템이 설계되어 이용될 수도 있다. The cloud virtual machine-based multi-channel node operating system/device using the block chain of the present invention is configured to include a communication unit, a storage unit (temporary/non-temporary storage device, memory, etc.) and a control unit (at least one processor or logic circuit, etc.) It can be. Here, the storage unit may temporarily/non-temporarily store at least some of program instructions and databases for executing functions of each device, and as the program instructions stored in the storage unit are executed by the control unit, the above-described functions of each device may be executed. there is. As such a device, a commercially available computer may be used or an embedded system may be designed and used.

본 명세서에서 개시된 방법 또는 프로세스에서 설명된 동작의 순서는 일 예로서 설명된 것이다. 따라서 필요에 따라 각 단계들의 순서는 본 발명의 사상 내에서 조정될 수 있다. 즉, 단계들은 반드시 그 식별번호의 순서에 따라 수행되어야 하는 것은 아니며, 본 발명의 목적을 달성할 수 있는 범위 내에서 병행하여 수행되거나, 높은 식별번호가 부여된 단계가 낮은 식별번호가 부여된 단계 이전에 먼저 시작될 수도 있다.The sequence of operations described in the method or process disclosed herein is described as an example. Accordingly, the order of each step can be adjusted as needed within the spirit of the present invention. That is, the steps do not necessarily have to be performed in the order of the identification numbers, and are performed in parallel within the scope of achieving the object of the present invention, or steps assigned with higher identification numbers are steps assigned with lower identification numbers. It may start earlier.

또한 본 명세서에서 개시된 디바이스 및 시스템은 본 명세서에서 설명된 기능들을 수행할 수 있는 수단들을 포함할 수 있고, 필요에 따라 독립된 디바이스 또는 시스템으로 구현되거나 또는 다른 시스템과 연동되거나 통합된 형태로 존재할 수도 있다. In addition, the device and system disclosed in this specification may include means capable of performing the functions described in this specification, and may be implemented as an independent device or system, or may be interlocked or integrated with other systems, if necessary. .

본 명세서에서 설명된 기술들은 적어도 부분적으로 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 이들은 예를 들어 하나 이상의 프로세서들, DSP, ASIC, FPGA, 또는 등가의 집적 또는 이산 로직 회로, 또는 이들 중 적어도 하나 이상의 임의의 조합으로 구현될 수도 있다. 이러한 하드웨어, 소프트웨어 및 펌웨어는 본 명세서에 개시된 동작들 및 기능들을 지원하기 위해 하나의 또는 복수개의 시스템이나 디바이스 내에서 구현될 수 있고, 또는 다른 시스템이나 디바이스와 연동되거나 통합된 형태로 구현될 수도 있다. 또한, 본 명세서에서 설명된 컴포넌트들은 별개이지만 상호 운용 가능한 로직 디바이스들과 함께 또는 별개로 구현될 수도 있다. 본 명세서에서 구분되어 설명된 각 기능 및 동작들은 각각의 기능을 강조하기 위하여 그와 같이 설명된 것일 뿐, 그러한 기능들이 각각 별개의 하드웨어, 펌웨어 또는 소프트웨어 컴포넌트들에 실현되어야 하는 것은 아니며, 공통의 또는 별개의 하드웨어 및/또는 소프트웨어의 조합 내에 통합될 수도 있다. 용어 "프로세서" 또는 "프로세싱 회로"는 일반적으로 임의의 전술된 로직 회로 단독 또는 다른 로직 회로와 결합된 것, 또는 임의의 다른 등가 회로를 지칭할 수도 있다. 하드웨어를 포함하는 제어 유닛은 본 개시물의 기술들 중 하나 이상을 수행할 수도 있다.The techniques described herein may be implemented at least in part in hardware, software, firmware, or any combination thereof. These may be implemented, for example, in one or more processors, DSP, ASIC, FPGA, or equivalent integrated or discrete logic circuitry, or any combination of at least one or more of these. Such hardware, software and firmware may be implemented within one or multiple systems or devices to support the operations and functions disclosed herein, or may be implemented in interlocking or integrated form with other systems or devices. . Further, the components described herein may be implemented separately or together with discrete but interoperable logic devices. Each function and operation separately described in this specification is described as such to emphasize each function, and such functions do not have to be realized in separate hardware, firmware, or software components, and do not have to be implemented in common or It may also be integrated into a combination of discrete hardware and/or software. The term “processor” or “processing circuit” may generally refer to any of the foregoing logic circuits, alone or in combination with other logic circuits, or any other equivalent circuit. A control unit comprising hardware may perform one or more of the techniques of this disclosure.

또한, 본 명세서에서 설명된 기술들은 명령들을 포함하는 컴퓨터 판독가능 저장 매체에서 구현되거나 저장될 수도 있다. 그리고 컴퓨터 판독가능 매체에 저장된 명령들은 각 장치에서 프로세서에 의해 그 명령과 관련된 방법 및 동작이 수행되게 할 수 있다. 컴퓨터 판독가능 저장 매체는 RAM, ROM, PROM, EPROM, EEPROM, 플래시 메모리, 하드 디스크, CD-ROM, 자기 매체, 광학 매체, 또는 기타 저장 매체들을 포함할 수도 있다.Also, the techniques described herein may be implemented or stored in a computer readable storage medium containing instructions. And the instructions stored in the computer readable medium can cause methods and operations related to the instructions to be performed by a processor in each device. Computer readable storage media may include RAM, ROM, PROM, EPROM, EEPROM, flash memory, hard disk, CD-ROM, magnetic media, optical media, or other storage media.

Claims (20)

블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법으로서,
클라우드 서버 상에 존재하는 복수의 가상머신(Virtual Machine)에 대하여, 각 가상머신 별로 하나 이상의 채널을 할당하는 단계; 및
동일한 채널에 속하는 가상머신들 간에 소정의 블록체인 프로세스를 수행하는 단계를 포함하고,
상기 가상머신은 블록체인 시스템에서 검증을 수행하는 참여 노드로 기능하고,
상기 블록체인 프로세스를 수행하는 단계는,
동일한 채널에 속하는 복수의 가상머신을 상기 참여 노드로 하여, 트랜잭션 또는 상기 트랜잭션을 포함하는 블록 중 적어도 하나를 상기 참여 노드들에게 브로드캐스팅하는 단계;
상기 참여 노드로 기능하는 상기 가상머신의 자원 스케쥴링 단계; 및
각 참여 노드들이 수신한 트랜잭션 또는 블록 중 적어도 하나를 검증하는 검증 단계를 포함하고,
상기 가상머신의 자원 스케쥴링 단계는,
임의의 가상머신에 할당된 모든 채널의 자원의 용량의 합이 소정의 임계치를 초과하는지 여부를 판정하는 단계;
상기 가상머신에 할당된 모든 채널의 자원의 용량의 합이 소정의 임계치를 초과하는 것으로 판정된 경우, 그 초과하는 것으로 판정된 해당 가상머신을 자원 용량이 포화된 노드로 판정하는 단계; 및
상기 자원 용량이 포화된 노드가 존재하는 경우, 해당 노드의 상기 자원 용량의 포화가 해소될 때까지, 해당 노드가 포함된 채널의 노드들이 상기 블록체인 프로세스 중 적어도 상기 검증 단계를 수행하지 않고 대기하도록 하는 요청을 생성하는 단계를 포함하는, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
As a cloud virtual machine-based multi-channel node operation method using blockchain,
Allocating one or more channels for each virtual machine to a plurality of virtual machines existing on a cloud server; and
Including performing a predetermined blockchain process between virtual machines belonging to the same channel,
The virtual machine functions as a participating node that performs verification in a blockchain system,
The step of performing the blockchain process is,
broadcasting at least one of a transaction or a block including the transaction to the participating nodes using a plurality of virtual machines belonging to the same channel as the participating nodes;
resource scheduling of the virtual machine functioning as the participating node; and
A verification step of verifying at least one of the transactions or blocks received by each participating node;
The resource scheduling step of the virtual machine,
determining whether a sum of resource capacities of all channels allocated to a virtual machine exceeds a predetermined threshold value;
When it is determined that the sum of resource capacities of all channels allocated to the virtual machine exceeds a predetermined threshold, determining the corresponding virtual machine determined to exceed the threshold as a node whose resource capacity is saturated; and
If there is a node whose resource capacity is saturated, the nodes of the channel including the node wait without performing at least the verification step of the blockchain process until the saturation of the resource capacity of the corresponding node is resolved. A method for operating a multi-channel node based on a cloud virtual machine using a block chain, comprising the step of generating a request to do so.
제 1 항에 있어서,
서로 다른 채널을 보유하는 적어도 2 개의 가상머신이 클라우드 서버 상에 존재하는, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
According to claim 1,
A cloud virtual machine-based multi-channel node operating method using a blockchain, wherein at least two virtual machines having different channels exist on a cloud server.
제 1 항에 있어서,
상기 클라우드 서버 상에 복수의 가상머신을 생성하는 단계를 더 포함하는, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
According to claim 1,
A cloud virtual machine-based multi-channel node operating method using a blockchain, further comprising generating a plurality of virtual machines on the cloud server.
제 1 항에 있어서,
상기 가상머신에 접속하는 사용자를 인증하는 단계를 더 포함하는, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
According to claim 1,
A cloud virtual machine-based multi-channel node operating method using a blockchain, further comprising authenticating a user accessing the virtual machine.
제 1 항에 있어서,
상기 채널은 회사의 소정의 업무를 처리하기 위해 부여 및 설정되는 채널인, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
According to claim 1,
The channel is a channel assigned and set to process a predetermined task of the company, a cloud virtual machine-based multi-channel node operating method using a block chain.
제 1 항에 있어서,
상기 블록체인 프로세스를 수행하는 단계는, 호스트 노드가, 상기 브로드캐스팅하는 단계 이전에, 소정의 계약서 업무에 상응하는 상기 트랜잭션을 포함하는 블록을 생성하는 단계를 더 포함하는, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
According to claim 1,
The performing of the blockchain process may further include generating, by a host node, a block including the transaction corresponding to a predetermined contract task, prior to the broadcasting, by a host node. How to operate a machine-based multi-channel node.
제 1 항에 있어서,
상기 임계치를 초과하는지 여부를 판정하는 단계는, 하기 수학식 1 의 조건이 충족되지 않을 경우 상기 가상머신에 할당된 모든 채널의 자원의 용량의 합이 소정의 임계치를 초과하는 것으로 판정하는, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
Figure 112023032163217-pat00017
(수학식 1)
(여기서 VMi(Chj) 는 가상머신 VMi 이 채널 Chj 에 대해 갖는 자원의 용량을 나타내는 식별자이고, i 는 가상머신의 인덱스이고, j 는 채널의 인덱스이다).
According to claim 1,
In the step of determining whether the threshold is exceeded, if the condition of Equation 1 below is not met, it is determined that the sum of the resource capacities of all channels allocated to the virtual machine exceeds a predetermined threshold, Cloud virtual machine-based multi-channel node operation method using
Figure 112023032163217-pat00017
(Equation 1)
(Where VM i (Ch j ) is an identifier indicating the capacity of a resource that virtual machine VM i has for channel Ch j , i is the index of the virtual machine, and j is the index of the channel).
제 1 항에 있어서,
상기 가상머신의 자원 스케쥴링 단계는, 상기 가상머신에 할당된 모든 채널의 자원의 용량의 합이 소정의 임계치를 초과하지 않는 것으로 판정된 경우, 해당 가상머신을 블록체인 프로세스 중 적어도 상기 검증 단계를 수행할 수 있는 노드로 판정하는 단계를 더 포함하는, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
According to claim 1,
In the resource scheduling step of the virtual machine, when it is determined that the sum of the resource capacities of all channels allocated to the virtual machine does not exceed a predetermined threshold, the corresponding virtual machine performs at least the verification step during the blockchain process A cloud virtual machine-based multi-channel node operating method using a blockchain, further comprising the step of determining a node capable of
제 8 항에 있어서,
상기 블록체인 프로세스를 수행하는 단계는, 임의의 채널의 모든 노드들이, 상기 검증 단계를 수행할 수 있는 노드로 판정된 경우, 해당 채널에 속하는 가상머신들 간에 상기 검증 단계를 수행하는, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
According to claim 8,
In the step of performing the blockchain process, when all nodes of a channel are determined to be nodes capable of performing the verification step, the verification step is performed between virtual machines belonging to the corresponding channel. Cloud virtual machine-based multi-channel node operation method.
제 1 항에 있어서,
채널에 속하는 노드가 문서 생성 요청을 생성하는지 여부를 확인하는 단계;
상기 문서 생성 요청이 있는 경우 그 요청을 한 노드를 호스트 노드로 하여 호스트 노드의 요청에 따라 문서를 암호화하는 단계;
암호화한 문서에 상응하는 스마트 컨트랙트를 생성하는 단계; 및
암호화된 문서와 그 스마트 컨트랙트에 상응하는 블록을 생성하는 단계를 더 포함하고,
상기 브로드캐스팅하는 단계는, 상기 생성된 블록을 동일 채널 내의 참여 노드들에게 브로드캐스팅하는, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
According to claim 1,
checking whether a node belonging to the channel generates a document creation request;
encrypting the document according to the request of the host node by setting the node that made the request as a host node when there is a request for generating the document;
Creating a smart contract corresponding to the encrypted document; and
Further comprising generating a block corresponding to the encrypted document and its smart contract;
In the broadcasting step, the generated block is broadcast to participating nodes within the same channel, a cloud virtual machine-based multi-channel node operating method using a blockchain.
제 1 항에 있어서,
상기 검증 단계는 미리 결정된 블록체인의 합의 알고리즘에 기초하여 상기 블록을 검증하는 것을 포함하는, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
According to claim 1,
The verification step comprises verifying the block based on a predetermined consensus algorithm of the block chain, a cloud virtual machine-based multi-channel node operating method using a block chain.
제 1 항에 있어서,
상기 검증 단계에서 검증된 블록을 블록체인에 추가하는 단계를 더 포함하는, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
According to claim 1,
A cloud virtual machine-based multi-channel node operating method using a blockchain, further comprising adding the block verified in the verification step to the blockchain.
제 1 항에 있어서,
상기 트랜잭션은 소정 그룹의 인사 정보, 재무 정보, 계약 정보 중 적어도 하나를 포함하는, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
According to claim 1,
The transaction includes at least one of personnel information, financial information, and contract information of a predetermined group, a cloud virtual machine-based multi-channel node operating method using a block chain.
제 1 항에 있어서,
상기 채널은 소정 그룹의 인사, 재무, 계약 중 적어도 하나에 기초하여 설정되는 채널인, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
According to claim 1,
The channel is a channel established based on at least one of personnel, finance, and contracts of a predetermined group, a cloud virtual machine-based multi-channel node operating method using a block chain.
제 1 항에 있어서,
동일한 채널에 속하는 임의의 가상머신들 간에 스마트 컨트랙트를 생성하는 단계; 및
상기 생성된 스마트 컨트랙트 중 적어도 일부의 정보를 포함하는 트랜잭션을 생성하는 단계를 더 포함하는, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
According to claim 1,
Creating a smart contract between arbitrary virtual machines belonging to the same channel; and
A cloud virtual machine-based multi-channel node operating method using a blockchain, further comprising generating a transaction including at least some information of the generated smart contract.
제 15 항에 있어서,
상기 브로드캐스팅하는 단계는, 동일한 채널에 속하는 복수의 가상머신을 상기 참여 노드로 하여, 상기 스마트 컨트랙트 중 적어도 일부의 정보를 포함하는 트랜잭션 또는 상기 트랜잭션을 포함하는 블록 중 적어도 하나를 상기 참여 노드들에게 브로드캐스팅하는, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
According to claim 15,
In the broadcasting, a plurality of virtual machines belonging to the same channel are used as participating nodes, and at least one of a transaction including at least some information of the smart contract or a block including the transaction is sent to the participating nodes. Broadcasting, cloud virtual machine-based multi-channel node operation method using blockchain.
제 15 항에 있어서,
상기 스마트 컨트랙트를 생성하는 단계는,
제 1 가상머신이 제 1 계약에 관한 정보를 포함하는 전자 문서를 생성하는 단계; 및
제 1 가상머신 및 제 2 가상머신 중 적어도 하나가 상기 전자 문서에 전자서명하여, 서명된 상기 스마트 컨트랙트를 생성하는 단계를 포함하는, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법.
According to claim 15,
The step of creating the smart contract,
Generating, by a first virtual machine, an electronic document including information on a first contract; and
At least one of a first virtual machine and a second virtual machine digitally signing the electronic document to generate the signed smart contract, a cloud virtual machine-based multi-channel node operating method using a blockchain.
블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 시스템으로서,
메모리; 및
상기 메모리에 연결된 적어도 하나의 프로세서를 포함하며,
상기 적어도 하나의 프로세서는:
제 1 항 내지 제 17 항 중 어느 한 항에 기재된 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법을 수행하도록 구성되는, 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 시스템.
As a cloud virtual machine-based multi-channel node operating system using blockchain,
Memory; and
at least one processor coupled to the memory;
The at least one processor is:
A cloud virtual machine-based multi-channel node operating system using a blockchain, configured to perform the method of operating a cloud virtual machine-based multi-channel node using a blockchain according to any one of claims 1 to 17.
블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 시스템의 적어도 하나의 프로세서에 의해 실행 가능하고 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 프로그램으로서, 제 1 항 내지 제 17 항 중 어느 한 항에 기재된 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법을 수행하는, 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 프로그램.A computer program executable by at least one processor of a cloud virtual machine-based multi-channel node operating system using a block chain and stored in a computer readable storage medium, comprising the block chain according to any one of claims 1 to 17. A computer program stored in a computer-readable storage medium that performs a method of operating a cloud virtual machine-based multi-channel node using a computer program. 제 1 항 내지 제 17 항 중 어느 한 항에 기재된 블록체인을 이용한 클라우드 가상머신 기반 다중 채널 노드 운용 방법을 수행하는 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 저장 매체.A computer-readable storage medium recording a computer program for performing the cloud virtual machine-based multi-channel node operating method using the block chain according to any one of claims 1 to 17.
KR1020220159840A 2022-11-24 2022-11-24 Method of operating multi-channel node based on cloud virtual machine using blockchain and system thereof Active KR102532319B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220159840A KR102532319B1 (en) 2022-11-24 2022-11-24 Method of operating multi-channel node based on cloud virtual machine using blockchain and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220159840A KR102532319B1 (en) 2022-11-24 2022-11-24 Method of operating multi-channel node based on cloud virtual machine using blockchain and system thereof

Publications (1)

Publication Number Publication Date
KR102532319B1 true KR102532319B1 (en) 2023-05-17

Family

ID=86547102

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220159840A Active KR102532319B1 (en) 2022-11-24 2022-11-24 Method of operating multi-channel node based on cloud virtual machine using blockchain and system thereof

Country Status (1)

Country Link
KR (1) KR102532319B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101691578B1 (en) * 2016-06-01 2016-12-30 주식회사 모비젠 Apparatus and method for collecting monitoring data of virtualized apparatus in virtualized environment and computer readable recording medium
KR101975822B1 (en) * 2018-10-26 2019-05-08 (주)리그시스템 Private blockchain network system and method for consensus based on blockchain
KR20190132009A (en) * 2018-05-18 2019-11-27 삼성에스디에스 주식회사 System for managing transaction based on blockchain and operationg method thereof
KR102189301B1 (en) * 2020-04-22 2020-12-11 주식회사 한국정보보호경영연구소 System and method for providing blockchain based cloud service with robost security

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101691578B1 (en) * 2016-06-01 2016-12-30 주식회사 모비젠 Apparatus and method for collecting monitoring data of virtualized apparatus in virtualized environment and computer readable recording medium
KR20190132009A (en) * 2018-05-18 2019-11-27 삼성에스디에스 주식회사 System for managing transaction based on blockchain and operationg method thereof
KR101975822B1 (en) * 2018-10-26 2019-05-08 (주)리그시스템 Private blockchain network system and method for consensus based on blockchain
KR102189301B1 (en) * 2020-04-22 2020-12-11 주식회사 한국정보보호경영연구소 System and method for providing blockchain based cloud service with robost security

Similar Documents

Publication Publication Date Title
JP7732052B2 (en) Computer-implemented method and system for validating tokens for blockchain-based cryptocurrencies
US11314891B2 (en) Method and system for managing access to personal data by means of a smart contract
WO2020192743A1 (en) Permission management method, permission validation method and related apparatuses
US11388010B2 (en) Blockchain account migration
CN110771095B (en) Systems and methods for implementing blockchain-based digital certificates
KR101974060B1 (en) Method and system for validating ownership of digital assets using distributed hash tables and peer-to-peer distributed decoys
US6615352B2 (en) Device and method for authenticating user's access rights to resources
JP6877448B2 (en) Methods and systems for guaranteeing computer software using distributed hash tables and blockchain
CN110800254B (en) System and method for generating digital signature
US8601276B2 (en) Managing access to a secure content-part of a PPCD following introduction of the PPCD into a workflow
US9769137B2 (en) Extensible mechanism for securing objects using claims
US20110276490A1 (en) Security service level agreements with publicly verifiable proofs of compliance
US11838405B1 (en) Blockchain delegation
JP2019219780A (en) Personal information management system, and service providing system, method and program
CN108701276A (en) Systems and methods for managing digital identities
JP7114078B2 (en) Electronic authentication method and program
CN105740725B (en) A kind of document protection method and system
Poorni et al. DIGICERT: a secured digital certificate application using blockchain through smart contracts
Ulybyshev et al. (WIP) blockhub: Blockchain-based software development system for untrusted environments
JP2022511971A (en) Computer-enhanced systems and methods for controlling or enforcing the execution of transfers on the blockchain
CN118674586B (en) Digital copyright management system based on block chain technology
Hu et al. Towards accountable and privacy-preserving blockchain-based access control for data sharing
KR102532319B1 (en) Method of operating multi-channel node based on cloud virtual machine using blockchain and system thereof
CN106575341B (en) Compound document access
TWM649691U (en) Decentralized system for identifying file access right and access control server thereof

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20221124

PA0201 Request for examination
PA0302 Request for accelerated examination

Patent event date: 20221124

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20230130

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20230427

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20230509

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20230509

End annual number: 3

Start annual number: 1

PG1601 Publication of registration