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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1053—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers
- H04L67/1057—Group 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1068—Discovery involving direct consultation or announcement among potential requesting and potential source peers
- H04L67/107—Discovery involving direct consultation or announcement among potential requesting and potential source peers with limitation or expansion of the discovery scope
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0825—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0852—Quantum cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/26—Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
-
- H04L2209/38—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic 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
Description
본 발명은 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법에 관한 것으로, 무결성 및 신속성을 동시에 보장하는 합의 알고리즘을 제공한다.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
이때, 도 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
여기서, 네트워크는, 복수의 단말 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예에는 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
여기서, 프론트 노드(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
양원제 합의 서비스 제공 서버(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
여기서, 양원제 합의 서비스 제공 서버(300)는, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다.Here, the two-way agreement
적어도 하나의 운영위 노드(400)는, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 관련 웹 페이지, 앱 페이지, 프로그램 또는 애플리케이션을 이용하는 프라이빗 블록체인 외부에 위치하나, 기 설정된 컴퓨팅 자원조건을 만족하고, 기 설정된 수량의 코인을 보유한 노드일 수 있다. 그리고, 적어도 하나의 운영위 노드(400)는, 양원제의 일원으로 확정되기 이전에는 적어도 하나의 운영위 후보 노드(400)로 양원제 합의 서비스 제공 서버(300)에 등록된 상태의 노드일 수 있다. 이때, 적어도 하나의 운영위 노드(400)는, 선정 및 확정의 두 단계를 거치면서 최종적으로 양원제의 합의에 참여할 수 있는 노드가 되는데, 선정은 양원제 합의 서비스 제공 서버(300)에 의해서, 확정은 선착순으로 코디네이터 노드(600)로 접속한 순서 및 기 설정된 수에 의해 이루어지는 노드일 수 있다. 여기서, 적어도 하나의 운영위 노드(400)의 양원제 참여가 확정되면, 거래내역에 대한 블록생성에 대한 찬반응답을 코디네이터 노드(600)로 전송하는 노드일 수 있고, 기 설정된 퍼센트 또는 기 설정된 수의 찬성이 존재할 때 블록 생성이 되도록 코디네이터 노드(600)로부터 결과를 브로드캐스팅받는 노드일 수 있다.The at least one
여기서, 적어도 하나의 운영위 노드(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
적어도 하나의 상임위 노드(500)는, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 관련 웹 페이지, 앱 페이지, 프로그램 또는 애플리케이션을 이용하는, 프라이빗 블록체인 내부에 위치하고 프라이빗 블록체인이 유지관리될 수 있도록 상시구동되는 노드일 수 있다. 그리고, 적어도 하나의 상임위 노드(500)는, 양원제 합의 서비스 제공 서버(300)에 등록된 노드일 수 있고, 프론트 노드(100)에서 거래내역을 분산저장하기 위해 블록 생성을 요청하는 경우, 양자난수로 양원제 참여에 확정되는 노드일 수 있다. 이때, 확정의 개념은 상술한 바와 같다. 여기서 적어도 하나의 상임위 노드(500) 중 합의에 참여하도록 확정되는 노드는 트랜잭션이 발생하여 블록이 생성되어야 할 때마다 달라질 수 있고, 이는 운영위 노드(400)도 마찬가지이다. 이때, 적어도 하나의 상임위 노드(500)는 양원제에서 상원의 역할을 수행하고, 적어도 하나의 운영위 노드(400)는 하원의 역할을 수행하게 되며, 선출되는 수나 비율은 기 설정되어 있다. 이렇게 확정이 된 적어도 하나의 상임위 노드(500)는, 트랜잭션에 대한 합의, 즉 찬반투표를 하게 되며 그 결과를 코디네이터 노드(600)로 전달할 수 있다. 또한, 적어도 하나의 상임위 노드(500)는 합의 결과, 즉 투표를 결과한 집계 결과를 코디네이터 노드(600)로부터 브로드캐스팅받아 찬성이면 블록을 생성하도록 할 수 있다.At least one
여기서, 적어도 하나의 상임위 노드(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
코디네이터 노드(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
여기서, 코디네이터 노드(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
도 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
본 발명의 일 실시예에 따른 양원제 합의 서비스 제공 서버(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
도 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.
중앙화는 신뢰 모델에 따라 결정되며, 트랜잭션 속도는 각 합의 알고리즘이 트랜잭션을 검증하여 새로운 블록을 생성하는데 걸리는 시간을 의미한다. 이때, 일반적으로 중앙화 정도와 비례하여 속도는 향상된다. 보안성은 해킹에 안전한 정도를 의미하는데, 공격의 목표가 되는 장애점이 적어질수록 보안이 취약하다고 할 수 있으므로, 중앙화 정도와 반비례하여 보안성은 저하된다. 반면, 비신뢰모델은 탈중앙화를 이루어 장애점을 많이 가짐으로써 보안성이 향상된다는 장점이 있지만 속도가 저하된다는 단점이 있다. 이에 따라, 본 발명의 일 실시예는, 프라이빗 블록체인으로 신뢰 모델을 형성하되, 보안성을 높이고 탈중앙화를 이룰 수 있도록 프라이빗 블록체인의 외부에서도 노드를 선정함으로써, 블록체인 내외부에서 선출된 노드로 합의에 이르도록 할 수 있고, 대표를 선정하되 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
정보보호에서 필요로 하는 이상적인 난수는, 동전 던지기를 통해 얻는 수와 같이 예측불가능하고 독립적이며, 재발생이 불가능한 수이다. 암호 시스템의 암호 알고리즘이나 프로토콜 등은 난수가 이상적인 난수라 가정한 후 설계되므로, 안전한 난수를 생성할수 있는 난수 발생기 사용이 필수적이다. 난수 발생기는, 주로 초기 씨드(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
수신부(320)는, 프론트 노드(100)에서 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 경우, 양자난수를 복호화한 코디네이터 노드(600), 상임위 노드(500), 및 운영위 후보 노드(400)로부터 검증 데이터를 수신할 수 있다. 이때, 수신부(320)는, 양자난수를 복호화할 때, 코디네이터 노드(600), 상임위 노드(500), 및 운영위 후보 노드(400)는, 블록의 헤더 내 ExtraData에 포함된 해시로 검증한 후 복호화할 수 있다. 따라서, 전송부(310)는, 프론트 노드(100)의 공개키를 이용하여 양자난수를 암호화하고 프론트 노드(100)로 전송할 수 있고, 수신부(320)에서 프론트 노드(100)에서 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 경우, 양자난수를 복호화한 코디네이터 노드(600), 상임위 노드(500), 및 운영위 후보 노드(400)로부터 검증 데이터를 수신할 때, 프론트 노드(100)에서 암호화된 양자난수를 프론트 노드(100)의 공개키를 이용하여 서명값을 검증하는 방법으로 암호화된 양자난수를 검증할 수 있으며, 검증이 완료된 경우 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅할 수 있다.When the
또, 수신부(320)에서 프론트 노드(100)에서 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 경우, 양자난수를 복호화한 코디네이터 노드(600), 상임위 노드(500), 및 운영위 후보 노드(400)로부터 검증 데이터를 수신할 때, 수신부(320)는, 상임위 노드(500) 중 코디네이터로 선정된 노드인 코디네이터 노드(600)에서, 헤더 내 양자난수리스트 인식자를 공개키로 복호화하는 경우, 운영위 후보 노드(400)의 양자난수리스트를 확보하도록 할 수 있다. 그리고, 수신부(320)는, 운영위 후보 노드(400)에서 헤더를 복호화하여 코디네이터로 전송하면, 코디네이터는 상임위 노드(500) 및 운영위 후보 노드(400)로 코디네이터 선정을 공개키를 이용하여 통지하도록 할 수 있다.In addition, when the
여기서, 블록은, 도 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
다시 도 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
생성부(340)는, 코디네이터 노드(600)에서 상임위 노드(500)와 운영위 노드(400) 간의 직접 통신으로 합의결과를 취합하여 블록체인 내 적어도 하나의 노드로 결과를 브로드캐스팅하여 블록을 생성하도록 할 수 있다. 생성부(340)는, 합의결과가 상임위 노드(500) 및 운영위 노드(400)의 51% 검증이 완료되는 경우 블록을 생성하도록 할 수 있다. 물론, 그 결과는 코디네이터 노드(600)에서 운영위 노드(400), 상임위 노드(600)를 거쳐 블록체인을 이루는 적어도 하나의 노드, 즉 일반 노드로 브로드캐스팅하게 된다.The
등록부(350)는, 전송부(310)에서 프론트 노드(100)로부터 블록 생성을 요청하는 트랜잭션 데이터를 수신하고, 양자난수 알고리즘으로 생성된 양자난수를 암호화하여 프론트 노드(100)로 전송하기 이전에, 기 설정된 가상화폐 보유조건 및 컴퓨팅 자원조건을 만족하는 적어도 하나의 노드로부터 가입요청을 수신하는 경우, 적어도 하나의 노드를 운영위 후보 노드(400)로 등록할 수 있다. 마찬가지로, 상임위 노드(500)도 미리 등록할 수 있다.The
이하, 상술한 도 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
(b) 이때, 상임위 노드(500)는, 상시 운영되는 노드이고, 운영위 노드(400)는, 트랜잭션을 기록할 블록생성요청이 있을 때마다, 양자난수를 이용하여 선택되는 일시적인 노드이다. 예를 들어, 상임위 노드(500)가 14개, 운영위 노드(400)가 15개라면, 총 29개의 블록체인 내외부 노드가 블록생성을 위한 합의과정에 참여하게 된다. 이때, 합의에 참여하는 노드 중 운영위 노드(400)가 참여하는 비율은 51% 이상 유지하여야 상임위 노드(500)가 공정하게 운용되고 있는지를 감시할 수 있다. 반대로 말하면, 합의에 참여하는 노드 중 상임위 노드(500)는 49% 이하로 유지되어야 한다. (b) At this time, the high-ranking
이때, 본 발명의 일 실시예에 따른 블록체인에서 블록을 생성하는 주기는 예를 들어 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
(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
한편, 프론트 노드(100)는, 블록체인 내외 모든 노드로 암호화한 양자난수 정보(선정 및 확정 정보 포함)를 브로드캐스팅하게 된다. 즉, 프론트 노드(100)는, 양원제 합의 서비스 제공 서버(300)로부터 수신한 암호화 정보를, 블록 헤더 내에 ExtraData를 구성하여 전체 노드로 브로드캐스팅하는 것이다. 이에 따라, 프론트 노드(100)의 브로드캐스팅을 받은 모든 노드는, 수신된 블록의 헤더 내 ExtraData에서 각자 자신의 해시를 검증하고, 자신의 정보인 경우에만 복호화하게 된다. 따라서, 선정된 운영위 후보 노드(400)과, 확정된 상임위 노드(500), 및 코디네이터 노드(600)가 암호화 정보를 복호화하게 된다.Meanwhile, the
그 다음에는, 선정된 운영위 후보 노드(400) 중 운영위 노드(400)를 확정해야 하는데, 이를 레이싱(Racing)이라 명명하기로 한다. 이때, 운영위 후보로 확인된 운영위 후보 노드(400)는, 선착순으로 진행되는 운영위 등록 레이싱을 진행하게 되며, 코디네이터 노드(600)는, 선착순 15 개의 운영위 후보 노드(400)를 운영위 노드(400)로 확정한다. 이렇게 운영위 노드(400)와 상임위 노드(500)가 모두 확정되었으면, 코디네이터 노드(600)는, 확정된 운영위 노드(400)와 상임위 노드(500)에게 확정결과를 통보하여 운영위 노드(400)와 상임위 노드(500)에서 합의를 진행하도록 하고, 합의결과가 51% 이상 찬성이면 블록을 생성하도록 그 결과를 블록 내외에 존재하는 모든 노드로 브로드캐스팅한다.Next, it is necessary to determine the
여기서, 코디네이터 노드(600)에서 운영위 노드(400)와 상임위 노드(500)를 선정 및 확정할 때, 양자난수와 공개키를 이용하여 암호화 기능을 내재한 난수 티켓 부여 방식을 이용할 수 있다. 이때, 양원제 합의 서비스 제공 서버(300)는, 해킹이 불가능한 메세지 전달방식, 고속인증, 및 고속합의를 구현가능한 하드웨어 의존적 호출함수를 포함할 수 있다. 그리고, 양자난수를 생성할 때 하드웨어 의존적 성질로 인하여 상술한 바와 같이 노드와 별도로 존재할 수도 있고, 상임위 노드(600) 중 어느 하나로 선택될 수도 있다. 이때, 도 3에서 설명한 내용을 풀어 설명한 것이 도 4이므로 중복된 설명은 생략하기로 한다.Here, when the
도 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
한편, 양원제 합의 서비스 제공 서버(300)는, 블록체인을 이루는 적어도 하나의 노드의 네트워크 정보 및 공개키를 가지고 있고, 양자난수의 분포적 성질을 이용하여 노드를 확률적으로 선정 및 확정할 수 있고, 양자난수 생성 후 선정된 노드로 암호화된 공개키를 할당할 수 있으며, 공개키의 해시함수를 생성할 수 있다. 그리고, 물리적으로 양원제 합의 서비스 제공 서버(300)는, 블록체인을 이루는 적어도 하나의 노드에게 공개될 수 있다. 기능적으로 양원제 합의 서비스 제공 서버(300)는, 양자난수의 생성, 암호키의 생성, 확률적 선택, 및 블록 검증 함수를 포함하는 기능 함수를 가질 수 있다. 이에 따라, 양원제 합의 서비스 제공 서버(300)는, 기능 함수의 결합으로 코디네이터 노드(600)를 선정 및 확정하고, 운영위 후보 노드(400)를 선정하는 역할을 수행할 수 있다. 양원제 합의 서비스 제공 서버(300)의 라이브러리 함수 GETQRNARR()을 이용하여 49151바이트 이내의 원하는 크기의 바이트 난수인 QRND를 한번에 생성할 수 있고, 비트 연산을 적용하여 큰 자연수 N 이내의 균등분포를 얻을 수 있다. (b)는 환경의 상태(State) 전이를 도시한 도면인데, 이는 상술한 바와 같으므로 그 설명을 생략하기로 한다.Meanwhile, the two-way consensus
이와 같은 도 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.
할당된 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.
프론트 노드(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
그리고, 프론트 노드(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
이때, 운영위 후보 노드(400)는, 선착순으로 코디네이터 노드(600)에 등록함으로써 운영위 노드(400)로 확정되는데, 이는 표 3 및 표 4와 같으며, 확정 후 합의는 상술한 찬반투표 결과의 취합 및 찬성이 다수인 경우 코디네이터 노드(600)에서 모든 노드로 그 결과를 브로드캐스팅한 것과 동일하므로 중복하여 설명하지는 않는다.At this time, the
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
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
// Qe value is the encryption (random number, coordination information, public key) + public key hash value of V, which is the
// 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
Msg = ENC (some.pk | Q, C.pk)
Connect (some, C) // Racing
Send (some, C, Msg) // Send the message to the
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
count = 0 // Counter variable for counting the number of 15
R = [] // This is a list to contain the
While (1)
//
Receive (C, some, Msg)
//
some.pk | Q = DEC (Msg, C.sk)
if count <15
//
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] //
count + = 1; // increase counter
break // exit the for routine.
end
end
else
// When the number of counters is 15, the
For i = 1: # (R)
newpk, newsk = GenKey () //
Send (C, R [i], ENC (newpk, R [i] .pk)) // Encrypt and send to the
End
// The
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.
상기 프론트 노드(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.
상기 프론트 노드에서 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 경우, 상기 양자난수를 복호화한 코디네이터 노드, 상임위 노드, 및 운영위 후보 노드로부터 검증 데이터를 수신하는 단계에서,
상기 양자난수를 복호화할 때, 상기 코디네이터 노드, 상임위 노드, 및 운영위 후보 노드는, 상기 블록의 헤더 내 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.
상기 코디네이터 노드에서 상기 상임위 노드와, 상기 운영위 후보 노드 중 선착순으로 접속한 기 설정된 수를 운영위 노드로 확정하도록 하는 단계는,
상기 상임위 노드와 상기 운영위 노드의 퍼센트가 각각 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.
상기 프론트 노드(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.
상기 프론트 노드에서 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 경우, 상기 양자난수를 복호화한 코디네이터 노드, 상임위 노드, 및 운영위 후보 노드로부터 검증 데이터를 수신하는 단계;
상기 프론트 노드에서 상기 암호화된 양자난수를 상기 프론트 노드의 공개키를 이용하여 서명값을 검증하는 방법으로 상기 암호화된 양자난수를 검증하는 단계;
상기 검증이 완료된 경우 상기 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 단계;
를 포함하는 것인, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법.
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.
상기 프론트 노드에서 블록 내 헤더에 암호화된 양자난수를 삽입하여 브로드캐스팅하는 경우, 상기 양자난수를 복호화한 코디네이터 노드, 상임위 노드, 및 운영위 후보 노드로부터 검증 데이터를 수신하는 단계는,
상기 상임위 노드 중 코디네이터로 선정된 노드인 코디네이터 노드에서, 헤더 내 양자난수리스트 인식자를 공개키로 복호화하는 경우, 상기 운영위 후보 노드의 양자난수리스트를 확보하도록 하는 단계;
상기 운영위 후보 노드에서 상기 헤더를 복호화하여 상기 코디네이터로 전송하면, 상기 코디네이터는 상기 상임위 노드 및 운영위 후보 노드로 코디네이터 선정을 공개키를 이용하여 통지하도록 하는 단계;
를 수행하여 실행되는 것인, 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법.
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
상기 코디네이터 노드에서 상기 상임위 노드와 상기 운영위 노드 간의 직접 통신으로 합의결과를 취합하여 블록체인 내 적어도 하나의 노드로 결과를 브로드캐스팅하여 블록을 생성하도록 하는 단계에서,
상기 합의결과가 상기 상임위 노드 및 운영위 노드의 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.
A computer-readable recording medium recording a program for executing the method of any one of claims 1, 3 to 9.
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 (10)
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 |
CN117812085A (en) * | 2023-05-11 | 2024-04-02 | 华东师范大学 | DAG-based hybrid block chain consensus method |
WO2024159804A1 (en) * | 2023-02-03 | 2024-08-08 | 腾讯科技(深圳)有限公司 | Blockchain-based key generation method and apparatus, electronic device, computer-readable storage medium, and computer program product |
Citations (2)
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 |
-
2019
- 2019-12-12 KR KR1020190166142A patent/KR102090723B1/en active IP Right Grant
Patent Citations (2)
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 (12)
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 |
WO2024159804A1 (en) * | 2023-02-03 | 2024-08-08 | 腾讯科技(深圳)有限公司 | Blockchain-based key generation method and apparatus, electronic device, computer-readable storage medium, and computer program product |
CN117812085A (en) * | 2023-05-11 | 2024-04-02 | 华东师范大学 | DAG-based hybrid block chain consensus method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102090723B1 (en) | Method for providing blockchain based bicameralism consensus service using quantum random function mechanism | |
CN112214780B (en) | Data processing method and device, intelligent equipment and storage medium | |
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 | |
CN101937528B (en) | Systems and methods for implementing supply chain visibility policies | |
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 | |
CN110059503A (en) | The retrospective leakage-preventing method of social information | |
CN105871923B (en) | Information processing method, information record node and participation node | |
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 | |
Li et al. | Nereus: Anonymous and secure ride-hailing service based on private smart contracts | |
Zhu et al. | Blockchain technology in internet of things | |
Abubaker et al. | Trustful data trading through monetizing IoT data using BlockChain based review system | |
Lopes et al. | Blockchain based e-voting system: A proposal | |
Kumar et al. | Ultra-lightweight blockchain-enabled RFID authentication protocol for supply chain in the domain of 5G mobile edge computing | |
Gu et al. | Autonomous resource request transaction framework based on blockchain in social network | |
Salami et al. | LSKE: lightweight secure key exchange scheme in fog federation | |
Wang et al. | Housing rental scheme based on redactable blockchain | |
Hu et al. | Blockchain‐Enhanced Fair and Efficient Energy Trading in Industrial Internet of Things | |
Hong et al. | Ochjrnchain: A blockchain-based security data sharing framework for online car-hailing journey | |
Dang et al. | Large-scale invisible attack on AFC systems with NFC-equipped smartphones |
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 |