KR102230471B1 - Method of generating group proof for efficient transaction on blockchain network - Google Patents

Method of generating group proof for efficient transaction on blockchain network Download PDF

Info

Publication number
KR102230471B1
KR102230471B1 KR1020190175119A KR20190175119A KR102230471B1 KR 102230471 B1 KR102230471 B1 KR 102230471B1 KR 1020190175119 A KR1020190175119 A KR 1020190175119A KR 20190175119 A KR20190175119 A KR 20190175119A KR 102230471 B1 KR102230471 B1 KR 102230471B1
Authority
KR
South Korea
Prior art keywords
node
group
nodes
block
value
Prior art date
Application number
KR1020190175119A
Other languages
Korean (ko)
Inventor
오병엽
강전일
신동오
정현철
김혜진
Original Assignee
주식회사 록스307
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 록스307 filed Critical 주식회사 록스307
Priority to KR1020190175119A priority Critical patent/KR102230471B1/en
Application granted granted Critical
Publication of KR102230471B1 publication Critical patent/KR102230471B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction

Abstract

The present invention relates to a method of generating group proof for a peer-to-peer (P2P) network-based blockchain network. Specifically, the method comprises the steps of: generating, by a first node, a node chain composed of a plurality of nodes, based on a node value according to a block height on the blockchain network; transmitting, by the first node, an agreement request for transaction processing to second nodes of a group constituting the node chain; and when the first node obtains agreement corresponding to the agreement request from the second nodes, generating, by the first node, a block including proof of a group for the transaction. Therefore, the present invention can improve block reliability and scalability at the same time.

Description

블록체인 네트워크 상에서 효율적인 트랜젝션을 수행하기 위한 그룹 증명 생성 방법{METHOD OF GENERATING GROUP PROOF FOR EFFICIENT TRANSACTION ON BLOCKCHAIN NETWORK}Method of generating group proof for efficient transaction on blockchain network {METHOD OF GENERATING GROUP PROOF FOR EFFICIENT TRANSACTION ON BLOCKCHAIN NETWORK}

본 발명은 블록체인 네트워크를 구성하는 방법에 관한 것으로서, 보다 상세하게는 블록체인 네트워크 상에서 효율적인 트랜젝션을 수행하기 위한 그룹 증명 생성하는 방법에 관한 것이다.The present invention relates to a method of constructing a blockchain network, and more particularly, to a method of generating a group proof for performing an efficient transaction on a blockchain network.

블록체인에서 합의 알고리즘은 트랜잭션의 처리 순서를 합의하고, 이후에 이 순서를 바꾸지 못하도록 하는 가장 핵심적인 역할을 한다. 자율 경쟁이고 단일 체인을 연결하는 초기 형태의 블록체인은 블록체인으로서의 기본적인 구성을 잘 담아내고 있지만, 현실 세계에서 요구하는 성능에는 도달하지 못하는 문제가 있었다. 따라서, 많은 블록체인 합의 알고리즘이 이를 해결하기 위하여 제안되었고 시도되었지만, 지속 가능한 블록체인 시스템을 위해서 필요한 요소들을 충분히 담아내지 못하고 있는 상황이다.In the blockchain, the consensus algorithm plays a key role in consensus on the order of processing of transactions and preventing the order from being changed afterwards. The initial form of blockchain, which is autonomous competition and connects a single chain, contains the basic configuration as a blockchain well, but there is a problem that it cannot reach the performance required in the real world. Therefore, although many blockchain consensus algorithms have been proposed and attempted to solve this problem, it is a situation that does not contain enough elements necessary for a sustainable blockchain system.

수많은 노드들이 실제 블록체인 네트워크에 참여하기 위해서는, 네트워크로의 진입 장벽이 충분히 낮아야 하고 소수의 구성원들이 이득을 취하지 못하도록 해야하며, 로컬체인의 규모가 서로 다를 수는 있지만, 이 로컬체인들 사이에서 자유롭게 자산이 이동하기 위해서는 로컬체인의 규모에 따른 손익이 없거나 무시할 수 있는 수준이어야 한다. 즉, 블록체인의 경제적 불균형을 낳는 가장 큰 원인은 블록체인 외부의 자원이 블록체인 내부 경제에 영향을 주는 것이므로, 합의 알고리즘은 외부 자원을 기반으로 해서는 안 되며, 자원의 불균형은 규모가 작은 로컬체인의 보안성을 악화시킬 수도 있다는 문제점이 있다.In order for a large number of nodes to participate in the actual blockchain network, the barrier to entry into the network must be low enough to prevent a small number of members from taking advantage, and although the sizes of the local chains may be different, freely between these local chains. In order for an asset to move, it must have no or negligible gain or loss depending on the size of the local chain. In other words, the biggest cause of the blockchain's economic imbalance is that resources outside the blockchain affect the internal economy of the blockchain, so the consensus algorithm should not be based on external resources, and the resource imbalance is a small local chain. There is a problem that it may worsen the security of the device.

상술한 바와 같은 논의를 바탕으로 이하에서는 블록체인 네트워크를 구성하는 방법을 제공하고자 한다.Based on the above discussion, the following will provide a method of configuring a blockchain network.

본 발명에서 이루고자 하는 기술적 과제들은 상기 기술적 과제로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved in the present invention are not limited to the above technical problems, and other technical problems that are not mentioned will be clearly understood by those of ordinary skill in the art from the following description.

상술한 문제점을 해결하기 위한 본 발명의 일 양상인, P2P 네트워크(peer to peer network) 기반의 블록체인 네트워크에 대한 그룹 증명 생성 방법은, 상기 블록체인 네트워크 상의 블록 높이(block height)에 따른 노드 가치에 기반하여, 제 1 노드가 복수의 노드들로 구성된 노드 체인을 생성하는 단계; 상기 노드 체인을 구성하는 그룹의 제 2 노드들에게, 상기 제 1 노드가 트랜젝션(transaction) 처리를 위한 동의 요청(agreement request)를 송신하는 단계; 및 상기 제 1 노드가 상기 제 2 노드들로부터 상기 동의 요청에 대응하는 동의를 획득한 경우, 상기 제 1 노드가 상기 트랜젝션에 대한 상기 그룹의 증명(proof)을 포함하는 블록을 생성하는 단계를 포함하는 것을 특징으로 한다.One aspect of the present invention for solving the above-described problem, a method for generating a group proof for a blockchain network based on a peer to peer network, is a node value according to a block height on the blockchain network. On the basis of, the first node generating a node chain composed of a plurality of nodes; Transmitting, by the first node, an agreement request for processing a transaction to second nodes of a group constituting the node chain; And when the first node obtains consent corresponding to the consent request from the second nodes, generating, by the first node, a block including proof of the group for the transaction. Characterized in that.

나아가, 상기 노드 체인은, 상기 블록을 생성하기 위한 타임 슬롯(time slot)마다, 상기 노드 가치에 기반하여 재구성되는 것을 특징으로 할 수 있다.Further, the node chain may be reconfigured based on the node value for each time slot for generating the block.

더 나아가, 상기 노드 체인을 생성하는 단계는, 상기 제 1 노드가 상기 제 1 노드의 노드 가치에 기반하여, 상기 그룹의 리더 요청 메시지 혹은 리더 포기 메시지를, 상기 제 1 노드와 연결된 적어도 하나의 아웃-엣지(out-edge) 노드에게 전송하는 단계; 및 상기 제 1 노드가, 상기 타임 슬롯보다 작도록 미리 설정된 시간 단위 내에, 상기 리더 요청 메시지에 반대하는 거절 메시지를 수신하지 않는 경우, 상기 그룹의 리더 노드로 설정되는 단계를 포함할 수 있다.Furthermore, in the step of generating the node chain, the first node sends a leader request message or a leader abandon message of the group based on the node value of the first node, at least one out connected to the first node. -Transmitting to an out-edge node; And when the first node does not receive a rejection message opposing the leader request message within a preset time unit to be smaller than the time slot, setting the first node as a leader node of the group.

더 나아가, 상기 제 2 노드들은, 상기 동의 요청을 수신한 경우, 상기 타임 슬롯 내에서 이미 동의 요청에 응답하지 않은 경우에 한하여, 상기 트랜젝션 처리를 위한 처리 순서 및 상기 생성되는 블록과 연결될 이전 블록(previous block)에 기반하여 결정된 동의를 상기 제 1 노드로 전송하도록 구성된 것을 특징으로 할 수 있다.Furthermore, the second nodes, when receiving the consent request, only when they have not already responded to the consent request within the time slot, the order of processing for the transaction processing and the previous block to be connected to the generated block ( Previous block) may be characterized in that it is configured to transmit the determined consent to the first node.

더 나아가, 상기 블록은, 상기 타임 슬롯의 다음 타임 슬롯(next time slot)의 시작 시점으로부터 상기 미리 설정된 시간 단위가 경과하기 전에, 배포가 완료되도록 설정되는 것을 특징으로 할 수 있다.Further, the block may be configured to complete distribution before the preset time unit elapses from a start time of a next time slot of the time slot.

나아가, 상기 노드 체인은, DAG(Directed Acyclic Graph) 구조를 가지는 것을 특징으로 할 수 있다.Further, the node chain may be characterized in that it has a DAG (Directed Acyclic Graph) structure.

본 발명의 실시예에 따르면, 실명 인증한 노드에 높이에 따라 무작위로 가치를 부여하는 한편, 최선의 그룹 구성원 선택을 통하여, 네트워크의 상태를 간접적으로 측정할 수 있는 새로운 합의 알고리즘이 제안될 수 있다. According to an embodiment of the present invention, a new consensus algorithm capable of indirectly measuring the state of the network may be proposed through the selection of the best group member while randomly assigning a value according to the height to the real-name authenticated node. .

또한, 본 발명의 실시예에 따르면, 그룹 개념을 도입하여 최대한 많은 노드들에게 이익을 분배하여 블록체인의 스토리지 서비스가 원활히 일어날 수 있도록 유도할 뿐만 아니라, 다수의 노드가 참여하도록 하여, 블록의 신뢰성을 높임과 동시에 확장성을 높일 수 있다.In addition, according to an embodiment of the present invention, the concept of a group is introduced to distribute profits to as many nodes as possible to induce the storage service of the block chain to occur smoothly, as well as to allow multiple nodes to participate, thereby reducing the reliability of the block. At the same time, you can increase the scalability.

본 발명에서 얻은 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects that can be obtained in the present invention are not limited to the above-mentioned effects, and other effects not mentioned can be clearly understood by those of ordinary skill in the art from the following description. will be.

본 발명에 관한 이해를 돕기 위한 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 사상을 설명한다.
도 1은 본 발명에 따른 블록체인 네트워크가 적용될 수 있는 P2P 네트워크를 나타낸다.
도 2는 본 발명의 일 실시예에 따라 그룹 증명을 통해 블록 체인을 생성 및 관리하는 시나리오를 설명하기 위한 순서도이다.
도 3(a) 및 3(b)는 본 발명의 일 실시예에 따른 블록체인 상의 그룹의 리더 노드를 선출하는 시나리오를 설명하기 위한 참고도이다.
도 4는 본 발명의 일 실시예에 따라 그룹 증명을 위한 동의를 획득하는 경우를 설명하기 위한 참고도이다.
The accompanying drawings, which are included as part of the detailed description for aiding understanding of the present invention, provide embodiments of the present invention, and together with the detailed description, the technical spirit of the present invention will be described.
1 shows a P2P network to which the blockchain network according to the present invention can be applied.
2 is a flowchart illustrating a scenario of creating and managing a block chain through group proof according to an embodiment of the present invention.
3(a) and 3(b) are reference diagrams for explaining a scenario of selecting a leader node of a group on a blockchain according to an embodiment of the present invention.
4 is a reference diagram for explaining a case of obtaining consent for group authentication according to an embodiment of the present invention.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다. 아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. The same reference numerals shown in each drawing indicate the same members. Various changes may be made to the embodiments described below. The embodiments described below are not intended to be limited to the embodiments, and should be understood to include all changes, equivalents, and substitutes thereto.

실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used only to describe specific embodiments, and are not intended to limit the embodiments. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements, numbers, steps, actions, components, parts, or combinations thereof, does not preclude in advance the possibility of the presence or addition.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in the present application. Does not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are assigned to the same components regardless of the reference numerals, and redundant descriptions thereof will be omitted. In describing the embodiments, when it is determined that a detailed description of related known technologies may unnecessarily obscure the subject matter of the embodiments, the detailed description thereof will be omitted.

도 1은 본 발명의 일 실시예에 따른 블록체인 네트워크가 적용될 수 있는 P2P 네트워크를 나타낸다.1 shows a P2P network to which a blockchain network according to an embodiment of the present invention can be applied.

P2P 네트워크는 네트워크에 참여하는 노드가 서로간 동등한 자격을 가지고 통신을 수행한다. P2P 네트워크는 노드간 연결 상태에 따라 다양한 형태를 가질 수 있는데, 현실 세계에서 자율적으로 만들어지는 P2P 네트워크는 몇몇 허브들이 존재하고 이들을 중심으로 네트워크가 유지되는 탈중앙화된 형태가 일반적이다.In a P2P network, nodes participating in the network communicate with each other with equal qualifications. P2P networks can take various forms depending on the connection state between nodes. In a P2P network that is autonomously created in the real world, there are several hubs and a decentralized form in which the network is maintained around them is common.

P2P 네트워크에 참여하기 위해서는 일반적으로 트래커(tracker)나 부트스트래핑 노드(bootstrapping node)의 도움이 필요하며, 이들은 다른 일반적인 노드들과 다르게, 네트워크를 떠나지 않으며 다른 노드들로의 연결 주소를 관리하는 역할을 수행한다. In order to participate in a P2P network, a tracker or bootstrapping node is generally needed, and unlike other general nodes, they do not leave the network and are responsible for managing connection addresses to other nodes. Carry out.

많은 공개 블록체인에서 Kademlia를 사용하여 P2P 네트워크를 만들고 있으나, Kademlia는 그 훌륭한 성능에도 불구하고 일부 라우팅 정보를 숨기는 이클립스(eclipse) 공격, 혼자서 다수의 노드인 척하는 시빌(Sybil) 공격 등 특정 노드를 고립시킬 수 있는 몇몇 보안 이슈가 있다. 특히, 최근 블록체인들은 이를 개선한 S/Kademlia 등을 사용하려고 하고 있는데, S/Kademlia에서는 검증 가능한 노드 식별자를 만들기 위해서 신뢰할 수 있는 제삼자에 의해 검증된 공개키를 사용하거나 해시 퍼즐을 이용해 생성한 공개키를 사용한다.Many public blockchains use Kademlia to create P2P networks, but despite its excellent performance, Kademlia attacks specific nodes such as Eclipse attacks that hide some routing information, and Sybil attacks that pretend to be multiple nodes by themselves. There are several security issues that can be isolated. In particular, recent blockchains are trying to use S/Kademlia, which has improved this, but S/Kademlia uses a public key verified by a trusted third party to create a verifiable node identifier, or a public key created using a hash puzzle. Use the key.

초기 블록체인에서 노드는 사용자와 명확하게 분리되지 않았으며, 사용자가 자신의 자산을 검증받고 관리하기 위해서는 블록체인에 대한 상당한 정보가 필요했고 이는 사실상 노드의 일부 기능을 수행하기 때문이었다. 그러나 최근 블록체인에서는 노드와 사용자를 분리되고 있으며, 노드는 블록체인 네트워크를 유지하고 데이터를 보존하며 사용자들에게 블록체인 서비스를 제공하고, 사용자는 노드를 통하여 자신의 자산을 관리해야 한다.In the initial block chain, nodes were not clearly separated from users, and in order for users to verify and manage their assets, considerable information about the blockchain was required, because in fact, it performs some functions of the node. However, in recent blockchains, nodes and users are separated, nodes maintain a blockchain network, preserve data, provide blockchain services to users, and users must manage their own assets through nodes.

노드와 사용자의 분리 정책은 사용자가 자신의 자산 관리를 노드에게 크게 의존하지 않으면 안되게 하지만, 사용자의 블록체인으로의 접근 편의성을 상당히 개선하는 효과가 있다. 사실상 현재 상당수의 사용자는 거래소의 계정을 빌리는 핫 월렛(hot wallet)을 사용하고 있으며, 직접 계정을 관리하는 콜드 월렛(cold wallet)을 이용하는 많은 사용자들 또한 노드로써 역할은 수행하지 않는다. 블록체인에서 노드와 사용자는 모두 동일한 형태의 식별자를 사용하지만, 현실세계에서 노드는 사실상 실명으로 운영되고 있으며, 사용자는 익명(가명)을 사용하고 있다.The policy of separating nodes and users makes users have to rely heavily on nodes to manage their assets, but it has the effect of significantly improving the user's accessibility to the blockchain. In fact, a significant number of users currently use hot wallets that borrow accounts from exchanges, and many users who use cold wallets that directly manage accounts also do not play a role as nodes. In the blockchain, both nodes and users use the same type of identifier, but in the real world, nodes are actually operated under their real names, and users are using anonymous (pseudonyms).

많은 공개 블록체인 네트워크에서는 어느 한 노드가 블록을 만들면 블록에 포함된 트랜잭션 수수료 전부를 획득한다. 그래서 실질적으로 스토리지 서비스를 제공하는 노드는 무료로 서비스를 해주는 것과 같다. 만약, 어느 노드가 더 많은 블록을 생성하여 트랜잭션 수수료를 더 많이 가져간다면, 이들은 스토리지 서비스에 더 많은 비용을 들여야 하나, 현실은 어떠한 스토리지 서비스도 하지 않으면서, 블록만 만들고 트랜잭션 수수료를 가져가려고 하는 노드가 존재할 수 있다. 따라서, 이러한 수수료 체계는 결국 블록을 잘 생성할 수 있는 몇몇 노드만 블록체인 네트워크에 남는 결과를 야기할 수 있다. In many public blockchain networks, when a node creates a block, all transaction fees included in the block are acquired. So, in practice, a node that provides a storage service is like providing a service for free. If a node generates more blocks and takes more transaction fees, they have to pay more for storage services, but the reality is, nodes that only make blocks and take transaction fees without doing any storage services. May exist. Therefore, such a fee system may eventually lead to the result that only a few nodes that can generate blocks well remain in the blockchain network.

블록체인 네트워크에서 노드의 수는 보안성과 직접적인 연관성이 있으므로, 이는 네트워크 유지에 부정적인 영향을 줄 수밖에 없다. 하지만 스토리지 서비스에 서비스 요금을 청구하는 경우는 거의 없으며, 대안적으로 스마트컨트랙트를 통하여 스토리지 서비스를 제공하는 노드와 사용자 간 계약을 할 수도 있다. Since the number of nodes in a blockchain network is directly related to security, this inevitably has a negative impact on network maintenance. However, there is rarely a case of charging a service fee for the storage service, and alternatively, a contract between the node providing the storage service and the user can be made through a smart contract.

다른 접근 방법으로는 노드들이 사용자들에게 스토리지 서비스 요금을 굳이 받지 않아도 될 만큼 트랜잭션 수수료가 블록체인에 참여하는 노드들에게 공평하고도 풍족하게 분배되도록 하는 것을 생각해볼 수 있으며, 이상적으로는 모두가 협력하여 정해진 순서대로 블록을 생성하도록 하면 된다. Another approach is to ensure that the transaction fee is distributed fairly and abundantly to the nodes participating in the blockchain, so that nodes do not have to pay storage service fees from users, ideally everyone cooperates. Thus, you can create blocks in a predetermined order.

결론적으로 지속 가능한 블록체인 네트워크를 위해서는 노드가 서비스를 나태하게 제공하면 이득을 얻을 수 없게 해야 하고, 어느 정도의 경쟁이 있도록 설정할 필요가 있다.In conclusion, for a sustainable blockchain network, it is necessary to ensure that no gain is gained if a node provides services lazily, and it is necessary to set it so that there is some degree of competition.

대표적인 블록체인인 비트코인은 수많은 노드가 참여하는 P2P 네트워크로 설계가 되었다. 수많은 노드가 참여하였을 때 데이터의 생존성은 높아지지만, 네트워크는 자연적으로 파편화가 되고 데이터의 동기화에 어려움이 발생하는 문제점이 있다. 블록체인의 합의 알고리즘은 이렇게 파편화된 P2P 네트워크 위에서 트랜잭션의 처리 순서를 다수의 노드 간에 합의하고, 합의된 트랜잭션 순서를 이후에 바꾸지 못하게 하는데 그 목표가 있다.Bitcoin, a representative blockchain, was designed as a P2P network in which numerous nodes participate. When a number of nodes participate, the survivability of data increases, but there is a problem that the network is spontaneously fragmented and difficulty in synchronizing data occurs. Blockchain's consensus algorithm aims to agree on the order of transaction processing between multiple nodes on this fragmented P2P network, and to prevent the agreed transaction order from being changed later.

트랜잭션의 처리 순서 합의는 그 방법에 따라 크게 세 가지로 분류될 수 있으며, 몇몇 블록체인에서는 각각의 단점을 보완하기 위하여, 혼용된 구조를 가지고 있다.Consensus on the processing order of transactions can be largely classified into three types according to the method, and some blockchains have a mixed structure to compensate for their respective shortcomings.

● 경쟁 순차 체인 구조: 비트코인과 이더리움과 같이 오래된 블록체인의 경우 블록들이 순차적으로 연결되는 체인 구조를 가지고 있다. 블록을 생성하려는 참여자 간에 게임을 통하여 블록을 생성할 권한을 획득한 뒤 이를 이전 블록에 연결하는 방식으로, 많은 노드가 참여할 수 있지만, 노드 간 블록 생성에 과열 경쟁이 벌어지는 경우 매우 느릴 수 있다.● Competition sequential chain structure: Old blockchains such as Bitcoin and Ethereum have a chain structure in which blocks are sequentially connected. Many nodes can participate by acquiring the right to create a block through a game between participants who want to create a block and then connecting it to the previous block, but it can be very slow if there is overheating competition for block generation between nodes.

● 소수 합의 구조: EOS, NEO 등은 소수의 구성원 간에 트랜잭션의 처리 순서를 합의합니다. 사전에 합의된 순서에 따라 블록을 생성하기 때문에 체인을 만들 이유가 없으며, 주로 PBFT(Practical Byzantine Fault Tolerant) 프로토콜을 사용하기 때문에, 노드의 수가 늘어날수록 지수적으로 합의가 느려져 노드의 수가 수십 개를 넘기 어렵다. 이러한 경우에는 체인 연결이 필요 없는 경우가 많다. ● Minority consensus structure: EOS, NEO, etc. agree on the order of transaction processing among a small number of members. There is no reason to create a chain because blocks are generated in a pre-agreed order, and since PBFT (Practical Byzantine Fault Tolerant) protocol is mainly used, consensus is exponentially slow as the number of nodes increases, resulting in tens of nodes. It is difficult to pass. In this case, there is often no need for a chain connection.

● DAG(Directed Acyclic Graph) 구조: IOTA나 Hedera Hashgraph, FANTOM 등에서는 복수의 이전 트랜잭션이나 블록, 이벤트에 연결된 해시 체인을 사용한다. 트랜잭션은 해시 체인의 연결 상태에 따라 처리 순서가 정해지는데, 정확한 순서 제어가 어렵기 때문에 스마트컨트랙트를 실행시킬 수 없거나, 오로지 소수의 노드만 참여하거나, 또는 이를 정리해줄 특별한 참여자가 필요하다.● DAG (Directed Acyclic Graph) structure: IOTA, Hedera Hashgraph, and FANTOM use hash chains linked to multiple previous transactions, blocks, and events. Transactions are processed according to the connection status of the hash chain.Since accurate order control is difficult, smart contracts cannot be executed, only a few nodes participate, or special participants are required to organize them.

특히, 몇몇 합의 알고리즘은 순차 체인 구조가 가진 단점(특히 성능 문제)을 보완하기 위해서 개발되었으나, 블록체인이 트랜잭션을 모아서 블록으로 만들고 연결하는 것뿐이라면 이러한 새로운 시도들이 아무 문제가 없겠지만, 블록체인은 다수의 참여로부터 신뢰성과 안전성이 확보되어야 하는 시스템이기때문에, 참여하는 노드의 수를 제한하거나 블록체인 네트워크 운영에 깊숙이 참여하는 특별한 참여자의 존재를 가정해서는 안 되는 문제점이 있다.In particular, some consensus algorithms have been developed to compensate for the shortcomings of the sequential chain structure (especially performance problems), but if the blockchain is only collecting transactions, making them into blocks, and connecting them, these new attempts will not have any problems, but the blockchain is Since it is a system that must ensure reliability and safety from a large number of participation, there is a problem in that the number of participating nodes should not be limited or the existence of a special participant who deeply participates in the operation of the blockchain network should not be assumed.

블록체인과 같이 익명으로 운영되는 대부분의 시스템에서는 시빌 공격(civil attack)의 위험성이 존재한다. 시빌 공격은 하나의 참여자가 가짜 식별자를 만들어 시스템을 공격하는 것으로, 블록체인에서는 기존의 합의된 블록을 철회하거나, 과도한 경쟁을 발생시켜 네트워크 성능을 떨어뜨리는데 이용될 수 있다. 따라서, 블록체인에서의 자격 증명은 시빌 공격을 통하여 얻을 수 없어야 하며, 블록에 포함되어야 한다. 즉, 각 블록의 자격 증명은 블록이 일정 수준이상의 자격이 갖춘 참여자에 의한 것임을 보이게 하여 블록 생성의 경쟁을 제한하고, 누적된 자격 증명은 블록의 철회를 불가능하게 만든다. 예를 들어, 작업 증명(Proof-of-Work, PoW)과 지분 증명(Proof-of-Stake, PoS)이 있다.In most systems that operate anonymously, such as blockchain, there is a risk of a civil attack. In the Sybil attack, one participant attacks the system by creating a fake identifier, and in the blockchain, it can be used to withdraw an existing consensus block or to degrade network performance by causing excessive competition. Therefore, the credential in the blockchain must not be obtained through a Sybil attack, and must be included in the block. In other words, the credential of each block shows that the block is by a qualified participant of a certain level or higher, thereby limiting the competition for block generation, and the accumulated credential makes it impossible to withdraw the block. Examples include Proof-of-Work (PoW) and Proof-of-Stake (PoS).

PoW은 전사적 검색(brute-force search)을 통해서만 얻을 수 있는 해시 퍼즐의 답을 포함시키도록 하며, 대표적으로 비트코인에서의 예처럼, 현실 세계에서 암호화폐의 가격이 올라가면 블록 생성 경쟁이 치열해지면서 해시 퍼즐의 난이도가 지나치게 높아져 거대 해시 파워를 소유한 몇몇 참여자들만 블록을 생성할 수 있는 문제가 발생할 수 있다.PoW includes an answer to a hash puzzle that can only be obtained through a brute-force search, and typically, as in the example of Bitcoin, as the price of cryptocurrency in the real world increases, the competition for block generation intensifies. The difficulty of the hash puzzle is so high that only a few participants with huge hash power can generate blocks.

PoS는 소유한 지분의 양에 따라 블록을 생성할 수 있는 기회를 차등 부여함으로써 시빌 공격을 무력화하며, 가짜 식별자에게 지분을 분할하면 분할한 만큼 블록 생성 기회가 줄어들어 이득이 없다. PoS는 거대 해시 파워가 필요 없기 때문에 PoW 기반의 블록체인보다 가벼운 운영이 가능하지만, 어떻게 지분대로 블록 생성 기회를 분배하고, 이 분배가 정당함을 모두에게 검증받을 수 있는지 여부가 고려되어야 한다. 또한 지분을 나누어 서로 다룬 체인에 나누어 투표하는 비위험(Nothing-at-Stake) 공격을 어떻게 막을 것인지에 대한 고려 또한 필요하다.PoS neutralizes the Sybil attack by giving different opportunities to create blocks according to the amount of stake it owns, and if the stake is split to a fake identifier, the chance of creating blocks decreases as much as the split, so there is no benefit. Since PoS does not require huge hash power, it is possible to operate lighter than PoW-based blockchain, but how to distribute block creation opportunities according to stakes and whether this distribution can be verified to everyone should be considered. It is also necessary to consider how to prevent a Nothing-at-Stake attack in which shares are divided and voted on each other's chains.

대부분의 블록체인에서 참여자는 익명성을 갖는다고 보기 때문에 복잡한 자격 증명이 필요하다고 여기나 현실세계에서 대부분의 블록 생성자(노드)들은 고정되고 알려진 연결 주소와 프로토콜 등을 갖기 때문에 익명성이 보장된다고 보기 어렵다. 이미 선출된 소수의 노두가 합의를 이루는 블록체인의 경우 노드에 대한 정보가 익히 알려져 있는 경우가 대부분이며, 블록 생성자에 대해 익명성을 유지할 이유가 없다.In most blockchains, participants are considered to have anonymity, so it is considered that complex credentials are required.However, in the real world, most block creators (nodes) have fixed and known connection addresses and protocols, so it is difficult to say that anonymity is guaranteed. . In the case of blockchains in which a small number of already elected outcrops are consensus, information about nodes is well known in most cases, and there is no reason to maintain anonymity for the creator of the block.

노드의 수에 따라 어디까지를 탈중앙화 되었다고 볼 것인지에 대한 기준은 존재하지 않는다. 비트코인 노드의 수는 1만개(2019년 1월 기준)에 달한다고 알려져 있으며, EOS는 단지 21개의 노드만이 존재하고 Cardano의 경우 최대 50개 노드가 존재할 수 있다. SWIFT(the Society for Worldwide Interbank Financial Telecommunication)에 가입된 전 세계 은행이 약 9,000곳정도이고, 가입되지 은행들도 많다는 사실을 감안하면, 100개 이내의 노드가 존재하는 블록체인 네트워크는 작다. 따라서, 이를 바탕으로 현재의 은행 시스템이 중앙화 되었다고 이야기하기 위해서는 적어도 블록체인 네트워크에 참여하는 노드의 수가 적어도 수 만은 되어야 할 것이다.According to the number of nodes, there is no standard as to how far to consider decentralized. It is known that the number of Bitcoin nodes reaches 10,000 (as of January 2019), EOS only has 21 nodes, and Cardano can have up to 50 nodes. Considering the fact that there are about 9,000 banks in the world that have joined the Society for Worldwide Interbank Financial Telecommunication (SWIFT), and there are many banks that are not subscribed, the blockchain network with less than 100 nodes is small. Therefore, in order to say that the current banking system is centralized based on this, at least the number of nodes participating in the blockchain network should be at least tens of thousands.

한편, DPoS(Delegated Proof-of-Stake) 같은 작업 증명을 사용하는 합의 알고리즘은 지분 위임을 통하여 선출된 소수의 노드가 실질적으로 블록체인 네트워크를 운영하지만 이를 근거로 자신들은 탈중앙화 되어 있다고 주장하고 있으나, 선출된 소수의 노드의 변경이 실질적으로 일어나지 않는 경우에 이를 탈중앙화로 보기는 어려우며, 따라서 실질적으로 운영에 참여하는 노드의 수가 탈중앙화의 중요한 기준이 된다.On the other hand, consensus algorithms using proof of work such as DPoS (Delegated Proof-of-Stake) claim that a few nodes elected through stake delegation actually operate the blockchain network, but based on this, they are decentralized. In this case, it is difficult to view this as decentralization when a few elected nodes do not actually change, and thus the number of nodes actually participating in the operation becomes an important criterion for decentralization.

체인의 분기를 허용하는 합의 알고리즘을 사용하는 블록체인에서 실제 분기가 발생하였을 때, 블록 생성자는 하나의 체인을 선택해야 한다. 블록의 자격 증명만 올바르다면 어느 체인을 선택하든지 그것은 블록 생성자의 자유이나, 많은 블록체인에서는 직관적인 선택 전략으로 가장 긴 체인을 선택하는 LCR(Longest Chain Rule)를 사용한다. 몇몇 블록체인에서는 보안성이 가장 높은 체인을 선택하는 경우도 있으며, 그것이 전체 블록체인의 입장에서 보자면 가장 이득이 되는 선택이고 다른 블록 생성자들도 동일한 선택을 할 것이라고 판단하기 때문이다. 일반적으로 자격 증명에 소요된 비용 때문에 이러한 전략은 LCR과 일치할 가능성이 높다.When an actual branch occurs in a blockchain that uses a consensus algorithm that allows branching of the chain, the block producer must select one chain. As long as the credentials of the block are correct, it is the freedom of the block creator to select which chain, but many blockchains use the Longest Chain Rule (LCR), which selects the longest chain as an intuitive selection strategy. This is because some blockchains choose the chain with the highest security, and it is the most profitable choice from the perspective of the entire blockchain, and other block producers believe that they will make the same choice. In general, due to the cost of credentialing, this strategy is likely to be in line with LCR.

하지만, 모든 노드는 자신의 이득을 위해서 동작한다고 보아야 할 것이고 블록 생성자 또한 마찬가지이다. 또한, 네트워크의 속도가 지속적으로 빨라지는 상황에서 무엇이 가장 긴 체인인지 선택하라는 것은 해결책이 되기 어렵다. 따라서 블록 생성자에게 이득이 되는 선택의 기준이 명확하지 못한 경우, 블록 생성자들은 무작위로 체인을 선택하게 되면서 체인의 연결이 더 경쟁적이 되고 블록체인을 혼잡하게 만들어 버릴 것입니다.However, all nodes should be viewed as operating for their own benefit, and so are the block generators. Also, it is difficult to choose what is the longest chain in a situation where the speed of the network continues to increase. Therefore, if the criteria for selection that benefit the block producers are not clear, block producers will randomly choose a chain, making the chain's connections more competitive and congesting the blockchain.

블록 생성자의 입장에서 보자면 자신이 생성한 블록의 생존 가능성이 높은 체인을 선택해야만 한다. 자신이 생성한 블록이 버려지면 어떠한 이득도 만들어내지 못하기 때문이다. 따라서, 합의 알고리즘은 블록 생성자의 선택이 보안성에 영향을 미치지 않도록 설계되어야 할 필요가 있으며, 블록의 생존 가능성을 직간접적으로 보여줄 수 있어야 한다. 이는 경쟁 수준을 낮추고 네트워크 상황을 좀 더 원활하게 만들 수 있는 효과가 있다.From the block producer's point of view, he must select a chain with a high probability of surviving the block he created. This is because if a block created by itself is discarded, it does not produce any gain. Therefore, the consensus algorithm needs to be designed so that the choice of the block producer does not affect the security, and it should be able to directly or indirectly show the viability of the block. This has the effect of lowering the level of competition and making the network situation more smooth.

비트코인의 TPS(Transaction Per Second)는 3~5 정도이고, 이더리움의 경우 12~20정도로 알려져 있다. VISA 네트워크의 경우 전세계에서 4,600만 상점에서 최고 65,000건(2017년 8월 기준)을 처리할 수 있기 때문에, 이러한 블록체인으로는 현실 세계의 금융 시스템을 대체하는 것은 무리가 있다. 이렇게 블록체인이 성능상의 문제가 크게 대두되었을 때, 많은 블록체인들이 새로운 합의 알고리즘을 만드는 한편, 단일 체인으로는 실생활에 필요한 성능을 충족시키기 쉽지 않다는 판단 아래에 병렬로 체인을 운영하는 방법에 대하여 제안되고 있으며, 사이드 체인이나, 오프 체인, 로컬 체인 등이 그 예이다.Bitcoin's TPS (Transaction Per Second) is known to be around 3~5, while Ethereum's is known to be around 12~20. Since the VISA network can handle up to 65,000 cases (as of August 2017) in 46 million stores worldwide, it is not easy to replace the real-world financial system with such a blockchain. When the performance problem of the block chain emerges greatly, many block chains create new consensus algorithms, while suggesting a method of operating chains in parallel under the judgment that it is not easy to meet the performance required in real life with a single chain. It is becoming, for example, a side chain, an off-chain, and a local chain.

사이드 체인은 목적에 따라 여러 개의 블록체인을 병렬로 운영하여 성능 문제를 해결하고자 하는 방법이며, 대체적으로 독립적인 경제 구조를 가지고 있으며, 체인 들 간의 자산(assets)을 연결해줄 수 있는 메인 체인을 필요로 한다. 오프 체인은 원래 운영중인 메인 체인에서 참여자들의 자산을 동결시킨 뒤, 이들 사이에서 블록체인에 기록을 남기지 않고 거래하도록 하는 방식입니다. 라이트닝 네트워크나 라이덴 네트워크가 오프 체인 방식을 사용한다. 로컬체인은 사이드체인과 유사하지만 경제적으로 호환성 있는 블록체인들을 동시에 운영한다. 자산은 로컬체인들 사이에서 자유롭게 이동될 수 있다. 로컬체인을 만들기 위해서는 체인의 크기나 외부 자원에 따른 경제적 손익이 없어야 하기 때문에, PoW나 PoS와 같은 합의 알고리즘으로는 구현이 불가능하다.Side chain is a method to solve performance problems by operating several blockchains in parallel depending on the purpose, and generally has an independent economic structure, and requires a main chain that can connect assets between chains. It should be. Off-chain is a method in which participants' assets are frozen in the original main chain and then transacted between them without leaving a record on the blockchain. The Lightning Network or Leiden Network uses an off-chain method. Local chains are similar to side chains, but they operate economically compatible blockchains at the same time. Assets can be moved freely between local chains. In order to create a local chain, there should be no economic profit or loss due to the size of the chain or external resources, so it is impossible to implement it with a consensus algorithm such as PoW or PoS.

비트코인에서 타임스탬프 값은 이전 11블록의 타임스탬프의 중간 값보다 크고 네트워크를 통하여 교정된 시간보다 2시간 더 많은 시각보다 작을 때 유효하다고 판단한다. 그러나, 이렇게 느슨한 시간 관리는 높은 처리량을 필요로 하는 시스템에서는 적합하지 않으며, 따라서 많은 블록체인에서는 노드들 사이에서 시간이 동기화되어 있다고 가정한다.In Bitcoin, the timestamp value is determined to be valid when it is greater than the median value of the timestamp of the previous 11 blocks and is less than 2 hours more than the time corrected through the network. However, this loose time management is not suitable for systems requiring high throughput, so many blockchains assume that time is synchronized between nodes.

노드들 사이에서 시간을 동기화하기 위해서는 이들 사이에서 시계 동기화 알고리즘(clock synchronization algorithm)을 사용해야 할 것이다. 시계 동기화 알고리즘에는 다양한 방식이 있지만, 현실적으로는 OpenNTPD나 Chrony와 같은 NTP(Network Time Protocol) 서비스를 이용할 수 있다.In order to synchronize the time between nodes, it will be necessary to use a clock synchronization algorithm between them. There are various methods of clock synchronization algorithms, but in reality, NTP (Network Time Protocol) services such as OpenNTPD or Chrony can be used.

상술한 내용을 바탕으로 본 발명에서는 충분한 탈중앙화를 위해서 수많은 노드가 실제로 참여하여 블록체인을 구성하며, 로컬체인을 통하여 처리 성능을 극적으로 향상시킨 지속 가능한 블록체인 시스템을 제안한다. Based on the above description, the present invention proposes a sustainable blockchain system in which numerous nodes actually participate to form a blockchain for sufficient decentralization, and dramatically improve processing performance through a local chain.

본 발명에 따른 블록체인 시스템에서는 로컬체인을 만들기 위해서 우선 합의 알고리즘이 자원 기반이 아니어야 하며, 비자원 기반의 합의 알고리즘을 만드는 가장 우선 고려해야할 것은 시빌 공격을 어떻게 막을 것인지에 대한 방안에 대한 해답으로, 본 발명에서는 실명 인증을 거쳐 시빌 공격을 막는 것을 전제로 한다.In the blockchain system according to the present invention, in order to create a local chain, the consensus algorithm must not be resource-based first, and the first thing to consider for creating a non-resource-based consensus algorithm is an answer to how to prevent a Sybil attack. In the present invention, it is premised on preventing a civil attack through real name authentication.

본 발명에 따른 블록체인 시스템은, 탈중앙화된 P2P 네트워크 위에서 동작하며, 이때, P2P 네트워크는 부분적으로 파편화가 진행될 수 있지만, 파편화된 지역 네트워크 간의 연결은 계속 유지된다고 가정한다. 또한 50% 이상의 노드가 특정한 악의적인 행위를 위해 공모하지 않으며, 50% 초과의 노드는 자신의 이득을 위해서 행동할 수 있지만, 정책을 위배하지 않는 준성실(semi-honest) 노드라고 가정한다. 모든 노드의 시간은 매우 작은 시간 차이로 동기화 되어 있다고 가정하고, 노드 사이의 모든 메시지는 위조나 수정, 재전송이 불가능하도록 현재 시간을 포함하여 디지털 서명으로 보호가 되어 있다고 가정한다. 또한 노드의 네트워크 아이디는 노드의 아이디로부터 검증받을 수 있는 구조를 가지고 있다고 가정한다.The blockchain system according to the present invention operates on a decentralized P2P network, and at this time, it is assumed that the P2P network may be partially fragmented, but the connection between fragmented local networks is maintained. In addition, it is assumed that more than 50% of nodes do not conspire for specific malicious actions, and more than 50% of nodes can act for their own benefit, but are semi-honest nodes that do not violate policy. It is assumed that the time of all nodes is synchronized with a very small time difference, and all messages between nodes are assumed to be protected with a digital signature including the current time to prevent forgery, modification, and retransmission. In addition, it is assumed that the node's network ID has a structure that can be verified from the node's ID.

도 2는 본 발명의 일 실시예에 따라 그룹 증명을 통해 블록 체인을 생성 및 관리하는 시나리오를 설명하기 위한 순서도이다.2 is a flowchart illustrating a scenario of creating and managing a block chain through group proof according to an embodiment of the present invention.

본 발명에 따르면, 컴퓨팅 디바이스는 블록체인 네트워크에 노드로 참여한다(S210). 본 발명에 따르면, 블록체인 네트워크에 참여하고 싶은 컴퓨팅 디바이스(이하, 노드)는 먼저 실명 인증 절차를 수생한다. 예를 들어, 공개 블록체인임에도 일정한 자격을 갖추어야하는 법인 등만 노드로 참여할 수 있거나, 특정 국가에서만 참여가 가능한 경우, 네트워크의 운영 목적 등에 따라 실명 인증 방법은 달라질 수 있다. According to the present invention, the computing device participates as a node in the blockchain network (S210). According to the present invention, a computing device (hereinafter, a node) that wants to participate in a blockchain network first undergoes a real name authentication procedure. For example, even though it is a public blockchain, only corporations that must have certain qualifications can participate as a node, or if only a specific country can participate, the real name authentication method may vary depending on the operation purpose of the network.

블록체인 네트워크에 참여하는 노드는 실명 인증이 수행된 경우, 노드의 식별 정보(예, 노드의 아이디) 및 트랜젝션 정보(예, 서명키, 공개키 등)를 얻을 수 있다. Nodes participating in the blockchain network can obtain node identification information (e.g., node ID) and transaction information (e.g., signing key, public key, etc.) when real-name authentication is performed.

노드의 식별 정보는, 예를 들어 노드의 아이디와 같이는 노드의 네트워크 아이디 등을 검증하기 위하여 사용될 수 있는 정보를 의미한다.The identification information of the node means information that can be used to verify the network ID of the node, for example, the ID of the node.

서명키는 블록체인 네트워크에서 노드가 트랜잭션(transaction)을 생성할 때 이용되는 노드 특정의 키(key)이다. 공개키는 트랜젝션의 유효성을 확인하기 위하여 누구에게나 공개된 키(key)로서, 인증서(certificate) 형태로 배포된다. 이때 랜덤시드가 같이 배포되며, 랜덤시드 또한 인증서처럼 검증 가능한 형태인 것이 바람직하다.The signing key is a node-specific key used when a node creates a transaction in a blockchain network. The public key is a key that is publicly disclosed to anyone to verify the validity of a transaction, and is distributed in the form of a certificate. At this time, the random seed is distributed together, and it is preferable that the random seed is also verifiable like a certificate.

본 발명에 따른 일 예는, 검증 가능한 랜덤시드는 반드시 신뢰할 수 있는 제삼자의 개입이 필요하므로, 인증서처럼 랜덤시드에 신뢰할 수 있는 제삼자의 서명을 붙일 수 있다. 이를 위해서는 본 발명에 따르면, 랜덤시드는 인증서와 유사한 구조를 갖는 구조체를 가지며, 이는 다른 노드에게 전달하기 위해서는 이용될 수 있다.In an example according to the present invention, since a verifiable random seed necessarily requires the intervention of a trusted third party, a trusted third party's signature may be attached to the random seed like a certificate. To this end, according to the present invention, the random seed has a structure having a structure similar to that of a certificate, which can be used to transmit to other nodes.

본 발명에 따라 랜덤시드를 이용하는 다른 예로서, 신뢰할 수 있는 제삼자의 서명키에 대해서 VRF(verifiable random function)를 수학식 1과 같이 사용할 수 있다. As another example of using a random seed according to the present invention, a verifiable random function (VRF) may be used as shown in Equation 1 for a signature key of a trusted third party.

Figure 112019134119913-pat00001
Figure 112019134119913-pat00001

수학식 1에서, Si는 노드의 랜덤시드이며, pi는 VRF의 증명값, skTTP는 신뢰할 수 있는 제삼자의 서명키이고, pki는 공개키이다.In Equation 1, S i is the random seed of the node, p i is the proof value of VRF, sk TTP is the signature key of a trusted third party, and pk i is the public key.

그러나 VRF를 이용하는 경우에는 신뢰할 수 있는 제삼자가 노드에게 랜덤시드와 증명을 함께 만들어주어야 하고, 다른 노드에게는 인증서와 랜덤시드, 증명을 함께 전송해야 하는 부담이 있다.However, in the case of using VRF, a trusted third party has to make a random seed and a proof to the node, and there is a burden of transmitting the certificate, random seed, and proof to other nodes.

본 발명에 따라 랜덤시드를 이용하는 또 다른 예는, 랜덤시드를 노드의 공개키를 담고 있는 인증서를 이용하여 수학식 2와 같이 계산하는 것이다.Another example of using the random seed according to the present invention is to calculate the random seed as in Equation 2 using a certificate containing the public key of the node.

Figure 112019134119913-pat00002
Figure 112019134119913-pat00002

수학식 2에서, Si는 노드의 랜덤시드이며, pki는 공개키이다. PBKDF2(password-based key derivation function version 2)는 사용자 패스워드를 기반으로 키(key)유도를 하기 위한 대표적인 함수이다. 이는 인증서에 신뢰할 수 있는 제삼자의 서명이 담겨 있고, 그 서명이 안전하다는 가정아래, 제삼자의 서명은 예측할 수 없기 때문에 이를 이용하여 랜덤시드를 생성할 수 있다. 이는 인증서만 있으면 되기 때문에, 따로 랜덤시드를 다른 노드에게 전달하지 않아도 되는 장점이 있습니다.In Equation 2, S i is the random seed of the node, and pk i is the public key. PBKDF2 (password-based key derivation function version 2) is a representative function for deriving a key based on a user password. This is because the signature of a trusted third party is contained in the certificate, and the signature of the third party is unpredictable under the assumption that the signature is secure, so a random seed can be generated using this. This has the advantage of not having to pass a separate random seed to other nodes because only a certificate is required.

따라서, 본 발명에서 이용되는 공개키 인증서는 보안성이 향상된 P2P 통신 프로토콜(예, S/Kademlia)을 사용할 수 있도록 도와줄 수 있다.Accordingly, the public key certificate used in the present invention can help to use a P2P communication protocol (eg, S/Kademlia) with improved security.

블록체인 네트워크에 참여하면, 블록을 생성하거나 관리하려는 경우 노드 그룹의 가치가 산정된다. 블록체인의 노드의 가치는 블록의 높이와 블록체인을 구성하는 노드의 순서에 따라 결정될 수 있다. 블록 높이(block height)란 블록체인 네트워크의 시작을 상징하는 첫번째 블록으로부터 현재 블록까지의 블록이 만들어진 양을 나타내며, 이 수치를 블록 높이로 표현한다. 예를 들어, 0번 블록은 블록체인 네트워크가 최초에 시작될 때 만들어진 블록을 의미한다.When participating in a blockchain network, the value of a group of nodes is calculated when creating or managing blocks. The value of the nodes in the blockchain can be determined according to the height of the block and the order of the nodes constituting the blockchain. The block height represents the amount of blocks made from the first block to the current block, which symbolizes the beginning of the blockchain network, and this number is expressed as the block height. For example, block 0 refers to the block created when the blockchain network was initially started.

이에, 본 발명의 일 예에서는, 현재(current) 블록의 높이 h 에서 갖는 i 번째 노드의 가치 v(i,h) 는 수학식 3과 같이 계산될 수 있다.Accordingly, in an example of the present invention, the value v (i,h) of the i-th node at the height h of the current block may be calculated as in Equation 3.

Figure 112019134119913-pat00003
Figure 112019134119913-pat00003

수학식 3에서, si는 노드의 랜덤시드, idi는 노드의 아이디를 의미하며,

Figure 112019134119913-pat00004
는 가치 측정 함수,
Figure 112019134119913-pat00005
는 참여 빈도 가중치,
Figure 112019134119913-pat00006
는 위험도 평판을 나타낸다.In Equation 3, s i is the random seed of the node, id i is the ID of the node,
Figure 112019134119913-pat00004
Is the value measurement function,
Figure 112019134119913-pat00005
Is the participation frequency weight,
Figure 112019134119913-pat00006
Represents the risk reputation.

가치 측정 함수

Figure 112019134119913-pat00007
는 노드가 갖는 시드 s 로부터 현재 높이 h 로부터 계산되는 무작위 값과 노드의 아이디를 비교하여 계산될 수 있다. 예를 들어, 수학식 4와 같이 계산될 수 있다.Value measurement function
Figure 112019134119913-pat00007
May be calculated by comparing the ID of the node with a random value calculated from the current height h from the seed s of the node. For example, it can be calculated as in Equation 4.

Figure 112019134119913-pat00008
Figure 112019134119913-pat00008

수학식 4에서,

Figure 112019134119913-pat00009
는 해밍 거리(Hamming distance)나 유클리드 거리(Euclidean distance)처럼 기하학적 거리를 계산하는 함수를 의미하며,
Figure 112019134119913-pat00010
는 SHA-256(secure hash algorithm - 256bit)과 같은 암호학적 해시 함수를 의미하는데, 이상적으로는 의사 난수 생성기(pseudo random number generator)를 의미한다. 세로줄( | ) 옆의 변수의 밑 첨자는 비트의 시작 위치, 위 첨자는 비트의 끝 위치를 의미한다. 즉, 랜덤시드와 현재 블록 높이를 의사 난수 생성기등을 통하여 비트의 시작 위치부터 비트의 끝 위치까지에 대응하는 암호학적 해시값을 생성한 후, 노드 식별 정보(예, 노드의 아이디)중 비트의 시작 위치부터 비트의 끝 위치까지에 대응하는 식별값을 추출하여, 기하학적 거리를 계산할 수 있다. 파라미터
Figure 112019134119913-pat00011
는 필요에 따라 적절하게 선택하여 사용하면 되는데, 예를 들어 (3, 64, 16)와 같은 값이 사용될 수 있다.In Equation 4,
Figure 112019134119913-pat00009
Denotes a function that calculates geometric distance, such as Hamming distance or Euclidean distance,
Figure 112019134119913-pat00010
Means a cryptographic hash function such as SHA-256 (secure hash algorithm-256bit), ideally means a pseudo random number generator. The subscript of the variable next to the vertical line (|) means the start position of the bit, and the superscript represents the end position of the bit. That is, after generating a cryptographic hash value corresponding to the bit start position to the end position of the bit through a pseudo-random number generator, etc., the random seed and the current block height are By extracting the identification value corresponding to the start position to the end position of the bit, it is possible to calculate the geometric distance. parameter
Figure 112019134119913-pat00011
If necessary, you can select and use appropriately. For example, values such as (3, 64, 16) can be used.

참여빈도 가중치

Figure 112019134119913-pat00012
는 블록체인 네트워크위 탈중앙화를 위하여 본 발명에서 이용되는 파라미터로, 노드가 최근에 참여하였던 빈도가 많을수록 낮은 값을 갖는 함수이며, 예를 들어, 수학식 5와 같이 계산될 수 있다. t 는 최근 블록의 길이이고
Figure 112019134119913-pat00013
는 h 번째 블록의 그룹 구성원의 집합이다.Participation frequency weight
Figure 112019134119913-pat00012
Is a parameter used in the present invention for decentralization on a blockchain network, and is a function having a lower value as the frequency with which a node recently participated is increased, and can be calculated as, for example, Equation 5. t is the length of the latest block
Figure 112019134119913-pat00013
Is the set of group members in the h-th block.

Figure 112019134119913-pat00014
Figure 112019134119913-pat00014

Figure 112019134119913-pat00015
Figure 112019134119913-pat00015

Figure 112019134119913-pat00016
Figure 112019134119913-pat00016

수학식 5에서

Figure 112019134119913-pat00017
는 최소 1에서 최대 2까지의 값을 갖게 되며, 최근 t 블록에서 지수적으로 증가하는 전체 가중치의 합 대비 최근 블록에 참여한 경우를 제외한 가중치의 합의 비율에 1을 더하여 결정된다. 수학식 5에서, α를 계산하기 위하여 밑을
Figure 112019134119913-pat00018
를 사용하였으나, 1 보다 큰 적합한 실수를 사용하면 되며, 밑이 1에 가까운 경우, 참여 빈도 가중치는 일정 범위에서 균등하게 되고, 크면 클수록 최근 블록에 더 많은 가중치를 두게 된다.In Equation 5
Figure 112019134119913-pat00017
Has a value from a minimum of 1 to a maximum of 2, and is determined by adding 1 to the ratio of the sum of weights excluding the case of participating in the recent block to the sum of the total weights exponentially increasing in the recent t block. In Equation 5, in order to calculate α
Figure 112019134119913-pat00018
Is used, but a suitable real number greater than 1 can be used. If the base is close to 1, the participation frequency weight becomes even within a certain range, and the larger the value, the more weight is placed on the recent block.

위험도 평판

Figure 112019134119913-pat00019
은 블록 높이를 키로 하는 노드 리스트
Figure 112019134119913-pat00020
로부터 획득할 수 있다. 만약 해당 노드 리스트에 노드의 아이디가 들어 있다면 0이 되고, 들어 있지 않다면 항상 가치 측정함수의 값보다 크도록 설정된 임의의 최대 가치와 동일하다. 즉, 노드의 가치
Figure 112019134119913-pat00021
는 가치와 가중치의 곱을 평판 중 더 작은 값을 가지므로 위험도 평판
Figure 112019134119913-pat00022
이 0이면 노드의 가치가 0이 되어, 블록 생성에 참여하기 어렵게 된다. 예를 들어,
Figure 112019134119913-pat00023
는 수학식 6과 같이 나타낼 수 있다.Risk reputation
Figure 112019134119913-pat00019
Is a list of nodes with block height as key
Figure 112019134119913-pat00020
Can be obtained from If the node's ID is included in the node list, it is 0. If it is not, it is always equal to the random maximum value set to be greater than the value of the value measurement function. In other words, the value of the node
Figure 112019134119913-pat00021
Is the product of the value and the weight, whichever is the smaller
Figure 112019134119913-pat00022
If this is 0, the value of the node becomes 0, making it difficult to participate in block generation. E.g,
Figure 112019134119913-pat00023
Can be expressed as in Equation 6.

Figure 112019134119913-pat00024
Figure 112019134119913-pat00024

따라서, 다수의 노드들로 구성된 그룹의 가치는 그룹에 속한 노트들의 가치를 합하여 계산될 수 있으며, 수학식 7과 같이 나타낼 수 있다.Accordingly, the value of the group consisting of a plurality of nodes can be calculated by summing the values of the notes belonging to the group, and can be expressed as in Equation 7.

Figure 112019134119913-pat00025
Figure 112019134119913-pat00025

따라서, 블록체인 네트워크를 구성하는 각 노드 그룹은 블록의 생성에 참여한 노드 리스트를 이용하여 그룹의 가치를 계산될 수 있다. 이 때, 한 그룹에 속하는 그룹 구성원의 수는 모두 동일해야 한다. 만약, 더 많은 노드로부터 그룹을 구성하기 위한 동의 서명을 얻은 경우라고 하더라도 오로지 정해진 수만 포함되어 그룹의 가치가 계산되는 것이 바람직하다.Therefore, each node group constituting the blockchain network can calculate the value of the group by using the list of nodes that participated in the creation of the block. In this case, the number of group members belonging to one group should all be the same. Even in the case of obtaining consent signatures to form a group from more nodes, it is desirable to calculate the value of the group by including only a predetermined number.

블록 체인상에 트랜젝션을 통하여 블록을 생성하려는 노드는, 노드 그룹의 가치에 기반하여 선택된 체인에 블록을 생성할 수 있다. 만약, 여러 그룹이 경쟁하여 블록 체인이 분기하였다면, 다음 블록을 생성하려고 하는 노드는 반드시 하나의 체인을 선택해야 한다. 이는 노드의 자율적인 선택으로 이루어지지만, 다른 노드들의 동의를 받기 위해서는 합리적인 선택을 해야만 할 것이다. 노드는 이전 체인에 포함된 블록들을 생성한 그룹들의 가치를 계산하여, 그 가치가 가장 큰 블록을 선택하는 것이 바람직하다.A node that wants to create a block through a transaction on the blockchain can create a block on the selected chain based on the value of the node group. If the block chain diverges due to several groups competing, the node that wants to generate the next block must select one chain. This is done by the autonomous selection of nodes, but in order to obtain the consent of other nodes, a rational choice must be made. It is preferable that the node calculates the values of the groups that created blocks included in the previous chain and selects the block with the highest value.

그룹의 가치는 이전 그룹 대비 그룹 구성원의 다양성이 확보되었을 때 높아진다. 만약 비슷한 그룹 구성을 가진 그룹에 의해서 지속적으로 블록이 생성한다면 그룹의 가치는 지속적으로 낮아진다.(즉, 참여 빈도 가중치가 낮아짐). 그룹 구성원의 다양성은 해당 블록의 그룹 리더가 연결성이 높은 환경에 놓여 있음을 간접적으로 증명하게 되며, 이는 다시 자신이 처한 네트워크 환경이 나쁘지 않다면, 자신이 생성할 블록이 생존할 가능성이 높음을 의미한다.The value of the group increases when the diversity of group members is secured compared to the previous group. If blocks are continuously generated by groups with similar group composition, the value of the group is continuously lowered (i.e., the weight of participation frequency decreases). The diversity of group members indirectly proves that the group leader of the block is in an environment with high connectivity, which again means that if the network environment in which one is located is not bad, the block to be created is likely to survive. .

블록체인 네트워크는, 그룹 증명을 생성하기 위하여, 노드 가치에 기반하여 복수의 노드들로 구성된 그룹을 구성하고, P2P 네트워크에서 블록체인 상에 블록을 생성/연결하기 위한 노드(이하, 리더 노드)를 설정한다(S220). Blockchain network constructs a group consisting of a plurality of nodes based on the node value in order to generate group proof, and establishes a node (hereinafter, a leader node) for creating/connecting blocks on the blockchain in a P2P network. Set (S220).

본 발명에 따른 블록체인 네트워크에서는, 완전 자율 경쟁(예, 비트코인, 이더리움)을 통하여 블록을 생성하지는 않으며, 정해진 시간 길이로 분할된 타임 슬롯에 하나의 블록이 생성된다. 즉, 하나의 타임 슬롯에는 그룹을 생성할 수 있는 노드가 복수 존재할 수 있으며, 블록 생성자는 자신이 정한 트랜잭션 처리 순서를 확정하기 위하여 주변 노드들의 협력/동의를 구할 수 있다.In the blockchain network according to the present invention, blocks are not created through completely autonomous competition (eg, Bitcoin, Ethereum), and one block is created in a time slot divided by a predetermined length of time. That is, there may be a plurality of nodes capable of creating a group in one time slot, and a block creator may seek cooperation/consent of neighboring nodes to determine the transaction processing order determined by the block producer.

본 발명에서는, 블록 생성자와 이에 대한 협력을 한 노드를 이하에서는 “그룹”이라고 정의하며, 하나의 타임 슬롯에서 여러 그룹이 경쟁하는 것을 가정한다.In the present invention, a node that has cooperated with a block producer is hereinafter defined as a “group”, and it is assumed that several groups compete in one time slot.

경쟁하는 체인이 있을 때, 블록 생성자는 설명한 바와 같이 생존 가능성이 높은 체인을 선택하는 것이 바람직하며, 이를 위하여 본 발명에 따른 블록체인 네트워크에서는 각 타임슬롯에서 무작위로 결정되는 노드의 가치의 합을 이용하여, 블록의 생존 가능성에 대한 간접적인 지표를 제공하는 방안은 상술한 바와 같다.When there is a competing chain, it is desirable for the block producer to select a chain with a high probability of survival as described.To this end, in the blockchain network according to the present invention, the sum of the values of the nodes randomly determined in each timeslot is used. Thus, a method of providing an indirect index on the viability of a block is as described above.

그러나, P2P 네트워크에서 리더 노드를 선출하기 위해서는 전체 네트워크의 노드들이 참여하고, 메시지들이 전체 네트워크로 전달되기 때문에, 메시지의 수가 많아지게 되는 문제점이 있다.However, in order to select a leader node in a P2P network, nodes of the entire network participate and messages are transmitted to the entire network, so there is a problem that the number of messages increases.

따라서, 본 발명에서는 복수의 노드들로 구성된 그룹의 리더 노드를 선정하기 전에, 네트워크는 노드 체인(예, DAG 구조)를 구성할 수 있다. 예를 들어, 노드의 가치가 높은 노드에서 낮은 노드로 그래프의 방향이 결정된다. 만약 노드의 가치가 동일하다면, 노드의 아이디를 수로 환산하였을 때 더 작은 노드로 그래프의 방향을 결정한다. Accordingly, in the present invention, before selecting a leader node of a group consisting of a plurality of nodes, the network may configure a node chain (eg, DAG structure). For example, the direction of the graph is determined from a node with a high value to a node with a low value. If the values of the nodes are the same, the direction of the graph is determined with a smaller node when the node ID is converted to a number.

본 발명에서의 노드 체인은 소스(source)로부터 싱크(sink)까지 연결되어지는 다수의 노드들로 구성된 리스트로 정의된다. 들어오는 연결(in-edge)이 없는 노드가 소스(source)가 되며, 나가는 연결(out-edge)이 없는 노드가 싱크(sink)가 된다고 정의한다. 네트워크에는 다수의 소스와 싱크가 존재할 수 있으며, 노드의 가치는 타임 슬롯에 따라 바뀌게 되므로, 매 슬롯마다 노드 체인은 바뀌게 된다.The node chain in the present invention is defined as a list consisting of a plurality of nodes connected from a source to a sink. It is defined that a node without an incoming connection (in-edge) becomes a source, and a node without an outgoing connection (out-edge) becomes a sink. There can be multiple sources and sinks in the network, and since the value of the node changes according to the time slot, the node chain changes every slot.

그룹의 리더 노드에 대한 선정 절차가 시작되면, 소스 노드들은 자신의 노드 가치를 담은 리더 요청 메시지를 주변 노드(즉, out edge node)들에게 보낸다. 만약 자신의 가치가 충분히 높지 않거나 리더 노드가 될 생각이 없는 노드는 리더 포기 메시지를 대신 보낼 수 있다. When the selection procedure for the group's leader node starts, source nodes send a leader request message containing their own node values to neighboring nodes (ie, out edge nodes). If its value is not high enough or does not intend to become a leader node, it can send a leader abandon message instead.

싱크나 소스가 아닌 중간 노드들은 자신의 모든 들어오는 연결(in-edge)로부터 리더 요청 메시지나 리더 포기 메시지를 수신하면, 그 중 가장 가치가 높은 노드의 리더 요청 메시지를 모든 나가는 연결로 보낸다. 만약 어떠한 리더 요청 메시지도 수신하지 못하였다면, 이 노드는 자신의 가치가 충분히 높고 그룹 리더가 될 의사가 있다면 자신의 아이디를 담아 리더 요청 메시지를 나가는 연결로 보내거나, 리더 포기 메시지를 보낼 수 있다.When intermediate nodes that are not sink or source receive a reader request message or a reader abandon message from all of their incoming connections (in-edge), they send the reader request message of the node with the highest value to all outgoing connections. If no leader request message is received, this node can send a leader request message with its ID to the outgoing connection or send a leader abandonment message if its value is high enough and has a willingness to become a group leader.

만약, 노드가 이 과정에서 서로 다른 소스 노드의 리더 요청 메시지를 들어오는 연결로부터 받았다면, 가치가 더 작은 소스 노드의 리더 요청 메시지가 들어온 연결에 리더 요청 메시지에 관한 정보들을 담은 거절 메시지를 전송한다.If a node receives a reader request message from a different source node from an incoming connection during this process, a rejection message containing information about the reader request message is transmitted to the connection from which the reader request message of the source node with a lower value is received.

나가는 연결로부터 거절 메시지를 받은 노드는 들어오는 연결에 거절 메시지를 전달한다. 거절을 한번 보낸 들어오는 연결에는 다시 거절을 보내지 않는다.The node receiving the rejection message from the outgoing connection forwards the rejection message to the incoming connection. Rejections are not sent again for incoming connections that have sent a rejection once.

최종적으로 만약 소스(또는 리더 요청 메시지를 발행한 노드)가 어떠한 거절 메시지도 수신 받지 못했다면, 해당 노드가 그룹의 리더 노드로 설정된다.Finally, if the source (or the node that issued the reader request message) does not receive any rejection message, the node is set as the leader node of the group.

따라서, 본 발명에 따른 그룹의 리더 노드 설정 과정은 복수의 그룹 리더가 존재할 수 있다. 즉, 모든 소스가 그룹 리더를 포기할 수도 있고, 자신의 소스가 그룹 리더의 자리를 포기했을 경우 어떠한 중간 노드는 그룹 리더가 되려고 할 수도 있기 때문이다. 또한 중간 메시지가 의도하지 않게 누락되는 일 등이 발생할 수 있는데, 이 경우 그룹 리더 선출이 완료되지 않기 때문에 복수의 소스 노드가 그룹의 리더 노드가 될 수도 있다.Accordingly, in the process of setting a group leader node according to the present invention, a plurality of group leaders may exist. That is, because all sources may give up the group leader, and some intermediate nodes may try to become the group leader if their sources give up the position of the group leader. In addition, an intermediate message may be unintentionally omitted. In this case, since the group leader election is not completed, a plurality of source nodes may become group leader nodes.

따라서, 자신의 가치가 일정 수준 이상인 노드는 그룹의 리더 노드가 되기 위한 의사 표현을 주변 노드들에게 할 수 있으며, 이 때, 주어진 시간 e 안에 자신보다 더 높은 가치를 가진 노드가 그룹 리더가 되고자 하는 의사 표현을 하지 않으면, 자신이 노드 체인을 구성하는 그룹의 리더 노드로 설정된다. 여기서, 주어진 시간 e는 타임 슬롯보다 작도록 미리 설정된 시간 단위로서, 모든 소스 노드로부터 모든 싱크 노드까지 메시지가 전송될 수 있는 시간 이상으로 설정되는 것이 바람직하다.Therefore, a node whose value is higher than a certain level can express its intention to become the leader node of the group to neighboring nodes, and in this case, a node with a higher value than itself wants to become the group leader within a given time e. If you don't express your opinion, you are set up as the leader node of the group that makes up the node chain. Here, the given time e is a time unit set in advance to be smaller than the time slot, and is preferably set to be greater than or equal to a time during which a message can be transmitted from all source nodes to all sink nodes.

블록체인 네트워크는 S220단계에서 구성된 노드 체인에 기반하여, 트랜젝션의 생성 및 처리를 수행한다(S230). The blockchain network generates and processes a transaction based on the node chain configured in step S220 (S230).

즉, 그룹의 크기를

Figure 112019134119913-pat00026
라고 할 때, 그룹 리더는 자신이 모은 트랜잭션의 처리 순서와 연결할 이전 블록을 정하여 이를 자신이 알고 있는 주변 노드 중 노드의 가치가 높은 g개 이상의 노드들에게 동의 요청(agreement request)를 송신한다. 이때, 트랜젝션 처리는, 해시 체인의 연결 상태에 따라 처리순서가 결정됨이 바람직하다.In other words, the size of the group
Figure 112019134119913-pat00026
In this case, the group leader determines the processing order of the transaction collected by him and the previous block to be connected, and sends an agreement request to at least g nodes with high node value among neighboring nodes that he knows about. In this case, it is preferable that the order of transaction processing is determined according to the connection state of the hash chain.

이에 따라 트랜잭션의 처리에 대한 동의 요청을 받은 노드들은 트랜잭션 및 트랜잭션 처리 순서, 이전 블록등에 대한 정보를 확인하여 특별한 이상이 없고, 자신이 이미 다른 노드들에게 동의 요청에 응답하지 않았다면, 동의(agreement)를 노드 체인을 구성하는 그룹의 리더 노드에게 전송한다.Accordingly, nodes that have received a request for consent for transaction processing check the information on the transaction, transaction processing order, and previous block, and there is no particular problem, and if they have not already responded to the consent request to other nodes, they agree (agreement). Is transmitted to the leader node of the group constituting the node chain.

리더 노드는 최종적으로 블록에 그룹이 생성한 디지털 서명을 첨부하여 블록을 생성한다(S240). 즉, 리더 노드는 g개의 동의를 모아 그룹의 증명을 포함하는 블록을 생성한다. 이때 생성된 블록은 블록체인 네트워크상의 모든 노드들에게 다음 타임 슬롯의 e 시간까지 배포가 완료되도록 설정될 수 있다. 즉, 노드 체인의 리더 노드로 설정되기 위한 시간 단위는 적어도 모든 소스 노드로부터 모든 싱크 노드까지 메시지가 전송될 수 있는 시간으로 볼 수 있기 때문이다.The leader node finally generates a block by attaching the digital signature generated by the group to the block (S240). That is, the leader node generates a block containing the group's proof by collecting g agreements. At this time, the generated block can be set to complete distribution to all nodes on the blockchain network by e time of the next time slot. That is, the time unit for setting as the leader node of the node chain can be viewed as a time during which a message can be transmitted from at least all source nodes to all sink nodes.

도 3(a) 및 3(b)는 본 발명의 일 실시예에 따른 블록체인 상의 그룹의 리더 노드를 선출하는 시나리오를 설명하기 위한 참고도이다. 3(a) and 3(b) are reference diagrams for explaining a scenario in which a leader node of a group on a blockchain is elected according to an embodiment of the present invention.

도 3(a)를 참조하여 그룹의 리더 노드가 되는 경우를 설명하면, 들어오는 연결(in-edge)가 없는 노드인 노드 310, 노드 320, 노드 330은 소스 노드가 되어, 자신의 노드 가치에 기반한 메시지를 나가는 연결이 있는 아웃-엣지(out-edge) 노드에 전송한다. 예를 들어, 노드 310은 자신의 노드 식별정보인 A와 자신의 노드 가치인 40을 포함하여 리더 요청 메시지 'E_LEADER(A:40)'를 아웃-엣지 노드로 전송하며, 노드 330 역시 노드 식별정보인 C와 자신의 노드 가치인 20을 포함하는 리더 요청 메시지'E_LEADER(C:20)'를 아웃-엣지 노드로 전송한다. 이때, 노드 320은 노드 가치가 리더 노드로 선정될 수 있는 수준일지라도 리더 포기 메시지인 'E_GIVEUP(B:30)'을 송신할 수 있다.Referring to FIG. 3(a), the case of becoming the leader node of the group will be described. Nodes 310, 320, and 330, which are nodes without an incoming connection (in-edge), become source nodes, and are based on their own node value. Sends a message to an out-edge node with an outgoing connection. For example, node 310 transmits a reader request message'E_LEADER(A:40)' including its node identification information A and its node value 40 to the out-edge node, and node 330 also sends node identification information. Sends a reader request message'E_LEADER(C:20)' including C and its node value of 20 to the out-edge node. At this time, the node 320 may transmit the leader abandon message'E_GIVEUP(B:30)' even though the node value is at a level at which the node value can be selected as the leader node.

이에 중간 노드인 노드 340은, 'E_LEADER(A:40)'와 'E_GIVEUP(B:30)'을 수신하며, 이 중 노드의 가치가 높은 'E_LEADER(A:40)'를 선택하여 노드 340과 연결된 아웃-엣지(out-edge) 노드로 송신한다.Accordingly, node 340, which is an intermediate node, receives'E_LEADER(A:40)' and'E_GIVEUP(B:30)', and selects'E_LEADER(A:40)', which has the high value of the node, and It transmits to the connected out-edge node.

그러나, 중간 노드인 노드 350은, 'E_LEADER(C:20)'와 'E_GIVEUP(B:30)' 중에서 B의 경우에는 리더 포기 메시지를 송신하였으므로, 노드 리더 의사가 존재하는 'E_LEADER(C:20)'를 선택하여 노드 350과 연결된 아웃-엣지(out-edge) 노드로 송신한다.However, node 350, which is an intermediate node, transmits a leader abandon message in case of B among'E_LEADER(C:20)' and'E_GIVEUP(B:30)'. )'to transmit to the out-edge node connected to node 350.

노드 360은 'E_LEADER(A:40)'와 'E_LEADER(C:20)'를 수신하나, 노드의 가치가 높은 A라는 노드 아이디를 가지는 노드 310을 소스 노드로 선정한다. 노드 360은 나가는 연결이 없는 싱크 노드이므로, 'E_LEADER(A:40)'을 송신하지 않으나, 'E_LEADER(C:20)'에 대한 거절 메시지를 노드 350으로 송신할 필요가 있다.Node 360 receives'E_LEADER(A:40)' and'E_LEADER(C:20)', but selects node 310 with a node ID of A, which has a high node value, as the source node. Since node 360 is a sink node with no outgoing connection, it does not transmit'E_LEADER(A:40)', but needs to transmit a rejection message for'E_LEADER(C:20)' to node 350.

도 3(b)를 참조하여 거절 메시지가 전파되는 시나리오를 설명하면, 노드 360은 자신에게 들어오는 연결인 노드 350에게 소스 노드의 노드 아이디와 노드 가치를 포함하는 거절 메시지 'E_REJECT(A:40, C:20)'을 전송하며, 노드 350은 노드 330으로 'E_REJECT(A:40, C:20)'을 전송한다.Referring to FIG. 3(b) to explain a scenario in which the rejection message is propagated, the node 360 sends the rejection message'E_REJECT(A:40, C) including the node ID and the node value of the source node to the node 350, which is an incoming connection to itself. :20)', and node 350 sends'E_REJECT(A:40, C:20)' to node 330.

이에 따라, 노드 310가 리더 노드로 설정된 노드 체인의 그룹이 생성된다.Accordingly, a group of node chains in which node 310 is set as a leader node is created.

도 4는 본 발명의 일 실시예에 따라 그룹 증명을 위한 동의를 획득하는 경우를 설명하기 위한 참고도이다. 도 4에 따른 시나리오 상에서 5개의 역할을 가지는 노드가 존재할 수 있다.4 is a reference diagram for explaining a case of obtaining consent for group authentication according to an embodiment of the present invention. Nodes having five roles may exist in the scenario according to FIG. 4.

그룹 리더(group leader, 410)는 리더 요청 메시지를 전송하고, 이에 대한 거절 메시지를 수신하지 않음으로써, 그룹의 리더 노드로 설정된 노드를 나타낸다.The group leader 410 transmits a leader request message and does not receive a reject message for this, thereby indicating a node set as a leader node of the group.

경쟁자(competiter, 420)는 그룹 리더가 되기 위하여 리더 요청 메시지를 전송하였으나, 이에 대한 거절 메시지를 수신함으로써, 리더 노드로 설정되지 않은 노드를 나타낸다.A competitor 420 transmits a leader request message to become a group leader, but receives a reject message for this, indicating a node that is not set as a leader node.

그룹 멤버(group member, 430)는 그룹 리더로부터 리더 요청 메시지를 수신함으로써, 410을 리더 노드로 설정한 협력 노드로서, 노드 체인을 구성한다.The group member 430 is a cooperative node that has set 410 as a leader node by receiving a leader request message from the group leader, and constitutes a node chain.

액티브 노드(active node, 440)는 리더 요청 메시지를 받았으나, 어떠한 이유에서 410을 리더 노드로 설정하지 않은 노드로 정의된다. 즉, 본 발명에서는 복수의 체인이 설정될 수 있기 때문에, 그룹 멤버는 아니더라도 생성된 블록에 대한 배포가 필요한 노드가 존재한다.An active node (440) is defined as a node that has received a reader request message, but has not set 410 as a leader node for some reason. That is, in the present invention, since a plurality of chains can be set, there are nodes that require distribution of the generated blocks even if they are not group members.

데드 노드(dead node, 450)는 블록체인 네트워크 상에 존재하나, 메시지나 블록이 송신되지 못하는 노드로 정의한다.A dead node (450) is defined as a node that exists on the blockchain network, but cannot send messages or blocks.

그룹 리더 410과 경쟁자 420은 타임 슬롯이 시작되면, 그룹을 구성하기 위하여 리더 요청 메시지를 송신한다(S401). 이때, 리더 요청 메시지는 그룹 멤버 430, 액티브 노드 440에게는 전송되나, 데드 노드 450에는 리더 요청 메시지가 전송되지 못하거나 전송되더라도 이와 관련된 동작이 수행되지 않는다.When the time slot starts, the group leader 410 and the competitor 420 transmit a leader request message to form a group (S401). At this time, the leader request message is transmitted to the group member 430 and the active node 440, but the leader request message is not transmitted to the dead node 450, or even if it is transmitted, the related operation is not performed.

그룹 멤버 430과 액티브 노드 440은, 그룹 리더 410과 경쟁자 420으로부터 리더 요청 메시지를 수신한 경우, 그룹 리더 410의 노드 가치가 더 높으므로, 경쟁자 420에게 거절 메시지를 송신한다.(S403). 경쟁자 420은 거절 메시지를 수신하였으므로, 그룹의 멤버로서 협력 노드로 역할을 수행하며, 그룹 리더 410은 거절 메시지를 미리 설정된 시간 단위 e 내에 받지 않았으므로 리더 노드로 설정된다.When the group member 430 and the active node 440 receive the leader request message from the group leader 410 and the competitor 420, since the node value of the group leader 410 is higher, a reject message is transmitted to the competitor 420 (S403). Since the competitor 420 receives the rejection message, it plays a role as a cooperating node as a member of the group, and the group leader 410 is set as the leader node because it does not receive the rejection message within a preset time unit e.

그룹 리더 410은 트랜잭션의 생성 및 처리를 위하여 그룹 멤버인 420, 430에게 동의 요청(agreement request)를 전송하나, 거절 메시지를 송신하지 않았더라도 어떤 이유에서 그룹 멤버로 설정되지 않은 액티브 노드 440에게는 동의 요청을 전송하지 않는다. 그룹 멤버인 420, 430은 트랜잭션에 대하여 정보를 확인하고 그룹 리더 410에게 동의(agreement)를 전송한다.Group leader 410 transmits an agreement request to group members 420 and 430 to create and process transactions, but request consent to active node 440 that is not set as a group member for some reason even if it does not send a rejection message. Do not transmit. Group members 420 and 430 check information on the transaction and transmit an agreement to the group leader 410.

그룹 리더 410은 그룹 멤버인 420, 430에게 동의를 획득한 경우, 트랜젝션에 대하여 그룹 증명(group proof)를 포함하는 디지털 서명을 첨부한 블록을 생성하고 배포한다(S407). When the group leader 410 obtains consent from the group members 420 and 430, the group leader 410 generates and distributes a block attached with a digital signature including a group proof for the transaction (S407).

생성된 블록은 노드 체인을 구성하는 그룹의 멤버인 420, 430뿐만 아니라, 블록체인 네트워크상의 모든 노드에게 배포될 필요가 있으므로 440에게까지 배포되어야 하며, 이는 다음 타임 슬롯의 시작 시점부터 미리 설정된 시간 단위 e 가 경과하기 전까지 배포가 완료된다.The created block needs to be distributed to not only 420, 430, which are members of the group constituting the node chain, but also to all nodes on the blockchain network, so it must be distributed to 440, which is a preset time unit from the start of the next time slot. Distribution is completed until e elapses.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 표시 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 중앙 처리 표시 장치(Central Processing Unit; CPU), 그래픽 프로세싱 유닛(Graphics Processing Unit; GPU), ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로 프로세서, 주문형 집적 회로(Application Specific Integrated Circuits; ASICS), 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 표시 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. The embodiments described above may be implemented as a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the display devices, methods, and components described in the embodiments include, for example, a processor, a controller, a central processing unit (CPU), a graphics processing unit (GPU), and ALU (arithmetic logic unit), digital signal processor (digital signal processor), microcomputer, field programmable gate array (FPGA), programmable logic unit (PLU), microprocessor, Application Specific Integrated Circuits (ASICS), or It may be implemented using one or more general purpose computers or special purpose computers, such as any other display device capable of executing and responding to instructions.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 표시 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 표시 장치는 실시예의 입력을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware display device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The above-described hardware display device may be configured to operate as one or more software modules to perform an input of an embodiment, and vice versa.

이상과 같이 비록 한정된 도면에 의해 실시예들이 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 표시 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.As described above, although the embodiments have been described by the limited drawings, various modifications and variations are possible from the above description to those of ordinary skill in the art. For example, the described techniques are performed in a different order from the described method, and/or components such as the described system, structure, display device, circuit, etc. are combined or combined in a form different from the described method, or have different configurations. Appropriate results can be achieved even if substituted or substituted by elements or equivalents. Therefore, other implementations, other embodiments, and those equivalent to the claims also fall within the scope of the claims to be described later.

상술한 바와 같은 블록체인 네트워크 구성 방법 및 장치는 다양한 네트워크 산업 분야에 적용하는 것이 가능하다.Blockchain network configuration method and apparatus as described above can be applied to various network industry fields.

Claims (6)

P2P 네트워크(peer to peer network) 기반의 블록체인 네트워크에 대한 그룹 증명 생성 방법에 있어서,
상기 블록체인 네트워크 상의 블록 높이(block height)에 따른 노드 가치에 기반하여, 제 1 노드가 복수의 노드들로 구성된 노드 체인을 생성하는 단계;
상기 노드 체인을 구성하는 그룹의 제 2 노드들에게, 상기 제 1 노드가 트랜젝션(transaction) 처리를 위한 동의 요청(agreement request)를 송신하는 단계; 및
상기 제 1 노드가 상기 제 2 노드들로부터 상기 동의 요청에 대응하는 동의를 획득한 경우, 상기 제 1 노드가 상기 트랜젝션에 대한 상기 그룹의 증명(proof)을 포함하는 블록을 생성하는 단계를 포함하고,
상기 노드 가치는, 다음의 수학식을 통해 가치 측정 함수에 참여빈도 가중치를 곱한 값과 위험도 평판 중 작은 값으로 결정되는
Figure 112020117296046-pat00032

그룹 증명 생성 방법.
Figure 112020117296046-pat00033
: 블록의 높이 h 에서 갖는 i 번째 노드 가치
Figure 112020117296046-pat00034
: 가치 측정 함수,
Figure 112020117296046-pat00035
: 참여빈도 가중치,
Figure 112020117296046-pat00036
: 위험도 평판
In the method of generating group proof for a blockchain network based on a peer to peer network,
Generating a node chain composed of a plurality of nodes by a first node based on a node value according to a block height on the block chain network;
Transmitting, by the first node, an agreement request for processing a transaction to second nodes of a group constituting the node chain; And
When the first node obtains consent corresponding to the consent request from the second nodes, the first node generating a block including a proof of the group for the transaction, and ,
The node value is determined as a smaller value among a value obtained by multiplying a value measurement function by a participation frequency weight and a risk reputation through the following equation.
Figure 112020117296046-pat00032

How to create a group proof.
Figure 112020117296046-pat00033
: The value of the i-th node at the block height h
Figure 112020117296046-pat00034
: Value measurement function,
Figure 112020117296046-pat00035
: Participation frequency weight,
Figure 112020117296046-pat00036
: Risk reputation
제 1 항에 있어서,
상기 노드 체인은,
상기 블록을 생성하기 위한 타임 슬롯(time slot)마다, 상기 노드 가치에 기반하여 재구성되는 것을 특징으로 하는,
그룹 증명 생성 방법.
The method of claim 1,
The node chain,
For each time slot for generating the block, it characterized in that it is reconstructed based on the node value,
How to create a group proof.
제 2 항에 있어서,
상기 노드 체인을 생성하는 단계는,
상기 제 1 노드가 상기 제 1 노드의 노드 가치에 기반하여, 상기 그룹의 리더 요청 메시지 혹은 리더 포기 메시지를, 상기 제 1 노드와 연결된 적어도 하나의 아웃-엣지(out-edge) 노드에게 전송하는 단계; 및
상기 제 1 노드가, 상기 타임 슬롯보다 작도록 미리 설정된 시간 단위 내에, 상기 리더 요청 메시지에 반대하는 거절 메시지를 수신하지 않는 경우, 상기 그룹의 리더 노드로 설정되는 단계를 포함하는,
그룹 증명 생성 방법.
The method of claim 2,
The step of creating the node chain,
Transmitting, by the first node, a leader request message or a leader abandon message of the group to at least one out-edge node connected to the first node, based on the node value of the first node ; And
In the case where the first node does not receive a rejection message opposed to the leader request message within a preset time unit to be smaller than the time slot, setting the first node as a leader node of the group,
How to create a group proof.
제 3 항에 있어서,
상기 제 2 노드들은,
상기 동의 요청을 수신한 경우, 상기 타임 슬롯 내에서 이미 동의 요청에 응답하지 않은 경우에 한하여, 상기 트랜젝션 처리를 위한 처리 순서 및 상기 생성되는 블록과 연결될 이전 블록(previous block)에 기반하여 결정된 동의를 상기 제 1 노드로 전송하도록 구성된 것을 특징으로 하는,
그룹 증명 생성 방법.
The method of claim 3,
The second nodes,
When the consent request is received, the consent determined based on the processing order for the transaction processing and a previous block to be connected to the generated block is provided only when the consent request is not already responded within the time slot. Characterized in that it is configured to transmit to the first node,
How to create a group proof.
제 3 항에 있어서,
상기 블록은,
상기 타임 슬롯의 다음 타임 슬롯(next time slot)의 시작 시점으로부터 상기 미리 설정된 시간 단위가 경과하기 전에, 배포가 완료되도록 설정되는 것을 특징으로 하는,
그룹 증명 생성 방법.
The method of claim 3,
The block,
Before the preset time unit elapses from the start time of the next time slot of the time slot, the distribution is set to be completed,
How to create a group proof.
제 2 항에 있어서,
상기 노드 체인은,
DAG(Directed Acyclic Graph) 구조를 가지는 것을 특징으로 하는,
그룹 증명 생성 방법.
The method of claim 2,
The node chain,
Characterized in that it has a DAG (Directed Acyclic Graph) structure,
How to create a group proof.
KR1020190175119A 2019-12-26 2019-12-26 Method of generating group proof for efficient transaction on blockchain network KR102230471B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190175119A KR102230471B1 (en) 2019-12-26 2019-12-26 Method of generating group proof for efficient transaction on blockchain network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190175119A KR102230471B1 (en) 2019-12-26 2019-12-26 Method of generating group proof for efficient transaction on blockchain network

Publications (1)

Publication Number Publication Date
KR102230471B1 true KR102230471B1 (en) 2021-03-23

Family

ID=75223560

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190175119A KR102230471B1 (en) 2019-12-26 2019-12-26 Method of generating group proof for efficient transaction on blockchain network

Country Status (1)

Country Link
KR (1) KR102230471B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113506104A (en) * 2021-05-07 2021-10-15 杭州宇链科技有限公司 Software and hardware combined signature generation and verification method and system
CN114154994A (en) * 2021-10-29 2022-03-08 海南火链科技有限公司 Super node determination method and device based on block chain and storage medium
CN114422526A (en) * 2021-12-31 2022-04-29 支付宝(杭州)信息技术有限公司 Block synchronization method and device, electronic equipment and storage medium
WO2022215862A1 (en) * 2021-04-05 2022-10-13 주식회사 헤세그 Method for determining on-chain governance of blockchain system
WO2023177136A1 (en) * 2022-03-14 2023-09-21 계명대학교 산학협력단 Blockchain data storage method and storage management device for providing service

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190068042A (en) * 2017-12-08 2019-06-18 한국전자통신연구원 Method and apparatus for generating blocks in node on a block-chain network
KR20190068799A (en) * 2017-12-11 2019-06-19 한국전자통신연구원 Method and apparatus for performing hierarchically agreement based on service zone
KR20190079517A (en) * 2017-12-13 2019-07-05 서강대학교산학협력단 Method for searching using data structure supporting multiple search in blockchain based IoT environment, and apparatus thereof
KR20190136245A (en) * 2018-05-30 2019-12-10 한국과학기술연구원 Method for managing content based on blockchain and system performing the method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190068042A (en) * 2017-12-08 2019-06-18 한국전자통신연구원 Method and apparatus for generating blocks in node on a block-chain network
KR20190068799A (en) * 2017-12-11 2019-06-19 한국전자통신연구원 Method and apparatus for performing hierarchically agreement based on service zone
KR20190079517A (en) * 2017-12-13 2019-07-05 서강대학교산학협력단 Method for searching using data structure supporting multiple search in blockchain based IoT environment, and apparatus thereof
KR20190136245A (en) * 2018-05-30 2019-12-10 한국과학기술연구원 Method for managing content based on blockchain and system performing the method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022215862A1 (en) * 2021-04-05 2022-10-13 주식회사 헤세그 Method for determining on-chain governance of blockchain system
CN113506104A (en) * 2021-05-07 2021-10-15 杭州宇链科技有限公司 Software and hardware combined signature generation and verification method and system
CN113506104B (en) * 2021-05-07 2024-03-01 杭州宇链科技有限公司 Signature generation and verification modes and system combining software and hardware
CN114154994A (en) * 2021-10-29 2022-03-08 海南火链科技有限公司 Super node determination method and device based on block chain and storage medium
CN114422526A (en) * 2021-12-31 2022-04-29 支付宝(杭州)信息技术有限公司 Block synchronization method and device, electronic equipment and storage medium
CN114422526B (en) * 2021-12-31 2024-03-15 支付宝(杭州)信息技术有限公司 Block synchronization method and device, electronic equipment and storage medium
WO2023177136A1 (en) * 2022-03-14 2023-09-21 계명대학교 산학협력단 Blockchain data storage method and storage management device for providing service

Similar Documents

Publication Publication Date Title
KR102230471B1 (en) Method of generating group proof for efficient transaction on blockchain network
Conti et al. A survey on security and privacy issues of bitcoin
US20230171098A1 (en) Computer-implemented system and method for time release encryption over a blockchain network
Ruffing et al. P2P mixing and unlinkable bitcoin transactions
Luu et al. Scp: A computationally-scalable byzantine consensus protocol for blockchains
CN109842606A (en) Block chain common recognition algorithm and system based on consistency hash algorithm
EP4210271A1 (en) Credential generation and distribution method and system for a blockchain network
KR20200032449A (en) A method for establishing agreement between nodes in a Blockchain network and a Blockchain system
CN109741068B (en) Online banking cross-row signing method, device and system
Conti et al. Blockchain trilemma solver algorand has dilemma over undecidable messages
Zhidanov et al. Blockchain technology for smartphones and constrained IoT devices: A future perspective and implementation
Chen et al. Blockchain-based key management scheme in fog-enabled IoT systems
CN111371905A (en) Block chain layered consensus proving system structure and method based on cloud computing
Biryukov et al. Guru: Universal reputation module for distributed consensus protocols
KR102182142B1 (en) Method for configuring a blockchain network based on weight value for improving reliability and a device therefor
Le et al. A lightweight block validation method for resource-constrained iot devices in blockchain-based applications
Sallal et al. Security and performance evaluation of master node protocol based reputation blockchain in the bitcoin network
CN114143021B (en) News information credit score system based on block chain
Li et al. Three-dimensional tradeoffs for consensus algorithms: A review
CN113452747B (en) Extensible and safe consensus method, system, storage medium and intelligent terminal
WO2020215269A1 (en) Method and apparatus for distributed ledger
Anupama et al. Analysis of the consensus protocols used in blockchain networks–an overview
Bashar et al. Accord: A scalable multileader consensus protocol for healthcare blockchain
CN112231414B (en) Data synchronization method and device of block chain system, readable medium and electronic equipment
Tang et al. Hedera: a permissionless and scalable hybrid blockchain consensus algorithm in multi-access edge computing for iot

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant