[go: up one dir, main page]

KR102859195B1 - 위임형 행운 증명 기반의 블록체인 합의 방법 - Google Patents

위임형 행운 증명 기반의 블록체인 합의 방법

Info

Publication number
KR102859195B1
KR102859195B1 KR1020230154624A KR20230154624A KR102859195B1 KR 102859195 B1 KR102859195 B1 KR 102859195B1 KR 1020230154624 A KR1020230154624 A KR 1020230154624A KR 20230154624 A KR20230154624 A KR 20230154624A KR 102859195 B1 KR102859195 B1 KR 102859195B1
Authority
KR
South Korea
Prior art keywords
proof
block
delegation
luck
node
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020230154624A
Other languages
English (en)
Other versions
KR20250068842A (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 KR1020230154624A priority Critical patent/KR102859195B1/ko
Publication of KR20250068842A publication Critical patent/KR20250068842A/ko
Application granted granted Critical
Publication of KR102859195B1 publication Critical patent/KR102859195B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

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

Abstract

본 발명에 따른 위임형 행운 증명 기반의 블록체인 합의 방법은 복수 개의 위임 노드를 선정하는 위임 단계; 및 상기 위임 노드가 블록을 생성하기 위한 합의 단계를 포함한다.
상기 위임 단계는, 각 노드가 난수를 생성하는 단계; 난수와 투표정보를 포함하는 투표 트랜잭션을 전파하는 단계; 상기 투표 트랜잭션을 검증하는 단계; 상기 각 노드별로 득표값의 크기를 기준으로 상위 N 개의 노드를 위임 노드로 선정하는 단계를 포함한다.
상기 합의 단계는, 제1 위임노드가 제1 블록을 생성하여 전파하는 단계; 및 다른 위임 노드가 상기 제1 블록의 유효성을 검증하는 단계를 포함한다.
상기 제1 블록에는 논스(nonce)와 행운(luck)의 연결 데이터를 암호화한 제1 증명이 추가되어 있고, 상기 행운은 상기 위임 단계에서 상기 제1 위임 노드가 생성한 상기 난수(이하, '제1 난수'라 함)를 포함한다.
상기 제1 블록의 유효성 검증은 상기 투표 트랜잭션에 포함된 상기 제1 난수를 이용하여 상기 제1 증명의 유효성을 검증하는 것을 포함한다.

Description

위임형 행운 증명 기반의 블록체인 합의 방법{BLOCKCHAIN CONSENSUS METHOD BASED ON DELEGATED PROOF OF LUCK}
본 발명은 블록체인에 있어서 합의 방법에 관한 것으로서, 보다 상세하게는 새로운 합의 알고리즘을 통해 양자내성을 가지면서도 효율적인 블록체인 합의가 가능한 위임형 행운 증명 기반의 블록체인 합의 방법에 관한 것이다.
블록체인은 네트워크 내의 노드들이 P2P(Peer-to-Peer) 방식으로 통신하여 원장을 공유하는 탈중앙화 방식의 분산 원장 기술이다. 따라서 블록체인은은 각 노드가 직접 블록을 생성하고 트랜잭션을 검증하게 된다.
블록체인에서 합의(Consensus)란 블록체인 네트워크에 참여하는 모든 노드들이 동일한 데이터를 저장하고 공유하기 위해 서로 동의하는 과정을 의미한다. 이때, 블록체인의 노드들은 합의 알고리즘을 사용하여 특정 절차를 통해 데이터 무결성을 보장하고 동일한 결정을 내리게 된다.
즉, 블록체인은 새로운 거래가 발생할 때마다 이를 블록(Block)에 담아 체인(Chain) 형태로 연결하는데, 이때 블록체인 네트워크에 참여하는 모든 구성원(즉, 노드)들은 블록에 담긴 거래 내용을 검증하고, 합의를 통해 이를 승인하게 된다.
블록체인 합의 알고리즘에는 블록 생성자와 검증자가 있다. 블록 생성자는 트랜잭션이 포함된 블록을 생성하여 검증자에게 보내고, 검증자는 블록의 헤더가 유효한지 확인한다. 또한 검증자는 트랜잭션의 서명을 확인하여 검증을 수행하게 된다.
대표적인 블록체인 합의 알고리즘으로는 작업 증명(Proof of Work), 지분 증명(Proof of Stake), 위임 지분 증명(Delegated Proof of Stake) 등이 있다. 작업 증명(PoW)은 비트코인에서 사용되고 있고, 지분 증명(PoS)은 이더리움에서 사용되고 있는 합의 알고리즘이다.
작업증명(PoW) 방식의 경우, 노드는 블록 생성자가 되기 위해 채굴을 수행해야 한다. 하지만, 작업 증명은 채굴 과정에서 과도한 에너지를 소모한다는 문제점이 있다.
지분증명(PoS) 방식은 충분한 지분을 가진 노드가 블록 생성자가 되며, 이와 같은 이유로 작업증명 방식의 과도한 전력 소모 문제를 해결할 수 있는 장점이 있다. 그러나, 지분증명(PoS) 방식은 더 많은 자산을 보유한 노드일수록 더 높은 확률로 블록을 생성할 수 있게 되고, 지분이 없는 노드는 블록을 생성할 수 없게 되는 문제점 있다.
따라서, 지분 증명 방식은 작업 증명 방식에 비해 에너지 낭비가 적고, 보안성이 높다는 장점이 있지만, 자산이 많은 채굴자에게 유리하기 때문에 부의 집중화를 초래할 수 있다는 단점이 있다.
한편, 최근에는 양자 컴퓨터에 대한 위협이 커지면서 해당 분야에 대한 관심도 높아지고 있으며, 이에 대한 해결책으로 양자내성 암호화 알고리즘을 사용하는 포스트 퀀텀(Post-Quantum) 서명 체계가 주목받고 있다.
디지털 서명을 위한 대표적인 양자내성 암호화 알고리즘으로는 CRYSTALS -Kyber, CRYSTALS-Dilithium, FALCON 및 SPHINCS+ 등이 있다. CRYSTALS-Kyber, Crystals-Dilithium 및 Falcon은 구조화 격자라고 하는 수학 문제 계열을 기반으로 하고, SPHINCS+는 해시 함수를 사용한다.
그런데, 이러한 양자내성 암호 알고리즘을 사용하는 포스트 퀀텀 서명(암호) 체계를 블록체인의 트랙잭션 서명 및 검증 프로세스에 도입하게 되면, 대용량의 서명 크기와 느린 검증 속도 등으로 인하여 블록체인에서 처리하는 초당 트랜잭션 수(TPS)의 감소 및 성능 저하로 이어지는 문제점이 발생하게 된다.
한국공개특허 제10-2020-0009974호 (2020.01.30.공개) 한국공개특허 제10-2017-0040079호 (2017.04.12.공개)
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 잠재적인 양자 공격에 대한 블록체인의 보안을 보장할 수 있는 위임형 행운 증명 기반의 블록체인 합의 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 블록체인의 트랙잭션 생성 및 검증 과정에 포스트 양자 암호 체계를 적용하더라도, 서명 크기가 커짐에 따른 초당 트랜잭션 수(TPS)의 감소 및 성능 저하를 크게 완화할 수 있어 효율적인 블록체인 합의가 가능한 위임형 행운 증명 기반의 블록체인 합의 방법을 제공하는 것이다.
상기 목적을 달성하기 위한 본 발명에 따른 위임형 행운 증명 기반의 블록체인 합의 방법은 복수 개의 위임 노드를 선정하는 위임 단계; 및 상기 위임 노드가 블록을 생성하기 위한 합의 단계를 포함한다.
상기 위임 단계는,
블록체인에 네트워크에 참여한 각 노드가 난수 생성기를 통해 난수를 생성하는 단계; 상기 각 노드가 상기 난수, 표를 받을 노드의 정보(이하, '투표 정보'라 함), 서명 및 공개키를 포함하는 투표 트랜잭션을 전파하는 단계; 상기 각 노드가 전파받은 상기 투표 트랜잭션을 검증하는 단계; 및 상기 각 투표 트랜잭션에 포함된 상기 투표 정보에 따라 상기 각 노드별로 득표값을 산출하여, 상기 득표값의 크기를 기준으로 상위 N 개(여기서, N≥2, N은 자연수)의 노드를 상기 위임 노드로 선정하는 단계;를 포함한다.
상기 위임 노드 선정 단계의 상기 득표값은, 해당 노드에 투표한 해당 투표 트랜잭션들에 포함된 상기 난수의 값의 합계일 수 있다.
상기 합의 단계는, 상기 N 개의 위임 노드 중 어느 하나의 위임 노드(이하, '제1 위임 노드'라 함)가 블록(이하, '제1 블록'이라 함)을 생성하는 제1 단계; 상기 제1 블록이 다른 위임 노드로 전파되는 제2 단계; 및 상기 다른 위임 노드가 상기 제1 블록의 유효성을 검증하는 제3 단계;를 포함한다.,
그리고, 상기 제1 단계는, 논스(nonce)와 행운(luck)의 연결 데이터를 암호화하여 생성된 값인 증명(이하 '제1 증명'이라 함)을 생성하는 제1a 단계; 및 상기 제1a 단계에서 생성된 상기 제1 증명을 상기 제1 블록에 추가하는 제1b 단계;를 포함한다.
상기 제1a 단계의 상기 행운(luck)은, 상기 위임 단계에서 상기 제1 위임 노드가 생성한 상기 난수(이하, '제1 난수'라 함)를 포함한다.
그리고, 상기 제3 단계는, 상기 다른 위임 노드가, 상기 위임 단계에서 전파받은 상기 투표 트랜잭션에 포함된 상기 제1 난수를 이용하여, 상기 제1 블록에 포함된 상기 제1 증명의 유효성을 검증하는 증명 검증 단계;를 포함한다.
일 실시예에 따르면, 상기 증명 검증 단계는, 상기 투표 트랜잭션에 포함된 상기 제1 난수와 상기 제1 증명에서 추출한 논스의 연결 데이터를 암호화하여 증명(이하, '검증용 증명'이라 함)을 생성하는 단계; 및 상기 제1 블록에 포함된 상기 제1 증명을 상기 검증용 증명과 비교하는 단계;를 포함할 수 있다.
또 다른 실시예에 따르면, 상기 증명 검증 단계는, 상기 신규블록에 포함된 상기 제1 증명을 디코딩하여 행운(이하, '추출 행운'이라 함)을 추출하는 단계; 및 상기 추출 행운의 값을 상기 투표 트랜잭션에 포함된 상기 제1 난수와 비교하는 단계;를 포함할 수 있다.
본 발명에 따른 위임형 행운 증명 기반의 블록체인 합의 방법에 의하면, 합의에 참여하는 노드의 수가 줄어들기 때문에 합의에 필요한 시간이 단축될 수 있고, 딜리슘(Dilithium) 등과 같은 포스트 양자 암호 체계를 적용하더라도 서명 크기가 커짐에 따른 초당 트랜잭션 수(TPS)의 감소 및 성능 저하를 크게 완화할 수 있어 효율적인 블록체인 합의가 가능면서, 또한 블록체인의 확장성을 개선하고 보안성을 강화할 수 있는 효과가 있다.
도 1은 본 발명에 따른 위임형 행운 증명 기반의 블록체인 합의 방법의 개념도.
도 2는 본 발명에 따른 위임 단계의 개념도.
도 3은 본 발명에 따른 위임 단계의 처리 순서도.
도 4는 본 발명에 따른 합의 단계의 개념도.
도 5는 본 발명에 따른 합의 단계의 처리 순서도.
도 6은 본 발명에 따른 합의 단계의 원격 증명 알고리즘.
본 명세서에서 사용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "갖다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
이하에서는, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예, 장점 및 특징에 대하여 상세히 설명하도록 한다.
본 발명의 상세한 설명에 앞서 블록 체인에 대하여 간략하게 설명하면 다음과 같다. 즉, 블록 체인에 있어서 블록(block)은 블록 헤더(block header)와 블록 바디(block body)로 구성되어 있고, 블록 헤더에는 버전(version), 이전 블록 해시(previous block hash), 머클 해시(merkle hash), 타임(time), 비트(bits), 논스(nonce)가 포함되어 있다.
버전(version)은 해당 블록의 버전으로서 현재 해당 블록 헤더를 만든 소프트웨어의 버전 정보를 의미한다.
이전 블록 해시(previous block hash)는 현재 블록의 바로 앞에 위치하는 블록의 해시값을 의미한다. 구체적으로, 이전 블록 해시는 이전 블록 헤더를 해시함수(예컨대 SHA-256)를 이용하여 해싱한 해시값으로, 각 블록의 헤더 정보에는 이전 블록의 해시값이 포함되어 있어서 블록끼리 연결할 수 있다.
머클 해시(merkle hash)는 블록 하나에서 일어난 모든 거래 내역을 하나의 해시값으로 변환한 데이터를 의미한다. 구체적으로, 각 거래 내역을 해시로 표현하고 이를 머클트리를 이용해 구성할 때 트리의 루트에 해당하는 해시값을 의미한다. 즉, 블록의 바디에 담긴 각각의 거래 데이터들은 결국 하나의 최종 해시값인 Merklehash 값으로 집약되고, 이 값은 블록 헤더를 구성하는 정보 중 하나가 된다.
타임(time)은 해당 블록이 생성된 시간을 의미한다.
비트(bits)는 작업 난이도로서, 난이도는 논스(nonce) 값 계산이 어려운 정도를 나타내며, 블록 헤더 정보에서 비트(bits)라는 값으로 조절된다.
논스(nonce)는 정해져 있지 않은 값으로서 유효한 신규 블록을 생성하기 위해 연산을 통해 유효한 논스(nonce)를 찾아야 한다.
블록을 생성하려고 할 때 블록에 들어가야 할 모든 데이터를 전달받지 않는다. 즉, 논스(nonce) 값이 비어 있는 미완성 블록을 받게 된다. 따라서 완성된 블록을 만들기 위해 채굴자는 논스(nonce)에 들어가야 할 적합한 값을 찾아줘야 한다. 구체적으로 블록 해시값을 특정 숫자보다 작게 만들 수 있는 논스(nonce) 값을 찾아야 한다.
도 1은 본 발명에 따른 위임형 행운 증명 기반의 블록체인 합의 방법의 개념도이다.
본 발명의 위임형 행운 증명 기반의 블록체인 합의 방법은 TEE(Trusted Execution Environment)를 기반으로 구현될 수 있다.
특히, 후술할 위임 노드의 선정을 위해 투표를 하거나 블록을 생성할 수 있는 자격을 갖춘 대표로 선출되기 위해서는 'TEE'를 통한 무작위 값(즉, 후술할 난수 값) 생성 과정이 필요하다. 그리고, 동시 호출을 방지하기 위해 모노토닉 카운터 (Monotonic Counter)가 사용될 수 있고, 또한 작동을 검증하기 위한 원격 증명이 사용될 수 있다.
이러한 'TEE(Trusted Execution Environment)'는 일반적인 OS(운영체제)와는 독립적으로 동작하며 메인 프로세서의 보안 영역을 의미한다.
보안 영역은 프로세서 내부의 코드와 데이터를 기밀성과 무결성 측면에서 보호할 수 있으며 이를 위해 다양한 고유 기술이 있다. 예를 들어, 신뢰 시간 (Trusted Time), 모노토닉 카운터(Monotonic Counter), 난수 생성(Random Number Generation), 증명(Attestation) 등의 기술이 있다.
구체적으로, 'TEE'는 신뢰할 수 있는 시간(Trusted Time) 서비스를 위해 PRTC(Protected Real-Time Clock) 기반 타이머를 제공한다. 이 신뢰 시간 서비스는 이전 타이머를 읽은 후 경과된 시간을 측정하는 데 사용할 수 있다.
타이머 소스 에포크(Timer Source Epoch)는 읽기 시간 지점 간의 불연속성을 감지하는 데 사용할 수 있다. 여기서, 상기 '불연속'이란 배터리 교체와 같은 이벤트로 인해 PRTC가 재설정되었거나 소프트웨어 공격과 같은 예기치 않은 이벤트로 인해 타이머가 다른 PRTC와 페어링되었음을 의미한다. 이 경우 사용자는 계산된 두 타이머 판독값 사이의 기간을 계산하고 오류 조건을 적절히 처리해야 한다. 이와 같은 기능은 인텔 SGX SDK의 라이브러리 API 함수인 sgx_get_trusted time()을 통해 사용할 수 있다.
그리고, 사용자는 고유 식별자인 ID가 있는 모노토닉 카운터(Monotonic Counter)를 사용할 수 있다. 사용자는 인텔 SGX SDK를 통해 모노토닉 카운터를 생성하고, 값을 늘리거나, 값을 읽거나 삭제할 수 있다.
의사소통 등의 다양한 이유로 서로 다른 TEE가 협력해야 하는 경우가 있다. 이때 서로의 신뢰성을 증명하는 기능이 제공되는데, 이를 증명(Attestation)이라고고 한다. 증명은 로컬 증명과 원격 증명으로 구분된다. 동일한 CPU에 두 개의 TEE 영역이 존재하는 경우 로컬 증명을 통해 검증이 가능하며, 서로 다른 CPU에 존재하는 경우 원격 증명을 통해 검증을 수행해야 한다.
한편, 이와 같은 'TEE'의 대표적인 플랫폼으로는 Intel SGX, ARM TrustZone, RISC-V MultiZone, AMD SEE 등이 있다.
본 발명에 따른 위임형 행운 증명 기반의 블록체인 합의 방법은 이와 같은 'TEE'를 기반으로 설계될 수 있으며, 세부적으로는 복수 개의 위임 노드를 선정하는 위임 단계(S100) 및 선정된 위임 노드가 블록을 생성하기 위한 합의 단계 (S200)를 통해 양자내성을 가지면서도 효율적인 합의가 가능한 블록체인을 구축할 수 있게 된다.
(1) 위임 단계(S100)
도 2는 본 발명에 따른 위임 단계의 개념도이고, 도 3은 본 발명에 따른 위임 단계의 처리 순서도이다. 이하에서는 도 2 및 도 3을 참조하여, 위임 단계(S100)에 설명하도록 한다.
본 발명의 위임 단계(S100)는 블록체인에 네트워크에 참여한 모든 노드들이 투표를 통해 위임자가 될 노드(이하, '위임 노드'라 칭함)를 선정하는 단계이다.
구체적으로, 위임 단계(S100)는 난수 생성 단계(S110), 투표 트랜잭션 전파 단계(S120), 투표 트랜잭션 검증 단계(S130), 및 위임 노드 선정 단계(S140)를 포함한다.
위임 단계(S100)의 난수 생성 단계(S110)는 블록체인에 네트워크에 참여한 각 노드가 난수 생성기를 통해 난수를 생성하는 단계이다.
일 실시예에 따르면, 난수 생성 단계(S110)는 TEE(Trusted Execution Environment) 기반 인텔 온칩 하드웨어 난수 생성기로부터 난수 값을 생성할 수 있다. 여기서, 상기 인텔 온칩 하드웨어 난수 생성기는 'RDRAND'라는 명령어를 통해 온칩 엔트로피 소스(on-chip entropy source)에 의해 시드된 난수 생성기일 수 있다.
그리고, 이와 같은 난수 생성 단계(S110)에서 생성되는 난수 값은 후술할 득표 값 및 행운 값으로 사용된다.
위임 단계(S100)의 투표 트랜잭션 전파 단계(S120)는 블록체인에 네트워크에 참여한 각 노드가 난수, 표를 받을 노드의 정보(이하, '투표 정보'라 함), 서명 및 공개키를 포함하는 투표 트랜잭션을 생성하고, 이렇게 생성된 투표 트랜잭션을 모든 참여 노드에게 전파하는 단계이다.
여기서, 투표 트랜잭션에 포함되는 상기 난수는 난수 생성 단계(S110)에서 생성한 난수 값을 포함하고, 투표 정보는 각 노드가 위임 노드 선정을 위해 투표한 해당 표를 받을 노드(즉, 각 표에 지정된 노드)에 대한 정보를 포함하며, 상기 서명은 양자내성 암호화 알고리즘을 통해 암호화된 것일 수 있다.
일 실시예에 따르면, 투표 트랜잭션의 서명에 사용되는 양자내성 암호화 알고리즘은 SVP(the Shortest Vector Problem)를 기반으로 하는 격자 기반 암호인 딜리슘(Dilithium) 내지 크리스탈 딜리슘(CRYSTALS-Dilithium)일 수 있다.
또 다른 실시예에 따르면, 투표 트랜잭션의 서명에 사용되는 양자내성 암호화 알고리즘은 CRYSTALS -Kyber, FALCON 또는 SPHINCS+ 일 수도 있다. CRYSTALS -Kyber 및 Falcon은 구조화 격자라고 하는 수학 문제 계열을 기반으로 하고, SPHINCS+는 해시 함수를 사용한다.
다음의 표 1은 딜리슘(Dilithium)의 공개키와 서명의 크기(bytes 단위)를 나타낸 것이다.
표 1
딜리슘(Dilithium)은 보안 수준에 따라 Dilithium - 2,3,5로 구분된다. Dilithium의 공개키의 크기는 1,312 ~ 2,592 bytes 이고, 개인키는 2,528 ~ 4,864bytes 이며, 서명의 크기는 2,420 ~ 4,595 bytes 이다. 딜리슘(Dilithium)은 다른 PQC(Post-Quantum Cryptography)에 비해 키와 서명의 크기가 더 크지만 계산 속도가 더 빠른 특징이 있다.
위임 단계(S100)의 투표 트랜잭션 검증 단계(S130)는 투표 트랜잭션 전파 단계(S120)에서 참여 노드들이 전파한 각 투표 트랜잭션의 유효성을 검증하는 단계이다.
일 실시예에 따르면, 블록체인에 네트워크에 참여한 각 노드는 다른 노드들의 투표 트랜잭션을 수신한 후 딜리슘(Dilithium)을 통해 각 투표 트랜잭션의 서명을 검증할 수 있다.
투표 트랜잭션 검증 결과, 서명 검증에 성공하면 해당 투표 트랜잭션은 유효한 것으로 간주되어 유효한 투표가 이루어졌음을 나타내고, 서명 검증에 실패하면 해당 투표 트랜잭션은 조작되었음을 의미하여 해당 투표는 무효로 처리된다.
위임 단계(S100)의 위임 노드 선정 단계(S140)는 단계 S130에서 유효한 투표로 확인된(즉, 서명 검증에 성공한) 각 투표 트랜잭션에 포함된 투표 정보에 따라 각 노드별로 구분하여 득표값을 산출하고, 이와 같이 산출된 득표값의 크기를 기준으로 상위 N 개(여기서, N≥2, N은 자연수)의 노드를 상기 위임 노드로 선정하는 단계이다.
여기서, 위임 노드 선정 단계(S140)의 위임 노드 선정 기준인 상기 '득표값'은 해당 노드에 투표한 해당 투표 트랜잭션들에 포함된 난수의 값의 합계일 수 있다.
예컨대, 제1 노드의 투표 트랜잭션에 포함된 투표 정보는 제2 노드이고, 난수 값은 '12'이고, 제2 노드의 투표 트랜잭션에 포함된 투표 정보는 제3 노드이고, 난수 값은 '213'이고, 제3 노드의 투표 트랜잭션에 포함된 투표 정보는 제2 노드이고, 난수 값은 '93'이라고 가장하자.
상기 경우, 제1 노드는 표를 한 표도 받지 못하였으므로 득표값은 '0'이고, 제2 노드는 제1 노드와 제3 노드로부터 각각 표를 받았으므로 제2 노드의 득표값은 제1 노드의 투표 트랜잭션에 포함된 난수 값인 '12'와 제3 노드의 투표 트랜잭션에 포함된 난수 값인 '93'의 합계 즉, '105'이다. 그리고, 제3 노드는 제2 노드로부터만 표를 받았으므로 제3 노드의 득표값은 '213'이다.
상기와 같을 때, 다만 득표 수를 기준으로 하면 제2 노드는 두 표를 받았으므로 한 표를 받은 제3 노드보다 득표 수는 크지만, 득표 값을 기준으로 하면 제2 노드의 득표값은 '105'이고, 제3 노드의 득표값은 '213'이므로 제3 노드가 제2 노드보다 득표값의 크기가 더 큰 것으로 결정된다.
이와 같은 득표값 산출 방식에 따라 각 노드의 득표값을 산출한 후, 득표값의 크기를 기준으로 즉, 득표값이 가장 큰 노드부터 순차적으로 상위 N 개(여기서, N≥2, N은 자연수)의 노드를 추출하여 해당 노드들을 위임 노드로 선정하게 된다.
예컨대, 제1 노드, 제2 노드, 제3 노드, 제4 노드, 제5 노드의 득표값이 각각 "21, 0, 93, 112, 6" 이고, 선정하려는 위임 노드의 개수(N)가 2 개라면, 제4 노드와 제3 노드가 득표값 크기 기준 상위 2 개의 노드에 해당하게 되고, 따라서 제3,4 노드가 해당 투표 트랜잭션에 따른 위임 노드로 선정되게 된다.
한편, 위임 노드 선정 단계(S140)에서 선정될 위임 노드의 개수 'N'은 해당 블록체인의 지연시간(latency) 등을 고려하여 그에 적합한 범위 내의 값으로 설정될 수 있다.
예컨대, 비트코인의 지연시간은 10분으로 매우 길고 크며, 이더리움은 0.22분이며, 리플의 지연시간은 약 4초이다. 따라서, 상기와 같은 경우, 리플의 선정 위임 노드 수(N)가 비트코인과 이더리움보다 상대적으로 더 큰 값으로 설정될 수 있고, 비트코인의 선정 위임 노드 수(N)가 리플과 이더리움 대비 상대적으로 더 작은 값으로 설정될 수 있다.
위임 단계(S100)를 포함한 본 발명의 블록체인 합의 방법은 양자내성 암호화 알고리즘(예컨대, 딜리슘(Dilithium) 등)을 적용하므로 서명 크기가 크기 때문에 TPS가 감소하게 된다. 이에 따라 하나의 블록에 포함될 수 있는 트랜잭션의 수가 즐어들게 된다.
그러나, 본 발명의 블록체인 합의 방법은 블록체인의 일부 노드만 합의를 수행하도록 구성된다. 이에 따라, 합의에 참여하는 노드의 수가 줄어들기 때문에 모든 노드가 검증하는 데 걸리는 시간이 줄어들고, 결과적으로 합의에 필요한 시간이 단축된다.
즉, 본 발명의 위임 단계(S100)로 인해 딜리슘(Dilithium)으로 인한 TPS 저하를 극복할 수 있게 되고, 또한 블록체인의 또 다른 중요한 요소인 확장성을 개선할 수 있는 장점이 있다.
(2) 합의 단계(S200)
도 4는 본 발명에 따른 합의 단계의 개념도이고, 도 5는 본 발명에 따른 합의 단계의 처리 순서도이다. 이하에서는 도 4 및 도 5를 참조하여, 합의 단계(S200)에 설명하도록 한다.
본 발명의 합의 단계(S200)는 위임 단계(S100)에서 선정된 위임 노드들이 블록을 생성하고, 이렇게 생성된 각 블록들이 위임 노드에 의해 검증되며, 검증 완료된 블록이 체인에 추가되는 단계이다.
구체적으로, 합의 단계(S200)는 블록 생성 단계(S210), 블록 전파 단계 (S220), 블록 검증 단계(S230), 및 트랜잭션 검증 단계(S240)를 포함한다.
합의 단계(S200)의 블록 생성 단계(S210)는 위임 단계(S100)에서 선정된 N 개의 위임 노드들이 번갈아 가며 블록을 생성하는 단계이다. 이하에서는, 위임 단계(S100)에서 선정된 N 개의 위임 노드들 중 어느 하나의 위임 노드를 '제1 위임 노드'라 칭하고, 상기 제1 위임 노드가 생성한 신규 블록을 '제1 블록'이라 칭하기로 한다.
유효한 블록을 생성하기 위해서는 신규 블록의 무결성을 검증해야 한다. 또한 행운증명(Proof of Luck)은 라운드 시간(Round Time)이 지났는지, 그리고 모노토닉 카운터(Monotonic Counter)가 변경되지 않았는지 확인한다. 이때, 현재 시간이 라운드 시간과 합의 시작 시간의 합계보다 크면 라운드 시간이 경과한 것이다.
그리고 TEE를 기반으로 설정된 모노토닉 카운터와 합의 과정에서 호출된 현재 모노토닉 카운터가 같지 않으면 검증에 실패한 것이다.
악의적인 사용자는 단일 CPU에서 알고리즘을 동시에 실행하여 부당한 이득을 얻으려고 시도할 수 있다. TEE의 모노토닉 카운터(Monotonic Counter)의 값을 매번 증가시키면 동시 호출을 방지할 수 있다.
이를 위해 모노토닉 카운터 값은 알고리즘의 시작시 저장된다. 그 후 블록을 검증할 때 모노토닉 카운터 값과 비교한다. 이때, 만약 두 개의 모노토닉 카운터 값이 다르면 해당 알고리즘이 동일한 CPU에서 병렬로 실행되었다는 것을 의미한다. 이 경우 모노토닉 카운터 검증이 실패하고 해당 노드가 블록을 생성할 수 없게 된다.
한편, TEE는 신뢰할 수 있는 시간 서비스를 제공한다. 이를 통해 신뢰할 수 있는 경과 시간 측정이 가능하다. TEE를 통해 합의 알고리즘이 시작되는 시간을 라운드 시간(Round Time)으로 설정한다. 라운드 시간만큼의 시간 동안 휴면(sleep)하여 시간이 경과하도록 한다. 그 후, 이 라운드의 블록과 라운드 시간만큼 시간이 지났는지 확인한다. 이 과정을 통해 노드는 결정론적 블록 검증 시간을 갖게 되므로 추가 작업 없이 블록 생성 시간을 동기화할 수 있게 된다.
휴면(sleep)은 바쁘게 대기하는 시간이기 때문에 이 시간 동안 다른 작업을 할 수 있으므로 시간과 에너지가 낭비되지 않는다. 또한, 바쁘게 대기하는 동안 다른 행운의 체인이 전파되면 해당 체인으로 변경될 수 있다. 예컨대, NS-3에서는 라운드 시간만큼 일정 지연을 부여함으로써 이러한 기능을 제공할 수 있다.
즉, 이전 라운드의 블록을 검증한 후, 검증 기간 동안 라운드 시간이 지났는지 확인한다. 이 과정을 통해 노드들은 결정론적 블록 검증 시간을 가지기 때문에 추가적인 작업없이 블록 생성 시간을 동기화할 수 있다. 그리고, 바쁜 대기를 수행함으로써 라운드 시간 동안 휴면을 수행하고, 이 시간 동안 다른 작업이 가능하므로 시간과 에너지가 낭비되지 않게 된다.
신규 블록의 무결성 검증이 성공하면, 증명 프로세스를 통해 증명(Proof)을 생성하게 된다. 일 실시예에 따르면, 상기 증명 프로세스는 원격 증명(Remote Attestation) 프로세스일 수 있다.
원격 증명(Remote Attestation)은 노드들이 서로 검증할 수 있는 값인 증명을 생성하는 과정이다. 증명은 알고리즘이나 데이터가 조작되었는지 여부에 대한 기록으로 사용되며, 증명으로 인해 TEE의 연산 작업과 TEE의 데이터는 조작될 수 없게 된다.
도 6은 본 발명에 따른 합의 단계의 원격 증명 알고리즘이다.
도 6을 참조하면, 본 발명의 일 예에 따르면, 증명(Proof)은 Base58이 논스(nonce)와 행운(luck)의 연결된 데이터를 암호화(Encoding)하여 생성된 값일 수 있다.
이와 같이 생성된 증명은 신규 블록에 포함되어 다른 위임 노드로 전파된다. 그리고, 신규 블록을 전파받은 각 위임 노드는 해당 신규 블록에 포함된 증명 (Proof)을 Base58로 디코딩하여 논스(nonce)와 행운(luck)을 추출한다.
그리고, 해당 블록을 전파받은 위임 노드는 이와 같이 추출된 데이터를 통해 해당 블록에 포함된 증명 값이 변조되었는지 또는 올바른 논스와 행운으로부터 생성된 값인지 검증할 수 있어, 결과적으로 해당 블록과 트랜잭션이 조작되지 않았음을 증명할 수 있게 된다.
즉, 블록 생성 단계(S210)는 전술한 바와 같은 증명(Proof)을 생성하고, 이 증명을 신규 블록에 추가하는 과정을 포함한다.
이와 같은 증명(Proof) 생성 과정을 제1 위임 노드가 생성한 제1 블록을 기준으로 설명하면 다음과 같다.
구체적으로, 블록 생성 단계(S210)는 증명 생성 단계(S211) 및 증명 추가 단계(S212)를 포함한다.
증명 생성 단계(S211)는 논스(nonce)와 행운(luck)의 연결 데이터를 암호화하여 생성된 값인 증명(이하 '제1 증명'이라 함)을 생성하는 단계이다.
일 실시예에 따르면, 증명 생성 단계(S211)에서 논스(nonce)와 행운(luck)의 연결 데이터는 Base58를 통해 암호화될 수 있다.
그리고, 증명 생성 단계(S211)의 행운(luck)은 전술한 위임 단계(S100)의 난수 생성 단계(S110)에서 제1 위임 노드가 생성한 난수(이하, '제1 난수'라 함)이거나, 이를 포함하는 값일 수 있다.
그리고, 일 실시예에 따르면, 증명 생성 단계(S211)의 논스(nonce)는 가장 최근 블록 내지 바로 직전 블록의 블록 헤더(Block Header)에 포함된 논스(nonce)일 수 있다.
또 다른 실시예에 따르면, 증명 생성 단계(S211)의 논스(nonce)는 유효한 신규 블록을 생성하기 위해 연산을 통해 찾아낸 논스(nonce)일 수 있다.
증명 추가 단계(S212)는 증명 생성 단계(S211)에서 생성된 상기 제1 증명을 제1 위임 노드가 생성한 제1 블록에 추가하는 단계이다.
합의 단계(S200)의 블록 전파 단계(S220)는 블록 생성 단계(S210)에서 위임 노드에 의해 생성된 블록이 다른 위임 노드로 전파되는 단계이다. 즉, 제1 위임 노드가 생성한 제1 블록이 다른 위임 노드로 전파된다.
여기서, 상기 제1 블록이 전파되는 상기 '다른 위임 노드'란 위임 단계 (S100)에서 득표값의 크기를 기준으로 선정된 N 개의 위임 노드들 중 상기 제1 위임 노드를 제외한 나머지 위임 노드들일 수 있다.
합의 단계(S200)의 블록 검증 단계(S230)는 블록 전파 단계(S220)에서 신규 블록을 전파받은 위임 노드들이 해당 블록의 유효성을 검증하는 단계로서, 세부적으로 논스 검증 단계(S231), 증명 검증 단계(S232), 및 이전 해시 검증 단계(S233)를 포함한다.
제1 위임 노드가 생성한 제1 블록, 및 이러한 제1 블록에 포함된 제1 증명을 기준으로 증명 검증 단계(S232)를 설명하면 다음과 같다.
블록 검증 단계(S230)의 증명 검증 단계(S232)는 블록 전파 단계(S220)에서 제1 블록을 전파받은 위임 노드들이 제1 난수(이하, '검증용 제1 난수'라 함)를 이용하여, 상기 제1 블록에 포함된 제1 증명의 유효성을 검증하도록 구성된다.
여기서, 검증을 시도하는 위임 노드들이 사용하는 상기 검증용 제1 난수는 위임 단계(S100)의 투표 트랜잭션 전파 단계(S120)에서 각 노드들이 전파받은 해당 투표 트랜잭션(즉, 제1 위임 노드가 생성 및 전파한 투표 트랜잭션)에 포함된 난수 (즉, 위임 단계(S100)의 난수 생성 단계(S110)에서 제1 위임 노드가 생성한 난수(제1 난수))일 수 있다.
일 실시예에 따르면, 블록 검증 단계(S230)의 증명 검증 단계(S232)는 검증용 증명 생성 단계 및 증명 비교 단계를 포함할 수 있다.
검증용 증명 생성 단계는, 투표 트랜잭션 전파 단계(S120)에서 각 노드들이 전파받은 해당 투표 트랜잭션(즉, 제1 위임 노드가 생성 및 전파한 투표 트랜잭션)에 포함된 난수(즉, 전술한 검증용 제1 난수)를 제1 블록에 포함된 제1 증명에서 추출한 논스와 연결 및 암호화하여 증명(이하, '검증용 증명'이라 함)을 생성한다.
즉, 제1 블록에 포함된 제1 증명을 디코딩하여 논스와 행운을 추출하고, 이렇게 추출된 논스와 제1 난수(즉, 전술한 검증용 제1 난수)의 연결 데이터를 암호화하여 상기 검증용 증명을 생성할 수 있다.
이러한 검증용 증명이 생성되면 증명 비교 단계를 수행한다. 증명 비교 단계는 제1 블록에 포함된 제1 증명을 상기 검증용 증명과 비교한다.
상기 비교 결과, 제1 블록의 제1 증명이 상기 검증용 증명과 일치하면 상기 제1 증명의 유효성은 참(True)인 것으로 확인되고, 상호 불일치하면 상기 제1 증명의 유효성은 거짓(False)인 것으로 결정된다.
또 다른 실시예에 따르면, 블록 검증 단계(S230)의 증명 검증 단계(S232)는 행운 추출 단계 및 행운 값 비교 단계를 포함할 수 있다.
행운 추출 단계는 신규 블록(전술한 예시의 경우, 제1 블록)에 포함된 증명(즉, 제1 증명)을 디코딩하여 행운(이하, '추출 행운'이라 함)을 추출한다.
행운 값 비교 단계는 상기 추출 행운의 값을 제1 위임 노드가 생성 및 전파한 투표 트랜잭션에 포함된 난수(즉, 전술한 검증용 제1 난수)와 비교한다.
상기 비교 결과, 상기 추출 행운의 값이 상기 검증용 제1 난수와 일치하면 상기 제1 증명의 유효성은 참(True)인 것으로 확인되고, 상호 불일치하면 상기 제1 증명의 유효성은 거짓(False)인 것으로 결정된다.
블록 전파 단계(S220)에서 제1 블록을 전파받은 위임 노드들이 제1 난수(이하, '검증용 제1 난수'라 함)
여기서, 검증을 시도하는 위임 노드들이 사용하는 상기 검증용 제1 난수는 위임 단계(S100)의 투표 트랜잭션 전파 단계(S120)에서 각 노드들이 전파받은 해당 투표 트랜잭션(즉, 제1 위임 노드가 생성 및 전파한 투표 트랜잭션)에 포함된 난수 (즉, 위임 단계(S100)의 난수 생성 단계(S110)에서 제1 위임 노드가 생성한 난수(제1 난수))일 수 있다.
블록 검증 단계(S230)의 논스 검증 단계(S231)는 위임 노드에 의해 생성된 블록의 헤더에 포함된 논스(nonce)의 유효성을 검증하는 단계이다.
구체적으로, 논스 검증 단계(S231)는 위임 노드가 생성한 블록에서 논스를 추출하고, 이를 블록 헤더의 논스와 비교함으로써 논스의 무결성을 검증하도록 구성될 수 있다.
즉, 블록의 헤더를 해싱(hashing)하여 얻어지는 논스(nonce)가 블록에 포함된 증명(proof)에서 추출한 논스(nonce)와 동일한지 검증하도록 구성될 수 있다.
전술한 제1 위임 노드가 생성한 제1 블록, 및 이러한 제1 블록에 포함된 제1 증명을 기준으로 논스 검증 단계(S231)를 설명하면 다음과 같다.
즉, 논스 검증 단계(S231)는 제1 위임 노드가 생성한 제1 블록에 포함된 제1 증명을 디코딩하여 논스(이하, '추출 논스'라 함)를 추출하는 단계; 및 상기 제1 블록의 헤더에 포함된 논스가 상기 추출 논스와 동일한지 비교하는 단계를 포함할 수 있다. 여기서, 제1 블록의 헤더에 포함된 논스는 제1 블록의 헤더를 해싱하여 얻어지는 논스일 수 있다.
블록 검증 단계(S230)의 이전 해시 검증 단계(S233)는 생성될 블록에 포함된 이전 해시를 이전 블록의 해시와 비교하여 상호 동일한지 여부를 검증하는 단계이다. 즉, 제1 블록에 포함된 이전 해시가 제1 블록 바로 이전 블록의 해시와 동일한지 여부를 검증한다.
전술한 바와 같은 논스 검증 단계(S231), 증명 검증 단계(S232), 및 이전 해시 검증 단계(S233)가 모두 완료되면 위임 노드(즉, 제1 위임 노드)에 의해 생성되는 신규 블록(즉, 제1 블록)의 검증 과정이 완료된다.
합의 단계(S200)의 트랜잭션 검증 단계(S240)는 블록에 포함된 트랜잭션에 대한 검증을 수행하는 단계이다. 즉, 생성될 블록(전술한 예시의 경우, 제1 블록)을 수신한 위임 노드들은 해당 블록(즉, 제1 블록)에 포함된 트랜잭션의 서명을 검증한다.
일 실시예에 따르면, 트랜잭션 검증 단계(S240)는 위임 단계(S100)에서 설명한 바와 같은 딜리슘(Dilithium)을 이용한 서명 검증 과정이 수행될 수 있다.
전술한 합의 단계(S100)에 따라, 신규 블록(전술한 예시의 경우, 제1 블록)의 무결성 및 유효성 검증이 모두 성공적으로 완료되면, 해당 블록(즉, 제1 블록)이 블록체인에 추가된다.
전술한 바와 같은 방식으로 합의 단계(S200)에서는 TEE 기반 블록 검증이 수행된다. 즉, 합의 단계(S200)는 블록에 포함된 요소(즉, 행운, 논스, 증명)의 값을 검증하여 적법한 블록이 생성되었는지 확인하는 과정이다.
한편, 앞서 언급했듯이 트랜잭션 검증을 위한 딜리슘(Dilithium)으로 인해 블록에 포함되는 트랜잭션 수가 줄어들 수 있다. 하지만, 본 발명에 따른 블록체인 합의 방법은 위임받은 노드만 합의에 참여하기 때문에 합의 시간이 단축될 수 있고, 따라서 서명 크기가 커짐에 따른 TPS 감소를 완화하면서 보안성을 확보할 수 있게 된다.
상기에서 본 발명의 바람직한 실시예가 특정 용어들을 사용하여 설명 및 도시되었지만 그러한 용어는 오로지 본 발명을 명확히 설명하기 위한 것일 뿐이며, 본 발명의 실시예 및 기술된 용어는 다음의 청구범위의 기술적 사상 및 범위로부터 이탈되지 않고서 여러가지 변경 및 변화가 가해질 수 있는 것은 자명한 일이다. 이와 같이 변형된 실시예들은 본 발명의 사상 및 범위로부터 개별적으로 이해되어져서는 안되며, 본 발명의 청구범위 안에 속한다고 해야 할 것이다.

Claims (12)

  1. 블록체인에 있어서 합의(Consensus)를 위한 방법으로서,
    복수 개의 위임 노드를 선정하는 위임 단계; 및 상기 위임 노드가 블록을 생성하기 위한 합의 단계를 포함하고,
    상기 위임 단계는,
    블록체인에 네트워크에 참여한 각 노드가 난수 생성기를 통해 난수를 생성하는 단계;
    상기 각 노드가 상기 난수, 표를 받을 노드의 정보(이하, '투표 정보'라 함), 서명 및 공개키를 포함하는 투표 트랜잭션을 전파하는 단계;
    상기 각 노드가 전파받은 상기 투표 트랜잭션을 검증하는 단계; 및
    상기 각 투표 트랜잭션에 포함된 상기 투표 정보에 따라 상기 각 노드별로 득표값을 산출하여, 상기 득표값의 크기를 기준으로 상위 N 개(여기서, N≥2, N은 자연수)의 노드를 상기 위임 노드로 선정하는 단계;를 포함하고,
    상기 득표값은,
    해당 노드에 투표한 해당 투표 트랜잭션들에 포함된 상기 난수의 값의 합계이고,
    상기 합의 단계는,
    상기 N 개의 위임 노드 중 어느 하나의 위임 노드(이하, '제1 위임 노드'라 함)가 블록(이하, '제1 블록'이라 함)을 생성하는 제1 단계;
    상기 제1 블록이 다른 위임 노드로 전파되는 제2 단계; 및
    상기 다른 위임 노드가 상기 제1 블록의 유효성을 검증하는 제3 단계;를 포함하고,
    상기 제1 단계는,
    논스(nonce)와 행운(luck)의 연결 데이터를 암호화하여 생성된 값인 증명(이하 '제1 증명'이라 함)을 생성하는 제1a 단계; 및
    상기 제1a 단계에서 생성된 상기 제1 증명을 상기 제1 블록에 추가하는 제1b 단계;를 포함하고,
    상기 행운(luck)은,
    상기 위임 단계에서 상기 제1 위임 노드가 생성한 상기 난수(이하, '제1 난수'라 함)를 포함하고,
    상기 제3 단계는,
    상기 다른 위임 노드가, 상기 위임 단계에서 전파받은 상기 투표 트랜잭션에 포함된 상기 제1 난수를 이용하여, 상기 제1 블록에 포함된 상기 제1 증명의 유효성을 검증하는 증명 검증 단계;를 포함하는 것을 특징으로 하는 위임형 행운 증명 기반의 블록체인 합의 방법.
  2. 제1 항에 있어서,
    상기 증명 검증 단계는,
    상기 투표 트랜잭션에 포함된 상기 제1 난수와 상기 제1 증명에서 추출한 논스의 연결 데이터를 암호화하여 증명(이하, '검증용 증명'이라 함)을 생성하는 단계; 및
    상기 제1 블록에 포함된 상기 제1 증명을 상기 검증용 증명과 비교하는 단계;를 포함하는 것을 특징으로 하는 위임형 행운 증명 기반의 블록체인 합의 방법.
  3. 제1 항에 있어서,
    상기 증명 검증 단계는,
    상기 제1 블록에 포함된 상기 제1 증명을 디코딩하여 행운(이하, '추출 행운'이라 함)을 추출하는 단계; 및
    상기 추출 행운의 값을 상기 투표 트랜잭션에 포함된 상기 제1 난수와 비교하는 단계;를 포함하는 것을 특징으로 하는 위임형 행운 증명 기반의 블록체인 합의 방법.
  4. 제2 항 또는 제3 항에 있어서,
    상기 비교 결과,
    상호 일치하면 상기 제1 증명의 유효성은 참(True)인 것으로 확인되고, 상호 불일치하면 상기 제1 증명의 유효성은 거짓(False)인 것으로 결정되는 것을 특징으로 하는 위임형 행운 증명 기반의 블록체인 합의 방법.
  5. 제1 항에 있어서,
    상기 제3 단계는,
    상기 제1 블록의 헤더에 포함된 논스의 유효성을 검증하는 논스 검증 단계;를 더 포함하고,
    상기 논스 검증 단계는,
    상기 제1 블록에 포함된 상기 제1 증명을 디코딩하여 논스(이하, '추출 논스'라 함)를 추출하는 단계; 및
    상기 제1 블록의 헤더에 포함된 논스가 상기 추출 논스와 동일한지 비교하는 단계를 포함하는 것을 특징으로 하는 위임형 행운 증명 기반의 블록체인 합의 방법.
  6. 제5 항에 있어서,
    상기 제1 블록의 헤더에 포함된 논스는,
    상기 1 블록의 헤더를 해싱하여 얻어지는 논스인 것인 위임형 행운 증명 기반의 블록체인 합의 방법.
  7. 제1 항에 있어서,
    상기 제3 단계는,
    상기 제1 블록에 포함된 이전 해시를 검증하는 단계를 더 포함하는 것을 특징으로 하는 위임형 행운 증명 기반의 블록체인 합의 방법.
  8. 제1 항에 있어서,
    상기 제1 블록에 포함된 트랜잭션의 서명을 검증하는 단계를 더 포함하는 것을 특징으로 하는 위임형 행운 증명 기반의 블록체인 합의 방법.
  9. 제1 항에 있어서,
    상기 투표 트랜잭션을 검증하는 단계는,
    상기 투표 트랜잭션에 포함된 상기 서명을 검증하는 것을 포함하고,
    상기 투표 트랜잭션에 포함되는 서명 및 상기 서명의 검증은,
    딜리슘 (Dilithium)을 기반으로 수행되는 것을 특징으로 하는 위임형 행운 증명 기반의 블록체인 합의 방법.
  10. 제9 항에 있어서,
    상기 서명의 검증 결과,
    검증에 성공하면 해당 투표 트랜잭션은 유효한 것으로 확인되고, 검증에 실패하면 해당 투표 트랜잭션은 무효로 처리되는 것을 특징으로 하는 위임형 행운 증명 기반의 블록체인 합의 방법.
  11. 제1 항에 있어서,
    상기 제1 난수는,
    TEE(Trusted Execution Environment) 기반의 난수 생성기를 통해 생성되는 것을 특징으로 하는 위임형 행운 증명 기반의 블록체인 합의 방법.
  12. 제1 항, 제5 항, 제7 항 또는 제8 항에 있어서,
    상기 합의 단계의 상기 제3 단계는,
    TEE(Trusted Execution Environment) 기반에서 수행되는 것을 특징으로 하는 위임형 행운 증명 기반의 블록체인 합의 방법.

KR1020230154624A 2023-11-09 2023-11-09 위임형 행운 증명 기반의 블록체인 합의 방법 Active KR102859195B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230154624A KR102859195B1 (ko) 2023-11-09 2023-11-09 위임형 행운 증명 기반의 블록체인 합의 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230154624A KR102859195B1 (ko) 2023-11-09 2023-11-09 위임형 행운 증명 기반의 블록체인 합의 방법

Publications (2)

Publication Number Publication Date
KR20250068842A KR20250068842A (ko) 2025-05-19
KR102859195B1 true KR102859195B1 (ko) 2025-09-16

Family

ID=95913848

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230154624A Active KR102859195B1 (ko) 2023-11-09 2023-11-09 위임형 행운 증명 기반의 블록체인 합의 방법

Country Status (1)

Country Link
KR (1) KR102859195B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102141177B1 (ko) 2019-12-12 2020-08-04 주식회사 립페이 이중 블록체인 구조 기반 미들웨어 계층에서 실행되는 트랜잭션 고속 처리 서비스 제공 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102050129B1 (ko) 2016-05-03 2019-11-28 안규태 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인
KR102231257B1 (ko) 2018-07-18 2021-03-23 광주과학기술원 채굴 장치, 및 채굴 장치 동작 방법
KR102295701B1 (ko) * 2019-09-09 2021-08-27 한국항공대학교산학협력단 이종 프라이빗 블록체인간 통신 장치 및 방법
CN111339109B (zh) * 2020-02-21 2024-01-12 百度在线网络技术(北京)有限公司 一种区块链的资源处理方法、装置、设备和介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102141177B1 (ko) 2019-12-12 2020-08-04 주식회사 립페이 이중 블록체인 구조 기반 미들웨어 계층에서 실행되는 트랜잭션 고속 처리 서비스 제공 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ducas, Leo, et al. "Crystals-dilithium: A lattice-based digital signature scheme", IACR Transactions on Cryptographic Hardware and Embedded Systems (2018): pp.238-268 (2018.01.31)

Also Published As

Publication number Publication date
KR20250068842A (ko) 2025-05-19

Similar Documents

Publication Publication Date Title
JP7372434B2 (ja) スクリプトに基づくブロックチェーン相互作用
US20240048387A1 (en) Computer-implemented system and method providing a decentralised protocol for the recovery of cryptographic assets
KR102862157B1 (ko) 미결정 데이터에 기초한 블록체인 트랜잭션 보안 기법
JP7289298B2 (ja) 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法
EP3811259B1 (en) Method for signing a new block in a decentralized blockchain consensus network
KR102670611B1 (ko) 블록체인-구현 이벤트-잠금 암호화를 위한 방법 및 시스템
Lin et al. A survey of blockchain security issues and challenges.
CN110603783B (zh) 采用可信硬件的安全动态阈值签名方案
US20240243918A1 (en) Knowledge proof
JP2023501152A (ja) 許可型ブロックチェーンのためのランダムなノード選択
JP2022501971A (ja) 鍵管理のための方法、ユーザ・デバイス、管理デバイス、記憶媒体及びコンピュータ・プログラム製品
CN104104517A (zh) 一次性密码验证的方法和系统
EP3977673B1 (en) Blockchain transaction comprising runnable code for hash-based verification
US20220263664A1 (en) Blockchain transaction comprising runnable code for hash-based verification
Song et al. Enabling transparent deduplication and auditing for encrypted data in cloud
CN119205123A (zh) 一种基于区块链的数字资产生成方法
CN113939821A (zh) 用于在工作量证明区块链网络上进行非并行挖掘的系统和方法
Endignoux Design and implementation of a post-quantum hash-based cryptographic signature scheme
KR102859195B1 (ko) 위임형 행운 증명 기반의 블록체인 합의 방법
CN113810497A (zh) 基于区块链的医疗数据共享方法和装置
Poston III Blockchain Security from the Bottom Up: Securing and Preventing Attacks on Cryptocurrencies, Decentralized Applications, NFTs, and Smart Contracts
CN110620668A (zh) 基于区块链的抗量子计算公钥池更新方法和系统
Dousti et al. Tri-op redactable blockchains with block modification, removal, and insertion
Durahim et al. Transparent code authentication at the processor level
Kasse et al. Post-quantum secure authentication protocol based on OTP and TEE

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

D22 Grant of ip right intended

Free format text: ST27 STATUS EVENT CODE: A-1-2-D10-D22-EXM-PE0701 (AS PROVIDED BY THE NATIONAL OFFICE)

PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

R18 Changes to party contact information recorded

Free format text: ST27 STATUS EVENT CODE: A-3-3-R10-R18-OTH-X000 (AS PROVIDED BY THE NATIONAL OFFICE)

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

F11 Ip right granted following substantive examination

Free format text: ST27 STATUS EVENT CODE: A-2-4-F10-F11-EXM-PR0701 (AS PROVIDED BY THE NATIONAL OFFICE)

PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-2-2-U10-U11-OTH-PR1002 (AS PROVIDED BY THE NATIONAL OFFICE)

Year of fee payment: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

Q13 Ip right document published

Free format text: ST27 STATUS EVENT CODE: A-4-4-Q10-Q13-NAP-PG1601 (AS PROVIDED BY THE NATIONAL OFFICE)

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

R11 Change to the name of applicant or owner or transfer of ownership requested

Free format text: ST27 STATUS EVENT CODE: A-5-5-R10-R11-ASN-PN2301 (AS PROVIDED BY THE NATIONAL OFFICE)

R13 Change to the name of applicant or owner recorded

Free format text: ST27 STATUS EVENT CODE: A-5-5-R10-R13-ASN-PN2301 (AS PROVIDED BY THE NATIONAL OFFICE)