KR20210064803A - Leaderless block-chain consensus method and device - Google Patents

Leaderless block-chain consensus method and device Download PDF

Info

Publication number
KR20210064803A
KR20210064803A KR1020190153426A KR20190153426A KR20210064803A KR 20210064803 A KR20210064803 A KR 20210064803A KR 1020190153426 A KR1020190153426 A KR 1020190153426A KR 20190153426 A KR20190153426 A KR 20190153426A KR 20210064803 A KR20210064803 A KR 20210064803A
Authority
KR
South Korea
Prior art keywords
block
node
signature
random value
valid
Prior art date
Application number
KR1020190153426A
Other languages
Korean (ko)
Other versions
KR102372422B1 (en
Inventor
이춘화
임수양
산티아고 롤던 카를로스
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to KR1020190153426A priority Critical patent/KR102372422B1/en
Priority to PCT/KR2020/014398 priority patent/WO2021107408A1/en
Publication of KR20210064803A publication Critical patent/KR20210064803A/en
Application granted granted Critical
Publication of KR102372422B1 publication Critical patent/KR102372422B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • H04L2209/38

Landscapes

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

Abstract

A leaderless blockchain consensus method and a device thereof are disclosed. The leaderless blockchain consensus method comprises the following steps of: (a) calculating a random value for a current round; (b) selecting a block proposal node by using the calculated random value; (c) receiving a block generated from the block proposal node; and (d) verifying the received block and, if valid, adding a signature to a header of the block, and transmitting only block header information, to which the signature is added, to another node.

Description

리더가 없는 블록 체인 합의 방법 및 그 장치{Leaderless block-chain consensus method and device}Leaderless block-chain consensus method and device

본 발명은 리더가 없는 블록 체인 합의 방법 및 그 장치에 관한 것이다. The present invention relates to a leaderless blockchain consensus method and apparatus.

블록 체인은 암호화를 사용하여 연결되는 블록이라고 하는 레코드 목록이다. 각 블록에는 이전 블록의 암호화 해시가 포함되어있어 블록 체인이 수정에 내성을 가지며, 설계 상 블록 체인은 개방적이고 분산 된 원장으로, 두 당사자 간의 거래를 효율적이고 검증 가능하고 영구적으로 기록 할 수 있다. A blockchain is a list of records called blocks that are linked using encryption. Each block contains a cryptographic hash of the previous block, making the blockchain resistant to modification. By design, the blockchain is an open, decentralized ledger that enables efficient, verifiable, and permanent recording of transactions between two parties.

블록을 블록 체인에 기록하려면 네트워크 다수의 합의를 필요로 한다. 종래의 합의 프로토콜은 주로 두 가지가 이용되고 있다. Writing a block to the blockchain requires the consensus of the majority of the network. Two conventional consensus protocols are mainly used.

첫번째, Nakamoto Consensus 또는 작업 증명(PoW)이다. PoW는 높은 노드 확장 성을 가지나 지연 시간과 처리량이 좋지 않은 단점이 있다. Nakamoto Consensus의 단점을 해결하기 위해, 비잔틴 내결함성(BFT) 프로토콜과 같은 고전적인 컨센서스 프로토콜의 가능성을 모색했다. 실용적 비잔틴 결함 허용(PBFT) 프로토콜은 약한 동기 환경에서 작동하는 Byzantine General's 문제를 해결하기에 효율적인 솔루션이다. The first is Nakamoto Consensus, or Proof of Work (PoW). PoW has high node scalability, but has disadvantages in terms of latency and throughput. To solve the shortcomings of Nakamoto Consensus, we explored the possibility of classical consensus protocols such as Byzantine Fault Tolerance (BFT) protocols. The pragmatic Byzantine Fault Tolerance (PBFT) protocol is an efficient solution to the Byzantine General's problem of operating in a weakly synchronous environment.

그러나, PBFT은 성능은 우수하지만

Figure pat00001
메시지 복잡도를 가지므로 노드의 수개 많은 블록 체인으로 적용할 수 없는 단점을 가지고 있다. However, PBFT has excellent performance,
Figure pat00001
Since it has message complexity, it has the disadvantage that it cannot be applied to several block chains of nodes.

(01) 대한민국등록특허공보 제10-2033848호(2019.10.11.)(01) Republic of Korea Patent Publication No. 10-2033848 (2019.10.11.)

본 발명은 리더가 없는 블록 체인 합의 방법 및 그 장치를 제공하기 위한 것이다. The present invention is to provide a leaderless blockchain consensus method and apparatus.

또한, 본 발명은 각 노드가 싱글 라운드에서 독립적으로 동일한 블록 제안자를 선택할 수 있는 리더가 없는 블록 체인 합의 방법 및 그 장치를 제공하기 위한 것이다. Another object of the present invention is to provide a leaderless blockchain consensus method and apparatus in which each node can independently select the same block proposer in a single round.

또한, 본 발명은 노드 수가 증가하더라도

Figure pat00002
내에 블록 체인 합의가 가능하도록 할 수 있는 리더가 없는 블록 체인 합의 방법 및 그 장치를 제공하기 위한 것이다. In addition, the present invention provides even if the number of nodes increases
Figure pat00002
It is to provide a leaderless blockchain consensus method and device that can enable blockchain consensus within.

본 발명의 일 측면에 따르면, 리더가 없는 블록 체인 합의 방법이 제공된다. According to one aspect of the present invention, a leaderless blockchain consensus method is provided.

본 발명의 일 실시예에 따르면, (a) 현재 라운드에 대한 랜덤값을 계산하는 단계; (b) 상기 계산된 랜덤값을 이용하여 블록 제안 노드를 선택하는 단계; (c) 상기 블록 제안 노드로부터 생성된 블록을 수신하는 단계; 및 (d) 상기 수신된 블록을 검증한 후 유효한 경우 상기 블록의 헤더에 서명을 추가하고, 상기 서명이 추가된 블록 헤더 정보만 다른 노드로 전송하는 단계를 포함하는 리더가 없는 블록 체인 합의 방법이 제공될 수 있다. According to an embodiment of the present invention, (a) calculating a random value for the current round; (b) selecting a block proposal node using the calculated random value; (c) receiving a block generated from the block proposal node; and (d) verifying the received block and, if valid, adding a signature to the header of the block, and transmitting only the block header information to which the signature is added to another node. may be provided.

상기 현재 라운드에 대한 랜덤값은, 이전 라운드에서 이용된 랜덤값과 이전 라운드에서 생성된 블록의 서명을 이용하여 계산될 수 있다. The random value for the current round may be calculated using the random value used in the previous round and the signature of the block generated in the previous round.

상기 (d) 단계 이후에, 이웃한 다른 노드로부터 상기 블록 헤더에 추가된 서명을 공유받는 단계를 더 포함하되, 상기 공유된 서명을 분석하여 유효한 서명이 보안 임계치 이상인 경우 상기 블록을 블록 체인에 추가하는 단계를 더 포함할 수 있다. After step (d), the method further comprises the step of receiving a shared signature added to the block header from other neighboring nodes, but adding the block to the block chain when a valid signature is greater than or equal to a security threshold by analyzing the shared signature It may further include the step of

상기 보안 임계치는, 전체 샤드 구성원 수의 절반으로 설정될 수 있다. The security threshold may be set to half of the total number of shard members.

상기 (a) 단계 내지 상기 (d) 단계는 하나의 라운드에서 수행되되, 각각의 노드에서 독립적으로 수행될 수 있다. Steps (a) to (d) are performed in one round, but may be independently performed at each node.

블록 대기 시간 동안 상기 블록 제안 노드로부터 유효한 블록이 수신되지 않는 경우, 빈 블록을 생성하여 서명한 후 상기 다른 노드로 전송하는 단계를 포함할 수 있다. When a valid block is not received from the block proposal node during the block waiting time, the method may include generating an empty block, signing it, and transmitting it to the other node.

상기 (d) 단계에서, 상기 블록 제안 노드로부터 두개의 유효한 블록이 수신되는 경우, 하나의 블록만 검증하여 서명하고, 다른 블록은 무시할 수 있다. In step (d), when two valid blocks are received from the block proposal node, only one block is verified and signed, and the other block can be ignored.

본 발명의 다른 측면에 따르면, 리더 없이 블록 체인에 합의할 수 있는 장치가 제공된다. According to another aspect of the present invention, there is provided a device capable of agreeing on a blockchain without a leader.

본 발명의 일 실시예에 따르면, 적어도 하나의 명령어를 저장하는 메모리; 상기 메모리에 저장된 명령어를 실행하는 프로세서를 포함하되, 상기 명령어는, (a) 현재 라운드에 대한 랜덤값을 계산하는 단계; (b) 상기 계산된 랜덤값을 이용하여 블록 제안 노드를 선택하는 단계; (c) 상기 블록 제안 노드로부터 생성된 블록을 수신하는 단계; 및 (d) 상기 수신된 블록을 검증한 후 유효한 경우 상기 블록의 헤더에 서명을 추가하고, 상기 서명이 추가된 블록 헤더 정보만 다른 노드로 전송하는 단계를 수행하는 노드가 제공될 수 있다. According to an embodiment of the present invention, a memory for storing at least one instruction; a processor executing an instruction stored in the memory, the instruction comprising: (a) calculating a random value for a current round; (b) selecting a block proposal node using the calculated random value; (c) receiving a block generated from the block proposal node; and (d) after verifying the received block, if valid, adding a signature to the header of the block, and transmitting only the block header information to which the signature is added to another node may be provided.

본 발명의 일 실시예에 따른 리더가 없는 블록 체인 합의 방법 및 그 장치를 제공함으로써, 각 노드가 싱글 라운드에서 독립적으로 동일한 블록 제안자를 선택할 수 있다. By providing a leaderless blockchain consensus method and apparatus according to an embodiment of the present invention, each node can independently select the same block proposer in a single round.

또한, 본 발명은 노드 수가 증가하더라도

Figure pat00003
내에 블록 체인 합의가 가능하도록 할 수 있다. In addition, the present invention provides even if the number of nodes increases
Figure pat00003
It can enable blockchain consensus within the

도 1은 본 발명의 일 실시예에 따른 리더가 없는 무분기 블록체인 합의 방법을 나타낸 순서도.
도 2는 본 발명의 일 실시에에 따른 블록 검증 의사코드를 예시한 도면.
도 3은 본 발명의 일 실시예에 따른 각 노드에서 블록 제안자를 선정하는 방법을 설명하기 위해 도시한 도면.
도 4는 본 발명의 일 실시예에 따른 블록 합의 과정에 대한 의사 코드를 예시한 도면.
도 5는 본 발명의 일 실시예에 따른 블록 체인 합의까지의 시간을 설명하기 위해 도시한 도면.
1 is a flowchart illustrating a branchless blockchain consensus method without a leader according to an embodiment of the present invention.
2 is a diagram illustrating block verification pseudocode according to an embodiment of the present invention;
3 is a diagram illustrating a method of selecting a block proposer in each node according to an embodiment of the present invention.
4 is a diagram illustrating a pseudo code for a block consensus process according to an embodiment of the present invention.
5 is a diagram illustrating a time until a block chain agreement according to an embodiment of the present invention.

본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.As used herein, the singular expression includes the plural expression unless the context clearly dictates otherwise. In this specification, terms such as “consisting of” or “comprising” should not be construed as necessarily including all of the various components or various steps described in the specification, some of which components or some steps are It should be construed that it may not include, or may further include additional components or steps. In addition, terms such as "...unit" and "module" described in the specification mean a unit that processes at least one function or operation, which may be implemented as hardware or software, or a combination of hardware and software. .

본 발명은 리더가 없이 샤드 구성원(각 노드)가 독립적으로 각 라운드에서의 랜덤값을 생성한 후 이를 기반으로 샤드 구성원 중 어느 하나를 독립적으로 블록 제안자로 선정할 수 있다. 또한, 본 발명은 블록 제안자에 의해 생성된 유효 블록에 대해 샤드 구성원(노드) 중 보안 임계치 이상 서명하는 경우 이에 대해 샤드 구성원 전체에 대한 유효한 합의로 간주하여 블록을 블록 체인에 추가하도록 할 수 있다. 또한, 이하에서는 별도의 설명이 없더라도 블록은 임의의 데이터인 것으로 이해되어야 할 것이다. 데이터는 트랜잭션 데이터일 수도 있으며 데이터의 형식 자체는 매우 다양할 수 있음은 당연하다. In the present invention, without a leader, shard members (each node) independently generate random values in each round, and based on this, any one of the shard members can be independently selected as a block proposer. In addition, in the present invention, if a valid block generated by a block proposer is signed by a shard member (node) above the security threshold, the block can be added to the block chain as a valid consensus for all shard members. In the following, it should be understood that a block is arbitrary data, even if there is no separate description. It goes without saying that data can also be transactional data, and the format of the data itself can vary widely.

이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세히 설명한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 리더가 없는 무분기 블록체인 합의 방법을 나타낸 순서도이고, 도 2는 본 발명의 일 실시에에 따른 블록 검증 의사코드를 예시한 도면이고, 도 3은 본 발명의 일 실시예에 따른 각 노드에서 블록 제안자를 선정하는 방법을 설명하기 위해 도시한 도면이며, 도 4는 본 발명의 일 실시예에 따른 블록 합의 과정에 대한 의사 코드를 예시한 도면이며, 도 5는 본 발명의 일 실시예에 따른 블록 체인 합의까지의 시간을 설명하기 위해 도시한 도면이다. 1 is a flowchart illustrating a branchless blockchain consensus method without a leader according to an embodiment of the present invention, FIG. 2 is a diagram illustrating block verification pseudocode according to an embodiment of the present invention, and FIG. 3 is this It is a diagram illustrating a method of selecting a block proposer in each node according to an embodiment of the present invention, and FIG. 4 is a diagram illustrating a pseudo code for a block consensus process according to an embodiment of the present invention, FIG. 5 is a diagram illustrating the time until block chain agreement according to an embodiment of the present invention.

단계 110에서 각 노드(100)는 랜덤값을 계산한다. In step 110, each node 100 calculates a random value.

우선, 이해와 설명의 편의를 도모하기 위해, 각 노드(100)는 모든 샤드 구성원에 대한 공개키 목록을 복구하여 알고 있는 것을 가정하기로 한다. First, for convenience of understanding and explanation, it is assumed that each node 100 recovers and knows the list of public keys for all shard members.

이에 대해 우선 간략히 설명하기로 한다. This will first be briefly described.

본 발명의 일 실시예에서는 한 라운드에서 블록 제안자가 선택되며, 블록 제안자에 의해 생성된 블록에 대한 서명 및 검증이 완료된 후 블록 체인에 추가될 수 있다. 이에 대해서는 하기의 설명에 의해 보다 명확히 이해될 것이다. In one embodiment of the present invention, a block proposer is selected in one round, and after the signature and verification of the block generated by the block proposer is completed, it may be added to the block chain. This will be more clearly understood by the following description.

각각의 노드(100)는 당해 각 샤드 멤버에 대한 검증 벡터(

Figure pat00004
)와 개인키를 가지고 있는 것을 가정하기로 한다.
Figure pat00005
이며, t는 보안 임계치라고 정의하기로 한다. Each node 100 has a verification vector (
Figure pat00004
) and a private key.
Figure pat00005
, and t is defined as the security threshold.

또한, Joint-Feldman DKG 프로토콜에 따라,

Figure pat00006
로 설정되는 것을 가정하기로 한다. 또한, m은 각 노드(즉, 샤드 구성원)의 크기(size)를 나타낸다. In addition, according to the Joint-Feldman DKG protocol,
Figure pat00006
Assume that it is set to . Also, m represents the size of each node (ie, shard member).

공개키는

Figure pat00007
인 것을 가정하기로 하며,
Figure pat00008
는 서명 검증을 위해 이용될 수 있다. 각 노드(샤드 멤버)의 개인키에 대응하는 공개키(
Figure pat00009
)는 수학식 1에 의해 복구될 수 있다. the public key
Figure pat00007
It is assumed that
Figure pat00008
can be used for signature verification. The public key corresponding to the private key of each node (shard member) (
Figure pat00009
) can be recovered by Equation (1).

Figure pat00010
Figure pat00010

여기서, j는 샤드 멤버 인덱스를 나타내고, 샤드 멤버(j)에 의해 생성된 공유된 서명은

Figure pat00011
와 j에 의해 검증될 수 있다. Here, j represents the shard member index, and the shared signature generated by the shard member (j) is
Figure pat00011
and j can be verified.

이에 따라, 본 발명의 일 실시예에서는 각 노드가 모든 샤드 구성원의 공개 키 목록을 복구 한 후 공개 키의 해시 값에 따라 낮은 순서에서 높은 순서로 공개키 목록을 정렬하여 가지고 있는 것을 가정하기로 한다. Accordingly, in one embodiment of the present invention, it is assumed that each node has the list of public keys sorted from low to high according to the hash value of the public key after recovering the list of public keys of all shard members. .

따라서, 각 노드(100)는 이전 라운드의 랜덤값에 기초하여 현재 라운드의 랜덤값을 계산할 수 있다. 즉, 각각의 노드(100)는 이전 라운드에서 사용된 랜덤값의 해쉬값을 이용하여 랜덤값을 계산할 수 있다. Accordingly, each node 100 may calculate the random value of the current round based on the random value of the previous round. That is, each node 100 may calculate a random value by using the hash value of the random value used in the previous round.

예를 들어, 각 노드(100)는 수학식 2를 이용하여 현재 라운드에서 이용될 랜덤값을 계산할 수 있다. For example, each node 100 may calculate a random value to be used in the current round using Equation (2).

Figure pat00012
Figure pat00012

여기서,

Figure pat00013
는 이전 라운드에서 사용된 랜덤값을 나타내고,
Figure pat00014
는 이전 라운드에서 생성된 블록의 서명을 나타낸다. here,
Figure pat00013
represents the random value used in the previous round,
Figure pat00014
represents the signature of the block generated in the previous round.

따라서, 각 노드(100)는 이전 라운드에서 사용된 랜덤값과 이전 라운드의 서명을 해쉬 함수에 적용한 결과(해시값)을 랜덤값으로 계산할 수 있다.Accordingly, each node 100 may calculate the random value used in the previous round and the result (hash value) of applying the signature of the previous round to the hash function as a random value.

단계 115에서 각 노드(100)는 계산된 랜덤값을 이용하여 블록 제안자를 선택한다. In step 115, each node 100 selects a block proposer using the calculated random value.

예를 들어, 각 노드(100)는 하기 수학식 3을 이용하여 블록 제안자를 선택할 수 있다. For example, each node 100 may select a block proposer using Equation 3 below.

Figure pat00015
Figure pat00015

여기서, mod()는 나머지 연산자를 나타낸다. 즉, 각 노드(100)는 랜덤값을 샤드 구성원 사이즈를 이용하여 mod 연산하여 블록 제안자를 선택할 수 있다. Here, mod() represents the remainder operator. That is, each node 100 may select a block proposer by performing a mod operation on a random value using the shard member size.

각각의 노드(100)는 동일한 정보로 동일한 해시 함수를 적용하여 랜덤값을 계산한 후 이를 샤드 구성원 사이즈로 mod 연산한 결과에 해당하는 인덱스로 블록 제안자를 선택하기 때문에 동일한 결과를 도출하게 된다(도 3 참조).Since each node 100 calculates a random value by applying the same hash function with the same information and selects a block proposer with an index corresponding to the result of mod operation with the shard member size, the same result is derived (Fig. see 3).

다시 정리하면, 이전 라운드에서 사용된 랜덤값과 이전 라운드의 마지막 유효 블록의 샤드 구성원의 서명은 모든 노드에게 알려져 있다. 따라서, 각 노드(100)는 별도의 인터랙션 없이 독립적으로 랜덤값을 각각 계산할 수 있다. 또한, 샤드 멤버 리스트는 이미 각 노드(100)가 알고 있으므로, 각 노드(100)는 동일한 랜덤값을 기반으로 동일한 블록 제안자를 선택할 수 있다. To recap, the random value used in the previous round and the signature of the shard member of the last valid block in the previous round are known to all nodes. Accordingly, each node 100 may independently calculate a random value without a separate interaction. In addition, since each node 100 already knows the shard member list, each node 100 can select the same block proposer based on the same random value.

단계 120에서 각 노드(100)는 블록 대기 시간 이내에 블록 제안자(블록 제안 노드)로부터 유효한 블록이 수신되었는지 여부를 판단한다. In step 120, each node 100 determines whether a valid block is received from the block proposer (block proposal node) within the block waiting time.

블록 대기 시간 동안 유효한 블록이 수신되지 않으면, 단계 125에서 각 노드(100)는 빈 블록에 서명한 후 블록 대기 타임 스탬프를 소거한다. If a valid block is not received during the block wait time, in step 125, each node 100 signs the empty block and then erases the block wait time stamp.

이해와 설명의 편의를 도모하기 위해, 블록을 검증하고, 서명하는 등의 방법에 대해 우선 설명하기로 한다. 이미 전술한 바와 같이, 각 노드(100)는 동일한 연산 결과에 따라 블록 제안자를 선택할 수 있다. 따라서, 각 노드(100)는 선택된 블록 제안자에 대한 정보를 이미 알고 있다. For convenience of understanding and explanation, methods such as verifying and signing a block will be first described. As already described above, each node 100 may select a block proposer according to the same operation result. Accordingly, each node 100 already knows information about the selected block proposer.

두개의 순환 그룹

Figure pat00016
Figure pat00017
를 우선 가정하기로 한다. 여기서,
Figure pat00018
는 이중선형 매핑 함수이다. 공개키는
Figure pat00019
의 엘리먼트이며, 서명은
Figure pat00020
의 엘리먼트인 것을 가정하기로 한다. two cycle groups
Figure pat00016
and
Figure pat00017
is to be assumed first. here,
Figure pat00018
is a bilinear mapping function. the public key
Figure pat00019
is an element of , and the signature is
Figure pat00020
Assume that it is an element of .

임의의 난수(random number)인 생성 포인트(

Figure pat00021
)를 해당 라운드의 랜덤값으로 설정하기로 한다. 즉,
Figure pat00022
가 블록 제안자의 정보인 것으로 가정하기로 한다. A generation point that is a random number (
Figure pat00021
) is set as the random value of the round. In other words,
Figure pat00022
It is assumed that is information of the block proposer.

이미 전술한 바와 같이, 샤드 구성원들은 DKG 실행에 의해 자신의 개인키(

Figure pat00023
), 검증 벡터(
Figure pat00024
) 및 공개키(
Figure pat00025
)를 가지고 있는 것을 가정하기로 한다. As already mentioned above, shard members use their own private key (
Figure pat00023
), the validation vector (
Figure pat00024
) and public key (
Figure pat00025
) is assumed to have

각각의 노드는 메시지를 해시 함수에 적용한 후 공유된 개인키를 이용하여 서명할 수 있다. 이를 수학식으로 나타내면 수학식 4와 같다. Each node can sign the message using the shared private key after applying the message to the hash function. If this is expressed as an equation, it is the same as in equation (4).

Figure pat00026
Figure pat00026

각각의 노드(샤드 구성원)은 각자 개인키에 대응하는 공개키(

Figure pat00027
)를 가지고 있으므로, 이를 이용하여 서명(
Figure pat00028
)을 검증할 수 있다. 이를 수학식으로 나타내면, 수학식 5와 같다. Each node (shard member) has a public key (
Figure pat00027
), so use it to sign (
Figure pat00028
) can be verified. If this is expressed as an equation, it is as in Equation 5.

Figure pat00029
Figure pat00029

예를 들어, 검증 함수에 블록 제안자로부터 수신한 블록 헤더에 포함된 서명(블록 제안자의 서명)과

Figure pat00030
를 적용하여 도출된 결과와 각 노드가 메시지를 해시한 결과와 공개키를 검증 함수에 적용한 결과가 동일한지 여부를 판단하여 각 노드는 블록 제안자로부터 수신한 블록의 유효성을 검증할 수 있다.For example, in the verification function, the signature included in the block header received from the block proposer (the signature of the block proposer) and
Figure pat00030
Each node can verify the validity of the block received from the block proposer by judging whether the result derived by applying , the result of each node hashing the message and the result of applying the public key to the verification function are the same.

각각의 노드(샤드 구성운)은 서명 공유에 대해 "Lagrage interpolaton"을 기반으로 t개의 다른 서명을 수신하고, 현재 라운드에서 집계된 서명을 복구할 수 있다. 이를 수학식으로 나타내면, 나타내면 수학식 6과 같다. Each node (shard constituency) receives t different signatures based on “Lagrage interpolaton” for signature sharing, and can recover the aggregated signatures in the current round. If this is expressed as an equation, it is expressed as equation (6).

Figure pat00031
Figure pat00031

"Lagrage interpolaton"의 속성에 따라 집계된 서명의 결과는 고유(unique)하다. 따라서, 공개키를 이용하여 집계된 서명이 검증될 수 있다. According to the property of "Lagrage interpolaton", the result of the aggregated signature is unique. Accordingly, the aggregated signature can be verified using the public key.

이를 수학식으로 나타내면 수학식 7과 같다. This can be expressed as Equation (7).

Figure pat00032
Figure pat00032

블록 대기 시간 동안 유효한 블록이 수신되면, 단계 130에서 각 노드(100)는 블록을 검증하고, 블록 헤더에 서명을 추가한 후 이웃 노드에게 전송한다. When a valid block is received during the block waiting time, in step 130, each node 100 verifies the block, adds a signature to the block header, and transmits it to a neighboring node.

각 노드에 의해 선택된 블록 제안자(블록 제안 노드)는 비트코인 P2P 네트워크에서 가쉽 프로토콜을 사용하여 블록 헤더에 블록 제안자의 서명을 삽입하여 블록을 생성한다. The block proposer (block proposal node) selected by each node creates a block by inserting the block proposer's signature into the block header using the gossip protocol in the Bitcoin P2P network.

임의의 노드(100)가 블록 제안자(블록 제안 노드)로부터 생성된 블록을 수신할 수 있다. 여기서, 블록은 블록 제안자의 서명이 헤더에 포함될 수 있다. Any node 100 may receive a block generated from a block proposer (block proposal node). Here, for the block, the block proposer's signature may be included in the header.

블록 제안자로부터 블록을 수신한 노드는 검증 벡터와 랜덤값(

Figure pat00033
)을 이용하여 블록에 포함된 서명을 검증할 수 있다. 즉, 블록이 수신되면 정직한 노드는 블록 제안자의 인덱스, 이전 블록에 대한 포인터 및 트랜잭션 리스트를 포함하여 블록의 유효성을 체크할 수 있다. The node that receives the block from the block proposer receives a verification vector and a random value (
Figure pat00033
) to verify the signature included in the block. That is, when a block is received, an honest node can check the validity of the block, including the block proposer's index, a pointer to the previous block, and a list of transactions.

단계 135에서 각 노드(100)는 블록 제안자로부터 수신된 블록에 대한 과반 이상의 합의가 완료되었는지 여부를 판단한다. In step 135, each node 100 determines whether a majority consensus on blocks received from the block proposer is completed.

각 노드(100)는 블록을 검증한 후 블록 헤더에 서명을 추가하고, 이를 무작위로 전송하지 않는다. 다만, 각 노드(100)는 이웃한 노드들에게 블록 헤더에 대한 서명을 공유하며, 이웃 노드로부터 서명 리스트를 수신한다. After verifying the block, each node 100 adds a signature to the block header, and does not randomly transmit it. However, each node 100 shares the block header signature with the neighboring nodes and receives the signature list from the neighboring nodes.

즉, 각 노드는 이웃 노드로부터 서명이 공유되면, 서명을 리스트(편의상 서명 리스트라 칭하기로 함)에 추가한 후 서명 리스트를 모든 이웃 노드에게 전송할 수 있다. 즉, 임의의 노드가 이웃 노드로부터 서명 리스트를 수신하면, 서명 리스트가 갱신된 후 다시 전송될 수 있다. That is, each node can transmit the signature list to all neighboring nodes after adding the signature to a list (referred to as a signature list for convenience) when a signature is shared from a neighboring node. That is, when any node receives a signature list from a neighboring node, the signature list may be updated and then transmitted again.

예를 들어, 각 노드가 r개의 이웃 노드를 가지고 있다면, 이웃 노드들과

Figure pat00034
라운드 메시지 교환 후에 정직한 노드는 정직한 샤드 구성원(노드)로부터 t 이상의 서명 공유가 가능하다. For example, if each node has r neighbors,
Figure pat00034
After round message exchange, honest nodes can share more than t signatures from honest shard members (nodes).

따라서, 본 발명의 일 실시예에서는 전체 샤드 구성원의 과반 이상이 블록에 서명한 경우, 해당 블록 제안자에 의해 생성된 블록을 블록 체인에 기록하는 것에 샤드 구성원이 합의한 것으로 간주한다. Therefore, in one embodiment of the present invention, when more than half of all shard members have signed a block, it is considered that the shard members have agreed to record the block created by the block proposer in the block chain.

따라서, 각 노드(100)는 이웃 노드들과 서명 리스트 공유를 통해 t개 이상의 서명이 공유된 경우 해당 블록에 대한 합의가 완료된 것으로 판단할 수 있다. 이에 대한 의사 코드는 도 4에 도시된 바와 같다. Accordingly, when t or more signatures are shared by each node 100 through the sharing of the signature list with neighboring nodes, it can be determined that the agreement on the corresponding block is completed. The pseudo code for this is shown in FIG. 4 .

만일 서명 대기 시간 동안 t개 이상의 유효한 서명이 공유되면, 단계 140에서 각 노드(100)는 블록을 블록 체인에 추가한다. If more than t valid signatures are shared during the signature waiting time, in step 140, each node 100 adds a block to the block chain.

그러나, 만일 서명 대기 시간 동안 t개 이상의 유효한 서명이 공유되지 않으면, 단계 145에서 각 노드(100)는 빈 블록에 서명한 후 서명 대기 시간의 타임 스탬프를 재설정한다. However, if t or more valid signatures are not shared during the signature waiting time, in step 145, each node 100 signs an empty block and then resets the time stamp of the signature waiting time.

블록 검증에 대한 의사 코드는 도 2에 도시된 바와 같다. The pseudo code for block verification is shown in FIG. 2 .

도 5를 참조하여 블록에 대한 합의까지의 시간에 대해 설명하기로 한다. 비잔틴 결함을 견딜 수 있는 강력한 샤드를 가지기 위해서는 샤드의 크기가 커야 한다. 그러나 작은 크기의 샤드는 거래 속도 측면에서 더 유리하다. 트레이드 오프를 감안하여, 샤드 크기를 400 노드로 설정하며, 보안 임계값은

Figure pat00035
로 가정하기로 한다. A time until consensus on a block will be described with reference to FIG. 5 . In order to have a strong shard that can withstand Byzantine faults, the size of the shard must be large. However, smaller shards are more advantageous in terms of transaction speed. Given the trade-off, we set the shard size to 400 nodes, and the security threshold is
Figure pat00035
to assume that

각 노드간 연결 대역폭이 20Mbps로 제한되며, 모든 통신 링크의 대기 시간은 100ms라고 가정하기로 한다. It is assumed that the connection bandwidth between each node is limited to 20Mbps, and the latency of all communication links is 100ms.

도 5에 도시된 바와 같이, 블록을 전송하는 시간을

Figure pat00036
가 된다. 각 노드에는 20개의 이웃 노드가 있고,
Figure pat00037
라운드 내에서 정직한 노드는 다른 정직한 노드와 서명을 공유받을 수 있다. 따라서, 전체
Figure pat00038
의 시간이 필요하다. As shown in Figure 5, the time to transmit the block is
Figure pat00036
becomes Each node has 20 neighbors,
Figure pat00037
In a round, honest nodes can share signatures with other honest nodes. Therefore, the whole
Figure pat00038
time is needed

상술한 내용을 바탕으로 약 12 ~ 15회 홉 후 전체 네트워크에서 메시지를 수신할 수 있으며, 모든 통신 링크에서 100ms의 대기 시간으로

Figure pat00039
가 소요되므로, 블록이 합의되기까지 약 5초의 시간이 소요되는 것을 알 수 있다. Based on the above, a message can be received from the entire network after about 12 to 15 hops, with a latency of 100 ms on all communication links.
Figure pat00039
It can be seen that it takes about 5 seconds for the block to be agreed upon.

도 6은 본 발명의 일 실시예에 따른 노드의 구성을 개략적으로 도시한 블록도이다. 이하에서 각 노드는 샤드 네트워크를 구성하는 장치로 이해되어야 할 것이며, 계산 능력 및 통신 능력을 가지는 컴퓨팅 장치일 수 있다. 6 is a block diagram schematically illustrating the configuration of a node according to an embodiment of the present invention. Hereinafter, each node should be understood as a device constituting a shard network, and may be a computing device having computational power and communication capability.

도 1을 참조하면, 본 발명의 일 실시예에 따르면 노드(100)는 통신부(610), 메모리(615) 및 프로세서(620)를 포함하여 구성된다. Referring to FIG. 1 , according to an embodiment of the present invention, a node 100 includes a communication unit 610 , a memory 615 , and a processor 620 .

통신부(610)는 통신망을 통해 다른 장치(예를 들어, 다른 노드들)과 데이터를 송수신하기 위한 수단이다. The communication unit 610 is a means for transmitting and receiving data with other devices (eg, other nodes) through a communication network.

예를 들어, 통신부(610)는 다른 노드로부터 블록, 서명이 포함된 블록 헤더 등을 수신받을 수 있다.For example, the communication unit 610 may receive a block from another node, a block header including a signature, and the like.

또한, 통신부(610)는 프로세서(620)의 제어에 따라 자신의 서명이 포함된 블록 헤더를 다른 노드로 전송할 수도 있다. Also, the communication unit 610 may transmit a block header including its own signature to another node under the control of the processor 620 .

메모리(615)는 리더가 없는 무분기 블록 체인 합의 방법을 수행하기 위해 필요한 적어도 하나의 명령어(프로그램 코드)를 저장한다. The memory 615 stores at least one instruction (program code) necessary to perform the leaderless branchless blockchain consensus method.

프로세서(620)는 본 발명의 일 실시예에 따른 각 노드의 구성 요소들(예를 들어, 통신부(610), 메모리(615) 등)을 제어하기 위한 수단이다.The processor 620 is a means for controlling the components (eg, the communication unit 610 , the memory 615 , etc.) of each node according to an embodiment of the present invention.

또한, 프로세서(620)에 의해 실행된 명령어는 도 1 내지 도 5를 참조하여 설명한 리더가 없는 무분기 블록 체인 합의 방법을 위한 각각의 단계를 수행할 수 있다. In addition, the instruction executed by the processor 620 may perform each step for the leaderless branchless blockchain consensus method described with reference to FIGS. 1 to 5 .

본 발명의 실시 예에 따른 장치 및 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야 통상의 기술자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The apparatus and method according to an embodiment of the present invention 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 computer readable medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the computer software field. Examples of the computer-readable recording medium 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 floppy disks. - Includes magneto-optical media and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이제까지 본 발명에 대하여 그 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, the present invention has been looked at focusing on the embodiments thereof. Those of ordinary skill in the art to which the present invention pertains will understand that the present invention can be implemented in modified forms without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is indicated in the claims rather than the foregoing description, and all differences within the scope equivalent thereto should be construed as being included in the present invention.

100: 노드
610: 통신부
615: 메모리
620: 프로세서
100: node
610: communication department
615: memory
620: processor

Claims (12)

(a) 현재 라운드에 대한 랜덤값을 계산하는 단계;
(b) 상기 계산된 랜덤값을 이용하여 블록 제안 노드를 선택하는 단계;
(c) 상기 블록 제안 노드로부터 생성된 블록을 수신하는 단계;
(d) 상기 수신된 블록을 검증한 후 유효한 경우 상기 블록의 헤더에 서명을 추가하고, 상기 서명이 추가된 블록 헤더 정보만 다른 노드로 전송하는 단계를 포함하는 리더가 없는 블록 체인 합의 방법.
(a) calculating a random value for the current round;
(b) selecting a block proposal node using the calculated random value;
(c) receiving a block generated from the block proposal node;
(d) if valid after verifying the received block, adding a signature to the header of the block, and transmitting only the block header information to which the signature is added to another node.
제1 항에 있어서,
상기 현재 라운드에 대한 랜덤값은,
이전 라운드에서 이용된 랜덤값과 이전 라운드에서 생성된 블록의 서명을 이용하여 계산되는 것을 특징으로 하는 리더가 없는 블록 체인 합의 방법.
The method of claim 1,
The random value for the current round is,
A leaderless blockchain consensus method, characterized in that it is calculated using the random value used in the previous round and the signature of the block generated in the previous round.
제1 항에 있어서,
상기 (d) 단계 이후에,
이웃한 다른 노드로부터 상기 블록 헤더에 추가된 서명을 공유받는 단계를 더 포함하되,
상기 공유된 서명을 분석하여 유효한 서명이 보안 임계치 이상인 경우 상기 블록을 블록 체인에 추가하는 단계를 포함하는 리더가 없는 블록 체인 합의 방법.
The method of claim 1,
After step (d),
Further comprising the step of receiving a shared signature added to the block header from other neighboring nodes,
and analyzing the shared signature and adding the block to the block chain if the valid signature is greater than or equal to a security threshold.
제3 항에 있어서,
상기 보안 임계치는,
전체 샤드 구성원 수의 절반으로 설정되는 것을 특징으로 하는 리더가 없는 블록 체인 합의 방법.
4. The method of claim 3,
The security threshold is
A leaderless blockchain consensus method characterized by being set to half of the total number of shard members.
제1 항에 있어서,
상기 (a) 단계 내지 상기 (d) 단계는 하나의 라운드에서 수행되되, 각각의 노드에서 독립적으로 수행되는 것을 특징으로 하는 리더가 없는 블록 체인 합의 방법.
The method of claim 1,
Steps (a) to (d) are performed in one round, and each node is independently performed in a leaderless blockchain consensus method.
제1 항에 있어서,
블록 대기 시간 동안 상기 블록 제안 노드로부터 유효한 블록이 수신되지 않는 경우, 빈 블록을 생성하여 서명한 후 상기 다른 노드로 전송하는 단계를 포함하는 리더가 없는 블록 체인 합의 방법.
The method of claim 1,
and if a valid block is not received from the block proposal node during the block waiting time, generating an empty block, signing it, and transmitting it to the other node.
제6 항에 있어서,
상기 (d) 단계에서,
상기 블록 제안 노드로부터 두개의 유효한 블록이 수신되는 경우, 하나의 블록만 검증하여 서명하고, 다른 블록은 무시하는 것을 특징으로 하는 리더가 없는 블록 체인 합의 방법.
7. The method of claim 6,
In step (d),
When two valid blocks are received from the block proposal node, only one block is verified and signed, and the other block is ignored.
제1 항 내지 제7 항 중 어느 하나의 항에 따른 방법을 수행하기 위한 프로그램 코드를 기록한 컴퓨터로 판독 가능한 기록매체 제품.
A computer-readable recording medium product on which a program code for performing the method according to any one of claims 1 to 7 is recorded.
적어도 하나의 명령어를 저장하는 메모리;
상기 메모리에 저장된 명령어를 실행하는 프로세서를 포함하되,
상기 명령어는,
(a) 현재 라운드에 대한 랜덤값을 계산하는 단계;
(b) 상기 계산된 랜덤값을 이용하여 블록 제안 노드를 선택하는 단계;
(c) 상기 블록 제안 노드로부터 생성된 블록을 수신하는 단계;
(d) 상기 수신된 블록을 검증한 후 유효한 경우 상기 블록의 헤더에 서명을 추가하고, 상기 서명이 추가된 블록 헤더 정보만 다른 노드로 전송하는 단계를 수행하는 노드.
a memory storing at least one instruction;
A processor that executes instructions stored in the memory,
The command is
(a) calculating a random value for the current round;
(b) selecting a block proposal node using the calculated random value;
(c) receiving a block generated from the block proposal node;
(d) After verifying the received block, if valid, adding a signature to the header of the block, and transmitting only the block header information to which the signature is added to another node.
제9 항에 있어서,
상기 현재 라운드에 대한 랜덤값은,
이전 라운드에서 이용된 랜덤값과 이전 라운드에서 생성된 블록의 서명을 이용하여 계산되는 것을 특징으로 하는 노드.
10. The method of claim 9,
The random value for the current round is,
A node characterized in that it is calculated using the random value used in the previous round and the signature of the block generated in the previous round.
제9 항에 있어서,
상기 (d) 단계 이후에,
이웃한 다른 노드로부터 상기 블록 헤더에 추가된 서명을 공유받는 단계를 더 포함하되,
상기 공유된 서명을 분석하여 유효한 서명이 보안 임계치 이상인 경우 상기 블록을 블록 체인에 추가하는 단계를 더 수행하는 노드.
10. The method of claim 9,
After step (d),
Further comprising the step of receiving a shared signature added to the block header from other neighboring nodes,
A node further performing the step of analyzing the shared signature and adding the block to the block chain if the valid signature is greater than or equal to a security threshold.
제11 항에 있어서,
상기 보안 임계치는,
전체 샤드 구성원 수의 절반으로 설정되는 것을 특징으로 하는 노드.

12. The method of claim 11,
The security threshold is
A node characterized by being set to half of the total number of shard members.

KR1020190153426A 2019-11-26 2019-11-26 Leaderless block-chain consensus method and device KR102372422B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190153426A KR102372422B1 (en) 2019-11-26 2019-11-26 Leaderless block-chain consensus method and device
PCT/KR2020/014398 WO2021107408A1 (en) 2019-11-26 2020-10-21 Leaderless blockchain consensus method and device therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190153426A KR102372422B1 (en) 2019-11-26 2019-11-26 Leaderless block-chain consensus method and device

Publications (2)

Publication Number Publication Date
KR20210064803A true KR20210064803A (en) 2021-06-03
KR102372422B1 KR102372422B1 (en) 2022-03-07

Family

ID=76129359

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190153426A KR102372422B1 (en) 2019-11-26 2019-11-26 Leaderless block-chain consensus method and device

Country Status (2)

Country Link
KR (1) KR102372422B1 (en)
WO (1) WO2021107408A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115392912A (en) * 2022-10-26 2022-11-25 南方科技大学 Random number generation method, system, device and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170040079A (en) * 2016-05-03 2017-04-12 안규태 Block chain supporting multiple one-way functions used for verification of blocks
WO2019170167A2 (en) * 2019-05-31 2019-09-12 Alibaba Group Holding Limited System and method for providing privacy and security protection in blockchain-based private transactions
KR102033848B1 (en) 2018-02-21 2019-10-17 이화여자대학교 산학협력단 Randomized mesh blockchain system based on group and identification method of integrity
WO2019199768A1 (en) * 2018-04-09 2019-10-17 Storecoin Inc. Fork-tolerant consensus protocol
KR20190123624A (en) * 2018-04-24 2019-11-01 (주)스마트코인 Block Chain Platform System for Block Generation and Verification in Block Chains and Prevention of Hacking

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101937220B1 (en) * 2017-02-01 2019-01-11 주식회사 아이콘루프 Method for generating and verifying a digital signature or message authentication code based on a block chain that does not require key management
US11871485B2 (en) * 2017-08-09 2024-01-09 Visa International Service Association Verification of interactions system and method
KR20190093012A (en) * 2018-01-31 2019-08-08 지송학 The method for block generation and validation in block-chain system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170040079A (en) * 2016-05-03 2017-04-12 안규태 Block chain supporting multiple one-way functions used for verification of blocks
KR102033848B1 (en) 2018-02-21 2019-10-17 이화여자대학교 산학협력단 Randomized mesh blockchain system based on group and identification method of integrity
WO2019199768A1 (en) * 2018-04-09 2019-10-17 Storecoin Inc. Fork-tolerant consensus protocol
KR20190123624A (en) * 2018-04-24 2019-11-01 (주)스마트코인 Block Chain Platform System for Block Generation and Verification in Block Chains and Prevention of Hacking
WO2019170167A2 (en) * 2019-05-31 2019-09-12 Alibaba Group Holding Limited System and method for providing privacy and security protection in blockchain-based private transactions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115392912A (en) * 2022-10-26 2022-11-25 南方科技大学 Random number generation method, system, device and storage medium

Also Published As

Publication number Publication date
KR102372422B1 (en) 2022-03-07
WO2021107408A1 (en) 2021-06-03

Similar Documents

Publication Publication Date Title
KR101924026B1 (en) System and method for blockchain using hash-based signature scheme
Stevens et al. The first collision for full SHA-1
US20240074004A1 (en) Verification of interactions system and method
AU2019204707B2 (en) Program execution and data proof scheme using multiple key pair signatures
Carter et al. Secure outsourced garbled circuit evaluation for mobile devices
US10778428B1 (en) Method for restoring public key based on SM2 signature
CN108885741B (en) Tokenization method and system for realizing exchange on block chain
US11177962B2 (en) Optimizations for verification of interactions system and method
US20230137104A1 (en) Computer-implemented systems and methods for using a blockchain to perform an atomic swap
Garg et al. RITS-MHT: Relative indexed and time stamped Merkle hash tree based data auditing protocol for cloud computing
CN111066046A (en) Replay attack resistant authentication protocol
CN110866751A (en) Block chain parallel chain maintenance method and block chain parallel chain
CN111448579A (en) Quantum certified block chains
Jackson et al. Seems legit: Automated analysis of subtle attacks on protocols that use signatures
KR20210072321A (en) Cryptographic communication system and cryptographic communication method based on blockchain
CN114362993B (en) Block chain assisted Internet of vehicles security authentication method
CN111010265A (en) Block chain organization key management method based on hierarchical key and BLS digital signature
CN110149379B (en) Multi-primitive-chain throughput expansion method based on layer logic
JP2022527610A (en) Methods and equipment for propagating blocks in blockchain networks
CN112436938B (en) Digital signature generation method and device and server
Bellare et al. Deterring certificate subversion: efficient double-authentication-preventing signatures
KR102372422B1 (en) Leaderless block-chain consensus method and device
CN116757698B (en) Encryption method and system for improving payment security performance
CN110784318B (en) Group key updating method, device, electronic equipment, storage medium and communication system
CN115943609A (en) Block propagation for poisoned transactions in block chain networks

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