KR102582307B1 - 난수 생성 방법 - Google Patents

난수 생성 방법 Download PDF

Info

Publication number
KR102582307B1
KR102582307B1 KR1020210107787A KR20210107787A KR102582307B1 KR 102582307 B1 KR102582307 B1 KR 102582307B1 KR 1020210107787 A KR1020210107787 A KR 1020210107787A KR 20210107787 A KR20210107787 A KR 20210107787A KR 102582307 B1 KR102582307 B1 KR 102582307B1
Authority
KR
South Korea
Prior art keywords
random number
number generation
vdf
number generator
generating
Prior art date
Application number
KR1020210107787A
Other languages
English (en)
Other versions
KR20230025968A (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 KR1020210107787A priority Critical patent/KR102582307B1/ko
Publication of KR20230025968A publication Critical patent/KR20230025968A/ko
Application granted granted Critical
Publication of KR102582307B1 publication Critical patent/KR102582307B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number 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/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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

난수 생성 방법은 스마트 컨트랙트(smart contract)를 위한 난수 생성 방법으로서, 난수 생성 장치가 스마트 컨트랙트를 작성하여 블록체인에 기록하는 단계, 난수 생성 장치가 사용자의 난수 생성 요청을 수신하는 단계, 상기 난수 생성 장치가 난수 생성 요청에 대해 난수 생성 요청 아이디를 부여하고, 난수 생성 요청을 블록체인에 기록하는 단계, 상기 난수 생성 장치가 난수 생성 요청이 포함된 블록의 해시값을 VDF(Verifiable Delay function)에 입력하는 단계, 상기 난수 생성 장치가 상기 VDF의 결과값과 상기 난수 생성 요청 아이디를 결합하여 시드(seed) 데이터를 생성하는 단계 및 상기 난수 생성 장치가 상기 시드 데이터를 이용하여 난수를 생성하는 단계를 포함하고, 상기 VDF는 채굴자가 채굴 제한시간 내에 연산을 수행하지 못하도록 연산량이 설정된다.

Description

난수 생성 방법{METHOD FOR GENERATING RANDOM NUMBER}
본 발명은 난수 생성 방법에 관한 것이다. 보다 상세하게는, 본 발명은 시스템의 비용과 복잡도를 낮출 수 있는 암호학적 기법을 활용한 단독 블록체인 난수 생성 방법에 관한 것이다.
스마트 컨트랙트(smart contract)는 블록체인 기술을 기반으로 자동으로 계약을 이행하는 기술로써, 높은 신뢰성을 보장해야 한다. 스마트 컨트랙트에는 거래하고자 하는 대상(디지털 콘텐츠, 금융 등)에 대한 고유 해시(hash) 값이 포함되어야 한다. 스마트 컨트랙트의 특성상 모든 스마트 컨트랙트에 있는 모든 정보가 블록체인 상에서 공개된다.
한편, 난수(random number)는 암호, 보안, 시뮬레이션 등 컴퓨팅 기술의 중요 요소 중의 하나이다. 이러한 난수를 블록체인상에서 활용하기 위해서는 결정론적 난수 생성 방식인 PRNG(Pseudo-Random Number Generator)를 이용해서, 블록체인 사용자들이 생성된 유사 난수(pseudo-random number)에 대해 검증할 수 있어야 한다.
유사 난수를 생성하기 위해서는 시드(seed)가 되는 정보가 필요하다. 시드는 난수가 생성되기 전까지 공개되어서는 안 되는 비밀 값이지만 스마트 컨트랙트의 특성 상 시드가 스마트 컨트랙트로 올라가는 순간 공개된다. 유사 난수 특성상 시드가 유출되면, 난수를 예측할 수 있게 된다.
블록체인에서 생성되는 블록은 수 많은 트랜잭션들로 구성되어 있기 때문에 미래 블록의 해시 값은 일반적인 사용자들에게 무작위 난수로 여겨질 수 있다. 다만, 한 가지 예외가 있는데 바로 블록 생성 권한을 가진 채굴자가 그 예외이다. 블록 해시값을 곧바로 난수로 사용하면 채굴자는 도 1에 도시된 방법으로 자신이 원하는 난수를 생성할 수 있다.
즉, 블록을 생성할 권한을 얻어 채굴자가 된(S10) 후 트랜잭션 풀에서 트랜잭션들을 가져와 블록에 포함시킨다(S20). 이후, 생성된 블록의 해시값이 원하는 난수인지 확인(S30)한 후, 원하는 난수가 아닌경우 트랜잭션의 순서를 바꿔서 다시 블록을 생성한다(S40). 이 시도는 트랜잭션이 n개 있을 때, n!만큼 시도가 가능하다. 이후, 블록의 해시값이 원하는 난수인 경우 생성된 블록을 체인 네트워크에 전파(S50)하게 된다.
이처럼, 미래의 블록 해시값을 사용하여 난수를 생성하는 방법은 조력자들의 도움이 없이도 간단하게 난수를 생성할 수 있지만, 채굴자의 공격에 취약하다는 문제점이 있다.
특허문헌: 한국등록특허공보 제10-1194403호(2012.10.18.)
이에 본 발명의 기술적 과제는 이러한 점에서 착안된 것으로, 본 발명의 목적은 시스템의 비용과 복잡도를 낮출 수 있는 암호학적 기법을 활용한 단독 블록체인 난수 생성 방법을 제공하는 것이다.
상기한 본 발명의 목적을 실현하기 위한 일 실시예에 따른 난수 생성 방법은 스마트 컨트랙트(smart contract)를 위한 난수 생성 방법으로서, 난수 생성 장치가 스마트 컨트랙트를 작성하여 블록체인에 기록하는 단계, 난수 생성 장치가 사용자의 난수 생성 요청을 수신하는 단계, 상기 난수 생성 장치가 난수 생성 요청에 대해 난수 생성 요청 아이디를 부여하고, 난수 생성 요청을 블록체인에 기록하는 단계, 상기 난수 생성 장치가 난수 생성 요청이 포함된 블록의 해시값을 VDF(Verifiable Delay function)에 입력하는 단계, 상기 난수 생성 장치가 상기 VDF의 결과값과 상기 난수 생성 요청 아이디를 결합하여 시드(seed) 데이터를 생성하는 단계 및 상기 난수 생성 장치가 상기 시드 데이터를 이용하여 난수를 생성하는 단계를 포함하고, 상기 VDF는 채굴자가 채굴 제한시간 내에 연산을 수행하지 못하도록 연산량이 설정된다.
본 발명의 일 실시예에 있어서, 상기 난수 생성 장치가 설정하는 VDF의 연산량은 아래의 수학식을 만족할 수 있다.
(여기서, 은 채굴자의 채굴 제한 시간, 은 채굴자의 계산 속도, 는 난수 생성 장치가 설정하는 VDF의 연산량을 나타냄.)
본 발명의 일 실시예에 있어서, 상기 난수 생성 장치가 설정하는 VDF의 연산량은 아래의 수학식을 만족할 수 있다.
(여기서, 은 채굴자의 채굴 제한 시간, 은 채굴자의 계산 속도, 는 난수 생성 장치(관리자)의 계산 속도, 은 난수 생성 장치(관리자)의 지연시간을 나타냄.)
본 발명의 일 실시예에 있어서, 상기 난수 생성 장치의 지연 시간은 아래의 수학식에 의해 정의될 수 있다.
(여기서, 은 상기 난수 생성 장치의 지연 시간, 는 난수 생성 장치의 계산 속도의 평균, 는 난수 생성 장치의 계산 속도의 분산, 은 채굴자의 채굴 제한 시간의 평균, 은 채굴자의 채굴 제한 시간의 분산, 는 채굴자의 계산 속도의 상한값을 나타냄.)
본 발명의 일 실시예에 있어서, 상기 난수 생성 방법은 상기 VDF의 연산량을 다시 설정하는 단계를 더 포함하며, 상기 난수 생성 장치가 난수 생성 요청이 있을 때 마다, 해당 난수 생성 요청자의 난수 생성 및 채굴자의 공격 방어 결과를 기록한 결과 데이터를 생성하여 저장하는 단계, 상기 난수 생성 장치가 상기 복수개의 결과 데이터를 바탕으로, 생성된 난수를 통해 채굴자의 공격을 방어한 확률인 요청자 신뢰도를 계산하는 단계, 상기 난수 생성 장치가 상기 요청자 신뢰도를 상기 난수 생성 장치가 설정한 시스템 신뢰도와 비교하는 단계, 상기 난수 생성 장치가 상기 요청자 신뢰도가 상기 난수 생성 장치가 설정한 소정의 시스템 신뢰도보다 낮게 판단되는 경우 상기 요청자의 신뢰도를 비정상 데이터로 결정하는 단계 및 상기 난수 생성 장치가 상기 요청자의 신뢰도가 비정상 데이터를 결정되는 경우, 상기 VDF의 연산량을 다시 설정하는 단계를 포함할 수 있다.
본 발명에 따른 난수 생성 방법에 의하면, VDF를 이용하여 난수를 생성하며, VDF의 지연시간이 채굴자의 채굴 제한 시간보다 길게 설정되므로 채굴자의 공격을 원천적으로 차단할 수 있다.
도 1은 채굴자가 난수를 생성하는 방법을 설명하기 위한 순서도이다.
도 2는 일반적인 블록 체인 기반 시스템의 구조를 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 스마트 컨트랙트를 위한 난수를 생성하는 시스템의 구조를 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 난수 생성 방법을 설명하기 위한 순서도이다.
도 5는 본 발명의 일 실시예에 따른 난수 생성 방법에 의해 생성된 난수를 검증하는 과정을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시예에 따는 난수 생성 방법의 상기 VDF의 연산량을 다시 설정하는 단계를 설명하기 위한 순서도이다.
도 7은 본 발명의 일 실시예에 따른 난수 생성 장치의 구조를 나타내는 도면이다.
이하에서는 도면을 참조하여 본 발명의 실시예들이 상세하게 설명될 것이다. 이하에서의 설명은 실시예들을 구체화하기 위한 것일 뿐, 본 발명에 따른 권리범위를 제한하거나 한정하기 위한 것은 아니다. 본 발명에 관한 기술 분야에서 통상의 지식을 가진 자가 발명의 상세한 설명 및 실시예들로부터 용이하게 유추할 수 있는 것은 본 발명에 따른 권리범위에 속하는 것으로 해석되어야 한다.
본 발명에서 사용되는 용어는 본 발명에 관한 기술 분야에서 널리 사용되는 일반적인 용어로 기재되었으나, 본 발명에서 사용되는 용어의 의미는 해당 분야에 종사하는 기술자의 의도, 새로운 기술의 출현, 심사기준 또는 판례 등에 따라 달라질 수 있다. 일부 용어는 출원인에 의해 임의로 선정될 수 있고, 이 경우 임의로 선정되는 용어의 의미가 상세하게 설명될 것이다. 본 발명에서 사용되는 용어는 단지 사전적 의미만이 아닌, 명세서의 전반적인 맥락을 반영하는 의미로 해석되어야 한다.
본 발명에서 사용되는 '구성된다' 또는 '포함한다' 와 같은 용어는 명세서에 기재되는 구성 요소들 또는 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 일부 구성 요소들 또는 단계들은 포함되지 않는 경우, 및 추가적인 구성 요소들 또는 단계들이 더 포함되는 경우 또한 해당 용어로부터 의도되는 것으로 해석되어야 한다.
본 발명에서 사용되는 '제 1' 또는 '제 2' 와 같은 서수를 포함하는 용어는 다양한 구성 요소들 또는 단계들을 설명하기 위해 사용될 수 있으나, 해당 구성 요소들 또는 단계들은 서수에 의해 한정되지 않아야 한다. 서수를 포함하는 용어는 하나의 구성 요소 또는 단계를 다른 구성 요소들 또는 단계들로부터 구별하기 위한 용도로만 해석되어야 한다.
이하에서는 도면을 참조하여 본 발명의 실시예들이 상세하게 설명될 것이다. 본 발명에 관한 기술 분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 대해서는 자세한 설명이 생략된다.
도 2는 일반적인 블록 체인 기반 시스템의 구조를 나타내는 도면이다.
블록체인 기반 시스템은 하나 이상의 컴퓨팅 장치로 구현될 수 있다. 컴퓨팅 장치는, 예를 들어, 스마트 폰, 스마트 워치, 스마트 밴드, 태블릿 컴퓨터, 노트북 컴퓨터, 데스크톱 컴퓨터, 서버 등을 포함할 수 있다. 그러나 이러한 것에 한정되지 않으며, 컴퓨터 명령을 저장 및 실행할 수 있는 메모리 및 프로세서를 구비한 임의의 형태의 컴퓨터 장치가 포함될 수 있다.
블록체인 기반 시스템의 기능들은 단일 컴퓨팅 장치 상에서 모두 구현될 수도 있고, 복수의 컴퓨팅 장치 상에서 나누어 구현될 수도 있다. 예를 들어, 복수의 컴퓨팅 장치는 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치를 포함할 수 있고, 블록체인 기반 시스템의 일부 기능은 제1 컴퓨팅 장치 상에 구현되고, 블록체인 기반 시스템의 다른 일부 기능은 제2 컴퓨팅 장치 상에 구현될 수 있다. 그리고 제1 컴퓨팅 장치와 제2 컴퓨팅 장치는 네트워크를 통해 서로 통신할 수 있다.
여기서, 네트워크는 셀룰러 네트워크, Wi-Fi 네트워크, 블루투스 네트워크 등을 비롯한 무선 네트워크, LAN(Local Area Network), WLAN(Wide Local Area Network) 등을 비롯한 유선 네트워크, 또는 무선 네트워크와 유선 네트워크의 조합을 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
도 2를 참조하면, 본 발명의 일 실시 예에 따른 블록체인 기반 시스템은 복수의 노드(N1~Nn)를 포함한다. 복수의 노드(N1~Nn)가 P2P 네트워크를 형성할 수 있으며, 각 노드는 컴퓨터 장치로 이루어진다.
하나의 노드가 트랜잭션을 생성 또는 발생시킬 수 있으며, 트랜잭션 내역을 보관할 수 있다. 다른 노드들이 트랜잭션 내역을 보관하거나, 트랜잭션을 분산합의 과정을 통해 공유하거나, 트랜잭션을 실행 또는 승인할 수 있다.
스마트 컨트랙트(smart contract)는 트랜잭션 처리에 이용되는 각종 조건, 상태, 조건에 따른 행위를 프로그래밍 방식으로 작성한 스크립트 또는 프로그램 코드일 수 있으며, 예를 들어, 이더리움(Ethereum)의 스마트 컨트랙트, 하이퍼레져 패브릭(hyper ledger fabric) 체인 코드(chain code) 등을 포함할 수 있다.
도 3은 본 발명의 일 실시예에 따른 스마트 컨트랙트를 위한 난수를 생성하는 시스템의 구조를 나타내는 도면이다.
본 발명의 실시 예에서는 도 1과 같은 블록체인 기반 시스템에서 스마트 컨트랙트를 처리하는 노드를 스마트 컨트랙트 노드라고 명명하며, 스마트 컨트랙트를 위한 난수 생성에 필요한 매개변수를 제공하는 노드를 클라이언트 노드라고 명명한다.
도 2를 참조하면, 스마트 컨트랙트 노드(1)는 스마트 컨트랙트를 위한 난수를 생성하며, 구체적으로, 네트워크를 통해 클라이언트 노드(2)로부터 제공되는 매개변수를 기반으로 스마트 컨트랙트를 위한 유사 난수를 생성할 수 있다.
매개 변수는 난수 생성을 위한 시드(seed)가 되는 정보인 시드 데이터를 포함하며, 이외에도 트랜잭션을 위한 대가를 지불하는 화폐 데이터 예를 들어, 이더리움의 이더(Ether, ETH)를 더 포함할 수 있다. 본 발명의 일 실시예에 따른 난수 생성 방법에서는 상기 시드 데이터는 난수 생성 요청이 포함된 블록의 해시값을 VDF에 입력한 결과값과 난수 생성을 요청한 난수 생성 요청 아이디를 포함할 수 있다. 본 발명의 일 실시예에서는 이더(Ether)를 예로 들어서 설명하였으나, 본 발명은 이에 한정되지 않는다.
도 4는 본 발명의 일 실시예에 따른 난수 생성 방법을 설명하기 위한 순서도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 난수 생성 방법은 난수 생성 장치가 스마트 컨트랙트를 작성하여 블록체인에 기록하는 단계(S100), 난수 생성 장치가 사용자의 난수 생성 요청을 수신하는 단계(S200), 상기 난수 생성 장치가 난수 생성 요청에 대해 난수 생성 요청 아이디를 부여하고, 난수 생성 요청을 블록체인에 기록하는 단계(S300), 상기 난수 생성 장치가 난수 생성 요청이 포함된 블록의 해시값을 VDF(Verifiable Delay function)에 입력하는 단계(S400), 상기 난수 생성 장치가 상기 VDF의 결과값과 상기 난수 생성 요청 아이디를 결합하여 시드(seed) 데이터를 생성하는 단계(S500) 및 상기 난수 생성 장치가 상기 시드 데이터를 이용하여 난수를 생성하는 단계(S600)를 포함할 수 있다.
결정론적인(deterministic) 블록체인 시스템에서 외부의 조력자 없이 난수를 생성하는 방법으로서 미래의 블록 해시값을 난수 생성에 활용하는 방법이 이용될 수 있다. 블록체인에서 생성되는 블록은 수많은 트랜잭션들로 구성되어 있다. 각 트랜잭션은 익명의 사용자들로부터 생성된 것이며, 모든 트랜잭션을 제어할 수 없는 블록체인에서 일반적으로 미래 블록의 해시 값은 난수라고 여겨질 수 있다. 그러나, 블록 생성 권한을 갖는 채굴자의 경우 도 1과 같은 방법으로 블록을 임의로 구성함으로써 자신이 원하는 난수를 얻을 수 있기 때문에 다른 유형의 사용자들에 비래 확률적으로 우위에 서게 된다.
본 발명의 일 실시예에 따른 난수 생성 방법에서는 미래의 블록의 해시값을 이용하여 난수를 생성하는 경우 유리한 지위에 서게 되는 채굴자들의 공격을 방어하기 위해, VDF(Verifiable Delay function)을 이용하여 난수를 생성할 수 있다.
VDF(Verifiable Delay function)은 다음과 같은 특징을 가지고 있다.
계산하는데 충분한 시간을 요구하는 함수이다.
병렬화가 불가능한 연산들을 포함하여 대부분의 기기에서 비슷한 연산 시간을 요구해야 한다.
누구나 다시 연산을 함으로써 결과를 계산할 수 있다.
목표 연산 시간을 관리자(난수 생성 장치)가 조정할 수 있어야 한다.
이러한 VDF의 특성을 활용하면 앞서 상기 채굴자의 공격 알고리즘을 무력화할 수 있다. 즉, 블록 해시값을 바로 난수로 사용하는 것 대신 VDF를 통과한 값으로 사용하게 된다면, 채굴자는 제한된 채굴 시간 안에 VDF를 여러번 계산하여 원하는 블록을 생성할 수 없다. 여기서 VDF의 연산량은 채굴자가 채굴자의 제한 체굴 시간내에 계산을 할 수 없는 연산량으로 설정될 수 있다. 일반적으로, 채굴자의 계산속도가 관리자(난수 생성 장치)의 계산 속도와 같다면 채굴 제한 시간보다 큰 값으로 지연을 줌으로써 채굴자의 공격을 무력화할 수 있다.
VDF를 이용하여 공격에 필요한 컴퓨팅 연산량이 증가했지만, 공격자(채굴자)의 계산 속도가 관리자의 계산 속도보다 빠르다면 채굴 제한 시간 내에 공격자가 VDF를 계산해낼 수 있다. 따라서, 공격자가 제한 체굴 시간 내에 VDF를 풀지 못하게 하려면 아래의 수학식 1을 만족해야 한다.
수학식 1
(여기서, 은 채굴자의 채굴 제한 시간, 은 채굴자의 계산 속도, 는 난수 생성 장치가 설정하는 VDF의 연산량을 나타냄.)
여기서, 관리자(난수 생성 장치)가 설정한 VDF의 연산량은 관리자의 계산 속도와 관리자의 지연시간의 곱이므로 상기 수학식 1은 아래의 수학식 2와 같이 정의될 수 있다. 여기서 관리자의 지연시간은 관리자가 설정한 VDF의 연산량을 관리자가 계산하는데 소요되는 시간을 의미한다.
수학식 2
(여기서, 은 채굴자의 채굴 제한 시간, 은 채굴자의 계산 속도, 는 난수 생성 장치(관리자)의 계산 속도, 은 난수 생성 장치(관리자)의 지연시간을 나타냄.)
이후, 상기 수학식 2의 양변에 을 곱해주면 아래의 수학식 3과 같이 표현된 수 있다.
수학식 3
여기서, VDF는 병렬 연산을 포함하고 있지 않기 때문에 상기 수학식들에서 이용하는 계산 속도는 싱글 코어 CPU를 기준으로 측정되는 값으로 정해진다. 그런데, 싱글 코어 CPU의 성능은 기술적으로 상한 값이 있으며, 채굴 제한 시간도 일반적으로 블록체인의 종류에 따라 저마다의 상한 값이 존재한다. 따라서, 우변의 값을 높이면 우변이 좌변보다 큰 값을 항상 정할 수 있다.
그러나, 채굴 제한시간 과, 관리자의 컴퓨팅 속도(계산 속도) 는 항상 일정하게 정해지는 값이 아니며, 매번 달라질 수 있는 확률 변수로 볼 수 있다. 일반적으로 자연적인 오차에 의해 발생되는 확률변수는 정규분포를 따르기 때문에 채굴 제한 시간과 관리자의 계산속도들을 샘플링을 통해 평균과 분산을 계산하면 확률변수의 분포를 근사한 값으로 계산할 수 있다.
즉, 제한 체굴 시간과 관리자의 계산 속도를 측정하고, 측정된 값을 표본에 추가한다. 이러한 과정을 반복하여 표본에 충분한 측정 데이터가 축적되면, 표본의 평균과 분산을 계산하고, 이를 통해 목표 신뢰구간을 얻는 매개변수를 계산할 수 있다. 본 발명에서는 목표 신뢰 구간을 99.99%의 신뢰도를 갖는 를 가진 시스템을 기준으로 채굴자의 공격을 방어할 수 있는 최소 지연시간을 계산하였다.
샘플링을 통해 제한 체굴 시간의 평균과 분산을 계산하고, 관리자의 계산속도의 평균과 분산을 계산하면 상기 수학식은 아래의 수학식 4와 같이 표현될 수 있다.
수학식 4
(여기서, , 는 난수 생성 장치(관리자)의 계산 속도의 평균, 는 난수 생성 장치(관리자)의 계산 속도의 분산, 은 채굴자의 채굴 제한 시간의 평균, 은 채굴자의 채굴 제한 시간의 분산, 는 채굴자의 계산 속도의 상한값, 은 정규분포를 나타냄.)
정규분포는 과 같은 성질을 가지므로, 수학식 4는 아래의 수학식 5와 같이 표현될 수 있다.
수학식 5
이어서, 수학식 5의 좌변을 우변으로 옮긴 후 식을 정리하면 아래의 수학식 6과 같이 표현될 수 있다. 이때, 두 정규분포의 차이 역시 정규분포이며, 새 정규분포는 다음과 같이 계산되는 성질을 이용하면 수학식 6과 같이 표현될 수 있다.
N(평균1, 분산1) - N(평균2, 분산2) = N(평균1 - 평균2, 분산1 + 분산2)
수학식 6
여기서, 두 정규분포의 차이에 의한 새 정규분포는 수학식 6과 같이 계산되므로, 새 정규분포에 따른 평균() 및 분산()은 각각 , 이 될 수 있다.
본 발명은 목표 신뢰 구간을 99.99%의 신뢰도를 갖는 를 가진 시스템을 기준으로 채굴자의 공격을 방어할 수 있는 최소 지연시간을 계산한다. 어떤 정규분포가 0보다 클 확률이 99.99%이상 이려면 정규분포의 좌표준편차값이 원에 있어야 한다. 즉, 평균 - 좌표준편차 = 이어야 한다.
따라서, 평균 - 0 = 이거나, 평균 > 이어야 한다.
평균 - 0 = 인 조건을 이용하면, = 평균으로 볼 수 있으며, 양변을 제곱하면 아래의 수학식 7과 같이 표현될 수 있다.
수학식 7
여기서, 을 대입하고, 평균에 를 대입하면, 아래의 수학식 8과 같이 표현될 수 있다.
수학식 8
수학식 8은 에 관한 2차 방정식으로 정리될 수 있으며, 에 관한 2차 방정식을 근의 공식을 이용하여 근을 구하면, 는 아래의 수학식 9와 같이 표현될 수 있다.
수학식 9
(여기서, 은 상기 난수 생성 장치가 설정하는 VDF의 최소 지연 시간, 는 난수 생성 장치의 계산 속도의 평균, 는 난수 생성 장치의 계산 속도의 분산, 은 채굴자의 채굴 제한 시간의 평균, 은 채굴자의 채굴 제한 시간의 분산, 는 채굴자의 계산 속도의 상한값을 나타냄.)
이와 같은 방법으로 난수 생성 장치는 채굴자의 공격을 방어할 수 있는 최소 지연 시간을 획득할 수 있으며, 이러한 최소 지연 시간을 갖도록 VDF의 연산량을 설정할 수 있다.
이에 따라, 난수 생성 장치(관리가)는 최소 지연 시간을 갖도록 VDF의 연산량을 설정하면, 채굴자는 채굴 제한 시간 내에 VDF의 계산을 할 수 없으며 이렇게 생성된 난수는 채굴자의 공격으로부터 안전하게 보호될 수 있다.
도 5는 본 발명의 일 실시예에 따른 난수 생성 방법에 의해 생성된 난수를 검증하는 과정을 설명하기 위한 순서도이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 난수 생성 방법의 난수를 검증하는 방법은 검증자가 검증하고자 하는 요청을 기록하는 단계(S710), 해당 요청이 포함된 블록의 해시값을 확인하는 단계(S720), 상기 해시값을 VDF에 입력하는 단계(S730), 상기 VDF의 결과값과 난수 요청 아이디를 결합하여 시드 데이터를 생성하는 단계(S740) 및 상기 시드 데이터로 생성된 난수값이 검증하고자 하는 값과 동일한지 확인하는 단계(S750)을 포함할 수 있다.
본 발명의 일 실시예에 따른 난수 생성 방법은 이와 같은 과정을 통해 생성된 난수를 검증할 수 있다.
도 6은 도 6은 본 발명의 일 실시예에 따는 난수 생성 방법의 상기 VDF의 연산량을 다시 설정하는 단계를 설명하기 위한 순서도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 난수 생성 방법은 상기 VDF의 연산량을 다시 설정하는 단계를 더 포함할 수 있다.
상기 VDF의 연산량을 다시 설정하는 단계는 상기 난수 생성 장치가 난수 생성 요청이 있을 때 마다, 해당 난수 생성 요청자의 난수 생성 및 채굴자의 공격 방어 결과를 기록한 결과 데이터를 생성하여 저장하는 단계(S810), 상기 난수 생성 장치가 상기 복수개의 결과 데이터를 바탕으로, 생성된 난수를 통해 채굴자의 공격을 방어한 확률인 요청자 신뢰도를 계산하는 단계(S820), 상기 난수 생성 장치가 상기 요청자 신뢰도를 상기 난수 생성 장치가 설정한 시스템 신뢰도와 비교하는 단계(S830), 상기 난수 생성 장치가 상기 요청자 신뢰도가 상기 난수 생성 장치가 설정한 소정의 시스템 신뢰도보다 낮게 판단되는 경우 상기 요청자의 신뢰도를 비정상 데이터로 결정하는 단계(S840) 및 상기 난수 생성 장치가 상기 요청자의 신뢰도가 비정상 데이터를 결정되는 경우, 상기 VDF의 연산량을 다시 설정하는 단계(S850)를 포함할 수 있다.
난수 생성 요청을 받을 때 마다 해당 요청자의 결과를 기록하면 이를 기반으로 해당 사용자의 신뢰도를 계산할 수 있다. 여기서 신뢰도는 생성된 난수를 이용한 시스템에서 채굴자의 공격을 방어한 확률로 계산될 수 있다.
난수 생성 요청이 있을 때 마다, 해당 난수 생성 요청자의 난수 생성 및 채굴자의 공격 방어 결과를 기록한 결과 데이터를 생성하여 저장할 수 있다. 이 후 저장된 복수개의 결과 데이터를 바탕으로, 생성된 난수를 통해 채굴자의 공격을 방어한 확률인 요청자 신뢰도를 계산하게 된다. 난수 생성 장치는 시스템의 신뢰도를 소정의 비율로 설정할 수 있으며, 시스템의 신뢰도와 요청자 신뢰도를 비교하여, 요청자 신뢰도가 시스템 신뢰도 보다 낮은 경우 이를 비정상 데이터로 결정할 수 있다. 비정상 데이터로 결정되는 경우 난수 생성 장치는 VDF의 연산량을 다시 설정할 수 있다.
예를 들어, 외부적인 요인 등으로 제한 채굴 시간이 변경되면 이미 설정된 VDF 연산량에 의해 채굴자의 공격을 방어할 수 없게 된다. 따라서, 이러한 경우 지연시간의 조정이 필요하며, 도 2 내지 도 5에서 설명한 방법을 다시 적용하여 VDF의 연산량을 재조정할 수 있다. 이에 따라, 채굴자의 채굴 제한 시간이 변경되는 경우에도 효과적으로 채굴자의 공격을 방어할 수 있다.
도 7은 본 발명의 일 실시예에 따른 난수 생성 장치의 구조를 나타내는 도면이다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 난수 생성 장치(100)는 프로세서(110), 메모리(120), 입력 인터페이스 장치(130), 출력 인터페이스 장치(140), 네트워크 인터페이스 장치(150) 및 저장 장치(160)를 포함하며, 이들은 버스(170)를 통해 통신할 수 있다.
상기 프로세서(110)는 위의 도 2 내지 도 6을 토대로 설명한 방법들을 구현하도록 구성될 수 있다.
상기 프로세서(110)는 중앙 처리 장치(CPU)이거나, 또는 메모리(120) 또는 저장 장치(160)에 저장된 명령을 실행하는 반도체 장치일 수 있다.
상기 메모리(120)는 상기 프로세서(110)와 연결되고 상기 프로세서(110)의 동작과 관련한 다양한 정보를 저장한다. 상기 메모리(120)는 상기 프로세서(110)에서 수행하기 위한 명령어를 저장하고 있거나 저장 장치(160)로부터 명령어를 로드하여 일시 저장할 수 있다. 상기 프로세서(110)는 상기 메모리(120)에 저장되어 있거나 로드된 명령어를 실행할 수 있다. 상기 메모리는 ROM(121) 및 RAM(122)를 포함할 수 있다.
본 발명의 일 실시예에서 메모리(120)/저장 장치(160)는 프로세서(110)의 내부 또는 외부에 위치할 수 있고, 이미 알려진 다양한 수단을 통해 프로세서(110)와 연결될 수 있다.
입력 인터페이스 장치(130)는 입력되는 데이터를 제공받아 상기 프로세서(110)로 전달하도록 구성될 수 있다. 출력 인터페이스 장치(140)는 상기 프로세서(110)의 처리 결과를 출력하도록 구성될 수 있다.
네트워크 인터페이스 장치(150)는 네트워크를 통해 입력되는 데이터를 제공받아 프로세서(110)로 전달하거나, 프로세서(110)의 처리 결과를 네트워크를 통해 다른 장치로 전송하도록 구성될 수 있다. 예를 들어, 네트워크 인터페이스 장치(150)는 클라이언트 노드로부터 전송되는 데이터를 수신하여 프로세서(110)로 전달하거나, 프로세서(110)로부터의 데이터(예를 들어, 블록 해시값)을 클라이언트 노드로 전송하도록 구성될 수 있다.
이러한 구조로 이루어지는 본 발명의 일 실시예에 따른 난수 생성 장치(100)는 블록 체인 기반 시스템의 스마트 컨트랙트 노드에 포함되는 형태로 구현될 수 있으며, 이에 한정되지는 않는다.
이상에서 본 발명의 실시예들이 상세하게 설명되었으나 본 발명에 따른 권리범위가 이에 한정되는 것은 아니고, 다음의 청구범위에 기재되어 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명에 따른 권리범위에 포함되는 것으로 해석되어야 한다.

Claims (5)

  1. 스마트 컨트랙트(smart contract)를 위한 난수 생성 방법으로서,
    난수 생성 장치가 스마트 컨트랙트를 작성하여 블록체인에 기록하는 단계;
    난수 생성 장치가 사용자의 난수 생성 요청을 수신하는 단계;
    상기 난수 생성 장치가 난수 생성 요청에 대해 난수 생성 요청 아이디를 부여하고, 난수 생성 요청을 블록체인에 기록하는 단계;
    상기 난수 생성 장치가 난수 생성 요청이 포함된 블록의 해시값을 VDF(Verifiable Delay function)에 입력하는 단계;
    상기 난수 생성 장치가 상기 VDF의 결과값과 상기 난수 생성 요청 아이디를 결합하여 시드(seed) 데이터를 생성하는 단계; 및
    상기 난수 생성 장치가 상기 시드 데이터를 이용하여 난수를 생성하는 단계를 포함하고,
    상기 VDF는 채굴자가 채굴 제한시간 내에 연산을 수행하지 못하도록 연산량이 설정되는 것을 특징으로 하는 난수 생성 방법.
  2. 제1항에 있어서,
    상기 난수 생성 장치가 설정하는 VDF의 연산량은 아래의 수학식을 만족하는 것을 특징으로 하는 난수 생성 방법.

    (여기서, 은 채굴자의 채굴 제한 시간, 은 채굴자의 계산 속도, 는 난수 생성 장치가 설정하는 VDF의 연산량을 나타냄.)
  3. 제2항에 있어서,
    상기 난수 생성 장치가 설정하는 VDF의 연산량은 아래의 수학식을 만족하는 것을 특징으로 하는 난수 생성 방법.

    (여기서, 은 채굴자의 채굴 제한 시간, 은 채굴자의 계산 속도, 는 난수 생성 장치(관리자)의 계산 속도, 은 난수 생성 장치(관리자)의 지연시간을 나타냄.)
  4. 제3항에 있어서,
    상기 난수 생성 장치의 지연 시간은 아래의 수학식에 의해 정의되는 것을 특징으로 하는 난수 생성 방법.

    (여기서, 은 상기 난수 생성 장치의 지연 시간, 는 난수 생성 장치의 계산 속도의 평균, 는 난수 생성 장치의 계산 속도의 분산, 은 채굴자의 채굴 제한 시간의 평균, 은 채굴자의 채굴 제한 시간의 분산, 는 채굴자의 계산 속도의 상한값을 나타냄.)
  5. 제1항에 있어서,
    상기 VDF의 연산량을 다시 설정하는 단계를 더 포함하며,
    상기 난수 생성 장치가 난수 생성 요청이 있을 때 마다, 해당 난수 생성 요청자의 난수 생성 및 채굴자의 공격 방어 결과를 기록한 결과 데이터를 생성하여 저장하는 단계;
    상기 난수 생성 장치가 상기 복수개의 결과 데이터를 바탕으로, 생성된 난수를 통해 채굴자의 공격을 방어한 확률인 요청자 신뢰도를 계산하는 단계;
    상기 난수 생성 장치가 상기 요청자 신뢰도를 상기 난수 생성 장치가 설정한 시스템 신뢰도와 비교하는 단계;
    상기 난수 생성 장치가 상기 요청자 신뢰도가 상기 난수 생성 장치가 설정한 소정의 시스템 신뢰도보다 낮게 판단되는 경우 상기 요청자의 신뢰도를 비정상 데이터로 결정하는 단계; 및
    상기 난수 생성 장치가 상기 요청자의 신뢰도가 비정상 데이터를 결정되는 경우, 상기 VDF의 연산량을 다시 설정하는 단계를 포함하는 것을 특징으로 하는 난수 생성 방법.


KR1020210107787A 2021-08-17 2021-08-17 난수 생성 방법 KR102582307B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210107787A KR102582307B1 (ko) 2021-08-17 2021-08-17 난수 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210107787A KR102582307B1 (ko) 2021-08-17 2021-08-17 난수 생성 방법

Publications (2)

Publication Number Publication Date
KR20230025968A KR20230025968A (ko) 2023-02-24
KR102582307B1 true KR102582307B1 (ko) 2023-09-25

Family

ID=85330277

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210107787A KR102582307B1 (ko) 2021-08-17 2021-08-17 난수 생성 방법

Country Status (1)

Country Link
KR (1) KR102582307B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020146955A1 (en) 2019-01-18 2020-07-23 Zeu Crypto Networks Inc. A method for generating random numbers in blockchain smart contracts
WO2021022369A1 (en) 2019-08-06 2021-02-11 Zeu Crypto Networks Inc. Distributed blockchain transaction system
WO2021057005A1 (zh) 2019-09-24 2021-04-01 北京海益同展信息科技有限公司 用于发布智能合约的方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101194403B1 (ko) 2010-12-06 2012-10-25 삼성에스디에스 주식회사 암호학적 안전성이 보장된 의사난수 생성 장치 및 그 방법
KR20210094866A (ko) * 2020-01-22 2021-07-30 한국전자통신연구원 스마트 컨트랙트에서의 난수 생성 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020146955A1 (en) 2019-01-18 2020-07-23 Zeu Crypto Networks Inc. A method for generating random numbers in blockchain smart contracts
WO2021022369A1 (en) 2019-08-06 2021-02-11 Zeu Crypto Networks Inc. Distributed blockchain transaction system
WO2021057005A1 (zh) 2019-09-24 2021-04-01 北京海益同展信息科技有限公司 用于发布智能合约的方法和装置

Also Published As

Publication number Publication date
KR20230025968A (ko) 2023-02-24

Similar Documents

Publication Publication Date Title
Zhang et al. {REM}:{Resource-Efficient} mining for blockchains
KR102002509B1 (ko) 공증센터를 포함하는 프라이빗 블록체인 시스템 및 이의 공증방법
CN108694665B (zh) 区块链管理装置、数据处理系统及即时交易处理方法
US10795857B2 (en) Blockchain system and method thereof
KR102406533B1 (ko) 추적가능한 키 블록-체인 원장
US20210350363A1 (en) Transaction system and method of operation thereof
KR20200080265A (ko) 블록체인 상에 확인 키를 기록하기 위한 시스템
US20200364212A1 (en) System and method of supporting reflection of transactions between blockchain networks
Li et al. Blockchain-based security architecture for distributed cloud storage
KR20200105997A (ko) 블록체인-기반 인증을 위한 시스템 및 방법
EP3570489B1 (en) Device and method for transforming blockchain data blocks
Nauman et al. Using trusted computing for privacy preserving keystroke-based authentication in smartphones
Neuder et al. Defending against malicious reorgs in Tezos Proof-of-Stake
US11176259B2 (en) Authentication circuit, electronic system including the same, and method of forming network
KR20210094866A (ko) 스마트 컨트랙트에서의 난수 생성 방법 및 장치
KR20220010534A (ko) 작업 증명 블록체인 네트워크 상의 비병렬식 채굴용 시스템 및 방법
KR102582307B1 (ko) 난수 생성 방법
Wang et al. Verification of data redundancy in cloud storage
US11625260B2 (en) Method for enhancing throughput in blockchain network
Johnson et al. How many down? Toward understanding systematic risk in networks
Li et al. Blockchain‐Assisted Distributed Fog Computing Control Flow Attestation
KR20230065533A (ko) 난수 생성 기술을 이용한 추첨 시스템
KR20200144214A (ko) 네트워크 상에서 합의된 데이터를 전송하는 방법 및 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기
Khaba et al. Remote data integrity checking in cloud computing
CN114026586A (zh) 用于授予对加密资产的访问权的零知识或有支付协议

Legal Events

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