KR102090723B1 - Method for providing blockchain based bicameralism consensus service using quantum random function mechanism - Google Patents

Method for providing blockchain based bicameralism consensus service using quantum random function mechanism Download PDF

Info

Publication number
KR102090723B1
KR102090723B1 KR1020190166142A KR20190166142A KR102090723B1 KR 102090723 B1 KR102090723 B1 KR 102090723B1 KR 1020190166142 A KR1020190166142 A KR 1020190166142A KR 20190166142 A KR20190166142 A KR 20190166142A KR 102090723 B1 KR102090723 B1 KR 102090723B1
Authority
KR
South Korea
Prior art keywords
node
random number
quantum random
coordinator
consensus
Prior art date
Application number
KR1020190166142A
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 KR1020190166142A priority Critical patent/KR102090723B1/en
Application granted granted Critical
Publication of KR102090723B1 publication Critical patent/KR102090723B1/en

Links

Images

Classifications

    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • H04L67/1057Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers involving pre-assessment of levels of reputation of peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • H04L67/107Discovery involving direct consultation or announcement among potential requesting and potential source peers with limitation or expansion of the discovery scope
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Electromagnetism (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

Provided is a method for providing a blockchain-based bicameralism consensus service using a quantum random number, which is capable of maintaining fairness and transparency. According to the present invention, the method comprises the steps of: receiving transaction data requesting block generation from a front node and encrypting and transmitting a quantum random number, generated by a quantum random function mechanism, to the front node; receiving verification data from coordinator, standing committee, and steering committee nodes decrypting the quantum random number when the front node inserts the encrypted quantum random number into a header of the block to broadcast the same; allowing the coordinator node to fix a predetermined number of nodes accessed in order of connection from the standing and steering committee nodes as the steering committee node; and allowing the coordinator node to collect a consensus result through direction communications between the standing and steering committee nodes and broadcast the result to at least one node included in a blockchain to generate a block.

Description

블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법{METHOD FOR PROVIDING BLOCKCHAIN BASED BICAMERALISM CONSENSUS SERVICE USING QUANTUM RANDOM FUNCTION MECHANISM}Method of providing consensus service for bilateral system using blockchain-based quantum random numbers {METHOD FOR PROVIDING BLOCKCHAIN BASED BICAMERALISM CONSENSUS SERVICE USING QUANTUM RANDOM FUNCTION MECHANISM}

본 발명은 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법에 관한 것으로, 무결성 및 신속성을 동시에 보장하는 합의 알고리즘을 제공한다.The present invention relates to a method for providing a consensus service using a blockchain based quantum random number, and provides a consensus algorithm that simultaneously guarantees integrity and speed.

블록체인 시스템은 거래집합이라 불리는 블록들을 체인 형태로 연결한 구조이다. 블록은 유효한 거래 정보들의 묶음이며, 블록 구조는 블록 해시, 블록 헤더와 바디로 구성된다. 블록체인 시스템 중 퍼블릭 블록체인은 PoW(Proof of Work), PoS(Proof of Stake) 합의 알고리즘들이 사용되고, 프라이빗 블록체인의 경우 PBFT(Delegated Proof of Stake) 합의 알고리즘들이 사용되고 있다. 이때, PBFT는, 약속된 행동을 하지 않는 악의적인 참여자가 존재할 수도 있는 분산 네트워크에서 모든 참여자가 합의를 이룰 수 있도록 개발된 알고리즘이고, 하나의 Primary와 나머지 Replica로 구성되며 Request, Pre-prepare, Prepare, Commit, Reply의 5 가지 과정을 통해 사용자에서 받은 요청에 대해 합의한다.Blockchain system is a structure in which blocks called transaction sets are connected in a chain. A block is a bundle of valid transaction information, and the block structure consists of a block hash, block header and body. Among blockchain systems, the public blockchain uses PoW (Proof of Work) and PoS (Proof of Stake) consensus algorithms, and the private blockchain uses PBFT (Delegated Proof of Stake) consensus algorithms. At this time, PBFT is an algorithm developed so that all participants can reach an agreement in a distributed network where malicious participants who do not perform the promised action may exist, and consists of one primary and the other replicas, request, pre-prepare, prepare Agree on requests received from users through 5 processes:, Commit, and Reply.

이때, PBFT를 이용하여 서비스 존에서 계층적 합의를 도출하는 방법이 연구 및 개발되었는데, 이와 관련하여, 선행기술인 한국공개특허 제2019-0068799호(2019년06월19일 공개)에는, 복수의 서비스 존 합의 그룹의 정보를 저장하는 서비스 존 관리 원장을 기초로 사용자의 트랜잭션이 서비스 존 합의 그룹 내에서 처리되는지 또는 복수의 서비스 존 합의 그룹을 통해 처리되는지 판단하고, 판단 결과에 따라 인터-서비스 존 공개 원장 또는 서비스 존 합의 그룹 별로 존재하는 로컬 서비스 존 프라이빗 원장을 기초로, 적어도 하나의 서비스 존 합의 그룹에서 PBFT 알고리즘을 이용하여 합의를 수행하며, 판단 결과에 따라 합의의 정보를 인터-서비스 존 공개 원장 또는 로컬 서비스 존 프라이빗 원장에 분산 저장하는 구성이 개시되어 있다.At this time, a method for deriving hierarchical consensus in a service zone using a PBFT was researched and developed. In this regard, in the prior art, Korean Patent Publication No. 2019-0068799 (published on June 19, 2019), a plurality of services Based on the service zone management ledger that stores the information of the zone consensus group, it is determined whether the user's transaction is processed within the service zone consensus group or through a plurality of service zone consensus groups, and the inter-service zone is disclosed according to the determination result. Based on the local service zone private ledger that exists for each ledger or service zone consensus group, at least one service zone consensus group uses the PBFT algorithm to perform consensus, and the information of the consensus is released to the inter-service zone public ledger Alternatively, a configuration for distributed storage in a private ledger of a local service zone is disclosed.

다만, 상술한 구성을 이용한다고 할지라도 합의를 도출하기 위해서는 블록체인을 이루는 적어도 하나의 노드 모두와 의사소통인 통신을 해야하기 때문에 참가자인 노드가 증가하는 경우 컴퓨팅 자원 및 네트워킹 자원의 소모가 극심해지기 때문에 딜레이가 발생하여 처리량이 현저히 저하된다. 또한, PoW 및 PoS는 수 천개의 노드를 만들 수 있지만 PBFT는 수 십개의 노드를 생성하는 것이 한계이며, 필요 수를 충족하지 못하는 경우 정지된다. 여기서, PoW를 이용하여 합의를 도출한다고 할지라도 여전히 51%의 공격, 및 파이널리티 불확실성의 문제가 존재하며, PoS를 이용한다고 할지라도 부익부 빈익빈으로 인하여 권력독점의 문제와 함께 이중지불의 문제가 남는다. 이에, 블록체인 내 새로운 합의구조의 연구 및 개발이 요구되고 있다.However, even if the above-described configuration is used, in order to reach consensus, communication with at least one node constituting the blockchain must be communicated, so if the number of nodes as participants increases, the consumption of computing resources and networking resources is severe. As a result, a delay occurs and the throughput is significantly reduced. In addition, PoW and PoS can create thousands of nodes, but PBFT is limited to generating dozens of nodes, and is stopped when the required number is not met. Here, even if an agreement is reached using PoW, there is still a 51% attack and finality uncertainty problem, and even using PoS, the problem of double payment remains with the problem of power monopoly due to the poor and the poor. . Accordingly, research and development of a new consensus structure in the blockchain is required.

본 발명의 일 실시예는, 프라이빗 블록체인의 내외부 균형과 상호간 자정작용으로 조화를 이루면서, 위변조의 가능성을 제외하도록, 상시운영되는 상임위 노드 외에도, 양자난수로 선택되고 선착순으로 등록한 일시운영되는 운영위 노드를 추가하고, 상임위 노드 및 운영위 노드의 합의가 진행되는 경우, 코디네이터를 통하여 진행하도록 함으로써 최소한의 네트워크 트래픽 및 네트워킹 자원을 사용하여 빠른 합의에 도달할 수 있으며, 상임위 노드 중 코디네이터를 선정할 때에도 양자난수를 이용하여 즉시 선출함으로써 위변조를 할 시간을 주지 않기 때문에 공정성 및 투명성을 유지할 수 있는, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법을 제공할 수 있다. 다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.In one embodiment of the present invention, in addition to the permanently operated nodes, in addition to the permanently operated nodes, which are harmonized by the internal and external balance of the private blockchain and the self-cleaning effect, and exclude the possibility of forgery and alteration, the temporarily operated operating node nodes selected and registered in a first-come, first-served order If the agreement between the senior node and the operating node is added, and by proceeding through the coordinator, fast consensus can be reached using minimal network traffic and networking resources, and quantum random number is also selected when selecting the coordinator among the senior nodes. Since it does not give time for forgery and alteration by immediately electing by using, it is possible to provide a method for providing a consensus service using a blockchain based quantum random number that can maintain fairness and transparency. However, the technical problem to be achieved by the present embodiment is not limited to the technical problem as described above, and other technical problems may exist.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예는, 프론트 노드(Front Node)로부터 블록 생성을 요청하는 트랜잭션 데이터를 수신하고, 양자난수 알고리즘(Quantum Random Function Mechanism)으로 생성된 양자난수를 암호화하여 프론트 노드로 전송하는 단계, 프론트 노드에서 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 경우, 양자난수를 복호화한 코디네이터 노드, 상임위 노드, 및 운영위 후보 노드로부터 검증 데이터를 수신하는 단계, 코디네이터 노드에서 상임위 노드와, 운영위 후보 노드 중 선착순으로 접속한 기 설정된 수를 운영위 노드로 확정하도록 하는 단계, 및 코디네이터 노드에서 상임위 노드와 운영위 노드 간의 직접 통신으로 합의결과를 취합하여 블록체인 내 적어도 하나의 노드로 결과를 브로드캐스팅하여 블록을 생성하도록 하는 단계를 포함한다.As a technical means for achieving the above-described technical problem, an embodiment of the present invention receives transaction data requesting block generation from a front node, and is generated by a quantum random number algorithm (Quantum Random Function Mechanism). Encrypting and transmitting the quantum random number to the front node. When the front node inserts and broadcasts the encrypted quantum random number into the header in the block, the verification data is received from the coordinator node, the standing node, and the candidate candidate node that decode the quantum random number. A step of receiving, determining a predetermined number of first-come-first-served access nodes from the coordinator node to the top-ranking node and the top-ranking candidate node as the top-ranking node, and collecting the agreement result through direct communication between the top-ranking node and the top-ranking node at the coordinator node. Browsing the results to at least one node in the chain And decasting to generate a block.

전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 프라이빗 블록체인의 내외부 균형과 상호간 자정작용으로 조화를 이루면서, 위변조의 가능성을 제외하도록, 상시운영되는 상임위 노드 외에도, 양자난수로 선택되고 선착순으로 등록한 일시운영되는 운영위 노드를 추가하고, 상임위 노드 및 운영위 노드의 합의가 진행되는 경우, 코디네이터를 통하여 진행하도록 함으로써 최소한의 네트워크 트래픽 및 네트워킹 자원을 사용하여 빠른 합의에 도달할 수 있으며, 상임위 노드 중 코디네이터를 선정할 때에도 양자난수를 이용하여 즉시 선출함으로써 위변조를 할 시간을 주지 않기 때문에 공정성 및 투명성을 유지할 수 있다.According to any one of the above-described problem solving means of the present invention, in order to exclude the possibility of forgery and alteration, while harmonizing with the internal and external balance of the private blockchain and mutual self-cleaning, in addition to the permanently operated nodes, quantum random numbers are selected and first-come-first-served. By adding the registered temporary operating node, and if the agreement between the standing and operating nodes is proceeded through the coordinator, quick consensus can be reached using minimal network traffic and networking resources, and the coordinator among the standing nodes Even when selecting, it is possible to maintain fairness and transparency because it does not give time for forgery forgery by immediately selecting using quantum random numbers.

도 1은 본 발명의 일 실시예에 따른 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 시스템을 설명하기 위한 도면이다.
도 2는 도 1의 시스템에 포함된 양원제 합의 서비스 제공 서버를 설명하기 위한 블록 구성도이다.
도 3 및 도 4는 본 발명의 일 실시예에 따른 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 중 상임위 노드, 운영위 노드, 및 코디네이터 선정과 합의 과정의 일 실시예를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 블록체인 기반 양자난수를 이용한 양원제 합의 서비스의 블록 구조 및 상태 천이 과정의 일 실시예를 설명하기 위한 도면이다.
도 6 및 도 7은 본 발명의 일 실시예에 따른 도 1의 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 시스템에 포함된 각 구성들 상호 간에 데이터가 송수신되는 과정을 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법을 설명하기 위한 동작 흐름도이다.
1 is a view for explaining a system for providing a consensus service using a blockchain based quantum random number according to an embodiment of the present invention.
FIG. 2 is a block diagram for explaining a dual system consensus service providing server included in the system of FIG. 1.
3 and 4 are diagrams for explaining an embodiment of a process of selecting and agreeing a senior node, an operating node, and a coordinator among consensus services using a blockchain-based quantum random number according to an embodiment of the present invention.
5 is a view for explaining an embodiment of a block structure and a state transition process of a consensus service using a blockchain based quantum random number according to an embodiment of the present invention.
6 and 7 are views illustrating a process in which data is transmitted and received between each of the components included in a system for providing a consensus service using a blockchain based quantum random number in FIG. 1 according to an embodiment of the present invention.
8 is an operation flowchart for explaining a method for providing a consensus service using a blockchain based quantum random number according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art to which the present invention pertains can easily practice. However, the present invention can be implemented in many different forms and is not limited to the embodiments described herein. In addition, in order to clearly describe the present invention in the drawings, parts irrelevant to the description are omitted, and like reference numerals are assigned to similar parts throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Throughout the specification, when a part is "connected" to another part, this includes not only "directly connected" but also "electrically connected" with another element in between. . Also, when a part is said to “include” a certain component, it means that the component may further include other components, not to exclude other components, unless otherwise stated. However, it should be understood that the existence or addition possibilities of numbers, steps, actions, components, parts or combinations thereof are not excluded in advance.

명세서 전체에서 사용되는 정도의 용어 "약", "실질적으로" 등은 언급된 의미에 고유한 제조 및 물질 허용오차가 제시될 때 그 수치에서 또는 그 수치에 근접한 의미로 사용되고, 본 발명의 이해를 돕기 위해 정확하거나 절대적인 수치가 언급된 개시 내용을 비양심적인 침해자가 부당하게 이용하는 것을 방지하기 위해 사용된다. 본 발명의 명세서 전체에서 사용되는 정도의 용어 "~(하는) 단계" 또는 "~의 단계"는 "~ 를 위한 단계"를 의미하지 않는다. The terms "about", "substantially", and the like used throughout the specification are used in or at a value close to that value when manufacturing and substance tolerances specific to the stated meaning are given, and the understanding of the invention To aid, accurate or absolute figures are used to prevent unconscionable abusers from unduly using the disclosed disclosure. The term "~ (step)" or "step of" as used in the entire specification of the present invention does not mean "step for".

본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1개의 유닛이 2개 이상의 하드웨어를 이용하여 실현되어도 되고, 2개 이상의 유닛이 1개의 하드웨어에 의해 실현되어도 된다. In the present specification, the term “unit” includes a unit realized by hardware, a unit realized by software, and a unit realized by using both. Further, one unit may be realized by using two or more hardware, and two or more units may be realized by one hardware.

본 명세서에 있어서 단말, 장치 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말, 장치 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말, 장치 또는 디바이스에서 수행될 수도 있다. In the present specification, some of the operations or functions described as performed by the terminal, the device, or the device may be performed instead on the server connected to the corresponding terminal, device, or device. Similarly, some of the operations or functions described as being performed by the server may be performed in a terminal, apparatus, or device connected to the corresponding server.

본 명세서에서 있어서, 단말과 매핑(Mapping) 또는 매칭(Matching)으로 기술된 동작이나 기능 중 일부는, 단말의 식별 정보(Identifying Data)인 단말기의 고유번호나 개인의 식별정보를 매핑 또는 매칭한다는 의미로 해석될 수 있다.In this specification, some of the operations or functions described as mapping or matching with the terminal means that the unique number of the terminal or identification information of the individual, which is the identification data of the terminal, is mapped or matched. Can be interpreted as

이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 시스템을 설명하기 위한 도면이다. 도 1을 참조하면, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 시스템(1)은, 프론트 노드(100), 양원제 합의 서비스 제공 서버(300), 적어도 하나의 운영위 노드(400), 적어도 하나의 상임위 노드(500) 및 코디네이터 노드(600)를 포함할 수 있다. 다만, 이러한 도 1의 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 시스템(1)은, 본 발명의 일 실시예에 불과하므로, 도 1을 통하여 본 발명이 한정 해석되는 것은 아니다.1 is a view for explaining a system for providing a consensus service using a blockchain based quantum random number according to an embodiment of the present invention. Referring to FIG. 1, the system for providing a consensus service using a blockchain based quantum random number (1) includes a front node 100, a consensus service providing server 300, at least one operating node 400, and at least one It may include a senior node 500 and the coordinator node 600. However, since the system 1 for providing a consensus service using a blockchain based quantum random number in FIG. 1 is only an embodiment of the present invention, the present invention is not limitedly interpreted through FIG. 1.

이때, 도 1의 각 구성요소들은 일반적으로 네트워크(network, 200)를 통해 연결된다. 예를 들어, 도 1에 도시된 바와 같이, 프론트 노드(100)는 네트워크(200)를 통하여 양원제 합의 서비스 제공 서버(300)와 연결될 수 있다. 그리고, 양원제 합의 서비스 제공 서버(300)는, 네트워크(200)를 통하여 프론트 노드(100), 적어도 하나의 운영위 노드(400), 적어도 하나의 상임위 노드(500), 및 코디네이터 노드(600)과 연결될 수 있다. 또한, 적어도 하나의 운영위 노드(400)는, 네트워크(200)를 통하여 프론트 노드(100), 및 코디네이터 노드(600)와 연결될 수 있다. 그리고, 적어도 하나의 상임위 노드(500)는, 프론트 노드(100) 및 코디네이터 노드(600)와 연결될 수 있다. 마지막으로, 코디네이터 노드(600)는, 네트워크(200)를 통하여 프론트 노드(100), 운영위 노드(400), 양원제 합의 서비스 제공 서버(300), 적어도 하나의 상임위 노드(500)와 연결될 수 있다.At this time, each component of FIG. 1 is generally connected through a network (network, 200). For example, as illustrated in FIG. 1, the front node 100 may be connected to the bilateral consensus service providing server 300 through the network 200. In addition, the two-way consensus service providing server 300 is connected to the front node 100, at least one operating node 400, at least one senior node 500, and the coordinator node 600 through the network 200. You can. Also, the at least one node 400 may be connected to the front node 100 and the coordinator node 600 through the network 200. In addition, the at least one senior node 500 may be connected to the front node 100 and the coordinator node 600. Lastly, the coordinator node 600 may be connected to the front node 100, the operating node 400, the bilateral consensus service providing server 300, and at least one senior node 500 through the network 200.

여기서, 네트워크는, 복수의 단말 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예에는 RF, 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, 5GPP(5th Generation Partnership Project) 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 블루투스(Bluetooth) 네트워크, NFC 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다.Here, the network means a connection structure capable of exchanging information between each node such as a plurality of terminals and servers, and examples of such a network include RF, 3GPP (3rd Generation Partnership Project) network, and LTE (Long Term) Evolution network, 5GPP (5th Generation Partnership Project) network, World Interoperability for Microwave Access (WIMAX) network, Internet, Local Area Network (LAN), Wireless Local Area Network (LAN), Wide Area Network (WAN) , PAN (Personal Area Network), Bluetooth (Bluetooth) network, NFC network, satellite broadcasting network, analog broadcasting network, DMB (Digital Multimedia Broadcasting) network, and the like.

하기에서, 적어도 하나의 라는 용어는 단수 및 복수를 포함하는 용어로 정의되고, 적어도 하나의 라는 용어가 존재하지 않더라도 각 구성요소가 단수 또는 복수로 존재할 수 있고, 단수 또는 복수를 의미할 수 있음은 자명하다 할 것이다. 또한, 각 구성요소가 단수 또는 복수로 구비되는 것은, 실시예에 따라 변경가능하다 할 것이다.In the following, the term at least one is defined as a term including a singular number and a plural number, and even if the term at least one term does not exist, each component may exist in a singular or plural number, and may mean a singular or plural number It will be self-evident. In addition, it may be said that each component is provided in a singular or plural form, depending on the embodiment.

프론트 노드(100)는, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 관련 웹 페이지, 앱 페이지, 프로그램 또는 애플리케이션을 이용하여 트랜잭션에 대한 블록생성을 요청하는 노드이다. 이때, 프론트 노드(100)는, 양원제 합의 서비스 제공 서버(300)로 엑세스한 후 양자난수 생성을 요청한 후, 양원제 합의 서비스 제공 서버(300)에서 양자난수가 암호화되어 전송되는 경우, 프론트 노드(100)의 개인키를 이용하여 서명값을 검증하는 것으로 양원제 합의 서비스 제공 서버(300)의 데이터를 검증하는 노드일 수 있다. 또, 프론트 노드(100)는, 검증이 완료된 데이터를 블록체인 내 적어도 하나의 노드로 브로드캐스팅하는 노드일 수 있다.The front node 100 is a node requesting block generation for a transaction using a web page, an app page, a program, or an application related to a bilateral consensus service using a blockchain-based quantum random number. At this time, the front node 100, after accessing the bilateral consensus service providing server 300, requests the generation of a quantum random number, and when the quantum random number is encrypted and transmitted by the bilateral consensus service providing server 300, the front node 100 ) By verifying the signature value using the private key, it may be a node that verifies data of the two-way consensus service providing server 300. In addition, the front node 100 may be a node that broadcasts the verified data to at least one node in the blockchain.

여기서, 프론트 노드(100)는, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다. 이때, 프론트 노드(100)는, 네트워크를 통해 원격지의 서버나 단말에 접속할 수 있는 단말로 구현될 수 있다. 프론트 노드(100)는, 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, 네비게이션, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(smartphone), 스마트 패드(smartpad), 타블렛 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.Here, the front node 100 may be implemented as a computer capable of accessing a remote server or terminal through a network. Here, the computer may include, for example, navigation, a laptop equipped with a web browser (WEB Browser), a desktop, a laptop, and the like. In this case, the front node 100 may be implemented as a terminal that can access a remote server or terminal through a network. The front node 100 is, for example, a wireless communication device in which portability and mobility are guaranteed, navigation, PCS (Personal Communication System), GSM (Global System for Mobile communications), PDC (Personal Digital Cellular), PHS (Personal) Handyphone System), PDA (Personal Digital Assistant), IMT (International Mobile Telecommunication) -2000, CDMA (Code Division Multiple Access) -2000, W-CDMA (W-Code Division Multiple Access), Wibro (Wireless Broadband Internet) terminal, It may include all kinds of handheld-based wireless communication devices such as a smart phone, a smart pad, and a tablet PC.

양원제 합의 서비스 제공 서버(300)는, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 웹 페이지, 앱 페이지, 프로그램 또는 애플리케이션을 제공하는 서버일 수 있다. 그리고, 양원제 합의 서비스 제공 서버(300)는, 프라이빗 블록체인 내부에서, 블록체인의 상시운영을 위하여 적어도 하나의 상임위 노드(500)를 선정하여 등록하는 서버일 수 있다. 또한, 양원제 합의 서비스 제공 서버(300)는, 프라이빗 블록체인 외부에서, 기 설정된 컴퓨팅 자원조건 및 코인보유조건을 만족하는 상임위 후보 노드(400)를 등록받고 이 역시 저장하는 서버일 수 있다. 이때, 후술하겠지만, 상임위 후보 노드(400) 중 선착순으로 상임위 노드(400)가 결정되기 때문에 이 두 개의 용어는 동일한 도면부호를 사용하기로 하지만 동일한 용어는 아닌 것으로 정의한다. 그리고, 양원제 합의 서비스 제공 서버(300)는, 프론트 노드(100)로부터 블록 생성 요청을 수신하는 경우, 블록 생성이 될 트랜잭션, 즉 거래정보가 올바른 것인지에 대한 합의를 도출하기 위하여, 양원제를 꾸리기 위한 준비를 하는 서버일 수 있다. 이를 위하여, 양원제 합의 서비스 제공 서버(300)는, 프라이빗 블록체인 외부로부터 운영위 후보 노드(400)를 선출하고, 프라이빗 블록체인 내부로부터 상임위 노드(500)를 선정하고, 상임위 노드(500) 중 어느 하나의 상임위 노드(500)를 코디네이터 노드(600)로 선정하여 소통의 단일화로 합의도출이 빠르게 이루어지도록 하는 서버일 수 있다. 양원제 합의 서비스 제공 서버(300)는, 이렇게 선정된 정보를 프론트 노드(100)로 전송하여 검증하도록 하고, 프론트 노드(100)에서 검증이 완료된 후 브로드캐스팅을 하여 선정된 운영위 후보 노드(400), 상임위 노드(500), 및 코디네이터 노드(600)가 해시값을 이용하여 각각 복호화를 통하여 자신이 선정되었다는 것을 확인하는 경우, 코디네이터 노드(600)로 그 정보를 전송함으로써 코디네이터 노드(600)가 운영위 후보 노드(400), 및 상임위 노드(500)의 정보를 확보하도록 하는 서버일 수 있다. 그리고, 양원제 합의 서비스 제공 서버(300)는, 운영위 후보 노드(400), 상임위 노드(500), 및 코디네이터 노드(600)를 선정할 때, 양자난수 알고리즘(Quantum Random Function Mechanism)을 이용할 수 있으나 유사난수 알고리즘을 이용하는 것을 배제하지 않으며 나열된 것들로 한정하지는 않는다.The two-way consensus service providing server 300 may be a server that provides a two-way consensus service web page, app page, program, or application using a blockchain-based quantum random number. In addition, the two-way agreement service providing server 300 may be a server that selects and registers at least one senior node 500 in order to operate the blockchain at all times within the private blockchain. In addition, the two-way consensus service providing server 300 may be a server that registers and stores a senior candidate node 400 that satisfies predetermined computing resource conditions and coin holding conditions outside the private blockchain. At this time, as will be described later, since the senior node 400 is determined on a first-come, first-served basis among the candidate nodes 400, these two terms are defined as using the same reference numerals, but are not defined as the same term. And, when receiving a block generation request from the front node 100, the two-way consensus service providing server 300 prepares to pack the two-way system in order to derive an agreement on whether a transaction to be block-generated, that is, transaction information is correct. It may be a server. To this end, the two-way consensus service providing server 300 selects a candidate node 400 for operation from outside the private blockchain, selects a standing node 500 from inside the private blockchain, and any one of the standing nodes 500 It may be a server that selects the senior node 500 of as the coordinator node 600 to quickly achieve consensus through unification of communication. The two-way consensus service providing server 300 transmits the selected information to the front node 100 for verification, and broadcasts after the verification is completed at the front node 100 to select the selected candidate node 400 for operation committee, When the senior node 500 and the coordinator node 600 confirm that they are selected through decryption using the hash value, the coordinator node 600 transmits the information to the coordinator node 600 so that the coordinator node 600 is a candidate for operation It may be a server that secures information of the node 400 and the senior node 500. In addition, when selecting the two-way consensus service providing server 300, the operation committee candidate node 400, the standing node 500, and the coordinator node 600 may use a quantum random number algorithm (Quantum Random Function Mechanism), but are similar. The use of random number algorithms is not excluded and is not limited to those listed.

여기서, 양원제 합의 서비스 제공 서버(300)는, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다.Here, the two-way agreement service providing server 300 may be implemented as a computer capable of accessing a remote server or terminal through a network. Here, the computer may include, for example, navigation, a laptop equipped with a web browser (WEB Browser), a desktop, a laptop, and the like.

적어도 하나의 운영위 노드(400)는, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 관련 웹 페이지, 앱 페이지, 프로그램 또는 애플리케이션을 이용하는 프라이빗 블록체인 외부에 위치하나, 기 설정된 컴퓨팅 자원조건을 만족하고, 기 설정된 수량의 코인을 보유한 노드일 수 있다. 그리고, 적어도 하나의 운영위 노드(400)는, 양원제의 일원으로 확정되기 이전에는 적어도 하나의 운영위 후보 노드(400)로 양원제 합의 서비스 제공 서버(300)에 등록된 상태의 노드일 수 있다. 이때, 적어도 하나의 운영위 노드(400)는, 선정 및 확정의 두 단계를 거치면서 최종적으로 양원제의 합의에 참여할 수 있는 노드가 되는데, 선정은 양원제 합의 서비스 제공 서버(300)에 의해서, 확정은 선착순으로 코디네이터 노드(600)로 접속한 순서 및 기 설정된 수에 의해 이루어지는 노드일 수 있다. 여기서, 적어도 하나의 운영위 노드(400)의 양원제 참여가 확정되면, 거래내역에 대한 블록생성에 대한 찬반응답을 코디네이터 노드(600)로 전송하는 노드일 수 있고, 기 설정된 퍼센트 또는 기 설정된 수의 찬성이 존재할 때 블록 생성이 되도록 코디네이터 노드(600)로부터 결과를 브로드캐스팅받는 노드일 수 있다.The at least one node 400 is located outside the private blockchain using a web page, app page, program, or application related to a bilateral consensus service using a blockchain-based quantum random number, but satisfies a predetermined computing resource condition, and It may be a node that has a set number of coins. Further, the at least one operating node 400 may be a node registered in the bilateral consensus service providing server 300 as at least one operating node candidate node 400 before being determined as a member of the bilateral system. At this time, the at least one operating node 400, through the two stages of selection and confirmation finally becomes a node that can participate in the agreement of the two-way system, the selection is made by the two-way agreement service providing server 300, the decision is first-come, first-served As a result, it may be a node formed by the order of access to the coordinator node 600 and a preset number. Here, when the participation of the bilateral system of at least one operating node 400 is confirmed, it may be a node that transmits a positive response to the coordination node 600 to generate a block for the transaction history, and a predetermined percentage or a predetermined number of approval When this exists, it may be a node that broadcasts a result from the coordinator node 600 to generate a block.

여기서, 적어도 하나의 운영위 노드(400)는, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다. 이때, 적어도 하나의 운영위 노드(400)는, 네트워크를 통해 원격지의 서버나 단말에 접속할 수 있는 단말로 구현될 수 있다. 적어도 하나의 운영위 노드(400)는, 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, 네비게이션, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(smartphone), 스마트 패드(smartpad), 타블렛 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.Here, the at least one operating node 400 may be implemented as a computer that can access a remote server or terminal through a network. Here, the computer may include, for example, navigation, a laptop equipped with a web browser (WEB Browser), a desktop, a laptop, and the like. At this time, the at least one operating node 400 may be implemented as a terminal that can access a remote server or terminal through a network. At least one operating node 400 is, for example, a wireless communication device that is guaranteed for portability and mobility, navigation, Personal Communication System (PCS), Global System for Mobile communications (GSM), Personal Digital Cellular (PDC), Personal Handyphone System (PHS), Personal Digital Assistant (PDA), International Mobile Telecommunication (IMT) -2000, Code Division Multiple Access (CDMA) -2000, W-Code Division Multiple Access (W-CDMA), Wireless Broadband Internet ) It may include all kinds of handheld-based wireless communication devices such as a terminal, a smartphone, a smartpad, and a tablet PC.

적어도 하나의 상임위 노드(500)는, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 관련 웹 페이지, 앱 페이지, 프로그램 또는 애플리케이션을 이용하는, 프라이빗 블록체인 내부에 위치하고 프라이빗 블록체인이 유지관리될 수 있도록 상시구동되는 노드일 수 있다. 그리고, 적어도 하나의 상임위 노드(500)는, 양원제 합의 서비스 제공 서버(300)에 등록된 노드일 수 있고, 프론트 노드(100)에서 거래내역을 분산저장하기 위해 블록 생성을 요청하는 경우, 양자난수로 양원제 참여에 확정되는 노드일 수 있다. 이때, 확정의 개념은 상술한 바와 같다. 여기서 적어도 하나의 상임위 노드(500) 중 합의에 참여하도록 확정되는 노드는 트랜잭션이 발생하여 블록이 생성되어야 할 때마다 달라질 수 있고, 이는 운영위 노드(400)도 마찬가지이다. 이때, 적어도 하나의 상임위 노드(500)는 양원제에서 상원의 역할을 수행하고, 적어도 하나의 운영위 노드(400)는 하원의 역할을 수행하게 되며, 선출되는 수나 비율은 기 설정되어 있다. 이렇게 확정이 된 적어도 하나의 상임위 노드(500)는, 트랜잭션에 대한 합의, 즉 찬반투표를 하게 되며 그 결과를 코디네이터 노드(600)로 전달할 수 있다. 또한, 적어도 하나의 상임위 노드(500)는 합의 결과, 즉 투표를 결과한 집계 결과를 코디네이터 노드(600)로부터 브로드캐스팅받아 찬성이면 블록을 생성하도록 할 수 있다.At least one permanent node 500 is located within the private blockchain, using a web page, app page, program, or application related to a bilateral consensus service using a blockchain-based quantum random number, and is always driven so that the private blockchain can be maintained. Node. And, the at least one senior node 500 may be a node registered in the bi-won system consensus service providing server 300, and when the front node 100 requests block generation to store and store transactions, quantum random numbers As a result, it may be a node that is confirmed for participation in the dual system. At this time, the concept of determination is as described above. Here, a node determined to participate in consensus among at least one senior node 500 may be changed whenever a block is generated due to a transaction, and this is also the case with the operational node 400. At this time, the at least one senior node 500 performs the role of the upper house in the dual system, and the at least one operating node 400 serves as the lower house, and the number or ratio to be elected is preset. The at least one senior node 500 determined as described above may agree on a transaction, that is, vote on or off, and transmit the result to the coordinator node 600. Further, the at least one senior node 500 may broadcast a result of the consensus, that is, the aggregated result of voting, from the coordinator node 600 to generate a block if in favor.

여기서, 적어도 하나의 상임위 노드(500)는, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다. 이때, 적어도 하나의 상임위 노드(500)는, 네트워크를 통해 원격지의 서버나 단말에 접속할 수 있는 단말로 구현될 수 있다. 적어도 하나의 상임위 노드(500)는, 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, 네비게이션, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(smartphone), 스마트 패드(smartpad), 타블렛 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.Here, the at least one senior node 500 may be implemented as a computer capable of accessing a remote server or terminal through a network. Here, the computer may include, for example, navigation, a laptop equipped with a web browser (WEB Browser), a desktop, a laptop, and the like. At this time, the at least one senior node 500 may be implemented as a terminal that can access a remote server or terminal through a network. The at least one senior node 500 is, for example, a wireless communication device in which portability and mobility are guaranteed, such as navigation, Personal Communication System (PCS), Global System for Mobile communications (GSM), Personal Digital Cellular (PDC), Personal Handyphone System (PHS), Personal Digital Assistant (PDA), International Mobile Telecommunication (IMT) -2000, Code Division Multiple Access (CDMA) -2000, W-Code Division Multiple Access (W-CDMA), Wireless Broadband Internet ) It may include all kinds of handheld-based wireless communication devices such as a terminal, a smartphone, a smartpad, and a tablet PC.

코디네이터 노드(600)는, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 관련 웹 페이지, 앱 페이지, 프로그램 또는 애플리케이션을 이용하고, 양자난수로 양원제 합의 서비스 제공 서버(300)에 의해 선출된 상임위 노드(500) 중 하나의 노드이거나 별도로 구축된 서버일 수 있다. 이때, 코디네이터 노드(600)는, 양원제 합의를 위하여 운영위 노드(400) 및 상임위 노드(500)와 직접 통신을 해야 하고, 그 결과도 브로드캐스팅해야 하므로, 기 설정된 컴퓨팅 자원조건이나 네트워킹 자원조건을 만족하는 노드일 수 있다. 이때, 운영위 노드(400)도 기 설정된 컴퓨팅 자원조건을 만족해야 하는데, 차이점은 운영위 노드(400)는 프라이빗 블록체인 외부의 노드이고, 코디네이터 노드(600)는, 프라이빗 블록체인 내부의 노드라는 점, 운영위 노드(400)는 일시적 노드인 반면, 코디네이터 노드(600)는 상시운용되는 상임위 노드(500) 중 하나라는 점이 다르다. 물론, 코디네이터 노드(600)도 상임위 노드(500) 중 트랜잭션을 위한 합의를 위해 선택된 일시적 대표라는 점에서는 유사하다. 또, 코디네이터 노드(600)의 컴퓨팅 자원조건이 운영위 노드(400)의 컴퓨팅 자원조건보다 높게 설정되는 것이 대부분이겠으나, 동일하게 설정되거나 더 낮게 설정되는 것을 배제하지는 않는다. 이렇게 상임위 노드(500) 중 선택된 코디네이터 노드(600)는, 양원제 합의 서비스 제공 서버(300)로부터 상임위 노드(500) 및 운영위 후보 노드(400)의 정보를 수신하고, 운영위 후보 노드(400)가 접속하는 순서대로 운영위 노드(400)로 확정하는 서버일 수 있고, 확정된 결과를 상임위 노드(500)와 운영위 노드(400)로 전송하며, 상임위 노드(500)와 운영위 노드(400)로부터 수집된 합의 결과를 수집하여 블록생성여부를 결정하도록 브로드캐스팅하는 서버일 수 있다. 이때, 합의, 투표, 찬반의 용어는 모두 동일한 과정을 서술하는 용어로 정의한다.The coordinator node 600 uses a web page, an app page, a program or an application related to a bilateral consensus service using a blockchain-based quantum random number, and a senior node 500 elected by the bilateral random consensus service providing server 300 ), Or it can be a server built separately. At this time, since the coordinator node 600 needs to communicate directly with the operating node 400 and the senior node 500 for agreement between the two-way system, and also broadcast the result, it satisfies the preset computing resource condition or networking resource condition. It may be a node. At this time, the operating node 400 must also satisfy the preset computing resource condition. The difference is that the operating node 400 is a node outside the private blockchain, and the coordinator node 600 is a node inside the private blockchain, The operation node 400 is a temporary node, whereas the coordinator node 600 is one of the permanent nodes 500 that are always in operation. Of course, the coordinator node 600 is similar in that it is a temporary representative selected for consensus for a transaction among the senior nodes 500. In addition, it is most likely that the computing resource condition of the coordinator node 600 is set higher than the computing resource condition of the operational node 400, but it is not excluded that it is set equally or lower. The coordinator node 600 selected among the senior node 500 receives information of the senior node 500 and the candidate candidate node 400 from the bilateral consensus service providing server 300, and the operating candidate node 400 accesses. It may be a server that is determined by the operating node 400 in the order of the order, and transmits the determined result to the standing node 500 and the operating node 400, and the agreement collected from the standing node 500 and the operating node 400 It may be a server that collects the results and broadcasts it to determine whether to generate blocks. At this time, terms of consensus, voting, and pros and cons are all defined as terms describing the same process.

여기서, 코디네이터 노드(600)는, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다. 이때, 코디네이터 노드(600)는, 네트워크를 통해 원격지의 서버나 단말에 접속할 수 있는 단말로 구현될 수 있다. 코디네이터 노드(600)는, 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, 네비게이션, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(smartphone), 스마트 패드(smartpad), 타블렛 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.Here, the coordinator node 600 may be implemented as a computer capable of accessing a remote server or terminal through a network. Here, the computer may include, for example, navigation, a laptop equipped with a web browser (WEB Browser), a desktop, a laptop, and the like. At this time, the coordinator node 600 may be implemented as a terminal capable of accessing a remote server or terminal through a network. The coordinator node 600 is, for example, a wireless communication device in which portability and mobility are guaranteed. Navigation, PCS (Personal Communication System), GSM (Global System for Mobile communications), PDC (Personal Digital Cellular), PHS (Personal) Handyphone System), PDA (Personal Digital Assistant), IMT (International Mobile Telecommunication) -2000, CDMA (Code Division Multiple Access) -2000, W-CDMA (W-Code Division Multiple Access), Wibro (Wireless Broadband Internet) terminal, It may include all kinds of handheld-based wireless communication devices such as a smart phone, a smart pad, and a tablet PC.

도 2는 도 1의 시스템에 포함된 양원제 합의 서비스 제공 서버를 설명하기 위한 블록 구성도이고, 도 3 및 도 4는 본 발명의 일 실시예에 따른 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 중 상임위 노드, 운영위 노드, 및 코디네이터 선정과 합의 과정의 일 실시예를 설명하기 위한 도면이고, 도 5는 본 발명의 일 실시예에 따른 블록체인 기반 양자난수를 이용한 양원제 합의 서비스의 블록 구조 및 상태 천이 과정의 일 실시예를 설명하기 위한 도면이다.FIG. 2 is a block diagram for explaining a dual-way consensus service providing server included in the system of FIG. 1, and FIGS. 3 and 4 are senior members of a bi-way consensus service using a blockchain-based quantum random number according to an embodiment of the present invention FIG. 5 is a diagram for explaining an embodiment of a node, an operation node, and a coordinator selection and consensus process, and FIG. 5 is a block structure and state transition process of a binary system consensus service using a blockchain-based quantum random number according to an embodiment of the present invention A diagram for explaining an embodiment of the.

도 2를 참조하면, 양원제 합의 서비스 제공 서버(300)는, 전송부(310), 수신부(320), 확정부(330), 생성부(340), 및 등록부(350)를 포함할 수 있다.Referring to FIG. 2, the two-way agreement service providing server 300 may include a transmission unit 310, a reception unit 320, a determination unit 330, a generation unit 340, and a registration unit 350.

본 발명의 일 실시예에 따른 양원제 합의 서비스 제공 서버(300)나 연동되어 동작하는 다른 서버(미도시)가 프론트 노드(100), 적어도 하나의 운영위 노드(400), 적어도 하나의 상임위 노드(500), 및 코디네이터 노드(600)로 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 애플리케이션, 프로그램, 앱 페이지, 웹 페이지 등을 전송하는 경우, 프론트 노드(100), 적어도 하나의 운영위 노드(400), 적어도 하나의 상임위 노드(500), 및 코디네이터 노드(600)는, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 애플리케이션, 프로그램, 앱 페이지, 웹 페이지 등을 설치하거나 열 수 있다. 또한, 웹 브라우저에서 실행되는 스크립트를 이용하여 서비스 프로그램이 프론트 노드(100), 적어도 하나의 운영위 노드(400), 적어도 하나의 상임위 노드(500), 및 코디네이터 노드(600)에서 구동될 수도 있다. 여기서, 웹 브라우저는 웹(WWW: world wide web) 서비스를 이용할 수 있게 하는 프로그램으로 HTML(hyper text mark-up language)로 서술된 하이퍼 텍스트를 받아서 보여주는 프로그램을 의미하며, 예를 들어 넷스케이프(Netscape), 익스플로러(Explorer), 크롬(chrome) 등을 포함한다. 또한, 애플리케이션은 단말 상의 응용 프로그램(application)을 의미하며, 예를 들어, 모바일 단말(스마트폰)에서 실행되는 앱(app)을 포함한다.The two-way consensus service providing server 300 or another server (not shown) operating in conjunction with the front node 100, at least one operating node 400, and at least one senior node 500 according to an embodiment of the present invention ), And when transmitting a consensus service application, program, app page, web page, etc. using a blockchain-based quantum random number to the coordinator node 600, the front node 100, at least one operating node 400, at least One senior node 500 and the coordinator node 600 may install or open a bilateral system consensus service application, program, app page, web page, etc. using a blockchain-based quantum random number. In addition, the service program may be run in the front node 100, at least one operating node 400, at least one senior node 500, and the coordinator node 600 using a script executed in a web browser. Here, the web browser is a program that enables the use of the world wide web (WWW) service, and refers to a program that receives and displays hypertext described in a hypertext mark-up language (HTML), for example, Netscape. , Explorer, Chrome, etc. Further, the application means an application on the terminal, and includes, for example, an app running on a mobile terminal (smartphone).

도 2를 설명하기 전에, 본 발명의 양원제 합의 서비스가 나오게 된 배경인 합의 알고리즘을 간략히 설명한다. 이하에서 설명한 개념들은 도 2 및 그 이하에서 중복하여 설명하지 않는다.Before explaining FIG. 2, the consensus algorithm, which is the background from which the bilateral consensus service of the present invention came out, is briefly described. The concepts described below are not described repeatedly in FIG. 2 and below.

블록체인 시스템은 모든 거래 정보를 모든 참여자가 함께 복사하여 공유하는 분산 원장 시스템으로 자료의 분배와 공유, 암호학, 합의 알고리즘 등 다양한 기술의 집약체이다. 블록체인 시스템을 적용하기 위해서는 이중지불 문제와 비잔틴 장군 문제를 해결해야 한다. 이중지불 문제는 동시에 두 거래에서 통화를 재사용하는 문제이며 비잔틴 장군 문제는 분산 시스템에서 정직하지 못한 노드가 있음에도 다수의 정직한 노드에 의해 시스템이 정상적으로 작동하기 위해 어떤 규칙에 의해 의사결정을 할지 정하는 문제이다. 이 두 가지 문제를 해결하여 다수의 참여자가 하나의 일관된 합의된 블록체인을 유지하기 위해 만든 것이 합의 알고리즘이다. 블록체인은 참여하는 대상에 따라 퍼블릭 블록체인과 프라이빗 블록체인을 구성할 수 있고, 체인을 유지하는 방식에 따라 경쟁 방식 합의 알고리즘과 비경쟁 방식 합의 알고리즘으로 구성할 수도 있다. 합의 알고리즘 선택에 따라 다양한 결과를 만들기 때문에 블록체인의 환경과 목적에 따라 기존의 알고리즘을 그대로 혹은 발전시켜 사용하거나 기존과 다른 완전히 새로운 알고리즘을 만들어 사용하기도 한다.Blockchain system is a distributed ledger system in which all transaction information is copied and shared by all participants, and is a collection of various technologies such as data distribution and sharing, cryptography, and consensus algorithm. In order to apply the blockchain system, it is necessary to solve the problem of double payment and general Byzantine. The double-payment problem is a problem of reusing currency in two transactions at the same time, and the Byzantine general problem is a matter of deciding which rule to make decisions for the system to operate normally by a number of honest nodes, even though there are some dishonest nodes in the distributed system. . By solving these two problems, a consensus algorithm was created by multiple participants to maintain a single consistent and consensus blockchain. Blockchains can be composed of public blockchains and private blockchains depending on the participants, and can be composed of a competitive consensus algorithm and a non-competitive consensus algorithm depending on how the chain is maintained. Depending on the environment and purpose of the blockchain, existing algorithms are used as they are or developed, or new and completely different algorithms are used.

블록체인은, 참여 대상에 따라 퍼블릭 블록체인과 프라이빗 블록체인으로 나눈다. 퍼블릭 블록체인은 누구나 자유롭게 블록체인 네트워크에 참여할 수 있는 블록체인이다. 운영과 참여의 주체가 불분명하기 때문에 인센티브 제도인 코인을 발행하여 운영하고, 많은 사람들이 함께 참여하기 때문에 투명성이 강화된 모델이며, 많은 사람들이 네트워크에 참여할수록 보안이 강화된다는 장점이 있지만 많은 사람들에 의해 합의가 진행되고 전체 네트워크에 전파하여 동기화 해야하기 때문에 속도가 느리다는 단점이 있다. 퍼블릭 블록체인은, PoW 합의 알고리즘, PoS 합의 알고리즘, DPoS 합의 알고리즘을 적용가능하다. 한편, 프라이빗 블록체인은, 법적 책임을 지는 허가받은 사람만 블록체인 네트워크에 참여할 수 있는 블록체인이다. 운영과 참여의 주체가 분명하기 때문에 인센티브 제도인 코인을 발행하여 운영하지 않아도 된다. 허가받은 소수의 사람들이 참여하기 때문에 기밀성이 강화된 모델이며, 신뢰할 수 있는 사람들만 함께하여 트랜잭션 속도가 빨라진다는 장점이 있지만, 적은 사람들에 의해 합의가 진행되기 때문에 일부 중앙화가 되어 보안성이 낮아질 수 있다는 단점이 있다. 프라이빗 블록체인은 PBFT 합의 알고리즘, Ripple 합의 알고리즘을 적용가능하다.Blockchains are divided into public blockchains and private blockchains depending on the participation target. Public blockchain is a blockchain that anyone can freely participate in the blockchain network. Since the subject of operation and participation is unclear, the incentive system coin is issued and operated, and the transparency is enhanced because many people participate, and the more people join the network, the better the security is, but it has many advantages. The consensus is that there is a disadvantage in that it is slow because it has to be synchronized by propagating to the entire network. For the public blockchain, PoW consensus algorithm, PoS consensus algorithm, and DPoS consensus algorithm can be applied. On the other hand, a private blockchain is a blockchain where only authorized persons with legal responsibilities can participate in the blockchain network. Since the subject of operation and participation is clear, there is no need to issue and operate coins, an incentive system. This model has enhanced confidentiality due to the participation of a small number of authorized people, and has the advantage of speeding up transactions with only trusted people.However, due to consensus by a small number of people, some centralization may reduce security. There are disadvantages. For the private blockchain, the PBFT consensus algorithm and the Ripple consensus algorithm can be applied.

블록체인 합의 알고리즘은 경쟁 방식과 비경쟁 방식으로 분류할 수 있다. 경쟁 방식은, 종국성이 보장되지 않고 동시에 여러 곳에서 서로 다른 합의를 진행하여, 특정 조건을 먼저 만족하는 단 하나의 합의만을 수용함으로써 체인의 단일성을 유지한다. 이 방식의 경우 모두가 증명에 참여하지 않아도 되기 때문에 악의적으로 참여하지 않거나 반대하는 문제를 해결했다는 장점이 있지만, 하지만 포크가 발생하기 때문에 이중지불의 가능성이 있고, 발생한 포크에서 선택받지 못한 보조 체인의 경우 그동안 마이닝에서 사용했던 모든 리소스가 무효화되어 결과적으로 낭비된다는 단점이 있다. 경쟁 방식에서는 PoW 합의 알고리즘, PoS 합의 알고리즘, DPoS 합의 알고리즘이 있다. 한편, 비경쟁 방식은, 종국성이 보장되고 한 번에 하나의 합의만을 진행하며, 많은 사람들이 투표 등의 방식으로 진행함으로써 체인의 단일성을 유지한다. 하나의 체인만을 진행하기 때문에 리소스를 낭비하지 않는다는 장점이 있지만, 2/3 이상이 동의해야 하는 방식에서 1/3이 투표를 진행하지 않거나 악의로 투표를 망친다면 시스템이 무너질 수 있다는 문제점이 있으며 마스터 노드 혹은 리더 노드의 컨트롤을 받아 투표를 진행하게 되기 때문에 중앙화의 단점이 있다. 비경쟁 방식에는 PBFT 합의 알고리즘, Ripple 합의 알고리즘이 있다.Blockchain consensus algorithm can be classified into competitive and non-competitive methods. The competition method maintains the unity of the chain by accepting only one agreement that satisfies a certain condition first, by ensuring different agreements in several places at the same time without guaranteeing finality. This method has the advantage of solving the problem of not participating or opposing maliciously because everyone does not need to participate in the proof, but there is a possibility of double payment due to the fork occurring, and of the secondary chain not selected by the fork that occurred. The disadvantage is that all resources used in mining are invalidated and wasted as a result. The competition methods include PoW consensus algorithm, PoS consensus algorithm, and DPoS consensus algorithm. On the other hand, the non-competition method maintains the unity of the chain by guaranteeing finality and proceeding with only one agreement at a time, and many people by voting or the like. It has the advantage of not wasting resources because only one chain is in progress, but there is a problem that the system may collapse if 1/3 of the votes are not proceeded or the malicious votes are ruined in a manner that more than 2/3 must agree. There is a disadvantage of centralization because voting is conducted under the control of a node or a leader node. Non-competitive methods include the PBFT consensus algorithm and the Ripple consensus algorithm.

합의 알고리즘은, PoW 합의 알고리즘, PoS 합의 알고리즘, DPoS 합의 알고리즘, PBFT 합의 알고리즘, 및 Ripple 합의 알고리즘으로 이루어진다. 첫 번째로, PoW 합의 알고리즘은, 새로 증명할 블록 헤더를 SHA256 알고리즘을 통해 해시값을 구하여 nBits에서 정한 숫자보다 작은 숫자가 나올 때까지 논스(Nonce)를 1씩 증가시킨다. 이때, nBits에서 정한 숫자보다 작은 숫자가 나올 때까지 논스를 1씩 증가시키는 작업을 마이닝(Mining), 작업자를 마이너(Miner)라고 부른다. PoW 합의 알고리즘은 CPU 혹은 GPU 의 해싱 파워를 요구하며, 평균작업은 요구되는 제로 비트 수의 지수함수로 이루어진 다시간이 지나면서 더 큰 네트워크를 구성할수록 안정성과 안전성이 증가하며, 간단한 구조로 누구나 구성하기 쉽다는 장점이 있다. 다만, 해싱 파워를 이용하기 때문에 51%의 해싱 파워를 보유하면 네트워크 전체 합의를 좌우할 수 있는 51% 공격이 가능하며, 불필요하게 많은 양의 컴퓨터 자원을 사용한다는 단점이 있다.The consensus algorithm consists of a PoW consensus algorithm, PoS consensus algorithm, DPoS consensus algorithm, PBFT consensus algorithm, and Ripple consensus algorithm. First, the PoW consensus algorithm increases the nonce by 1 until a number less than the number determined by nBits is obtained by obtaining a hash value through the SHA256 algorithm for the block header to be newly proved. At this time, the task of increasing the nonce by 1 until a number less than the number determined by nBits is called mining, and the worker is called miner. The PoW consensus algorithm requires the hashing power of the CPU or GPU, and the average operation increases stability and safety as the larger network is constructed over time, which consists of the exponential function of the required number of zero bits. It has the advantage of being easy. However, because it uses hashing power, if it has 51% of hashing power, it can attack 51%, which can influence the entire network agreement, and has the disadvantage of using an unnecessarily large amount of computer resources.

두 번째로, PoS 합의 알고리즘은, 자신이 보유한 지분(Stake)만큼 증명에 참여하여 신규 블록을 생성한다. 다시 말해, 여러 블록 후보 중 합당하고 생각하는 블록에 대해 자신이 보유한 지분만큼 투표를 하고 그 블록이 최종적으로 많은 투표를 받아 정식 블록으로 등록된다면 자신이 투표한 만큼 새 블록의 보상을 받는 방식이다. 따라서, 제안자들은 블록 생성자와 지분 보유자의 이해 관계를 일치함을 통해 나쁜 의도로 블록을 생성할 동기를 없애고자 하였으며, PoS 합의 알고리즘에서는 PoW 합의 알고리즘의 마이너 대신 검증인(Validator), 마이닝 대신 마인팅(Minting) 이라는 표현을 사용한다. 해시값을 구하지 않고 투표를 함으로써 불필요하게 많은 양의 컴퓨터 자원을 낭비하는 문제를 해결하였으며, 해싱 파워가 아닌 지분을 사용하기 때문에 51% 공격을 훨씬 힘들게 했다는 장점이 있다. 다만, 지분이 많을수록 더 많은 증명을 할 수 있기 때문에, 은행의 이자와 비슷하여 시장에 유통되지 않을 수 있으며, 여러 곳에 동시에 투표하여 투표의 공정성을 해치는 Nothing at Stake 문제가 발생한다는 단점이 있다. Second, the PoS consensus algorithm generates new blocks by participating in the proof as much as the stakes it has. In other words, if you vote as much as you own for a reasonable and thought block among several block candidates, and if the block finally receives a lot of votes and is registered as a regular block, you will receive a reward for the new block as much as you voted. Therefore, the proponents tried to eliminate the motivation to create a block with bad intention by matching the interests of the block creator and the stake holder, and in the PoS consensus algorithm, the validator instead of the miner of the PoW consensus algorithm and the mining instead of mining Use the expression (Minting). It solved the problem of wasting unnecessarily large amounts of computer resources by voting without seeking the hash value, and has the advantage of making the 51% attack much harder because it uses stake rather than hashing power. However, the more the stake is, the more proof it can be, so it is similar to the interest of the bank and may not be distributed to the market, and there is a disadvantage in that there is a Nothing at Stake problem that damages the fairness of the vote by simultaneously voting in several places.

세 번째로, DPoS 합의 알고리즘은, 투표를 통해 증인 혹은 대표자를 선출하여 그들로 하여금 PoS 합의 알고리즘을 진행하도록 한다. 대표자가 되고 싶은 후보자는 자신의 공개키를 네트워크에 공약과 함께 등록하고, 투표자는 지갑에 포함된 투표 권한을 통해 자신의 지분만큼 표를 받아 대표자에게 투표한다. 만약 임명받은 대표자들이 Nothing at Stake 와 같은 행위를 통해 부당 이익을 챙기고자 한다면 그 즉시 투표자들은 투표를 진행하여 새로운 대표자를 선출할 수 있다. 일반적인 PoS 합의 알고리즘을 지분을 가진 사람들에 의해 이루어지는 직접 민주주의라고 본다면 DPoS 는 지분 가진 사람들 중 일부 대표자를 선출하여 이루어지는 간접 민주주의라 할 수 있다. 이때, 동률을 막기 위해 홀수인 21명을 선출하여 진행하기 때문에 빠르며, Nothing at Stake 문제를 해결했다는 장점이 있지만, 거래소와 같이 많은 지분을 보유한 곳이 투표권을 남용하여 자신들에게 유리한 대표자를 선출할 수도 있으며, 일부 중앙화로 보안성 및 투명성이 위협받을 수 있다는 단점이 있다.Third, the DPoS consensus algorithm selects witnesses or representatives through voting and allows them to proceed with the PoS consensus algorithm. The candidate who wants to become a representative registers his public key with the pledge on the network, and the voter receives a vote as much as his stake through the voting authority included in the wallet and votes for the representative. If appointed delegates want to make unfair profits through actions such as Nothing at Stake, the voters can immediately vote to elect a new representative. If we consider the general PoS consensus algorithm as direct democracy made by people with stakes, DPoS is an indirect democracy by selecting some representatives of people with stakes. At this time, it is fast because it selects an odd number of 21 people to prevent a tie, and it has the advantage of solving the Nothing at Stake problem.However, a place with many stakes, such as an exchange, can abuse voting rights to elect a representative who is advantageous to them. There is a disadvantage that security and transparency can be threatened by some centralization.

네 번째로, PBFT 합의 알고리즘은, 선출된 하나의 리더 노드가 검증 노드를 이용하여 타당하다고 검증된 거래를 수신하여, 합의 요청을 모두에게 전파하고 2/3 표를 ?득하여 블록을 생성한다. PBFT 합의 알고리즘은 일부 비정상 노드가 존재하더라도 정상 작동하도록 하는 분산 시스템의 BFT 알고리즘을 발전시켜서, 비동기식 네트워크에서도 사용가능하도록 하였다. 또한 PBFT에서는 전체 네트워크로 전파하여 투표하는 두 번의 브로드캐스팅 과정을 통해 더 높은 확률로 리더나 검증 노드가 이상한 노드를 보다 정확하게 제거하였다. 이미 검증된 거래를 수신하여 진행하기 때문에 보다행하기 때문에 빠르다는 장점이 있다. 다만, PBFT는 모든 노드들 간의 통신이 이뤄지기 때문에 노드의 수를 늘릴수록 더 큰 통신 오버헤드가 발생하여 확장이 어렵고 대규모 네트워크에 적합하지 않고, 33%의 노드가 투표를 진행하지 않거나 의도하여 반대만 한다면 시스템이 정지될 수 있다는 단점이 있다.Fourth, in the PBFT consensus algorithm, one elected leader node receives a transaction verified as valid using the verification node, propagates the consensus request to all, and acquires 2/3 votes to generate a block. The PBFT consensus algorithm developed the BFT algorithm of a distributed system that allows normal operation even when some abnormal nodes exist, so that it can be used in an asynchronous network. In addition, in the PBFT, the reader or the verification node removed the strange node more accurately with a higher probability through two broadcasting processes of transmitting and voting through the entire network. It has the advantage of being fast because it is more responsive because it receives and proceeds with the already verified transaction. However, since PBFT communicates between all nodes, the larger the number of nodes, the greater the communication overhead, making it difficult to scale and not suitable for large-scale networks. 33% of nodes do not vote or intend to oppose The disadvantage is that the system can be hung if done.

다섯 번째로, Ripple 합의 알고리즘은, 네트워크 검증 서버에 의해 실행되는 비동기 라운드 기반 프로토콜로 수집 단계, 합의 단계, 마감 단계로 구성되어 진행된다. 수집 단계에서는 검증서버가 네트워크로부터 트랜잭션을 수신하여 서명의 유효성과 관련 정보의 정확성을 검사하고 제안서를 다시 네트워크에 후보 집합으로 브로드 캐스팅한다. 합의 단계에서는 서버들이 전달받은 제안서에 대해 투표를 진행하여 합의한다. 마감 단계에서는 제안서가 80% 이상의 동의를 얻으면 제안서를 후보 집합에서 제거하여 원장에 정식으로 등록되며 한 라운드가 마감된다. Ripple 합의 알고리즘은 실시간 결제 시스템을 목표로 대량의 결제를 빠르게 처리하는 것을 목표로 하며, 주로 은행간 이체 서비스를 중점으로 서비스하는 목적으로 만들어졌기 때문에 속도의 중심을 두어 개발하여 빠른 속도가 장점이다. 다만, 아주 큰 중앙화를 통해 빠른 속도를 구축했으며, 20%의 노드가 투표를 진행하지 않거나 의도하여 반대만한다면 시스템이 정지될 수 있다는 단점이 있다. 상술한 합의 알고리즘을 정리하면 이하 표 1과 같다.Fifth, the Ripple consensus algorithm is an asynchronous round-based protocol executed by a network verification server, consisting of a collection phase, a consensus phase, and a closing phase. In the collection phase, the verification server receives the transaction from the network, checks the validity of the signature and the accuracy of the relevant information, and broadcasts the proposal back to the network as a candidate set. In the consensus phase, the server votes on the proposal received and agrees. In the closing phase, if the proposal gets over 80% consent, the proposal is removed from the set of candidates, formally registered with the ledger and the round is closed. The Ripple consensus algorithm aims to process large-scale payments quickly with the goal of a real-time payment system, and is mainly developed for the purpose of servicing interbank transfer services. However, the speed has been established through a very large centralization, and the system can be stopped if 20% of the nodes do not proceed or vote on purpose. The above-mentioned consensus algorithm is summarized in Table 1 below.

PoWPoW PoSPoS DPoSDPoS PBFTPBFT RippleRipple 타입type 퍼블릭Public 퍼블릭Public 퍼블릭Public 프라이빗Private 프라이빗Private 토큰token 필요need 필요need 필요need 불필요Unnecessary 불필요Unnecessary 유지방식Maintenance method 경쟁compete 경쟁compete 경쟁compete 비경쟁Non-competition 비경쟁Non-competition 신뢰모델Trust model 비신뢰Unreliable 비신뢰Unreliable 신뢰trust 신뢰trust 신뢰trust 중앙화Centralization 탈중앙화Decentralization 탈중앙화Decentralization 중앙화Centralization 중앙화Centralization 중앙화Centralization 트랜잭션 속도Transaction rate 10분*6컨펌10 minutes * 6 confirmations 12초*100컨펌12 seconds * 100 confirmations 1.5초*30컨펌1.5 seconds * 30 confirmations 5초5 seconds 2~10초2-10 seconds 보안성Security 높음height 높음height 낮음lowness 낮음lowness 낮음lowness

중앙화는 신뢰 모델에 따라 결정되며, 트랜잭션 속도는 각 합의 알고리즘이 트랜잭션을 검증하여 새로운 블록을 생성하는데 걸리는 시간을 의미한다. 이때, 일반적으로 중앙화 정도와 비례하여 속도는 향상된다. 보안성은 해킹에 안전한 정도를 의미하는데, 공격의 목표가 되는 장애점이 적어질수록 보안이 취약하다고 할 수 있으므로, 중앙화 정도와 반비례하여 보안성은 저하된다. 반면, 비신뢰모델은 탈중앙화를 이루어 장애점을 많이 가짐으로써 보안성이 향상된다는 장점이 있지만 속도가 저하된다는 단점이 있다. 이에 따라, 본 발명의 일 실시예는, 프라이빗 블록체인으로 신뢰 모델을 형성하되, 보안성을 높이고 탈중앙화를 이룰 수 있도록 프라이빗 블록체인의 외부에서도 노드를 선정함으로써, 블록체인 내외부에서 선출된 노드로 합의에 이르도록 할 수 있고, 대표를 선정하되 DPoS나 PBFT와 같이 미리 선출을 해두는 것이 아니라 양자난수로 트랜잭션이 발생할 때마다 랜덤하게 선출하고 소통의 통로를 단일화함로써 트랜잭션 속도는 높이면서 보안성도 함께 높일 수 있으며, PoW, PoS, PBFT가 가지는 전력소비, 이중지불, 및 네트워크 지연을 제거할 수 있는 플랫폼을 제공하도록 한다.Centralization is determined by the trust model, and the transaction rate means the time it takes for each consensus algorithm to verify the transaction and create a new block. At this time, speed is generally improved in proportion to the degree of centralization. Security refers to the degree of security against hacking. As fewer obstacles become targets for attack, security can be said to be weaker. Therefore, security decreases in inverse proportion to the degree of centralization. On the other hand, the non-trust model has the advantage of improving security by having a lot of obstacles by decentralization, but it has the disadvantage that the speed is reduced. Accordingly, an embodiment of the present invention, by forming a trust model with a private blockchain, by selecting a node from the outside of the private blockchain to increase security and achieve decentralization, to the node elected from inside and outside the blockchain You can reach an agreement, select a representative, but do not elect in advance like DPoS or PBFT, but randomly select each time a transaction occurs with quantum random numbers and unify the channel of communication to increase transaction speed and security. Together, it is possible to provide a platform that can increase power and eliminate power consumption, double payment, and network delay of PoW, PoS, and PBFT.

도 2를 참조하면, 전송부(310)는, 프론트 노드(Front Node, 100)로부터 블록 생성을 요청하는 트랜잭션 데이터를 수신하고, 양자난수 알고리즘(Quantum Random Function Mechanism)으로 생성된 양자난수를 암호화하여 프론트 노드(100)로 전송할 수 있다. 여기서, 프론트 노드(100)는, 블록체인을 이루는 적어도 하나의 노드, 즉 일반 노드 중 하나의 노드인데, 트랜잭션(Transaction, tx) 풀(Pool)에서 블록을 생성하기 위한 마지막 트랜잭션이 수신되는 경우, 블록을 생성하라고 제안(Proposal)하는 임의의 노드일 수 있다. 이때, 전송부(310)는, 상임위 노드(500) 중 양자난수로 선택된 노드를 코디네이터 노드(600)로 선정하고, 기 등록된 운영위 후보 노드(400)의 정보를 추출하여 양자난수와 함께 암호화하여 프론트 노드(100)로 전송할 수 있다.Referring to FIG. 2, the transmitter 310 receives transaction data requesting block generation from the front node 100 and encrypts the quantum random number generated by the quantum random algorithm (Quantum Random Function Mechanism). It can be transmitted to the front node 100. Here, the front node 100 is at least one node constituting a blockchain, that is, one node of a normal node. When the last transaction for generating a block in a transaction (tx) pool is received, It can be any node that proposes to create a block. At this time, the transmission unit 310 selects the node selected as the quantum random number among the standing nodes 500 as the coordinator node 600, extracts information of the previously registered operating committee candidate node 400, and encrypts it together with the quantum random number. It can be transmitted to the front node 100.

정보보호에서 필요로 하는 이상적인 난수는, 동전 던지기를 통해 얻는 수와 같이 예측불가능하고 독립적이며, 재발생이 불가능한 수이다. 암호 시스템의 암호 알고리즘이나 프로토콜 등은 난수가 이상적인 난수라 가정한 후 설계되므로, 안전한 난수를 생성할수 있는 난수 발생기 사용이 필수적이다. 난수 발생기는, 주로 초기 씨드(Seed) 값으로부터 결정론적인 알고리즘을 통해 난수를 생성하는 의사난수발생기(Pseudo Random Number Generator; PRNG, Deterministic Random Bit Generator; DRBG)와, 예측하기 어려운 물리적 현상으로부터 난수를 생성하는 진난수발생기(True Random Number Generator, TRNG)로 분류된다. PRNG의 출력 난수는 입력인 씨드에 의해 결정되기 때문에 TRNG의 출력 난수를 씨드로 사용하는 것이 일반적이다. 반면, TRNG는 아날로그 데이터인 잡음원을 입력으로 사용하기 위해 디지털 데이터로 바꾸는 디지털화 과정이 수행되고, 디지털화 된 데이터의 바이어스를 줄이기 위하여 선택적으로 후처리 과정을 수행한 후 난수를 출력한다. 이상적인 난수의 출력은 난수발생기의 입력인 잡음원이 예측 불가능한 것에 의존하기 때문에, 엔트로피 소스(Entropy source)로 사용되는 잡음원의 특성파악이 중요하다. 따라서, 물리적 특성의 잡음원이 가지는 바이어스를 줄이는 후처리 과정의 안전성 분석은 이상적인 난수를 출력하기 위해 반드시 고려되어야 하는 사항이다.The ideal random number required for information protection is an unpredictable, independent, non-recurring number, such as the number obtained through coin toss. The cryptographic algorithm or protocol of the cryptosystem is designed after assuming that the random number is the ideal random number, so it is essential to use a random number generator capable of generating a secure random number. The random number generator mainly generates a random number from a pseudo random number generator (PRNG, Deterministic Random Bit Generator; DRBG) that generates a random number through a deterministic algorithm from an initial seed value, and a physical phenomenon that is difficult to predict. Is classified as a true random number generator (TRNG). Since the output random number of the PRNG is determined by the input seed, it is common to use the output random number of the TRNG as the seed. On the other hand, TRNG performs a digitization process that converts the noise source, which is analog data, to digital data for use as an input, and outputs a random number after selectively performing a post-processing process to reduce the bias of the digitized data. Since the output of the ideal random number depends on the unpredictable noise source, which is the input of the random number generator, it is important to understand the characteristics of the noise source used as an entropy source. Therefore, the safety analysis of the post-processing process to reduce the bias of the noise source of the physical characteristics is a matter that must be considered in order to output an ideal random number.

이때, 양자난수 알고리즘의 양자난수 발생기는, 양자정보의 예측불가능성을 이용하여 난수를 생성하는 TRNG이다. 이는, 예측불가능성, 무편항성, 및 숫자간 무관성이 보장되며, PRNG와는 다르게 암호화 패턴으로 시드값을 추적할 수 없다. 이때, 양자난수 발생기는, 광자의 편광, 광자의 경로, 광자의 도착시간 및 진공상태의 샷 노이즈를 측정하여 난수를 생성하는 방법인데, 광자의 편광, 광자의 경로는 광자의 중첩을 활용하는 방법이며, 관측되는 측정기의 위치에 따라 0, 1 을 할당한다. 광자의 도착시간을 측정하는 양자난수 발생기의 경우, 관측 주기를 여러 구간으로 나누어, 한 번의 관측마다 구간에 대한 주기의 비율을 로그화한 비트를 생성한다. 진공 상태의 샷 노이즈는, 가우시안 분포를 가지는 임의의 상태이므로, 이를 구간으로 난수를 생성할 수도 있다. At this time, the quantum random number generator of the quantum random number algorithm is a TRNG that generates random numbers using unpredictability of quantum information. This guarantees unpredictability, unbiasedness, and irrelevance between numbers, and unlike PRNG, it is impossible to track the seed value with an encryption pattern. At this time, the quantum random number generator is a method of generating a random number by measuring the polarization of the photon, the path of the photon, the arrival time of the photon, and the shot noise in a vacuum state. And 0 and 1 are assigned according to the position of the measured instrument. In the case of a quantum random number generator that measures the arrival time of a photon, the observation period is divided into several sections, and a bit that logs the ratio of the period to the section is generated for each observation. Since the shot noise in the vacuum state is an arbitrary state having a Gaussian distribution, a random number may be generated in this section.

이를 이용하여, 전송부(310)는, 상임위 노드(500) 중 코디네이터 노드(600)를 확정하고, 복수의 상임위 후보 노드(400) 중 일부의 상임위 후보 노드(400)를 선정하게 된다. 물론, 상임위 후보 노드(400)가 선정되었다고 할지라도, 상술한 선정과 확정의 개념의 차이로 인하여, 코디네이터 노드(600)에서 검증되고, 코디네이터 노드(600)로 선착순으로 등록한 기 설정된 수의 상임위 후보 노드(400)만이 상임위 노드(400)로 확정되므로, 전송부(310), 즉 양원제 합의 서비스 제공 서버(300)도 어느 노드가 상임위 노드(400)가 될지는 알 수 없다. 이를 통하여, 무결성을 보장할 수 있다.Using this, the transmission unit 310 determines the coordinator node 600 among the standing nodes 500 and selects some standing candidate nodes 400 among the plurality of standing candidate nodes 400. Of course, even if the standing candidate node 400 is selected, due to the difference between the above-described concept of selection and confirmation, a predetermined number of standing candidates verified by the coordinator node 600 and registered in the first-come-first-served order as the coordinator node 600 Since only the node 400 is determined to be the senior node 400, the transmitting unit 310, that is, the bilateral consensus service providing server 300, does not know which node will be the senior node 400. Through this, integrity can be guaranteed.

수신부(320)는, 프론트 노드(100)에서 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 경우, 양자난수를 복호화한 코디네이터 노드(600), 상임위 노드(500), 및 운영위 후보 노드(400)로부터 검증 데이터를 수신할 수 있다. 이때, 수신부(320)는, 양자난수를 복호화할 때, 코디네이터 노드(600), 상임위 노드(500), 및 운영위 후보 노드(400)는, 블록의 헤더 내 ExtraData에 포함된 해시로 검증한 후 복호화할 수 있다. 따라서, 전송부(310)는, 프론트 노드(100)의 공개키를 이용하여 양자난수를 암호화하고 프론트 노드(100)로 전송할 수 있고, 수신부(320)에서 프론트 노드(100)에서 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 경우, 양자난수를 복호화한 코디네이터 노드(600), 상임위 노드(500), 및 운영위 후보 노드(400)로부터 검증 데이터를 수신할 때, 프론트 노드(100)에서 암호화된 양자난수를 프론트 노드(100)의 공개키를 이용하여 서명값을 검증하는 방법으로 암호화된 양자난수를 검증할 수 있으며, 검증이 완료된 경우 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅할 수 있다.When the receiver 320 broadcasts by inserting the encrypted quantum random number into the header in the block in the front node 100, the coordinator node 600 decoding the quantum random number, the standing node 500, and the operating node candidate node ( 400). At this time, when decoding the quantum random number, the receiving unit 320, the coordinator node 600, the senior node 500, and the operating node candidate node 400, after verifying with the hash included in the ExtraData in the header of the block, decrypt can do. Therefore, the transmitting unit 310 may encrypt the quantum random number using the public key of the front node 100 and transmit the quantum random number to the front node 100, and the receiving unit 320 may transmit the quantum random number to the header in the block in the front node 100. When the encrypted quantum random number is inserted and broadcast, the front node 100 receives the verification data from the coordinator node 600, the senior node 500, and the operational candidate node 400, which decodes the quantum random number. The encrypted quantum random number can be verified by verifying the signature value using the public key of the front node 100, and when the verification is completed, the encrypted quantum random number is inserted into the header in the block to broadcast. can do.

또, 수신부(320)에서 프론트 노드(100)에서 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 경우, 양자난수를 복호화한 코디네이터 노드(600), 상임위 노드(500), 및 운영위 후보 노드(400)로부터 검증 데이터를 수신할 때, 수신부(320)는, 상임위 노드(500) 중 코디네이터로 선정된 노드인 코디네이터 노드(600)에서, 헤더 내 양자난수리스트 인식자를 공개키로 복호화하는 경우, 운영위 후보 노드(400)의 양자난수리스트를 확보하도록 할 수 있다. 그리고, 수신부(320)는, 운영위 후보 노드(400)에서 헤더를 복호화하여 코디네이터로 전송하면, 코디네이터는 상임위 노드(500) 및 운영위 후보 노드(400)로 코디네이터 선정을 공개키를 이용하여 통지하도록 할 수 있다.In addition, when the reception node 320 broadcasts by inserting the encrypted quantum random number in the header in the block in the front node 100, the coordinator node 600 decoding the quantum random number, the senior node 500, and the candidate node When receiving the verification data from 400, the receiving unit 320, when the coordinator node 600, which is a node selected as a coordinator among the senior nodes 500, decodes the quantum random number list identifier in the header with a public key, It is possible to secure a quantum random list of candidate nodes 400. Then, when the receiving unit 320 decodes the header from the candidate node 400 and transmits it to the coordinator, the coordinator notifies the senior node 500 and the candidate node 400 of the coordinator using the public key. You can.

여기서, 블록은, 도 5의 (a)를 참조하면, 센더(Sender), 리시버(Receiver), 및 헤더(Header)로 구성되는데, 이때, 헤더는, 부모해시(ParentHash), 루트(Root), 트랜잭션해시(TxHash), 수신해시(ReceiptHash), 블룸(Bloom), 넘버(Number), 타임(Time), 엑스트라(Extra)로 이루어져있고, 엑스트라는 추가적으로 데이터를 더 넣을 수 있는 구조이다. 엑스트라에 추가적으로 넣는 데이터를 엑스트라 데이터(ExtraData)라고 한다. 이에 따라, 프론트 노드(100)에서 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅할 때, 운영위 후보 노드(400), 상임위 노드(500), 및 코디네이터 노드(600)의 정보를 함께 넣어 브로드캐스팅하는 경우, 이를 받은 노드 중 자신이 운영위 후보거나, 상임위거나 코디네이터인 경우에는 이 정보를 이용하여 자신이 선정 또는 확정되었음을 알 수 있게 된다. 브로드캐스팅이란 블록체인을 이루는 모든 노드에게 전체적으로 뿌려지는 것을 의미하므로, 이를 받은 노드 중 자신이 운영위 후보가 아니거나, 상임위가 아니거나 코디네이터가 아닌 경우 이를 복호화하지 못하거나 인증하지 못하므로 선정 또는 확정되지 않는다.Here, referring to (a) of FIG. 5, the block is composed of a sender, a receiver, and a header, wherein the header is a parent hash and a root , Transaction Hash (TxHash), Receive Hash (ReceiptHash), Bloom (Bloom), Number (Number), Time (Time), and Extra (Extra). Extra is a structure that can additionally contain additional data. The data additionally added to the extra is called extra data. Accordingly, when the encrypted quantum random number is inserted into the header in the block by the front node 100 and broadcast, the information of the candidate node 400, the senior node 500, and the coordinator node 600 is put together. In the case of casting, if he is a candidate for a management committee, a standing committee, or a coordinator among the nodes that have received it, it is possible to know that he has been selected or confirmed using this information. Broadcasting means being distributed to all nodes that make up the blockchain as a whole, so if one of the nodes that received it is not a candidate for the operating committee, is not a standing committee, or is not a coordinator, it cannot be decrypted or authenticated, so it is selected or confirmed. Does not.

다시 도 2로 돌아와서, 확정부(330)는, 코디네이터 노드(600)에서 상임위 노드(500)와, 운영위 후보 노드(400) 중 선착순으로 접속한 기 설정된 수를 운영위 노드(400)로 확정하도록 한다. 확정부(330)는, 코디네이터 노드(600)에서 상임위 노드(500)와, 운영위 후보 노드(400) 중 선착순으로 접속한 기 설정된 수를 운영위 노드(400)로 확정하도록 할 때, 상임위 노드(500)와 운영위 노드(400)의 퍼센트가 각각 49% 및 51%가 되도록 하거나, 상임위 노드(500)와 운영위 노드(400)의 수가 각각 14개 및 15개가 되도록 확정할 수 있다. 숫자로 결정된다고 할지라도, 14개와 15개의 비율도 결과적으로 49%와 51%이므로, 퍼센트 비율이 더 상위개념이라고 할 수 있다. 이때, 상술한 바와 같이, 운영위 후보 노드(400)로 선정되었다고 해도 확정된 것은 아니다. 예를 들어, 운영위 후보 노드(400)가 50 개이고, 운영위 노드(400)의 개수가 15개로 기 설정된 경우, 50 개의 노드 중 선착순으로 검증된 15 개의 노드가 운영위 노드(400)로 확정된다. 이때, 확정부(330)에서 확정된 노드 간에서 합의를 도출하므로 합의에 참여하는 노드의 수가 줄어듦으로 인하여 결과적으로 빠른 합의를 도출할 수 있고, 확정된 운영위 노드(400), 상임위 노드(500), 및 코디네이터 노드(600) 간의 통신은 코디네이터 노드(600)를 중심으로 브로드캐스팅이 아닌 TCP/IP 통신을 통해 직접 통신을 수행함으로써 네트워크 트래픽을 줄이고 지연을 최소화할 수 있으므로 속도를 개선할 수 잇다.Returning to FIG. 2 again, the determining unit 330 determines the predetermined number of first-come-first-served access nodes of the coordinator node 600 and the high-ranking node 500 and the high-ranking candidate node 400 as the high-ranking node 400. . When the coordinator node 600 determines the preset number of first-come-first-served access nodes of the coordinator node 600 and the coordinator node 400 in a first-come, first-served node 400, the coordinator node 500 determines the coordinator node 500. ) And the percentage of the node 400 to be 49% and 51%, respectively, or it can be determined that the number of the standing node 500 and the node 400 is 14 and 15, respectively. Even if it is determined by numbers, the percentages of 14 and 15 are also 49% and 51% as a result, so the percentage ratio is a higher concept. At this time, as described above, even if it is selected as a candidate node 400 for the operation, it is not confirmed. For example, if there are 50 candidate nodes 400, and the number of nodes 400 is preset to 15, 15 nodes verified in first-come-first-served order out of 50 nodes are determined as the nodes 400. At this time, since the consensus is drawn between the nodes determined by the determining unit 330, as a result, the number of nodes participating in the consensus is reduced, and as a result, a quick consensus can be derived, and the fixed operating node 400 and the standing node 500 The communication between the coordinator node 600 and the coordinator node 600 may be performed directly through TCP / IP communication rather than broadcasting, thereby reducing network traffic and minimizing delay, thereby improving speed.

생성부(340)는, 코디네이터 노드(600)에서 상임위 노드(500)와 운영위 노드(400) 간의 직접 통신으로 합의결과를 취합하여 블록체인 내 적어도 하나의 노드로 결과를 브로드캐스팅하여 블록을 생성하도록 할 수 있다. 생성부(340)는, 합의결과가 상임위 노드(500) 및 운영위 노드(400)의 51% 검증이 완료되는 경우 블록을 생성하도록 할 수 있다. 물론, 그 결과는 코디네이터 노드(600)에서 운영위 노드(400), 상임위 노드(600)를 거쳐 블록체인을 이루는 적어도 하나의 노드, 즉 일반 노드로 브로드캐스팅하게 된다.The generation unit 340 collects the consensus result by direct communication between the coordinator node 600 and the senior node 500 and the operational node 400 to broadcast the result to at least one node in the blockchain to generate a block. can do. The generation unit 340 may generate a block when the consensus result is that 51% verification of the senior node 500 and the operational node 400 is completed. Of course, the result is broadcast from the coordinator node 600 to the at least one node constituting the blockchain through the operational node 400 and the senior node 600, that is, the normal node.

등록부(350)는, 전송부(310)에서 프론트 노드(100)로부터 블록 생성을 요청하는 트랜잭션 데이터를 수신하고, 양자난수 알고리즘으로 생성된 양자난수를 암호화하여 프론트 노드(100)로 전송하기 이전에, 기 설정된 가상화폐 보유조건 및 컴퓨팅 자원조건을 만족하는 적어도 하나의 노드로부터 가입요청을 수신하는 경우, 적어도 하나의 노드를 운영위 후보 노드(400)로 등록할 수 있다. 마찬가지로, 상임위 노드(500)도 미리 등록할 수 있다.The registration unit 350 receives the transaction data requesting the block generation from the front node 100 in the transmission unit 310, and encrypts the quantum random number generated by the quantum random number algorithm before transmitting it to the front node 100. , When receiving a subscription request from at least one node that satisfies the preset virtual currency holding condition and computing resource condition, at least one node may be registered as a candidate node for the operation committee 400. Likewise, the senior node 500 may be registered in advance.

이하, 상술한 도 2의 양원제 합의 서비스 제공 서버의 구성에 따른 동작 과정을 도 3 내지 도 7을 예로 들어 상세히 설명하기로 한다. 다만, 실시예는 본 발명의 다양한 실시예 중 어느 하나일 뿐, 이에 한정되지 않음은 자명하다 할 것이다.Hereinafter, an operation process according to the configuration of the two-way consensus service providing server of FIG. 2 will be described in detail with reference to FIGS. 3 to 7 as an example. However, the embodiment is only one of various embodiments of the present invention, it will be apparent that it is not limited thereto.

도 3을 참조하면, (a) 양원제 합의 서비스 제공 서버(300)는 블록체인 내부에는 상임위 노드(500)를 선정 및 등록하여 운용하고, 블록체인 외부에서는 기 설정된 조건을 만족하는 경우 등록을 신청한 노드라면 누구나 운영위 후보 노드(400)로 등록하여 관리한다. 이때, 블록체인의 내부는 프라이빗 블록체인이고, 외부는 프라이빗 블록체인에 포함되지 않은 노드로 구성된 블록체인이다. 이를 통하여, 프라이빗 블록체인을 구성한다고 할지라도 탈중앙화와 중앙화의 장점을 모두 가져갈 수 있고, 블록체인의 내외부의 균형과 상호간의 자정작용이 가능해진다. 여기서, 운영위 후보 노드(400)는, 양자난수를 통하여 선정되고, 선착순으로 등록하고 검증되는 과정을 거쳐 운영위 노드(400)로 확정됨은 상술한 바와 같다.Referring to FIG. 3, (a) the bilateral system consensus service providing server 300 selects and registers a senior node 500 inside the blockchain and operates it, and applies for registration when the predetermined conditions are met outside the blockchain. Any node is registered and managed as a candidate node 400 of the operation committee. At this time, the inside of the blockchain is a private blockchain, and the outside is a blockchain composed of nodes not included in the private blockchain. Through this, even if it constitutes a private blockchain, it can take advantage of both decentralization and centralization, and the balance between the inside and outside of the blockchain and the self-cleaning effect of each other becomes possible. Here, it is as described above that the candidate node 400 for the operation committee is selected through the quantum random number, and is determined as the operation node node 400 through the process of registration and verification on a first-come, first-served basis.

(b) 이때, 상임위 노드(500)는, 상시 운영되는 노드이고, 운영위 노드(400)는, 트랜잭션을 기록할 블록생성요청이 있을 때마다, 양자난수를 이용하여 선택되는 일시적인 노드이다. 예를 들어, 상임위 노드(500)가 14개, 운영위 노드(400)가 15개라면, 총 29개의 블록체인 내외부 노드가 블록생성을 위한 합의과정에 참여하게 된다. 이때, 합의에 참여하는 노드 중 운영위 노드(400)가 참여하는 비율은 51% 이상 유지하여야 상임위 노드(500)가 공정하게 운용되고 있는지를 감시할 수 있다. 반대로 말하면, 합의에 참여하는 노드 중 상임위 노드(500)는 49% 이하로 유지되어야 한다. (b) At this time, the high-ranking node 500 is a node that is always operated, and the high-ranking node 400 is a temporary node that is selected using a quantum random number whenever there is a block generation request to record a transaction. For example, if there are 14 standing nodes 500 and 15 operating nodes 400, a total of 29 internal and external nodes in the blockchain will participate in the consensus process for block creation. At this time, among the nodes participating in the agreement, the ratio of the participation of the operating node 400 should be maintained at least 51% to monitor whether the standing node 500 is operating fairly. Conversely, among the nodes participating in the agreement, the senior node 500 should be maintained at 49% or less.

이때, 본 발명의 일 실시예에 따른 블록체인에서 블록을 생성하는 주기는 예를 들어 2 초인데, 이렇게 빠르게 주기가 돌아올 수 있는 이유는, 상임위 노드(500) 중에서 소통의 중심인 코디네이터 노드(600)를 선정 및 확정하여 통신을 일원화하기 때문이다. 물론, 코디네이터 노드(600)도 양자난수로 선택되기 때문에 미리 지정되지 않고 무결성 및 위변조 가능성을 원시적으로 제거할 수 있다. 이렇게 확정된 코디네이터 노드(600)를 중심으로, 나머지 28개의 노드(29개의 노드 중에서 하나의 노드가 코디네이터 노드(600)로 확정되었으므로 나머지 노드는 28개)는 합의 과정 중 직접 통신 상태로 최소한의 네트워크 트래픽으로 합의에 도달가능하다. 즉, 일반적인 p2p 네트워크에서는 브로드캐스트되는 확인 메세지를 수집하는 과정에서 시간지연과 네트워크 부하가 발생하지만, 본 발명의 일 실시예에서는 코디네이터 노드(600)를 중심으로, 운영위 노드(400) 및 상임위 노드(500)가 각각 한 번의 메세지만 발송하거나 수신하면 되므로 상술한 성능을 이룰 수 있다. 결국, 코디네이터 노드(600)는, 오직 하나의 블록 생성자(Block Producer)가 되어 블록을 생성할 수 있고, 2 초 이내에 블록이 생성되지 못한 경우, 즉 합의에 이르지 못한 경우에는 해당 주기의 블록 생성은 스킵(Skip)하게 된다.At this time, the cycle for generating a block in the blockchain according to an embodiment of the present invention is, for example, 2 seconds. The reason why the cycle can return so quickly is that the coordinator node 600 which is the center of communication among the senior nodes 500 This is because communication is unified by selecting and confirming). Of course, since the coordinator node 600 is also selected as a quantum random number, it is not specified in advance, and the possibility of integrity and forgery can be primitively removed. With the coordinator node 600 determined as described above, the remaining 28 nodes (one node among the 29 nodes has been confirmed as the coordinator node 600, and the remaining 28 nodes) are the direct communication state during the consensus process, and the minimum network. Consensus is reachable by traffic. That is, in a general p2p network, time delay and network load occur in the process of collecting a broadcast confirmation message, but in one embodiment of the present invention, the coordinator node 600, the operating node 400, and the standing node ( 500) can transmit or receive only one message each, thereby achieving the above-described performance. As a result, the coordinator node 600 can be a block producer with only one block producer, and if a block is not generated within 2 seconds, that is, if a consensus is not reached, block generation of the corresponding cycle is Skip.

(c)는 본 발명의 일 실시예에 따른 데이터 흐름을 개략적으로 도시한 도면인데, 이를 보면, 우선 프론트 노드(100)에서 블록을 생성할 것을 제안하면서 시작한다. 이때, 프론트 노드(100)는 블록생성을 요청하는 새로운 트랜잭션을 수신하고, 블록을 생성하는 시점에 양원제 합의 서비스 제공 서버(300)에 접속하여 양자난수생성을 요청하게 된다. 그리고 나서, 양원제 합의 서비스 제공 서버(300)는, 프론트 노드(100)의 양자난수 생성 요청을 수신하고, 블록생성을 위한 합의를 도출하기 위해 양원제, 즉 운영위 후보 노드(400) 및 상원위 노드(500)를 양자난수로 선정하고, 상원위 노드(500) 중 어느 하나의 상원위 노드(500)를 대표격인 코디네이터 노드(600)로 선정 및 확정하는데, 이 또한 양자난수를 이용하여 선택하게 된다. 그리고, 양원제 합의 서비스 제공 서버(300)는, 선정된 운영위 후보 노드(400)와, 확정된 상원위 노드(500) 및 코디네이터 노드(600)의 정보와, 이를 인식하기 위한 양자난수 정보를 암호화하여 프론트 노드(100)로 전송한다. 또, 양원제 합의 서비스 제공 서버(300)는, 선정 및 확정된 코디네이터 노드(600)로는 운영위 후보 노드(400)의 정보를 전송한다.(c) is a diagram schematically showing a data flow according to an embodiment of the present invention. Looking at this, it starts by proposing to create a block in the front node 100. At this time, the front node 100 receives a new transaction requesting block generation and connects to the two-way consensus service providing server 300 at the time of generating the block to request quantum random number generation. Then, the two-way consensus service providing server 300 receives a request for generating a quantum random number of the front node 100, and derives a consensus for generating a block, the two-way system, that is, the candidate node 400 and the upper node ( 500) is selected as a quantum random number, and any one of the upper-end nodes 500 is selected and confirmed as a representative coordinator node 600, which is also selected using quantum random numbers. In addition, the two-way consensus service providing server 300 encrypts the information of the selected operation committee candidate node 400, the confirmed upper committee node 500, and the coordinator node 600, and quantum random number information for recognizing it. It transmits to the front node 100. In addition, the two-way consensus service providing server 300 transmits information of the candidate node 400 to the coordinator node 600 selected and confirmed.

한편, 프론트 노드(100)는, 블록체인 내외 모든 노드로 암호화한 양자난수 정보(선정 및 확정 정보 포함)를 브로드캐스팅하게 된다. 즉, 프론트 노드(100)는, 양원제 합의 서비스 제공 서버(300)로부터 수신한 암호화 정보를, 블록 헤더 내에 ExtraData를 구성하여 전체 노드로 브로드캐스팅하는 것이다. 이에 따라, 프론트 노드(100)의 브로드캐스팅을 받은 모든 노드는, 수신된 블록의 헤더 내 ExtraData에서 각자 자신의 해시를 검증하고, 자신의 정보인 경우에만 복호화하게 된다. 따라서, 선정된 운영위 후보 노드(400)과, 확정된 상임위 노드(500), 및 코디네이터 노드(600)가 암호화 정보를 복호화하게 된다.Meanwhile, the front node 100 broadcasts quantum random number information (including selection and confirmation information) encrypted with all nodes in and out of the blockchain. In other words, the front node 100 broadcasts the encrypted information received from the bidirectional consensus service providing server 300 to all nodes by constructing ExtraData in the block header. Accordingly, all nodes that have been broadcasted by the front node 100 verify their own hashes in ExtraData in the header of the received block, and decrypt only in case of their own information. Therefore, the selected operation committee candidate node 400, the determined standing committee node 500, and the coordinator node 600 decrypt the encrypted information.

그 다음에는, 선정된 운영위 후보 노드(400) 중 운영위 노드(400)를 확정해야 하는데, 이를 레이싱(Racing)이라 명명하기로 한다. 이때, 운영위 후보로 확인된 운영위 후보 노드(400)는, 선착순으로 진행되는 운영위 등록 레이싱을 진행하게 되며, 코디네이터 노드(600)는, 선착순 15 개의 운영위 후보 노드(400)를 운영위 노드(400)로 확정한다. 이렇게 운영위 노드(400)와 상임위 노드(500)가 모두 확정되었으면, 코디네이터 노드(600)는, 확정된 운영위 노드(400)와 상임위 노드(500)에게 확정결과를 통보하여 운영위 노드(400)와 상임위 노드(500)에서 합의를 진행하도록 하고, 합의결과가 51% 이상 찬성이면 블록을 생성하도록 그 결과를 블록 내외에 존재하는 모든 노드로 브로드캐스팅한다.Next, it is necessary to determine the operation node 400 among the selected operation node candidate nodes 400, which will be referred to as racing. At this time, the operation candidate node 400 identified as a candidate for the operation committee will proceed with the operation registration registration proceeding in a first-come, first-served order, and the coordinator node 600 may convert 15 operation committee candidate nodes 400 in the first-come-first-served order to the operation node 400. Confirm. If both the operating node 400 and the standing node 500 are determined, the coordinator node 600 notifies the determined operating node 400 and the standing node 500 of the determined results to the operating node 400 and the standing node. The node 500 proceeds to agree, and if the result of the agreement is more than 51%, the result is broadcast to all nodes existing in and outside the block to generate a block.

여기서, 코디네이터 노드(600)에서 운영위 노드(400)와 상임위 노드(500)를 선정 및 확정할 때, 양자난수와 공개키를 이용하여 암호화 기능을 내재한 난수 티켓 부여 방식을 이용할 수 있다. 이때, 양원제 합의 서비스 제공 서버(300)는, 해킹이 불가능한 메세지 전달방식, 고속인증, 및 고속합의를 구현가능한 하드웨어 의존적 호출함수를 포함할 수 있다. 그리고, 양자난수를 생성할 때 하드웨어 의존적 성질로 인하여 상술한 바와 같이 노드와 별도로 존재할 수도 있고, 상임위 노드(600) 중 어느 하나로 선택될 수도 있다. 이때, 도 3에서 설명한 내용을 풀어 설명한 것이 도 4이므로 중복된 설명은 생략하기로 한다.Here, when the coordinator node 600 selects and confirms the operating node 400 and the standing node 500, a random number ticket granting method incorporating an encryption function using a quantum random number and a public key may be used. At this time, the two-way consensus service providing server 300 may include a hardware-dependent call function capable of implementing a message delivery method, high-speed authentication, and high-speed agreement that cannot be hacked. And, when generating a quantum random number, it may exist separately from the node as described above due to hardware-dependent properties, or may be selected as one of the upper-level nodes 600. At this time, since the contents described in FIG. 3 are solved and described in FIG. 4, redundant descriptions will be omitted.

도 5를 참조하면, (a) 블록의 구조를 도시한다. 샌더는, 송신노드의 정보, 리시버는 수신노드의 정보, 헤더는, 생성할 블록의 헤더를 의미한다. 또, 헤더 내 부모해시는, 부모 블록 내 헤더의 해시값, 루트는, 계정 상태 정보가 모여있는 머클 트리의 루트 노드에 대한 해시값, 트랜잭션해시는, 현재 블록 내 모든 트랜잭션의 머클 트리의 루트 노드에 대한 해시값, 수신해시는, 현재 블록 내 모든 트랜잭션의 리시트의 머클 트리의 루트 노드에 대한 해시값, 블룸은, 로그 정보 검색을 위해 사용되는 32 바이트의 필터, 넘버는, 현재 블록의 최초 생성 시간을 기록하여 시간순으로 연결되는 기준을 제공하는 숫자, 엑스트라는, 현재 블록과 관련된 기타 추가 정보이다. 또, 엑스트라 내 엑스트라 데이터를 보면, V[1]....V[v]가 있는데 이는 v명의 운영위 후보 노드(400) 정보이고, V[i].Qe는 운영위 후보 노드(400) i의 공개키로 암호화한 운영위 후보 노드(400) i의 QRND(양자난수), 코디네이터 노드(600) 정보, 운영위 후보 노드(400) i의 공개키의 해시값을 가지는 멤버 변수이다. 이때, QRND는 양자난수 알고리즘으로 생성된 난수이다. Referring to FIG. 5, (a) shows the structure of a block. Sander means information of a transmitting node, receiver means information of a receiving node, and header means a header of a block to be generated. In addition, the parent hash in the header is the hash value of the header in the parent block, the root is the hash value for the root node of the Merkle tree in which account status information is collected, and the transaction hash is the Merkle tree of all transactions in the current block. The hash value for the root node, the received hash, the hash value for the root node of the Merkle tree of the reseat of all transactions in the current block, the bloom is a 32-byte filter used to retrieve log information, the number is currently The number, extra, which records the block's initial creation time and provides a chronologically linked criterion, is any additional information related to the current block. In addition, when looking at the extra data in the extra, there are V [1] .... V [v], which are the information of the v candidate node 400, and V [i] .Qe is the candidate node 400 of the i Member variable having a hash value of the public key of the candidate node 400 i, QRND (quantum random number) of the candidate node 400 i, the coordinator node 600 information encrypted with the public key. At this time, QRND is a random number generated by a quantum random number algorithm.

한편, 양원제 합의 서비스 제공 서버(300)는, 블록체인을 이루는 적어도 하나의 노드의 네트워크 정보 및 공개키를 가지고 있고, 양자난수의 분포적 성질을 이용하여 노드를 확률적으로 선정 및 확정할 수 있고, 양자난수 생성 후 선정된 노드로 암호화된 공개키를 할당할 수 있으며, 공개키의 해시함수를 생성할 수 있다. 그리고, 물리적으로 양원제 합의 서비스 제공 서버(300)는, 블록체인을 이루는 적어도 하나의 노드에게 공개될 수 있다. 기능적으로 양원제 합의 서비스 제공 서버(300)는, 양자난수의 생성, 암호키의 생성, 확률적 선택, 및 블록 검증 함수를 포함하는 기능 함수를 가질 수 있다. 이에 따라, 양원제 합의 서비스 제공 서버(300)는, 기능 함수의 결합으로 코디네이터 노드(600)를 선정 및 확정하고, 운영위 후보 노드(400)를 선정하는 역할을 수행할 수 있다. 양원제 합의 서비스 제공 서버(300)의 라이브러리 함수 GETQRNARR()을 이용하여 49151바이트 이내의 원하는 크기의 바이트 난수인 QRND를 한번에 생성할 수 있고, 비트 연산을 적용하여 큰 자연수 N 이내의 균등분포를 얻을 수 있다. (b)는 환경의 상태(State) 전이를 도시한 도면인데, 이는 상술한 바와 같으므로 그 설명을 생략하기로 한다.Meanwhile, the two-way consensus service providing server 300 has network information and a public key of at least one node constituting a blockchain, and can use the distributed nature of quantum random numbers to select and confirm nodes probabilities. , After generating a quantum random number, an encrypted public key can be assigned to a selected node, and a hash function of the public key can be generated. In addition, the two-way consensus service providing server 300 may be physically disclosed to at least one node constituting the blockchain. Functionally, the two-way consensus service providing server 300 may have a function function including quantum random number generation, encryption key generation, stochastic selection, and block verification function. Accordingly, the two-way consensus service providing server 300 may serve to select and confirm the coordinator node 600 by combining function functions, and to select the candidate node for the operation committee 400. Using the library function GETQRNARR () of the two-way consensus service providing server 300, QRND, which is a random number of bytes of a desired size within 49151 bytes, can be generated at once, and by applying a bit operation, a uniform distribution within a large natural number N can be obtained. have. (b) is a diagram showing a state transition of the environment, which is the same as described above, and thus the description thereof will be omitted.

이와 같은 도 2 내지 도 5의 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법에 대해서 설명되지 아니한 사항은 앞서 도 1을 통해 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법에 대하여 설명된 내용과 동일하거나 설명된 내용으로부터 용이하게 유추 가능하므로 이하 설명을 생략하도록 한다.The contents not described for the method of providing a consensus service using a quantum random number based on the blockchain in FIGS. 2 to 5 is described above with reference to the method for providing a consensus service using a block chain based quantum random number in FIG. Since it can be easily inferred from the same or described content, the following description will be omitted.

도 6 및 도 7은 본 발명의 일 실시예에 따른 도 1의 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 시스템에 포함된 각 구성들 상호 간에 데이터가 송수신되는 과정을 나타낸 도면이다. 이하, 도 6 및 도 7을 통해 각 구성들 상호간에 데이터가 송수신되는 과정의 일 예를 설명할 것이나, 이와 같은 실시예로 본원이 한정 해석되는 것은 아니며, 앞서 설명한 다양한 실시예들에 따라 도 6 및 도 7에 도시된 데이터가 송수신되는 과정이 변경될 수 있음은 기술분야에 속하는 당업자에게 자명하다.6 and 7 are views illustrating a process in which data is transmitted and received between each of the components included in a system for providing a consensus service using a blockchain based quantum random number in FIG. 1 according to an embodiment of the present invention. Hereinafter, an example of a process in which data is transmitted / received between the respective components will be described with reference to FIGS. 6 and 7, but the present application is not limited to such an embodiment, and according to various embodiments described above, FIG. 6 And it is apparent to those skilled in the art that the process of transmitting and receiving data shown in FIG. 7 may be changed.

이때, 도 6을 이해하기 위해서는 각 용어를 먼저 정의해야 하는데, 이는 이하 표 2와 같다.At this time, in order to understand FIG. 6, each term must first be defined, as shown in Table 2 below.

ii 순서 인덱스Sequence index node.idnode.id 노드의 고유식별자Unique identifier of the node node.ipnode.ip 노드의 ip 주소Node's ip address node.portnode.port 노드의 포트Port of node node.infonode.info 노드의 정보Node Information node.pknode.pk 노드의 공개키Node's public key node.sknode.sk 노드의 개인키Node's private key node.Qenode.Qe node.Qe=ENC(QRND|C.info, node.pk)|H(node.pk)
할당된 QRND와 노드의 공개키로 암호화된 값과 노드의 공개키의 해시값을 접합시킨 값
node.Qe = ENC (QRND | C.info, node.pk) | H (node.pk)
The value obtained by combining the assigned QRND with the node's public key and the node's public key's hash value.
|| 접합연산자Junction operator [][] 빈 리스트, 1부터 시작하는 인덱스Empty list, index starting from 1 L[a,b]L [a, b] 순서가 있는 리스트 L의 a부터 b부분까지의 부분 리스트List of parts a through b in ordered list L CC(a,i)CC (a, i) a가 접합인 경우 i-th원소, a=b|c|da'd=CC(a,3)If a is a junction, i-th element, a = b | c | da'd = CC (a, 3) ENC(a,b)ENC (a, b) 공개키 b에 의한 a의 암호화 함수Encryption function of a by public key b DEC(a,b)DEC (a, b) 개인키 b에 의한 a의 복호화 함수Decryption function of a by private key b H(a)H (a) 해시함수, a의 해시값Hash function, hash value of a Connect(a,b)Connect (a, b) a노드가 b 노드로 접속Node a is connected to node b Send(a,b,m)Send (a, b, m) a노드가 b 노드로 메세지 m을 전송Node a sends message m to node b Recv(a,b,m)Recv (a, b, m) a노드가 b노드로부터 메세지 m을 수신Node a receives message m from node b Broadcast(a,m)Broadcast (a, m) a노드가 메세지 m을 브로드캐스팅node a is broadcasting message m FF 프론트 노드(100)Front node (100) CC 코디네이터 노드(600)Coordinator node (600) SS 상임위 노드(500)의 리스트List of senior nodes 500 RR 운영위 노드(400)의 리스트List of operational nodes 400 VV 운영위 후보 노드(400)의 리스트List of candidate nodes 400 GG 블록체인을 이루는 적어도 하나의 노드의 리스트List of at least one node constituting the blockchain BxBx 블록block Bx.idBx.id 블록 번호Block number QMQM 양원제 합의 서비스 제공 서버(300)Bi-won consensus service providing server (300) QRNDQRND 매 시행마다 1부터 기 설정된 수(N) 사이의 정수(r)을 생성Generate an integer (r) between 1 and a preset number (N) for each trial QRND % aQRND% a 모듈로 연산 QRND에 의해 생성된 정수(r)를 자연수(a)로 나눈 나머지The remainder after dividing the integer (r) generated by the modulo operation QRND by the natural number (a)

프론트 노드(100)는, 현재 블록의 상태변화를 요청하는 새로운 블록을 수신하고 양원제 합의 서비스 제공 서버(300)에 접속하여 수신된 블록을 전송한다. 그리고, 양원제 합의 서비스 제공 서버(300)는, 새로운 블록을 수신하고, 블록 생성을 위한 합의를 이끌어내기 위해, 양원제를 수집하는 작업을 실시하는데, v개의 운영위 후보 노드(400)인 V[1],…,V[v]로 암호화된 양자난수와 코디네이터 노드(600) 정보, 및 공개키의 해시값을 가지는 멤버변수(Qe)를 할당한다(V[i].Qe = ENC( V[i].Q | C.info, V[i].pk) | H(V[i].pk) , V[i].Qe = ENC( V[i].Q | C.info, V[i].pk) | H(V[i].pk)). The front node 100 receives a new block requesting a change in state of the current block, and connects to the two-way consensus service providing server 300 and transmits the received block. In addition, the bilateral system consensus service providing server 300 receives a new block and performs a task of collecting the bilateral system in order to derive an agreement for block generation. V [1], which is a v-node candidate node 400 ,… , V [v] is assigned a member variable (Qe) having a quantum random number and coordinator node 600 information, and a hash value of the public key (V [i] .Qe = ENC (V [i] .Q C.info, V [i] .pk) H (V [i] .pk), V [i] .Qe = ENC (V [i] .Q | C.info, V [i] .pk) H (V [i] .pk)).

그리고, 프론트 노드(100)는, 양원제 합의 서비스 제공 서버(300)로부터 전송받은 블록을 전체 노드를 대상으로 브로드캐스팅한다(Broadcast(F, Bx')). 여기서, 브로드캐스팅받은 코디네이터 노드(600), 상임위 노드(500), 및 운영위 후보 노드(400)는, 자신이 선정 또는 확정되었음을 확인하게 된다(Receive (QM, C, Msg), Bx.id | V[1].id | … | V[v].id = DEC (Q[i] | C.info, C.sk) )Then, the front node 100 broadcasts the block received from the dual-source agreement service providing server 300 to all nodes (Broadcast (F, Bx ')). Here, the broadcasted coordinator node 600, the standing node 500, and the operating node candidate node 400 confirm that they are selected or confirmed (Receive (QM, C, Msg), Bx.id | V [1] .id |… | V [v] .id = DEC (Q [i] | C.info, C.sk))

이때, 운영위 후보 노드(400)는, 선착순으로 코디네이터 노드(600)에 등록함으로써 운영위 노드(400)로 확정되는데, 이는 표 3 및 표 4와 같으며, 확정 후 합의는 상술한 찬반투표 결과의 취합 및 찬성이 다수인 경우 코디네이터 노드(600)에서 모든 노드로 그 결과를 브로드캐스팅한 것과 동일하므로 중복하여 설명하지는 않는다.At this time, the candidate node 400 for operation is confirmed as the operation node 400 by registering with the coordinator node 600 in a first-come, first-served basis. And if there are a number of votes, it is the same as broadcasting the result from the coordinator node 600 to all nodes, so it will not be repeated.

//운영위 후보 노드(400)로 확인된 노드, 즉 Bx’를 수신받은 노드가 레이싱을 시작한다.
for i = 1 : v
h = H(some.pk) // 빠른 인식을 위하여 해시키로 판별한다.
// ExtraData의 내용은 운영위 후보 노드(400)들의 Qe값 [V[1].Qe, V[2].Qe, …, V[v].Qe] 리스트를 포함한다.
// Qe값은 운영위 후보 노드(400)인 V의 암호화(난수, 코디정보, 공개키) + 공개키 해시값이다.
// Qe = ENC( V[i].Q | C.info, V[i].pk) | H(V[i].pk)
Ex = Bx’.ExtraData[i] // Ex는 i-번째 V의 Qe값이다.
if h == CC(Ex,2) // CC는 접합 데이터 unwinding 함수, H(V[i].pk)를 의미한다.
//따라서 CC(Ex,1)은 ENC( Q[i] | C.info, V[i].PK)이다. 이를 복호화하여 원래 값 추출할 수 있다.
Q | C.pk | C.ip | C.port = DEC(CC(Ex, 1), some.sk)
// 레이싱하는 운영위 후보 노드(400)가 코디네이터 노드(600)인 C에 전달하는 메시지는 자신의 공개키, 양자난수를 코디네이터 노드(600)의 공개키로 암호화한 값이다.
Msg = ENC(some.pk | Q, C.pk)
Connect (some, C) // 레이싱하는 운영위 후보 노드(400)는 코디네이터 노드(600)인 C에 접속한다.
Send (some, C, Msg) // 코디네이터 노드(600에게 해당 메시지를 전송한다.
end
end
// The node identified as the candidate node for operation 400, that is, the node that has received Bx 'starts racing.
for i = 1: v
h = H (some.pk) // For quick recognition, it is determined as a hash.
// For the contents of ExtraData, the Qe values of candidate nodes 400 of operation committee [V [1] .Qe, V [2] .Qe,… , V [v] .Qe] list.
// Qe value is the encryption (random number, coordination information, public key) + public key hash value of V, which is the candidate node 400 of the operation committee.
// Qe = ENC (V [i] .Q | C.info, V [i] .pk) | H (V [i] .pk)
Ex = Bx'.ExtraData [i] // Ex is the Qe value of i-th V.
if h == CC (Ex, 2) // CC means junction data unwinding function, H (V [i] .pk).
// So CC (Ex, 1) is ENC (Q [i] | C.info, V [i] .PK). The original value can be extracted by decoding it.
Q | C.pk | C.ip | C.port = DEC (CC (Ex, 1), some.sk)
// The message transmitted to the C, which is the coordinator node 600 by the candidate node 400 for racing, is a value obtained by encrypting its public key and quantum random number with the public key of the coordinator node 600.
Msg = ENC (some.pk | Q, C.pk)
Connect (some, C) // Racing operation candidate node 400 connects to coordinator node 600, C.
Send (some, C, Msg) // Send the message to the coordinator node 600.
end
end


//코디네이터 노드(600)인 C의 운영위 노드(400) 선정 과정, some은 코디네이터 노드(600)로 접속하여 레이싱하는 운영위 후보 노드(400)이다.
count = 0 // 15개의 운영위 노드(400)의 수를 세기 위한 카운터 변수이다.
R = [] // 운영위 노드(400)를 담기 위한 리스트이다.
While(1)
//코디네이터 노드(600)는 현재 접속된 운영위 후보 노드(400)으로부터 인증 메시지를 받는다.
Receive (C, some, Msg)
//코디네이터 노드(600)는, 인증메시지로부터, 운영위 후보 노드(400)의 공개키와 양자난수를 얻는다.
some.pk | Q = DEC(Msg, C.sk)

if count < 15
//코디네이터 노드(600)는, 보유한 운영위 후보 노드(400) 리스트 V에 대하여
for i=1 : v
//공개키와 양자난수가 일치하는 경우에 한하여
if some.pk == V[i].pk and Q == V[i].Q
R[count] = V[i] //보유한 운영위 후보 노드(400) V[i]를 R에 할당
count += 1; //카운터를 증가시키고
break // for routine를 빠져나간다.
end
end
else
//코디네이터 노드(600)는, 카운터의 숫자가 15인 경우 블록생성을 위한 합의를 위하여 운영위 노드(400)로 블록생성을 위한 새로운 공개키를 전송한다.
For i = 1:#(R)
newpk, newsk = GenKey() // 코디네이터 노드(600)는 새로운 키를 분배받고
Send (C, R[i], ENC(newpk, R[i].pk)) //암호화하여 운영위 노드(400)로 전송한다.
End
//코디네이터 노드(600)는, 상임위 노드(500)에 대해서도 동일한 작업을 실행한다.
For i = 1:#(S)
newpk, newsk = GenKey()
Send (C, S[i], ENC(newpk, S[i].pk))
End
break
end
end

// The process of selecting the coordinator node 600, the coordinator node 400, some are the coordinator node candidates 400 to access and race with the coordinator node 600.
count = 0 // Counter variable for counting the number of 15 nodes 400.
R = [] // This is a list to contain the top node 400.
While (1)
// Coordinator node 600 receives an authentication message from the currently connected operating node candidate node 400.
Receive (C, some, Msg)
// Coordinator node 600 obtains the public key and quantum random number of the candidate node 400 from the authentication message.
some.pk | Q = DEC (Msg, C.sk)

if count <15
// Coordinator node 600, with respect to the list of candidates for the operation of the candidate node 400
for i = 1: v
// Only when public key and quantum random number match
if some.pk == V [i] .pk and Q == V [i] .Q
R [count] = V [i] // Own candidate node 400, V [i], assigned to R
count + = 1; // increase counter
break // exit the for routine.
end
end
else
// When the number of counters is 15, the coordinator node 600 transmits a new public key for block generation to the operation node 400 for consensus for block generation.
For i = 1: # (R)
newpk, newsk = GenKey () // Coordinator node 600 receives the new key
Send (C, R [i], ENC (newpk, R [i] .pk)) // Encrypt and send to the operating node 400.
End
// The coordinator node 600 performs the same operation with respect to the senior node 500.
For i = 1: # (S)
newpk, newsk = GenKey ()
Send (C, S [i], ENC (newpk, S [i] .pk))
End
break
end
end

물론, 표 2 내지 표 4와 같은 정의와 프로그램이나 순서를 사용하지 않더라도 본 발명의 일 실시예에 따른 방법을 나타낼 수 있는 정의, 프로그램, 및 순서라면 어느 것이든 가능하며, 나열된 것들로 한정되지 않으며, 열거되지 않은 이유로 배제되지 않는다.Of course, any definitions, programs, and sequences that can represent the method according to an embodiment of the present invention are possible without using the definitions and programs or procedures shown in Tables 2 to 4, and are not limited to the listed ones. However, it is not excluded for reasons not listed.

상술한 단계들 간의 순서는 예시일 뿐, 이에 한정되지 않는다. 즉, 상술한 단계들 간의 순서는 상호 변동될 수 있으며, 이중 일부 단계들은 동시에 실행되거나 삭제될 수도 있다.The order between the above-described steps is only an example, and is not limited thereto. That is, the order between the above-described steps may be mutually varied, and some of these steps may be executed or deleted simultaneously.

이와 같은 도 6 및 도 7의 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법에 대해서 설명되지 아니한 사항은 앞서 도 1 내지 도 5를 통해 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법에 대하여 설명된 내용과 동일하거나 설명된 내용으로부터 용이하게 유추 가능하므로 이하 설명을 생략하도록 한다.The description of the method for providing a consensus service using a blockchain based quantum random number in FIGS. 6 and 7 is not described above. The following description will be omitted because it can be easily inferred from the same or described contents.

도 8은 본 발명의 일 실시예에 따른 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법을 설명하기 위한 동작 흐름도이다. 도 8을 참조하면, 양원제 합의 서비스 제공 서버는, 프론트 노드(Front Node)로부터 블록 생성을 요청하는 트랜잭션 데이터를 수신하고, 양자난수 알고리즘(Quantum Random Function Mechanism)으로 생성된 양자난수를 암호화하여 프론트 노드로 전송한다(S8100).8 is an operation flow diagram for explaining a method for providing a consensus service using a blockchain based quantum random number according to an embodiment of the present invention. Referring to FIG. 8, the dual-source consensus service providing server receives transaction data requesting block generation from a front node, and encrypts the quantum random number generated by a quantum random function mechanism to encrypt the front node. And transmit to (S8100).

그리고, 양원제 합의 서비스 제공 서버는, 프론트 노드에서 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 경우, 양자난수를 복호화한 코디네이터 노드, 상임위 노드, 및 운영위 후보 노드로부터 검증 데이터를 수신한다(S8200).Then, when the bidirectional system consensus service providing server broadcasts by inserting the encrypted quantum random number in the header in the block at the front node, the verification data is received from the coordinator node, the upper-ranking node, and the operational candidate node that decoded the quantum random number ( S8200).

또한, 양원제 합의 서비스 제공 서버는, 코디네이터 노드에서 상임위 노드와, 운영위 후보 노드 중 선착순으로 접속한 기 설정된 수를 운영위 노드로 확정하도록 하고(S8300), 및 코디네이터 노드에서 상임위 노드와 운영위 노드 간의 직접 통신으로 합의결과를 취합하여 블록체인 내 적어도 하나의 노드로 결과를 브로드캐스팅하여 블록을 생성하도록 한다(S8400).In addition, the two-way consensus service providing server, the coordinator node to determine the predetermined number of first-come nodes connected to the top-ranking node and the top-ranking candidate node as the top-ranking node (S8300), and direct communication between the top-ranking node and the top-ranking node at the coordinator node. By collecting the consensus result, the result is broadcast to at least one node in the blockchain to generate a block (S8400).

이와 같은 도 8의 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법에 대해서 설명되지 아니한 사항은 앞서 도 1 내지 도 7을 통해 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법에 대하여 설명된 내용과 동일하거나 설명된 내용으로부터 용이하게 유추 가능하므로 이하 설명을 생략하도록 한다.The description of the method for providing a consensus service using a blockchain based quantum random number in FIG. 8 is not described above. Since it can be easily inferred from the same or described content, the following description is omitted.

도 8을 통해 설명된 일 실시예에 따른 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법은, 컴퓨터에 의해 실행되는 애플리케이션이나 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. The method of providing a consensus service using a blockchain based quantum random number according to an embodiment described with reference to FIG. 8 is in the form of a recording medium including instructions executable by a computer, such as an application or a program module executed by a computer Can also be implemented. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. Also, the computer-readable medium may include any computer storage medium. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.

전술한 본 발명의 일 실시예에 따른 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법은, 단말기에 기본적으로 설치된 애플리케이션(이는 단말기에 기본적으로 탑재된 플랫폼이나 운영체제 등에 포함된 프로그램을 포함할 수 있음)에 의해 실행될 수 있고, 사용자가 애플리케이션 스토어 서버, 애플리케이션 또는 해당 서비스와 관련된 웹 서버 등의 애플리케이션 제공 서버를 통해 마스터 단말기에 직접 설치한 애플리케이션(즉, 프로그램)에 의해 실행될 수도 있다. 이러한 의미에서, 전술한 본 발명의 일 실시예에 따른 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법은 단말기에 기본적으로 설치되거나 사용자에 의해 직접 설치된 애플리케이션(즉, 프로그램)으로 구현되고 단말기에 등의 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.The method for providing a consensus service using a blockchain based quantum random number according to an embodiment of the present invention described above may include an application installed in a terminal (which may include a program included in a platform or an operating system basically mounted in the terminal). ), And may be executed by an application (that is, a program) installed by the user directly on the master terminal through an application providing server such as an application store server, an application, or a web server related to a corresponding service. In this sense, the method for providing a consensus service using a blockchain based quantum random number according to an embodiment of the present invention described above is implemented as an application (that is, a program) basically installed in a terminal or directly installed by a user, and the like. It can be recorded on a computer readable recording medium.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다. The above description of the present invention is for illustration only, and those of ordinary skill in the art to which the present invention pertains can understand that it can be easily modified into other specific forms without changing the technical spirit or essential features of the present invention. will be. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the following claims rather than the above detailed description, and it should be interpreted that all changes or modified forms derived from the meaning and scope of the claims and equivalent concepts thereof are included in the scope of the present invention. do.

Claims (10)

양원제 합의 서비스 제공 서버에서 실행되는 양원제 합의 서비스 제공 방법에 있어서,
기 설정된 가상화폐 보유조건 및 컴퓨팅 자원조건을 만족하는 적어도 하나의 노드로부터 가입요청을 수신하는 경우, 상기 적어도 하나의 노드를 운영위 후보 노드로 등록하는 단계;
프론트 노드(Front Node)로부터 블록 생성을 요청하는 트랜잭션 데이터를 수신하고, 양자난수 알고리즘(Quantum Random Function Mechanism)으로 생성된 양자난수를 암호화하여 상기 프론트 노드로 전송하는 단계;
상기 프론트 노드에서 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 경우, 상기 양자난수를 복호화한 코디네이터 노드, 상임위 노드, 및 운영위 후보 노드로부터 검증 데이터를 수신하는 단계;
상기 코디네이터 노드에서 상기 상임위 노드와, 상기 운영위 후보 노드 중 선착순으로 접속한 기 설정된 수를 운영위 노드로 확정하도록 하는 단계; 및
상기 코디네이터 노드에서 상기 상임위 노드와 상기 운영위 노드 간의 직접 통신으로 합의결과를 취합하여 블록체인 내 적어도 하나의 노드로 결과를 브로드캐스팅하여 블록을 생성하도록 하는 단계;
를 포함하는 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법.
In the method for providing a two-way consensus service provided by the two-way consensus service providing server,
When receiving a subscription request from at least one node that satisfies a preset virtual currency holding condition and a computing resource condition, registering the at least one node as a candidate node for operation;
Receiving transaction data requesting block generation from a front node, encrypting the quantum random number generated by a quantum random function mechanism, and transmitting the encrypted quantum random number to the front node;
When the front node inserts and broadcasts an encrypted quantum random number into a header in a block, receiving verification data from a coordinator node, a high-ranking node, and an operational candidate node that decodes the quantum random number;
Determining, by the coordinator node, a predetermined number of first-come-first-served nodes and first-come-first-served nodes among the candidates in the first order; And
Collecting a consensus result by direct communication between the coordinator node and the senior node and the operational node to broadcast the result to at least one node in the blockchain to generate a block;
A method for providing a consensus service for a bilateral system using a quantum random number based on a blockchain including a.
삭제delete 제 1 항에 있어서,
상기 프론트 노드(Front Node)로부터 블록 생성을 요청하는 트랜잭션 데이터를 수신하고, 양자난수 알고리즘(Quantum Random Function Mechanism)으로 생성된 양자난수를 암호화하여 상기 프론트 노드로 전송하는 단계는,
상기 상임위 노드 중 양자난수로 선택된 노드를 코디네이터 노드로 선정하고, 기 등록된 운영위 후보 노드의 정보를 추출하여 상기 양자난수와 함께 암호화하여 상기 프론트 노드로 전송하는 단계;
를 포함하는 것인, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법.
According to claim 1,
The step of receiving transaction data requesting block generation from the front node, and encrypting the quantum random number generated by a quantum random function mechanism to transmit to the front node,
Selecting a node selected as a quantum random number from among the permanent nodes as a coordinator node, extracting information of a pre-registered operating committee candidate node, encrypting the quantum random number, and transmitting it to the front node;
Containing, a method for providing a consensus service using a blockchain based quantum random number.
제 1 항에 있어서,
상기 프론트 노드에서 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 경우, 상기 양자난수를 복호화한 코디네이터 노드, 상임위 노드, 및 운영위 후보 노드로부터 검증 데이터를 수신하는 단계에서,
상기 양자난수를 복호화할 때, 상기 코디네이터 노드, 상임위 노드, 및 운영위 후보 노드는, 상기 블록의 헤더 내 ExtraData에 포함된 해시로 검증한 후 복호화하는 것인, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법.
According to claim 1,
In the case where the front node inserts and broadcasts the encrypted quantum random number in the header in the block, in the step of receiving verification data from a coordinator node, a high-ranking node, and an operational candidate node that decodes the quantum random number,
When decoding the quantum random number, the coordinator node, the standing node, and the candidate node for operation are verified and decrypted with the hash included in the ExtraData in the header of the block, and thus, a two-way consensus service using a blockchain-based quantum random number. How to provide.
제 1 항에 있어서,
상기 코디네이터 노드에서 상기 상임위 노드와, 상기 운영위 후보 노드 중 선착순으로 접속한 기 설정된 수를 운영위 노드로 확정하도록 하는 단계는,
상기 상임위 노드와 상기 운영위 노드의 퍼센트가 각각 49% 및 51%가 되도록 하거나, 상기 상임위 노드와 상기 운영위 노드의 수가 각각 14개 및 15개가 되도록 확정하는 단계;
를 포함하는 것인, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법.
According to claim 1,
In the coordinator node, determining a predetermined number of first-come-first-served nodes connected to the upper-ranking node and the top-ranking candidate nodes in a first-come-first-served basis is determined as a top-ranking node,
Determining that the percentages of the standing node and the operating node are 49% and 51%, respectively, or the number of the standing node and the operating node is 14 and 15, respectively;
Containing, a method for providing a consensus service using a blockchain based quantum random number.
제 1 항에 있어서,
상기 프론트 노드(Front Node)로부터 블록 생성을 요청하는 트랜잭션 데이터를 수신하고, 양자난수 알고리즘(Quantum Random Function Mechanism)으로 생성된 양자난수를 암호화하여 상기 프론트 노드로 전송하는 단계는,
상기 프론트 노드의 공개키를 이용하여 상기 양자난수를 암호화하고 상기 프론트 노드로 전송하는 단계;
를 포함하고, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법.
According to claim 1,
The step of receiving transaction data requesting block generation from the front node, and encrypting the quantum random number generated by a quantum random function mechanism to transmit to the front node,
Encrypting the quantum random number using the public key of the front node and transmitting it to the front node;
Including, a method for providing a consensus service using a blockchain based quantum random number system.
제 6 항에 있어서,
상기 프론트 노드에서 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 경우, 상기 양자난수를 복호화한 코디네이터 노드, 상임위 노드, 및 운영위 후보 노드로부터 검증 데이터를 수신하는 단계;
상기 프론트 노드에서 상기 암호화된 양자난수를 상기 프론트 노드의 공개키를 이용하여 서명값을 검증하는 방법으로 상기 암호화된 양자난수를 검증하는 단계;
상기 검증이 완료된 경우 상기 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 단계;
를 포함하는 것인, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법.
The method of claim 6,
When the front node inserts and broadcasts an encrypted quantum random number into a header in a block, receiving verification data from a coordinator node, a high-ranking node, and an operational candidate node that decodes the quantum random number;
Verifying the encrypted quantum random number by a method of verifying a signature value of the encrypted quantum random number using the public key of the front node at the front node;
When the verification is completed, broadcasting by inserting an encrypted quantum random number in the header in the block;
Containing, a method for providing a consensus service using a blockchain based quantum random number.
제 1 항에 있어서,
상기 프론트 노드에서 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 경우, 상기 양자난수를 복호화한 코디네이터 노드, 상임위 노드, 및 운영위 후보 노드로부터 검증 데이터를 수신하는 단계는,
상기 상임위 노드 중 코디네이터로 선정된 노드인 코디네이터 노드에서, 헤더 내 양자난수리스트 인식자를 공개키로 복호화하는 경우, 상기 운영위 후보 노드의 양자난수리스트를 확보하도록 하는 단계;
상기 운영위 후보 노드에서 상기 헤더를 복호화하여 상기 코디네이터로 전송하면, 상기 코디네이터는 상기 상임위 노드 및 운영위 후보 노드로 코디네이터 선정을 공개키를 이용하여 통지하도록 하는 단계;
를 수행하여 실행되는 것인, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법.
According to claim 1,
When the front node inserts and broadcasts an encrypted quantum random number into a header in a block, receiving verification data from a coordinator node, a high-ranking node, and an operational candidate node that decodes the quantum random number,
In the coordinator node, which is a node selected as a coordinator among the standing nodes, when a quantum random number list identifier in a header is decrypted with a public key, obtaining a quantum random number list of the candidate node of the operating committee;
Decoding the header from the operation candidate node and transmitting it to the coordinator, so that the coordinator notifies the senior node and the operation node candidate node of the coordinator selection using a public key;
A method of providing a consensus service using a blockchain based quantum random number that is executed by executing
제 1 항에 있어서,
상기 코디네이터 노드에서 상기 상임위 노드와 상기 운영위 노드 간의 직접 통신으로 합의결과를 취합하여 블록체인 내 적어도 하나의 노드로 결과를 브로드캐스팅하여 블록을 생성하도록 하는 단계에서,
상기 합의결과가 상기 상임위 노드 및 운영위 노드의 51% 검증이 완료되는 경우 블록을 생성하도록 하는 것인, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법.
According to claim 1,
In the step of generating a block by broadcasting the result to at least one node in the blockchain by collecting the agreement result by direct communication between the coordinator node and the senior node and the operating node,
Method for providing a consensus service using a blockchain based quantum random number to generate a block when the consensus result is to complete a 51% verification of the standing and operating nodes.
제 1 항, 제 3 항 내지 제 9 항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.
A computer-readable recording medium recording a program for executing the method of any one of claims 1, 3 to 9.
KR1020190166142A 2019-12-12 2019-12-12 Method for providing blockchain based bicameralism consensus service using quantum random function mechanism KR102090723B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190166142A KR102090723B1 (en) 2019-12-12 2019-12-12 Method for providing blockchain based bicameralism consensus service using quantum random function mechanism

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190166142A KR102090723B1 (en) 2019-12-12 2019-12-12 Method for providing blockchain based bicameralism consensus service using quantum random function mechanism

Publications (1)

Publication Number Publication Date
KR102090723B1 true KR102090723B1 (en) 2020-03-18

Family

ID=69999235

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190166142A KR102090723B1 (en) 2019-12-12 2019-12-12 Method for providing blockchain based bicameralism consensus service using quantum random function mechanism

Country Status (1)

Country Link
KR (1) KR102090723B1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111711526A (en) * 2020-06-16 2020-09-25 深圳前海微众银行股份有限公司 Consensus method and system for block chain nodes
KR102253361B1 (en) * 2020-06-23 2021-05-18 주식회사 아이콘루프 Blockchain network system and method for determining validator nodes
CN113746635A (en) * 2021-08-18 2021-12-03 湖北文理学院 Method and device for improving PBFT (provider-based data transfer) consensus expandability, computing equipment and storage medium
KR102372844B1 (en) * 2021-04-19 2022-03-10 주식회사그린존시큐리티 Apparatus and method for one-way encryption
KR102372843B1 (en) * 2021-04-19 2022-03-10 주식회사그린존시큐리티 Device and method for encrypting data
KR20220073447A (en) * 2020-11-26 2022-06-03 주식회사 이와이엘 Method for generating private certificate using quantum random number
CN116094732A (en) * 2023-01-30 2023-05-09 山东大学 Block chain consensus protocol privacy protection method and system based on rights and interests proving
KR20240018911A (en) 2022-08-03 2024-02-14 경희대학교 산학협력단 Apparatus and method of anayzing quantum consensus protocols in quantum network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101975822B1 (en) * 2018-10-26 2019-05-08 (주)리그시스템 Private blockchain network system and method for consensus based on blockchain
KR20190068799A (en) * 2017-12-11 2019-06-19 한국전자통신연구원 Method and apparatus for performing hierarchically agreement based on service zone

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190068799A (en) * 2017-12-11 2019-06-19 한국전자통신연구원 Method and apparatus for performing hierarchically agreement based on service zone
KR101975822B1 (en) * 2018-10-26 2019-05-08 (주)리그시스템 Private blockchain network system and method for consensus based on blockchain

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111711526A (en) * 2020-06-16 2020-09-25 深圳前海微众银行股份有限公司 Consensus method and system for block chain nodes
CN111711526B (en) * 2020-06-16 2024-03-26 深圳前海微众银行股份有限公司 Method and system for consensus of block chain nodes
KR102253361B1 (en) * 2020-06-23 2021-05-18 주식회사 아이콘루프 Blockchain network system and method for determining validator nodes
KR20220073447A (en) * 2020-11-26 2022-06-03 주식회사 이와이엘 Method for generating private certificate using quantum random number
KR102563514B1 (en) 2020-11-26 2023-08-04 주식회사 이와이엘 Method for generating private certificate using quantum random number
KR102372844B1 (en) * 2021-04-19 2022-03-10 주식회사그린존시큐리티 Apparatus and method for one-way encryption
KR102372843B1 (en) * 2021-04-19 2022-03-10 주식회사그린존시큐리티 Device and method for encrypting data
CN113746635A (en) * 2021-08-18 2021-12-03 湖北文理学院 Method and device for improving PBFT (provider-based data transfer) consensus expandability, computing equipment and storage medium
KR20240018911A (en) 2022-08-03 2024-02-14 경희대학교 산학협력단 Apparatus and method of anayzing quantum consensus protocols in quantum network
CN116094732A (en) * 2023-01-30 2023-05-09 山东大学 Block chain consensus protocol privacy protection method and system based on rights and interests proving

Similar Documents

Publication Publication Date Title
KR102090723B1 (en) Method for providing blockchain based bicameralism consensus service using quantum random function mechanism
Lao et al. G-PBFT: A location-based and scalable consensus protocol for IoT-blockchain applications
Kemmoe et al. Recent advances in smart contracts: A technical overview and state of the art
CN109450638A (en) Electronic component data management system and method based on block chain
CN112214780A (en) Data processing method and device, intelligent equipment and storage medium
CN110046521A (en) Decentralization method for secret protection
CN109409122A (en) File memory method and its electronic equipment, storage medium
CN109741039A (en) Bookkeeping methods, terminal device, digs mine node and mine pond at mine pool server
CN109478298A (en) Method and system for realizing block chain
CN109472164A (en) The verification method and its network and electronic equipment of contract dataset
CN110059503A (en) The retrospective leakage-preventing method of social information
CN101937528A (en) Systems and methods for implementing supply chain visibility policies
CN109491965A (en) The storage method and its network and electronic equipment of purchase sale of electricity contract
CN105871923B (en) Information processing method, information record node and participation node
Alzoubi et al. A systematic review of the purposes of Blockchain and fog computing integration: classification and open issues
CN114205136A (en) Traffic data resource sharing method and system based on block chain technology
Ghiro et al. What is a Blockchain? A Definition to Clarify the Role of the Blockchain in the Internet of Things
Zhu et al. Blockchain technology in internet of things
Lopes et al. Blockchain based e-voting system: A proposal
Gu et al. Autonomous resource request transaction framework based on blockchain in social network
Li et al. Nereus: Anonymous and secure ride-hailing service based on private smart contracts
Kumar et al. Ultra-lightweight blockchain-enabled RFID authentication protocol for supply chain in the domain of 5G mobile edge computing
Narayana et al. Secure Data Uploading and Accessing Sensitive Data Using Time Level Locked Encryption to Provide an Efficient Cloud Framework.
Salami et al. LSKE: lightweight secure key exchange scheme in fog federation
Wang et al. Housing rental scheme based on redactable blockchain

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant