KR102372422B1 - 리더가 없는 블록 체인 합의 방법 및 그 장치 - Google Patents

리더가 없는 블록 체인 합의 방법 및 그 장치 Download PDF

Info

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

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) 현재 라운드에 대한 랜덤값을 계산하는 단계; (b) 상기 계산된 랜덤값을 이용하여 블록 제안 노드를 선택하는 단계; (c) 상기 블록 제안 노드로부터 생성된 블록을 수신하는 단계; (d) 상기 수신된 블록을 검증한 후 유효한 경우 상기 블록의 헤더에 서명을 추가하고, 상기 서명이 추가된 블록 헤더 정보만 다른 노드로 전송하는 단계를 포함한다.

Description

리더가 없는 블록 체인 합의 방법 및 그 장치{Leaderless block-chain consensus method and device}
본 발명은 리더가 없는 블록 체인 합의 방법 및 그 장치에 관한 것이다.
블록 체인은 암호화를 사용하여 연결되는 블록이라고 하는 레코드 목록이다. 각 블록에는 이전 블록의 암호화 해시가 포함되어있어 블록 체인이 수정에 내성을 가지며, 설계 상 블록 체인은 개방적이고 분산 된 원장으로, 두 당사자 간의 거래를 효율적이고 검증 가능하고 영구적으로 기록 할 수 있다.
블록을 블록 체인에 기록하려면 네트워크 다수의 합의를 필요로 한다. 종래의 합의 프로토콜은 주로 두 가지가 이용되고 있다.
첫번째, Nakamoto Consensus 또는 작업 증명(PoW)이다. PoW는 높은 노드 확장 성을 가지나 지연 시간과 처리량이 좋지 않은 단점이 있다. Nakamoto Consensus의 단점을 해결하기 위해, 비잔틴 내결함성(BFT) 프로토콜과 같은 고전적인 컨센서스 프로토콜의 가능성을 모색했다. 실용적 비잔틴 결함 허용(PBFT) 프로토콜은 약한 동기 환경에서 작동하는 Byzantine General's 문제를 해결하기에 효율적인 솔루션이다.
그러나, PBFT은 성능은 우수하지만
Figure 112019121817756-pat00001
메시지 복잡도를 가지므로 노드의 수개 많은 블록 체인으로 적용할 수 없는 단점을 가지고 있다.
(01) 대한민국등록특허공보 제10-2033848호(2019.10.11.)
본 발명은 리더가 없는 블록 체인 합의 방법 및 그 장치를 제공하기 위한 것이다.
또한, 본 발명은 각 노드가 싱글 라운드에서 독립적으로 동일한 블록 제안자를 선택할 수 있는 리더가 없는 블록 체인 합의 방법 및 그 장치를 제공하기 위한 것이다.
또한, 본 발명은 노드 수가 증가하더라도
Figure 112019121817756-pat00002
내에 블록 체인 합의가 가능하도록 할 수 있는 리더가 없는 블록 체인 합의 방법 및 그 장치를 제공하기 위한 것이다.
본 발명의 일 측면에 따르면, 리더가 없는 블록 체인 합의 방법이 제공된다.
본 발명의 일 실시예에 따르면, (a) 현재 라운드에 대한 랜덤값을 계산하는 단계; (b) 상기 계산된 랜덤값을 이용하여 블록 제안 노드를 선택하는 단계; (c) 상기 블록 제안 노드로부터 생성된 블록을 수신하는 단계; 및 (d) 상기 수신된 블록을 검증한 후 유효한 경우 상기 블록의 헤더에 서명을 추가하고, 상기 서명이 추가된 블록 헤더 정보만 다른 노드로 전송하는 단계를 포함하는 리더가 없는 블록 체인 합의 방법이 제공될 수 있다.
상기 현재 라운드에 대한 랜덤값은, 이전 라운드에서 이용된 랜덤값과 이전 라운드에서 생성된 블록의 서명을 이용하여 계산될 수 있다.
상기 (d) 단계 이후에, 이웃한 다른 노드로부터 상기 블록 헤더에 추가된 서명을 공유받는 단계를 더 포함하되, 상기 공유된 서명을 분석하여 유효한 서명이 보안 임계치 이상인 경우 상기 블록을 블록 체인에 추가하는 단계를 더 포함할 수 있다.
상기 보안 임계치는, 전체 샤드 구성원 수의 절반으로 설정될 수 있다.
상기 (a) 단계 내지 상기 (d) 단계는 하나의 라운드에서 수행되되, 각각의 노드에서 독립적으로 수행될 수 있다.
블록 대기 시간 동안 상기 블록 제안 노드로부터 유효한 블록이 수신되지 않는 경우, 빈 블록을 생성하여 서명한 후 상기 다른 노드로 전송하는 단계를 포함할 수 있다.
상기 (d) 단계에서, 상기 블록 제안 노드로부터 두개의 유효한 블록이 수신되는 경우, 하나의 블록만 검증하여 서명하고, 다른 블록은 무시할 수 있다.
본 발명의 다른 측면에 따르면, 리더 없이 블록 체인에 합의할 수 있는 장치가 제공된다.
본 발명의 일 실시예에 따르면, 적어도 하나의 명령어를 저장하는 메모리; 상기 메모리에 저장된 명령어를 실행하는 프로세서를 포함하되, 상기 명령어는, (a) 현재 라운드에 대한 랜덤값을 계산하는 단계; (b) 상기 계산된 랜덤값을 이용하여 블록 제안 노드를 선택하는 단계; (c) 상기 블록 제안 노드로부터 생성된 블록을 수신하는 단계; 및 (d) 상기 수신된 블록을 검증한 후 유효한 경우 상기 블록의 헤더에 서명을 추가하고, 상기 서명이 추가된 블록 헤더 정보만 다른 노드로 전송하는 단계를 수행하는 노드가 제공될 수 있다.
본 발명의 일 실시예에 따른 리더가 없는 블록 체인 합의 방법 및 그 장치를 제공함으로써, 각 노드가 싱글 라운드에서 독립적으로 동일한 블록 제안자를 선택할 수 있다.
또한, 본 발명은 노드 수가 증가하더라도
Figure 112019121817756-pat00003
내에 블록 체인 합의가 가능하도록 할 수 있다.
도 1은 본 발명의 일 실시예에 따른 리더가 없는 무분기 블록체인 합의 방법을 나타낸 순서도.
도 2는 본 발명의 일 실시에에 따른 블록 검증 의사코드를 예시한 도면.
도 3은 본 발명의 일 실시예에 따른 각 노드에서 블록 제안자를 선정하는 방법을 설명하기 위해 도시한 도면.
도 4는 본 발명의 일 실시예에 따른 블록 합의 과정에 대한 의사 코드를 예시한 도면.
도 5는 본 발명의 일 실시예에 따른 블록 체인 합의까지의 시간을 설명하기 위해 도시한 도면.
본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 발명은 리더가 없이 샤드 구성원(각 노드)가 독립적으로 각 라운드에서의 랜덤값을 생성한 후 이를 기반으로 샤드 구성원 중 어느 하나를 독립적으로 블록 제안자로 선정할 수 있다. 또한, 본 발명은 블록 제안자에 의해 생성된 유효 블록에 대해 샤드 구성원(노드) 중 보안 임계치 이상 서명하는 경우 이에 대해 샤드 구성원 전체에 대한 유효한 합의로 간주하여 블록을 블록 체인에 추가하도록 할 수 있다. 또한, 이하에서는 별도의 설명이 없더라도 블록은 임의의 데이터인 것으로 이해되어야 할 것이다. 데이터는 트랜잭션 데이터일 수도 있으며 데이터의 형식 자체는 매우 다양할 수 있음은 당연하다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 리더가 없는 무분기 블록체인 합의 방법을 나타낸 순서도이고, 도 2는 본 발명의 일 실시에에 따른 블록 검증 의사코드를 예시한 도면이고, 도 3은 본 발명의 일 실시예에 따른 각 노드에서 블록 제안자를 선정하는 방법을 설명하기 위해 도시한 도면이며, 도 4는 본 발명의 일 실시예에 따른 블록 합의 과정에 대한 의사 코드를 예시한 도면이며, 도 5는 본 발명의 일 실시예에 따른 블록 체인 합의까지의 시간을 설명하기 위해 도시한 도면이다.
단계 110에서 각 노드(100)는 랜덤값을 계산한다.
우선, 이해와 설명의 편의를 도모하기 위해, 각 노드(100)는 모든 샤드 구성원에 대한 공개키 목록을 복구하여 알고 있는 것을 가정하기로 한다.
이에 대해 우선 간략히 설명하기로 한다.
본 발명의 일 실시예에서는 한 라운드에서 블록 제안자가 선택되며, 블록 제안자에 의해 생성된 블록에 대한 서명 및 검증이 완료된 후 블록 체인에 추가될 수 있다. 이에 대해서는 하기의 설명에 의해 보다 명확히 이해될 것이다.
각각의 노드(100)는 당해 각 샤드 멤버에 대한 검증 벡터(
Figure 112019121817756-pat00004
)와 개인키를 가지고 있는 것을 가정하기로 한다.
Figure 112019121817756-pat00005
이며, t는 보안 임계치라고 정의하기로 한다.
또한, Joint-Feldman DKG 프로토콜에 따라,
Figure 112019121817756-pat00006
로 설정되는 것을 가정하기로 한다. 또한, m은 각 노드(즉, 샤드 구성원)의 크기(size)를 나타낸다.
공개키는
Figure 112019121817756-pat00007
인 것을 가정하기로 하며,
Figure 112019121817756-pat00008
는 서명 검증을 위해 이용될 수 있다. 각 노드(샤드 멤버)의 개인키에 대응하는 공개키(
Figure 112019121817756-pat00009
)는 수학식 1에 의해 복구될 수 있다.
Figure 112019121817756-pat00010
여기서, j는 샤드 멤버 인덱스를 나타내고, 샤드 멤버(j)에 의해 생성된 공유된 서명은
Figure 112019121817756-pat00011
와 j에 의해 검증될 수 있다.
이에 따라, 본 발명의 일 실시예에서는 각 노드가 모든 샤드 구성원의 공개 키 목록을 복구 한 후 공개 키의 해시 값에 따라 낮은 순서에서 높은 순서로 공개키 목록을 정렬하여 가지고 있는 것을 가정하기로 한다.
따라서, 각 노드(100)는 이전 라운드의 랜덤값에 기초하여 현재 라운드의 랜덤값을 계산할 수 있다. 즉, 각각의 노드(100)는 이전 라운드에서 사용된 랜덤값의 해쉬값을 이용하여 랜덤값을 계산할 수 있다.
예를 들어, 각 노드(100)는 수학식 2를 이용하여 현재 라운드에서 이용될 랜덤값을 계산할 수 있다.
Figure 112019121817756-pat00012
여기서,
Figure 112019121817756-pat00013
는 이전 라운드에서 사용된 랜덤값을 나타내고,
Figure 112019121817756-pat00014
는 이전 라운드에서 생성된 블록의 서명을 나타낸다.
따라서, 각 노드(100)는 이전 라운드에서 사용된 랜덤값과 이전 라운드의 서명을 해쉬 함수에 적용한 결과(해시값)을 랜덤값으로 계산할 수 있다.
단계 115에서 각 노드(100)는 계산된 랜덤값을 이용하여 블록 제안자를 선택한다.
예를 들어, 각 노드(100)는 하기 수학식 3을 이용하여 블록 제안자를 선택할 수 있다.
Figure 112019121817756-pat00015
여기서, mod()는 나머지 연산자를 나타낸다. 즉, 각 노드(100)는 랜덤값을 샤드 구성원 사이즈를 이용하여 mod 연산하여 블록 제안자를 선택할 수 있다.
각각의 노드(100)는 동일한 정보로 동일한 해시 함수를 적용하여 랜덤값을 계산한 후 이를 샤드 구성원 사이즈로 mod 연산한 결과에 해당하는 인덱스로 블록 제안자를 선택하기 때문에 동일한 결과를 도출하게 된다(도 3 참조).
다시 정리하면, 이전 라운드에서 사용된 랜덤값과 이전 라운드의 마지막 유효 블록의 샤드 구성원의 서명은 모든 노드에게 알려져 있다. 따라서, 각 노드(100)는 별도의 인터랙션 없이 독립적으로 랜덤값을 각각 계산할 수 있다. 또한, 샤드 멤버 리스트는 이미 각 노드(100)가 알고 있으므로, 각 노드(100)는 동일한 랜덤값을 기반으로 동일한 블록 제안자를 선택할 수 있다.
단계 120에서 각 노드(100)는 블록 대기 시간 이내에 블록 제안자(블록 제안 노드)로부터 유효한 블록이 수신되었는지 여부를 판단한다.
블록 대기 시간 동안 유효한 블록이 수신되지 않으면, 단계 125에서 각 노드(100)는 빈 블록에 서명한 후 블록 대기 타임 스탬프를 소거한다.
이해와 설명의 편의를 도모하기 위해, 블록을 검증하고, 서명하는 등의 방법에 대해 우선 설명하기로 한다. 이미 전술한 바와 같이, 각 노드(100)는 동일한 연산 결과에 따라 블록 제안자를 선택할 수 있다. 따라서, 각 노드(100)는 선택된 블록 제안자에 대한 정보를 이미 알고 있다.
두개의 순환 그룹
Figure 112019121817756-pat00016
Figure 112019121817756-pat00017
를 우선 가정하기로 한다. 여기서,
Figure 112019121817756-pat00018
는 이중선형 매핑 함수이다. 공개키는
Figure 112019121817756-pat00019
의 엘리먼트이며, 서명은
Figure 112019121817756-pat00020
의 엘리먼트인 것을 가정하기로 한다.
임의의 난수(random number)인 생성 포인트(
Figure 112019121817756-pat00021
)를 해당 라운드의 랜덤값으로 설정하기로 한다. 즉,
Figure 112019121817756-pat00022
가 블록 제안자의 정보인 것으로 가정하기로 한다.
이미 전술한 바와 같이, 샤드 구성원들은 DKG 실행에 의해 자신의 개인키(
Figure 112019121817756-pat00023
), 검증 벡터(
Figure 112019121817756-pat00024
) 및 공개키(
Figure 112019121817756-pat00025
)를 가지고 있는 것을 가정하기로 한다.
각각의 노드는 메시지를 해시 함수에 적용한 후 공유된 개인키를 이용하여 서명할 수 있다. 이를 수학식으로 나타내면 수학식 4와 같다.
Figure 112019121817756-pat00026
각각의 노드(샤드 구성원)은 각자 개인키에 대응하는 공개키(
Figure 112019121817756-pat00027
)를 가지고 있으므로, 이를 이용하여 서명(
Figure 112019121817756-pat00028
)을 검증할 수 있다. 이를 수학식으로 나타내면, 수학식 5와 같다.
Figure 112019121817756-pat00029
예를 들어, 검증 함수에 블록 제안자로부터 수신한 블록 헤더에 포함된 서명(블록 제안자의 서명)과
Figure 112019121817756-pat00030
를 적용하여 도출된 결과와 각 노드가 메시지를 해시한 결과와 공개키를 검증 함수에 적용한 결과가 동일한지 여부를 판단하여 각 노드는 블록 제안자로부터 수신한 블록의 유효성을 검증할 수 있다.
각각의 노드(샤드 구성운)은 서명 공유에 대해 "Lagrage interpolaton"을 기반으로 t개의 다른 서명을 수신하고, 현재 라운드에서 집계된 서명을 복구할 수 있다. 이를 수학식으로 나타내면, 나타내면 수학식 6과 같다.
Figure 112019121817756-pat00031
"Lagrage interpolaton"의 속성에 따라 집계된 서명의 결과는 고유(unique)하다. 따라서, 공개키를 이용하여 집계된 서명이 검증될 수 있다.
이를 수학식으로 나타내면 수학식 7과 같다.
Figure 112019121817756-pat00032
블록 대기 시간 동안 유효한 블록이 수신되면, 단계 130에서 각 노드(100)는 블록을 검증하고, 블록 헤더에 서명을 추가한 후 이웃 노드에게 전송한다.
각 노드에 의해 선택된 블록 제안자(블록 제안 노드)는 비트코인 P2P 네트워크에서 가쉽 프로토콜을 사용하여 블록 헤더에 블록 제안자의 서명을 삽입하여 블록을 생성한다.
임의의 노드(100)가 블록 제안자(블록 제안 노드)로부터 생성된 블록을 수신할 수 있다. 여기서, 블록은 블록 제안자의 서명이 헤더에 포함될 수 있다.
블록 제안자로부터 블록을 수신한 노드는 검증 벡터와 랜덤값(
Figure 112019121817756-pat00033
)을 이용하여 블록에 포함된 서명을 검증할 수 있다. 즉, 블록이 수신되면 정직한 노드는 블록 제안자의 인덱스, 이전 블록에 대한 포인터 및 트랜잭션 리스트를 포함하여 블록의 유효성을 체크할 수 있다.
단계 135에서 각 노드(100)는 블록 제안자로부터 수신된 블록에 대한 과반 이상의 합의가 완료되었는지 여부를 판단한다.
각 노드(100)는 블록을 검증한 후 블록 헤더에 서명을 추가하고, 이를 무작위로 전송하지 않는다. 다만, 각 노드(100)는 이웃한 노드들에게 블록 헤더에 대한 서명을 공유하며, 이웃 노드로부터 서명 리스트를 수신한다.
즉, 각 노드는 이웃 노드로부터 서명이 공유되면, 서명을 리스트(편의상 서명 리스트라 칭하기로 함)에 추가한 후 서명 리스트를 모든 이웃 노드에게 전송할 수 있다. 즉, 임의의 노드가 이웃 노드로부터 서명 리스트를 수신하면, 서명 리스트가 갱신된 후 다시 전송될 수 있다.
예를 들어, 각 노드가 r개의 이웃 노드를 가지고 있다면, 이웃 노드들과
Figure 112019121817756-pat00034
라운드 메시지 교환 후에 정직한 노드는 정직한 샤드 구성원(노드)로부터 t 이상의 서명 공유가 가능하다.
따라서, 본 발명의 일 실시예에서는 전체 샤드 구성원의 과반 이상이 블록에 서명한 경우, 해당 블록 제안자에 의해 생성된 블록을 블록 체인에 기록하는 것에 샤드 구성원이 합의한 것으로 간주한다.
따라서, 각 노드(100)는 이웃 노드들과 서명 리스트 공유를 통해 t개 이상의 서명이 공유된 경우 해당 블록에 대한 합의가 완료된 것으로 판단할 수 있다. 이에 대한 의사 코드는 도 4에 도시된 바와 같다.
만일 서명 대기 시간 동안 t개 이상의 유효한 서명이 공유되면, 단계 140에서 각 노드(100)는 블록을 블록 체인에 추가한다.
그러나, 만일 서명 대기 시간 동안 t개 이상의 유효한 서명이 공유되지 않으면, 단계 145에서 각 노드(100)는 빈 블록에 서명한 후 서명 대기 시간의 타임 스탬프를 재설정한다.
블록 검증에 대한 의사 코드는 도 2에 도시된 바와 같다.
도 5를 참조하여 블록에 대한 합의까지의 시간에 대해 설명하기로 한다. 비잔틴 결함을 견딜 수 있는 강력한 샤드를 가지기 위해서는 샤드의 크기가 커야 한다. 그러나 작은 크기의 샤드는 거래 속도 측면에서 더 유리하다. 트레이드 오프를 감안하여, 샤드 크기를 400 노드로 설정하며, 보안 임계값은
Figure 112019121817756-pat00035
로 가정하기로 한다.
각 노드간 연결 대역폭이 20Mbps로 제한되며, 모든 통신 링크의 대기 시간은 100ms라고 가정하기로 한다.
도 5에 도시된 바와 같이, 블록을 전송하는 시간을
Figure 112019121817756-pat00036
가 된다. 각 노드에는 20개의 이웃 노드가 있고,
Figure 112019121817756-pat00037
라운드 내에서 정직한 노드는 다른 정직한 노드와 서명을 공유받을 수 있다. 따라서, 전체
Figure 112019121817756-pat00038
의 시간이 필요하다.
상술한 내용을 바탕으로 약 12 ~ 15회 홉 후 전체 네트워크에서 메시지를 수신할 수 있으며, 모든 통신 링크에서 100ms의 대기 시간으로
Figure 112019121817756-pat00039
가 소요되므로, 블록이 합의되기까지 약 5초의 시간이 소요되는 것을 알 수 있다.
도 6은 본 발명의 일 실시예에 따른 노드의 구성을 개략적으로 도시한 블록도이다. 이하에서 각 노드는 샤드 네트워크를 구성하는 장치로 이해되어야 할 것이며, 계산 능력 및 통신 능력을 가지는 컴퓨팅 장치일 수 있다.
도 1을 참조하면, 본 발명의 일 실시예에 따르면 노드(100)는 통신부(610), 메모리(615) 및 프로세서(620)를 포함하여 구성된다.
통신부(610)는 통신망을 통해 다른 장치(예를 들어, 다른 노드들)과 데이터를 송수신하기 위한 수단이다.
예를 들어, 통신부(610)는 다른 노드로부터 블록, 서명이 포함된 블록 헤더 등을 수신받을 수 있다.
또한, 통신부(610)는 프로세서(620)의 제어에 따라 자신의 서명이 포함된 블록 헤더를 다른 노드로 전송할 수도 있다.
메모리(615)는 리더가 없는 무분기 블록 체인 합의 방법을 수행하기 위해 필요한 적어도 하나의 명령어(프로그램 코드)를 저장한다.
프로세서(620)는 본 발명의 일 실시예에 따른 각 노드의 구성 요소들(예를 들어, 통신부(610), 메모리(615) 등)을 제어하기 위한 수단이다.
또한, 프로세서(620)에 의해 실행된 명령어는 도 1 내지 도 5를 참조하여 설명한 리더가 없는 무분기 블록 체인 합의 방법을 위한 각각의 단계를 수행할 수 있다.
본 발명의 실시 예에 따른 장치 및 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야 통상의 기술자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이제까지 본 발명에 대하여 그 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100: 노드
610: 통신부
615: 메모리
620: 프로세서

Claims (12)

  1. 각 노드에서 수행되는 블록 체인 합의 방법에 있어서,
    (a) 현재 라운드에 대한 랜덤값을 계산하는 단계;
    (b) 상기 계산된 랜덤값을 이용하여 블록 제안 노드를 선택하는 단계;
    (c) 상기 블록 제안 노드로부터 생성된 블록의 수신 여부를 결정하는 단계;
    (d) 상기 블록 제안 노드로부터 블록을 수신하는 경우, 상기 수신된 블록을 검증한 후 유효한 경우 상기 블록의 헤더에 서명을 추가하고, 상기 서명이 추가된 블록 헤더 정보만 다른 노드로 전송하는 단계; 및
    (e) 블록 대기 시간 동안 상기 블록 제안 노드로부터 유효한 블록이 수신되지 않는 경우, 빈 블록을 생성하여 서명한 후 상기 다른 노드로 전송하는 단계를 포함하는 리더가 없는 블록 체인 합의 방법.
  2. 제1 항에 있어서,
    상기 현재 라운드에 대한 랜덤값은,
    이전 라운드에서 이용된 랜덤값과 이전 라운드에서 생성된 블록의 서명을 이용하여 계산되는 것을 특징으로 하는 리더가 없는 블록 체인 합의 방법.
  3. 제1 항에 있어서,
    상기 (d) 단계 이후에,
    이웃한 다른 노드로부터 상기 블록 헤더에 추가된 서명을 공유받는 단계를 더 포함하되,
    상기 공유된 서명을 분석하여 유효한 서명이 보안 임계치 이상인 경우 상기 블록을 블록 체인에 추가하는 단계를 포함하는 리더가 없는 블록 체인 합의 방법.
  4. 제3 항에 있어서,
    상기 보안 임계치는,
    전체 샤드 구성원 수의 절반으로 설정되는 것을 특징으로 하는 리더가 없는 블록 체인 합의 방법.
  5. 삭제
  6. 삭제
  7. 제1 항에 있어서,
    상기 (d) 단계에서,
    상기 블록 제안 노드로부터 두개의 유효한 블록이 수신되는 경우, 하나의 블록만 검증하여 서명하고, 다른 블록은 무시하는 것을 특징으로 하는 리더가 없는 블록 체인 합의 방법.
  8. 제1 항 내지 제4항 또는 제7 항 중 어느 하나의 항에 따른 방법을 수행하기 위한 프로그램 코드를 기록한 컴퓨터로 판독 가능한 기록매체.
  9. 적어도 하나의 명령어를 저장하는 메모리;
    상기 메모리에 저장된 명령어를 실행하는 프로세서를 포함하되,
    상기 명령어는,
    (a) 현재 라운드에 대한 랜덤값을 계산하는 단계;
    (b) 상기 계산된 랜덤값을 이용하여 블록 제안 노드를 선택하는 단계;
    (c) 상기 블록 제안 노드로부터 생성된 블록의 수신 여부를 결정하는 단계;
    (d) 상기 블록 제안 노드로부터 블록을 수신하는 경우, 상기 수신된 블록을 검증한 후 유효한 경우 상기 블록의 헤더에 서명을 추가하고, 상기 서명이 추가된 블록 헤더 정보만 다른 노드로 전송하는 단계; 및
    (e) 블록 대기 시간 동안 상기 블록 제안 노드로부터 유효한 블록이 수신되지 않는 경우, 빈 블록을 생성하여 서명한 후 상기 다른 노드로 전송하는 단계를 수행하는 노드.
  10. 제9 항에 있어서,
    상기 현재 라운드에 대한 랜덤값은,
    이전 라운드에서 이용된 랜덤값과 이전 라운드에서 생성된 블록의 서명을 이용하여 계산되는 것을 특징으로 하는 노드.
  11. 제9 항에 있어서,
    상기 (d) 단계 이후에,
    이웃한 다른 노드로부터 상기 블록 헤더에 추가된 서명을 공유받는 단계를 더 포함하되,
    상기 공유된 서명을 분석하여 유효한 서명이 보안 임계치 이상인 경우 상기 블록을 블록 체인에 추가하는 단계를 더 수행하는 노드.
  12. 제11 항에 있어서,
    상기 보안 임계치는,
    전체 샤드 구성원 수의 절반으로 설정되는 것을 특징으로 하는 노드.

KR1020190153426A 2019-11-26 2019-11-26 리더가 없는 블록 체인 합의 방법 및 그 장치 KR102372422B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190153426A KR102372422B1 (ko) 2019-11-26 2019-11-26 리더가 없는 블록 체인 합의 방법 및 그 장치
PCT/KR2020/014398 WO2021107408A1 (ko) 2019-11-26 2020-10-21 리더가 없는 블록 체인 합의 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190153426A KR102372422B1 (ko) 2019-11-26 2019-11-26 리더가 없는 블록 체인 합의 방법 및 그 장치

Publications (2)

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

Family

ID=76129359

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190153426A KR102372422B1 (ko) 2019-11-26 2019-11-26 리더가 없는 블록 체인 합의 방법 및 그 장치

Country Status (2)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115392912B (zh) * 2022-10-26 2023-03-14 南方科技大学 随机数生成方法、系统、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
WO2019199768A1 (en) * 2018-04-09 2019-10-17 Storecoin Inc. Fork-tolerant consensus protocol

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102050129B1 (ko) * 2016-05-03 2019-11-28 안규태 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인
KR101937220B1 (ko) * 2017-02-01 2019-01-11 주식회사 아이콘루프 키 관리가 필요없는 블록체인을 기반한 전자서명 또는 메시지 인증 코드를 생성 및 검증 방법
US11871485B2 (en) * 2017-08-09 2024-01-09 Visa International Service Association Verification of interactions system and method
KR20190093012A (ko) * 2018-01-31 2019-08-08 지송학 블록 체인 시스템에서의 블록 생성 및 검증 방법
KR102033848B1 (ko) 2018-02-21 2019-10-17 이화여자대학교 산학협력단 그룹기반의 랜덤화 된 메시 블록체인 시스템 및 이의 무결성 확인 방법
KR20190123624A (ko) * 2018-04-24 2019-11-01 (주)스마트코인 블록체인 내에서 블록생성 및 검증, 그리고 해킹 방지를 위한 블록체인 플랫폼 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019199768A1 (en) * 2018-04-09 2019-10-17 Storecoin Inc. Fork-tolerant consensus protocol
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

Also Published As

Publication number Publication date
KR20210064803A (ko) 2021-06-03
WO2021107408A1 (ko) 2021-06-03

Similar Documents

Publication Publication Date Title
KR101924026B1 (ko) 해시 기반 서명 기법을 적용한 블록체인 시스템 및 방법
Stevens et al. The first collision for full SHA-1
CN110866751B (zh) 区块链平行链的维护方法及区块链平行链系统
US11570003B2 (en) Quantumproof blockchain
US11641283B2 (en) Computer implemented method and system for transferring access to a digital asset
Miller et al. The honey badger of BFT protocols
US11177962B2 (en) Optimizations for verification of interactions system and method
Carter et al. Secure outsourced garbled circuit evaluation for mobile devices
Jackson et al. Seems legit: Automated analysis of subtle attacks on protocols that use signatures
Dowling et al. A cryptographic analysis of the TLS 1.3 draft-10 full and pre-shared key handshake protocol
CN111047324A (zh) 用于更新区块链节点处的公钥集合的方法及装置
JP2022527610A (ja) ブロックチェーンネットワークにおけるブロックを伝搬する方法及び装置
JP5801482B2 (ja) キーバリューストレージに対するデータの保存および読み出しを行う方法およびシステム
CN110149379B (zh) 一种基于层逻辑的多原链吞吐量扩展方法
CN111010265A (zh) 基于分层密钥和bls数字签名的区块链组织密钥管理方法
Delignat-Lavaud et al. A security model and fully verified implementation for the IETF QUIC record layer
Cong et al. A blockchain consensus protocol with horizontal scalability
CN114362993A (zh) 一种区块链辅助的车联网安全认证方法
KR102372422B1 (ko) 리더가 없는 블록 체인 합의 방법 및 그 장치
US11563575B2 (en) Communication node, method of operating thereof and collaborative system
CN110784318B (zh) 群密钥更新方法、装置、电子设备、存储介质及通信系统
CN110827034B (zh) 用于发起区块链交易的方法及装置
CN116757698A (zh) 一种用于完善支付安全性能的加密方法及系统
CN109410049A (zh) 区块链记账方法、装置、计算机设备和存储介质
EP3852305B1 (en) Transaction verification system and method of operation thereof

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