KR20210135495A - 블록체인 스마트 컨트랙트들에서 난수들을 발생하기 위한 방법 - Google Patents

블록체인 스마트 컨트랙트들에서 난수들을 발생하기 위한 방법 Download PDF

Info

Publication number
KR20210135495A
KR20210135495A KR1020217025655A KR20217025655A KR20210135495A KR 20210135495 A KR20210135495 A KR 20210135495A KR 1020217025655 A KR1020217025655 A KR 1020217025655A KR 20217025655 A KR20217025655 A KR 20217025655A KR 20210135495 A KR20210135495 A KR 20210135495A
Authority
KR
South Korea
Prior art keywords
user
random
random number
block
seed
Prior art date
Application number
KR1020217025655A
Other languages
English (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 제우 테크놀로지스, 인크.
Publication of KR20210135495A publication Critical patent/KR20210135495A/ko

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or 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/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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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
    • H04L9/3239Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

검증가능하고 변조할 수 없는 난수 발생을 달성하면서 종래의 방법들과 연관된 소정의 문제들을 효과적으로 완화시키는, 스마트 컨트랙트들을 위한 공정하고 효과적인 난수들을 발생하기 위한 방법이 개시된다. 개시된 방법 배후의 개념은 채굴자들을 신뢰할 수 없는 것으로서 취급하고 블록체인 내의 채굴자들의 수는 제한된다고 가정한다. 충분한 동기 부여로, 채굴자들은 블록을 조작하기 위해 합의에 도달할 수 있다. 그러므로, 목적은 검증가능한 공정한 난수 발생기를 생성하는 것이다. 이 조건하에서, 스마트 컨트랙트와의 당사자들 중 적어도 하나가 신뢰할 수 있고 비밀 정보를 오용하지 않는 한, 신뢰된 블록체인 난수가 발생될 수 있다. 난수의 마지막 공개 후에, 난수 계산 과정이 신뢰할 수 있다는 것을 확인하기 위해 컨트랙트들과의 당사자들에 의해 제출된 검증 서명이 사용될 수 있다.

Description

블록체인 스마트 컨트랙트들에서 난수들을 발생하기 위한 방법
본 출원은 일반적으로 블록체인 시스템에 관한 것으로, 특히 블록체인 스마트 컨트랙트들에서 난수들을 발생하기 위한 방법에 관한 것이다.
우리가 살고 있는 환경은 무작위성으로 가득 차 있다. 운, 확률, 및 운명의 개념들은 항상 무작위성과 밀접하게 연관되어 왔다. 사람들이 이해할 수 없거나 예측할 수 없는 모든 것은 종종 무작위한 것으로서 분류된다. 생리학적으로, 우리는 또한 무작위성의 바다에 잠겨 있다. 구름들의 이동으로부터 입자들 및 파동들의 거동까지, 무작위성은 어디에나 있다.
그러나, 사람들이 다양한 무작위한 사물들에 노출되고 무작위성에 친숙하지만, 이것을 컴퓨터들이 사용할 수 있는 어떤 것으로 해석하는 것은 여전히 어렵다. 우리가 컴퓨터 시스템들에서 무작위성에 관해 말할 때, 우리는 실제로 의사-무작위성을 의미하는데, 즉, 실제 세계의 무작위성을 되도록 많이 모의하여, 그것을 거의 "실제 무작위성"으로 되게 한다.
난수들은 개인 정보 보호 기술 및 암호학에서 중요한 역할을 한다. 난수들의 중요성은 보안 통신 채널들의 확립에서 뿐만 아니라, 통신들의 확인에서 반영된다. 다수의 사람이 제한된 대역폭의 채널을 통해 서로 통신하기를 시도한다면, 채널이 메시지들을 운반하는 합당한 순서를 결정하기 위해 난수가 이용될 수 있다.
블록체인은 다수의 당사자가 글로벌 관점의 소정의 업데이트에 관한 합의에 도달하기를 시도하는 성공적인 사용 경우이다. 업데이트들은 보통 하나의 라운드에서, 즉, 주기적 이산 시간 간격 내에서 완료된다.
단일 노드 상에서, 일부 물리적인 특성들은 전자적 열적 모션, 또는 사용자의 임의적인 마우스 움직임들과 같은 난수들을 발생하기 위해 사용될 수 있다. 그러나, 블록체인 스마트 컨트랙트들 샌드박스에서, 예측, 계산, 또는 결정될 수 없는 유일한 난수를 획득하는 것은 쉽지 않다. 주된 원인은 샌드박스 응용이 외부와 분리되고, 단지 샌드박스 내부의 또는 블록체인 내의 데이터에 접근할 수 있지만, 물리적인 머신 또는 외부 세계에서 데이터를 볼 수 없다는 것이다. 체인 상의 트랜잭션 데이터가 많은 사용자들이 동일한 기간 내에 블록체인에 접근할 때 그리고 사람의 행동을 예상하기가 어려운 동안 소정의 무작위성을 갖지만, 이것은 항상 그렇지 않고, 특히 낮은 로드 기간들 동안에 그렇지 아니하다. 또한 블록체인의 모든 사용자가 블록체인 내에 저장된 데이터를 볼 수 있기 때문에, 스마트 컨트랙트에서 개인적인 것으로서 표시된 데이터 조차도 여전히 외부 응용들에 의해 보여질 수 있다.
난수를 발생하기 위한 공식이 공개될 때, 누구든지 난수를 추측하기 위해 동일한 공식으로 동일한 데이터를 사용할 수 있고, 그러므로 그것은 더 이상 무작위한 것이 아닐 수 있다. 난수들을 사용하는 복권 게임들은 난수 소스가 결코 조작될 수 없는 것을 보장하여야 하는데, 왜냐하면 약간의 편차 조차도 승리 결과들을 완전히 변화시킬 것이기 때문이다. 승자들은 실질적인 즉석 보상들을 받을 수 있기 때문에, 복권 결과들을 변조하는 영향도 역시 상당하다. 우리는 또한 난수들의 발생이 임의의 블록체인의 참여 노드들에 의해 제어될 수 없는 것을 보장하여야 한다. 그러므로, 블록체인 컨트랙트에서의 단일 소스 난수 시드의 사용은 신뢰할 수 없는데 왜냐하면 난수 시드를 제공하는 당사자가 결과를 위조함으로써 난수를 발생하지 못하는 것을 누구도 보장할 수 없기 때문이다.
스마트 컨트랙트들에서의 효과적이고 공정한 난수들은 데이터 암호화, 온라인 게이밍, 및 갬블링과 같은 많은 블록체인-기반 서비스들에 기초한다. 비지배(non-domination)를 달성하기 위해, 무작위성 프로토콜은 다음과 같은 2가지 양태를 보장할 필요가 있다:
i) 무작위 함수들이 항상 일부 난수들을 발생하는 것; 및
ii) 무작위 함수들에 의해 발생된 난수들이 조작되지 않는 것.
공지된 블록체인 난수 발생 방법들은 블록 해시, 비트코인 비콘 및 오라클라이즈(Oraclize)를 포함한다.
블록 해시에서, 블록 또는 트랙잭션의 해시가 무작위 소스로서 사용된다. 해시는 결정론적이기 때문에, 누구나 동일한 결과를 얻을 것이다. 블록체인에 추가될 때, 블록은 거기에 영원히 남을 수 있어서, 모든 사용자가 발생된 수들의 정확성을 검증할 수 있다. 이 방법을 사용하여 복권 서비스의 예를 고려해 보자. 플레이어들은 먼저 소정의 시간, 예를 들어, 매일 밤 7:00 PM 전에 그들의 번호를 배치함으로써 표들을 구매한다. 7:00 PM 이후에, 표 구매 시기는 종료되고 계약은 다음 스테이지로 이동하고, 이는 승리 표 번호를 결정할 것이다. 이 표는 8:00 PM 이후에 비트코인 블록체인 상에서 누구에게나 접근가능한 제1 블록의 해시에 기초하여 계산된다. 우리는 7:00 PM에, 서비스 룩을 합당하게 하는, 8:00 PM에 블록의 해시를 누구도 예측할 수 없다는 것을 알 수 있다.
그러나, 이 해시는 감시자 블록체인의 채굴자들에 의해 조작될 수 있다. 복권 보상이 작을 때, 채굴자는 블록을 변조하는 것에 대해 적은 인센티브를 갖지만, 그 양이 블록 보상 더하기 트랜잭션 요금보다 크다면, 채굴자는 그들이 원하는 수를 발생하기 위해 블록 해시에 영향을 주기 시작할 수 있다. 그러므로, 이 방법은 높은-간격 무작위성에 기초한 응용들에 대해 안전하지 않다. 이 방식은 또한 게임을 끝낼지를 결정하기 위해 난수들의 즉각적인 발생을 요구하는 시나리오들에서 부적절하다.
비트코인 비콘에서, 비트코인 블록체인은 난수들을 발생하기 위해 사용된다. 비트코인 내의 타임스탬프들 및 트랜잭션들은 높은 엔트로피의 지속 가능한 소스를 포함한다. 엔트로피는 무작위 소스들의 "카오스"를 측정한다. "카오스"가 많을수록 소스는 더 높은 엔트로피를 갖는데, 즉, 발생된 수를 예측하는 것이 더 어렵다. 또한, SHA256 해시 함수 및 작업 증명(PoW) 알고리즘이 무작위 함수를 결정하기 위해 사용된다. PoW는 계산 집약적이고 비결정론적이라서, 난수 발생기(RNG) 결과들의 예측 불가능성에 이르게 한다. 이 방식은 앞서 언급된 방식과 동일한 문제를 겪는데 왜냐하면 그것은 채굴자들이 그들이 좋아하지 않는 블록들을 아마 경제적인 이유로, 의도적으로 폐기하는, 공격의 위험을 적절히 다루지 않기 때문이다. 블록체인에서, 채굴자들은 작업 증명 알고리즘을 실행함으로써 블록체인을 보호하는 데 도움을 주고 확률론적으로 비트코인들의 형태로 보상들을 받는다. 그러므로, 무작위 비콘에 대한 임의의 공격은 비트코인 자체를 공격할 것이다. 그러므로, 이 방법은 단지 금전적 비용들의 특정한 범위 내에서 보장될 수 있다. 보상이 큰 복권의 경우에, 채굴자는 특정한 블록을 무시하도록 매수될 수 있고, 그럼으로써 무작위성을 약화시킨다. 또 하나의 문제는 보통 사람(비채굴자들)이 이들 난수의 발생에 참여할 수 없다는 것인데, 이는 적합하게 공정한 해결책이 아니라는 것을 의미한다.
오라클라이즈는 스마트 컨트랙트들 및 블록체인 응용들을 위한 데이터를 제공하는 데이터 제공자이다. 많은 실제 세계 상황들은 데이터가 블록체인 외부로부터 획득되기를 요구하지만, 스마트 컨트랙트들의 특성은 이 문제를 해결하는 데 도움을 주지 않는다. 오라클라이즈는 이 목적을 달성하는 데 도움을 줄 수 있다. 중재자로서, 오라클라이즈는 (Wolfram Alpha, IPFS 등과 같은) 외부 소스들로부터 데이트를 수집하고 다음에 데이터를 요구된 응용에 전달한다. 난수들에 관해, 오라클라이즈는 블록체인 내로 random.org로부터 데이터를 추출한다. 해결책의 중심에 집중된 데이터 서비스가 있다. 소위 신빙성 증명을 통해, 누구나 추출된 수들이 실제이고 변조되지 않았다는 것을 검증할 수 있다고 여겨진다. 분명히, 이 모델에서, 사람들은 오라클라이즈를 신뢰할 뿐만 아니라, 위에 언급된 경우에서 데이터 제공자, 예를 들어, random.org를 신뢰한다. 그러나, 신뢰된 당사자들에 의존하는 것은 집중된 서비스들이 임의의 시간에 파괴될 수 있기 때문에, 블록체인 기술 배후의 핵심 원리들 중 하나를 부정한다. 이것은 높은 보안성을 요구하고 블록체인 상의 당사자들 간에 신뢰성을 갖지 않는 응용들에 대해 오라클라이즈를 비효율적으로 하게 한다.
따라서, 검증가능하고 변조할 수 없는 난수 발생을 달성하면서 위에 언급된 방법들의 문제들을 완화시키는 개선된 방법들에 대한 필요성이 있다.
한 실시예에서, 본 발명은 검증가능하고 변조할 수 없는 난수 발생을 달성하면서 위에 언급된 방법들의 문제들을 효과적으로 피할 수 있는, 스마트 컨트랙트들을 위한 공정하고 효과적인 난수들을 발생하기 위한 방법을 제공한다.
본 발명의 한 실시예에 따르면, 복수의 사용자 간의 블록체인 상에 스마트 컨트랙트를 위한 난수들을 발생하기 위한 방법이 제공된다. 방법은 각각의 사용자가 무작위 시드를 로컬로 발생하게 하는 단계; 각각의 사용자가 대응하는 공개 키를 갖는 개인 키로 무작위 시드에 서명함으로써 서명을 발생하게 하는 단계; 각각의 사용자가 스마트 컨트랙트에 서명을 별개로 제출하게 하는 단계; 스마트 컨트랙트를 사용하여, 각각의 사용자의 대응하는 공개 키로, 각각의 사용자의 서명을 검증하는 단계; 스마트 컨트랙트를 통해 블록체인의 현재의 블록에 서명을 저장하는 단계; 각각의 사용자가 적어도 미리 정해진 기간을 대기하게 하고 다음에 각각의 사용자에 의해 발생된 무작위 시드를 제출하게 하는 단계; 스마트 컨트랙트를 통해, 대응하는 서명과의 일치를 보장함으로써, 각각의 사용자에 의해 제출된 각각의 무작위 시드를 검증하는 단계; 및 각각의 사용자로부터의 모든 무작위 시드들이 수신된 후에, 스마트 컨트랙트를 통해, 각각의 사용자의 시드들로부터 획득된 시드 및 현재의 블록의 해시로 난수를 계산하는 단계를 포함한다. 현재의 블록의 해시를 얻을 때, 시드들의 모두는 시드들 또는 블록 내용을 더 이상 조작하는 것이 가능하지 않도록 이미 발생되었고, 그럼으로써 채굴자들이 현재의 블록을 변화시키는 것을 방지한다.
본 발명의 실시예들을 단지 예로서만 도시한 도면들에서,
도 1은 RND 컨트랙트에 의해 난수를 발생하기 위한, 본 발명의 실시예의 예시적인 과정의 단순화된 개략도이고;
도 2는 사용자가 도 1의 RNG 컨트랙트에 의해 발생된 난수를 검증하는 단순화된 개략도이다.
위에 기재된 것과 같이, 본 발명은 검증가능하고 변조할 수 없는 난수 발생을 달성하면서 위에 언급된 방법들의 문제들을 효과적으로 피할 수 있는, 스마트 컨트랙트들을 위한 공정하고 효과적인 난수들을 발생하기 위한 방법을 제안한다.
본 발명의 다양한 실시예들의 설명이 아래에 제공된다. 본 개시내용에서, 용어 "포함하는"과 함께 여기서 사용될 때 단수 표현의 사용은 "하나"를 의미할 수 있지만, 그것은 또한 "하나 이상", "적어도 하나" 및 "하나 또는 하나 초과"의 의미와 일치한다. 단수 형태로 표현된 임의의 요소는 또한 그것의 복수 형태를 포함한다. 복수 형태로 표현된 임의의 요소는 또한 그것의 단수 형태를 포함한다. 여기서 사용된 것과 같은 용어 "복수"는 하나보다 많은, 예를 들어, 2개 이상, 3개 이상, 4개 이상 등을 의미한다. "상부", "하부", "위로", "아래로", "수직으로" 및 "수평으로"와 같은 방향적 용어들은 단지 상대적 참조를 제공하는 목적을 위해 사용되고, 임의의 물품이 사용 중에 어떻게 배치되는지, 또는 조립품 내에서 어떻게 장착되는지 또는 환경에 대해 어떻게 장착되는지에 대한 어떤 제한들을 제안하려는 것은 아니다.
용어들 "포함하는", "갖는", "포함하는", 및 "포함하는", 및 그것의 문법적 변화들은 포괄적이고 또는 제한이 없는 것이고 추가적인, 비나열된 요소들 및/또는 방법 단계들을 배제하지 않는다. 구성, 사용 또는 방법과 관련하여 여기서 사용될 때 용어 "본질적으로 구성되는"은 추가적인 요소들, 방법 단계들 또는 추가적인 요소들과 방법 단계들 둘 다가 존재할 수 있지만, 이들 추가는 나열된 구성, 방법, 또는 사용이 기능하는 방식에 물질적으로 영향을 주지 않는다는 것을 표시한다. 구성, 사용, 또는 방법과 관련하여 여기서 사용될 때 용어 "로 구성되는"은 추가적인 요소들 및/또는 방법 단계들의 존재를 배제한다.
"블록체인"은 컴퓨팅 디바이스들의 공개 또는 개인 피어-투-피어 네트워크에서의 트랜잭션들을 기록하는 변조 방지되고, 공유된 디지털 원장이다. 원장은 암호화 해시-링크된 블록들의 성장하는 순차적 체인으로서 유지된다.
"노드"는 블록체인 네트워크 상의 디바이스이다. 디바이스는 전형적으로 그 위에 프로세서 판독가능 명령어들을 갖는, 메모리를 포함하는 프로세서 판독가능 매체와 상호접속된 프로세서를 갖는 컴퓨터이다.
또한, 용어들 "제1", "제2", "제3" 등은 단지 설명 목적들을 위해 사용되고 상대적 중요성을 표시하거나 의미하는 것으로서 해석될 수 없다.
본 발명의 설명에서, 용어들 "장착된", "링크된" 및 "접속된"은 명시적으로 달리 정의되고 제한되지 않는다면 넓은 의미로 해석되어야 한다는 점에 또한 주목하여야 한다. 또한, 그것은 고정된 접속, 또는 조립된 접속, 또는 일체로 접속된; 하드-와이어되거나 소프트-와이어될 수 있고; 그것은 직접적으로 접속되거나 매개물을 통해 간접적으로 접속될 수 있다. 기술적 전문가들을 위해, 본 발명에서의 상기 용어들의 특정한 의미들이 맥락에서 이해될 수 있다.
본 발명의 실시예들을 도시한 도면들에서, 동일하거나 유사한 참조 라벨들은 동일하거나 유사한 부분들에 대응한다. 본 발명의 설명에서, "복수의"의 의미는 달리 특정되지 않는다면 2개 이상을 의미한다는 점에 주목하여야 한다. 용어들 "위", "아래", "좌측", "우측", "내부", "외부", "전방 단부", "후방 단부", "머리", "꼬리"의 방향들 또는 위치들, 도면들에 도시한 배향 또는 위치적 관계는 단지 본 발명을 설명하고 표시된 디바이스 또는 요소가 특정한 배향을 가져야 하고 특정한 배향으로 구성되고 동작되어야 하는 것을 표시하거나 의미하기보다는 설명을 간단히 하는 편의를 위한 것이고, 그러므로 본 발명을 제한하는 것으로서 사용될 수 없다.
예시적인 방법 배후의 개념은 "채굴자들은 신뢰할 수 없고" 블록체인 내의 채굴자들의 수는 제한된다는 원리들을 구체화한다. 충분한 동기 부여로, 채굴자들은 블록을 조작하기 위해 합의에 도달할 수 있다. 그러므로, 목적은 검증가능한 공정한 RNG(난수 발생기)를 생성하는 것이다. 이 조건하에서, 스마트 컨트랙트와의 당사자들 중 적어도 하나가 신뢰할 수 있고 사람이 비밀 정보를 오용하지 않는 한, 신뢰된 블록체인 난수가 발생될 수 있다. 난수의 마지막 공개 후에, 우리는 또한 난수 계산 과정이 신뢰할 수 있다는 것을 확인하기 위해 당사자들에 의해 제출된 검증 서명을 사용할 수 있다.
본 발명의 양태에 따르면, 무작위 발생 컨트랙트가 N개의 참여 사용자를 갖는다고 가정하면, 전체 과정은 다음의 단계들을 사용하여 정의될 수 있다:
각각의 사용자는 무작위 시드를 로컬로 발생하고, 그들의 로컬 개인 키로 이 무작위 시드에 서명한다.
각각의 사용자는 RNG 스마트 컨트랙트에 서명을 별개로 제출한다.
컨트랙트는 사용자의 공개 키로 제출된 서명을 검증하여, 그것이 올바른 사용자에 의해 발생되는 것을 보장한다. 다음에 컨트랙트는 블록에 서명들을 저장한다.
각각의 사용자는 적어도 하나의 블록 기간을 대기하고 무작위 시드를 제출한다. 이것은 무작위 시드가 그것의 서명과 동일한 블록에서 나타나지 않는 것을 확실하게 하는 것이다.
컨트랙트는 제출된 무작위 시드를 검증할 것이고, 그것이 서명과 일치하는 것을 보장한다.
모든 무작위 시드들이 수신된 후에, 컨트랙트는 시드(사용자 A, 사용자 B .... 사용자 N) 및 현재의 블록의 블록 해시로 난수를 계산한다. 현재의 블록의 해시 코드를 얻을 때, 모든 난수 시드들은 이미 발생되었고 그러므로 난수 시드들 또는 블록 내용을 더 이상 조작하는 것은 가능하지 않다. 이것은 채굴자들이 블록체인 내의 블록을 변화시키는 것을 방지할 수 있다.
한 실시예에서의 단계들의 예시적인 세트가 도 1을 참조하여 아래에 설명된다.
단계 101에서: 뱅커는 스마트 컨트랙트에게 난수 발생의 새로운 라운드를 시작하라고 알린다.
단계 102에서: 사용자 A는 컨트랙트로부터 현재의 블록 ID를 얻는다.
단계 103에서: 사용자 A는 로컬 소프트웨어 또는 하드웨어 디바이스들에 의해 로컬 무작위 시드를 발생한다.
단계 104에서: 사용자 A는 사용자 A의 개인 키로 무작위 시드 및 블록 ID에 서명한다. 입력으로서 무작위 시드 및 현재의 블록의 식별자(블록 ID) 중 하나 이상을 사용하는 PGP(Pretty Good Privacy)와 같은 암호화 프로그램이 예를 들어: Signature = PGP(Random Seed, Block ID)이도록 사용될 수 있다.
단계 105에서: 사용자 A는 RNG 스마트 컨트랙트를 호출하고, 스마트 컨트랙트에 서명을 제출한다.
단계 106에서: 스마트 컨트랙트는 사용자 A의 공개 키로 서명을 검증하고, 체인의 블록에 서명을 저장한다.
단계 107에서: 사용자 A는 하나의 블록 기간보다 큰 시간의 기간을 대기한다. 이것은 서명 저장이 무작위 시드에 앞선 적어도 하나의 블록인 것을 보장하는 것이다.
단계 108에서: 사용자 A는 RNG 스마트 컨트랙트에 서명을 발생하기 위해 사용된 무작위 시드 및 블록 ID를 제출한다.
단계 109에서: 스마트 컨트랙트는 무작위 시드를 검증하여, 그것이 이전에 제출된 서명과 일치하는 것을 보장한다.
단계 110에서: 스마트 컨트랙트는 다음의 공식: RAND(0) = HASH(RandomSeed(USER A))를 사용하여 임시 난수를 계산한다.
단계 111에서: 사용자 N은 로컬 소프트웨어 또는 하드웨어 디바이스들에 의해 로컬 무작위 시드를 발생한다.
단계 112에서: 사용자 N은 사용자 N의 개인 키 : Signature = PGP(Random Seed, Block ID)로 무작위 시드 및 블록 ID에 서명한다.
단계 113에서: 사용자 N은 RNG 스마트 컨트랙트를 호출하고, 스마트 컨트랙트에 서명을 제출한다.
단계 114에서: 스마트 컨트랙트는 사용자 N의 공개 키로 서명을 검증하고, 체인의 블록에 서명을 저장한다.
단계 115에서: 사용자 N은 하나의 블록 기간보다 큰 시간의 기간을 대기한다. 이것은 서명 저장이 무작위 시드에 앞선 적어도 하나의 블록인 것을 보장하는 것이다.
단계 116에서: 사용자 N은 RNG 스마트 컨트랙트에 서명을 발생하기 위해 사용된 무작위 시드 및 블록 ID를 제출한다.
단계 117에서: 스마트 컨트랙트는 무작위 시드를 검증하여, 그것이 이전에 제출된 서명과 일치하는 것을 보장한다. 패키지 복제 공격을 방지하기 위해, 우리는 또한 블록 ID를 검증할 필요가 있고, 그것이 현재의 블록으로부터 5개의 블록 내에 있는 것을 보장한다.
단계 118에서: 스마트 컨트랙트는 다음의 공식: RAND(N) = HASH(RAND (N-1) XOR RandomSeed(USER A))을 사용하여 임시 난수를 계산하고, 여기서 RAND(N-1)은 이전의 단계들에서 발생된 임시 난수이다. 무작위 시드들을 제출할 필요가 있는 더 많은 사용자들이 있으면, 단계 111로 계속 루프한다. 다른 실시예들에서 Randomseed(USER N)이 대신에 사용될 수 있다.
단계 119에서: 모든 참여자들이 그들의 무작위 시드들을 제출하였다면, 컨트랙트는 현재의 블록의 해시 값을 얻고, 다음의 공식: RAND(N+1) = HASH( RAND(N) XOR BLOCKHASH)으로 난수를 재계산하고, 최종 결과로서 RAND(N+1)을 공개할 것이다.
1. 난수 과정의 보안 검증:
1.1. 시나리오 1: 블록체인 난수 발생 과정의 사용자 검증
블록체인 상의 임의의 사용자는 블록체인 상의 데이터를 통해 RNG 컨트랙트 내의 각각의 사용자에 의해 기여된 난수 시드 및 서명을 획득할 수 있다. 그들은 마지막 블록의 해시 값을 획득할 수 있다. 공식, RAND(N+1)을 사용함으로써, 그것이 계산될 수 있고, 스마트 컨트랙트에 의해 계산된 난수가 비교되고 검증될 수 있다.
도 2는 사용자 A가 RNG 컨트랙트에 의해 발생된 난수를 검증하는 것을 도시한다.
1.2. 시나리오 2: 채굴자들이 블록체인 기록들을 연대하여 변조하는 것을 방지하는 것
사용자 기여를 포함하는 난수 시드 블록을 폐기하려고 시도하는 채굴자가 발견될 것이다. 사용자가 이전의 블록에서 난수 시드 서명을 제출하였을 때, 사용자에 의해 재제출된 난수 시드는 검증을 통과하기 위해 마지막으로 제출된 서명과 일치하여야 한다. 또한, 각각의 단계의 난수가 실시간으로 계산되고 세이브된다. 최종 검증 결과가 각각의 단계에서 난수 시드의 계산 결과와 불일치하면, 그것은 적어도 하나 이상의 사용자 기록들이 폐기되거나 변조될 수 있다는 것을 의미하고, 부정 행위가 시간이 지나면서 발견될 것이다.
1.3. 시나리오 3: 사용자 B가 사용자 A의 요청을 리플레이함으로써 가짜 수 시드를 제출하는 것을 방지하는 것
사용자들이 그들 자신의 난수 시드들을 제출할 때, 그들은 먼저 서명된 결과를 제출하고, 다음에 서명이 계산된 후에 난수 시드 및 블록 ID를 제출할 필요가 있다. 우리의 블록체인 수행 가정은 스마트 컨트랙트들이 정보의 사용자의 제출의 6개의 블록 사이클 내에 모든 계산들을 수행할 수 있다는 것이다. 그러므로, 스마트 컨트랙트에 의해 획득된 현재의 블록 ID와 사용자-제출된 난수 시드 발생 블록 ID 사이의 차이는 6개보다 적은 블록인 것이 요구된다. 이 값이 초과되면, 그것은 사용자가 오랜 시간 전에 요청을 제출하였다는 것을 의미하고, 요청은 리플레이 공격일 가능성이 있고, 그러므로 그것은 무효한 요청이다.
1.4. 시나리오 4: 사용자가 우연히 그들의 의도들에 맞는 난수를 발견하는 것을 방지하는 것
난수 시드를 기여하는 마지막 사용자는 이론적으로 모든 다른 사용자들의 시드 및 서명을 획득하고, 우연히 그들의 의도들에 맞는 난수를 발견하기를 시도할 수 있다. 마지막 사용자가 그 자신의 난수를 기여한 후에, 스마트 컨트랙트는 또한 난수 발생 동작에 참여하기 위해 현재의 블록의 HASH 값을 취할 것이다. 난수를 계산할 때 사용자는 블록에서 나가지 않기 때문에(사용자는 먼저 서명을 제출하고 그 다음에 난수 시드를 제출하여야 한다), 사용자는 현재의 블록의 해시 값을 예측할 수 없고, 그러므로 우연히 원하는 난수 시드를 발견할 수 없다.
예 1:
프로그램이 제안된 블록체인 베팅 게임에 따라 입증되었다. 이것은 누구나 게임들의 라운드에서 응찰할 수 있는 경매 입찰 게임이고, 각각의 라운드는 이전의 라운드보다 커야 한다는 제한이 있다. 게임은 무작위 N 라운드 또는 N 시간 후에 종료한다.
이 게임은 게임이 종료할 수 있는지를 결정하기 위해 각각의 사용자의 응찰이 실시간 난수를 발생하기를 요구한다. 기존의 블록체인 난수 규칙에 따라, 모든 사용자 베트들이 현재의 블록을 따르는 블록 정보를 사용하여 완료되거나 계산된 후에 복권의 난수가 발생되어야 한다. 이것에 비추어서, 미리 발생된 난수는 무작위성 없이 발생할 수 있다. 그러므로, 이 게임에서 게임의 요건들에 맞는 난수들을 발생하기가 어려울 것이다.
이 방법은 게임 규칙들의 요건들에 맞는 난수들을 효과적으로 발생할 수 있다. 게임이 시작할 때, 개시자는 난수 시드를 기여한다.
플레이어들의 각각의 라운드는 다음의 규칙들에 따라 응찰한다: 먼저, 로컬 난수 시드를 획득하고, 다음에 응찰의 현재의 라운드와 함께 서명을 배치하기 위해 사용자의 개인 키를 이용한다. 클라이언트는 컨트랙트를 2번 호출하고, 한번은 응찰의 현재의 라운드 및 서명을 보고할 필요가 있다. 다음에, 하나의 블록의 지연 후에, 컨트랙트는 난수 시드를 보고하기 위해 다시 호출된다.
컨트랙트에서 보고된 난수 시드를 획득한 후에, 컨트랙트 검증은 시드가 사용자에 의해 발생되고 제의와 짝이 되는 것을 보장하기 위해 수행된다.
스마트 컨트랙트는 현재의 라운드의 난수를 계산하고, 난수가 게임-종료 조건에 맞는지를 판정하기 위해 공식 RAND(N) = HASH(RAND(N-1) XOR BLOCKHASH)를 사용한다. 현재의 게임-종료 조건이 맞으면, 게임은 종료하고 승자가 선택된다.
게임-종료 조건이 맞지 않으면, 게임은 제의들의 다음 라운드를 위해 단계 2로 진행한다.
예 2:
이 난수 발생기는 그것이 51% 공격들을 방지하는 데 도움을 줄 수 있기 때문에 안전한 은행 거래들에서 사용하기 위해 이상적이다. 이 유형의 공격에서, 부정직한 채굴자가 이득, 예를 들어, 동일한 암호 화폐를 2번 쓰거나 블록체인의 무결성에 의구심을 제기하는 능력을 실현하기 위해 거래들을 되돌리려고 시도한다. 이 RNG에서, 난수 시드들이 수신된 후에, 컨트랙트는 시드(사용자 A, 사용자 B ... 사용자 N) 및 현재의 블록의 블록 해시로 난수를 계산한다. 난수 시드들이 이미 발생되었기 때문에 블록 내용을 더 이상 조작하는 것이 가능하지도 않고 각각의 참여자에게 난수 시드를 다시 보내라고 요청하는 것이 가능하지도 않다. 시드는 거래가 완료된 후에 드러나고 그럼으로써 거래가 올바르다는 것을 검증한다. 내용을 수정하려는 시도들은 거래의 실패를 야기할 것이다.
51% 공격에 대한 표준 방어는 거래의 객체를 풀어 주기 위해 N개의 블록을 대기하는 것이다. 이 RNG는 적어도 하나의 블록이지만 6개보다 많지 않은 블록의 대기 기간을 요구하고, 그럼으로써 거래의 무결성을 보장한다. 필요한 난수 시드 일치를 나타내지 않는 블록들은 검증을 통과하지 못할 것이고 거래는 실패한다. 요구된 시간 프레임 내에서 발생하지 않는 거래들도 또한 실패한다. 최종 검증 결과가 각각의 단계에서의 난수 시드의 계산 결과와 일치하지 않을 때 블록 변조가 가정될 수 있다. 블록체인 민주주의가 가장 긴 블록체인이 올바른 블록체인이라고 구술할 때, 악의적인 행위자는 월등한 해싱 파워가 합법적인 블록체인에 앞서 있기를 요구할 것이다.
지금까지 본 발명의 실시예들을 단지 예로서 설명하였지만, 첨부된 청구범위에 의해 정의된 것과 같은 본 발명은 많은 변화들 및 치환들이 청구범위의 범위에서 벗어나지 않고서 가능하기 때문에 예시적인 실시예들의 상기 설명에서 제시된 특정한 상세들로 제한되지 않는다는 것을 이해할 것이다.

Claims (18)

  1. 복수의 사용자 간의 블록체인 상에 스마트 컨트랙트(smart contract)를 위한 난수들을 발생하기 위한 방법으로서,
    a) 상기 복수의 사용자 중 각각의 사용자가 무작위 시드(random seed)를 로컬로 발생하게 하는 단계;
    b) 상기 각각의 사용자가 대응하는 공개 키를 갖는 개인 키로 상기 무작위 시드에 서명함으로써 서명을 발생하게 하는 단계;
    c) 상기 각각의 사용자가 상기 스마트 컨트랙트에 상기 서명을 별개로 제출하게 하는 단계;
    d) 상기 스마트 컨트랙트를 사용하여, 상기 각각의 사용자의 상기 대응하는 공개 키로, 상기 각각의 사용자의 상기 서명을 검증하는 단계;
    e) 상기 스마트 컨트랙트를 통해 상기 블록체인의 현재의 블록에 상기 서명을 저장하는 단계;
    f) 상기 각각의 사용자가 적어도 미리 정해진 기간을 대기하게 하고 그 다음에 상기 각각의 사용자에 의해 발생된 상기 무작위 시드를 제출하게 하는 단계;
    g) 상기 스마트 컨트랙트를 통해, 상기 대응하는 서명과의 일치를 보장함으로써, 상기 각각의 사용자에 의해 제출된 각각의 상기 무작위 시드를 검증하는 단계; 및
    h) 상기 각각의 사용자로부터의 모든 무작위 시드들이 수신된 후에, 상기 스마트 컨트랙트를 통해, 상기 각각의 사용자의 시드들로부터 획득된 시드 및 상기 현재의 블록의 해시로 난수를 계산하는 단계
    를 포함하고,
    상기 현재의 블록의 해시를 얻을 때, 상기 시드들 모두는 상기 시드들 또는 블록 내용(content)을 더 이상 조작하는 것이 가능하지 않도록 이미 발생되었고, 그럼으로써 채굴자들이 상기 현재의 블록을 변화시키는 것을 방지하는, 방법.
  2. 제1항에 있어서, 상기 미리 정해진 기간은 적어도 하나의 블록 기간인, 방법.
  3. 제1항에 있어서, 상기 복수의 사용자 중 각각의 사용자가 무작위 시드를 로컬로 발생하게 하는 상기 단계는 상기 각각의 사용자의 로컬 소프트웨어 및 하드웨어 디바이스 중 하나 이상에 의해 수행되는, 방법.
  4. 제1항에 있어서, 상기 복수의 사용자 중 각각의 사용자가 무작위 시드를 로컬로 발생하게 하는 상기 단계 전에 각각의 사용자가 상기 컨트랙트로부터 블록의 제1 식별자(제1 블록 ID)를 얻게 하는 단계를 추가로 포함하는, 방법.
  5. 제4항에 있어서, 상기 각각의 사용자가 서명을 발생하게 하는 상기 단계는 상기 개인 키로 상기 무작위 시드 및 상기 제1 블록 ID에 서명하는 단계를 포함하는, 방법.
  6. 제5항에 있어서, 상기 스마트 컨트랙트를 통해, 상기 대응하는 서명과의 일치를 보장함으로써, 상기 각각의 사용자에 의해 제출된 각각의 상기 무작위 시드를 검증하는 상기 단계는 상기 제1 블록 ID가 상기 현재의 블록 식별자로부터 블록들의 미리 결정된 수 내에 있는 것을 보장하는 단계를 포함하는, 방법.
  7. 제6항에 있어서, 블록들의 상기 미리 결정된 수는 다섯(5)인, 방법.
  8. 제7항에 있어서, 상기 스마트 컨트랙트를 통해, 상기 각각의 사용자의 시드들로부터 획득된 시드 및 상기 현재의 블록의 해시로 난수를 계산하는 상기 단계는
    상기 난수를
    RAND(N+1) = HASH( RAND(N) XOR BLOCKHASH)로 설정하는 단계를 포함하고,
    RAND(N) = HASH(RAND (N-1) XOR RandomSeed(USER A))이고;
    BLOCKHASH는 상기 현재의 블록의 해시이고;
    USER A는 상기 복수의 사용자 중 제1 사용자이고;
    RandomSeed(USER A)는 상기 복수의 사용자 중 상기 제1 사용자에 의해 발생된 상기 무작위 시드인, 방법.
  9. 제8항에 있어서, RAND(0) = HASH(RandomSeed(USER A))인, 방법.
  10. 제1항에 있어서, 상기 각각의 사용자가 적어도 미리 정해진 기간을 대기하게 하고 그 다음에 상기 각각의 사용자의 무작위 시드를 제출하게 하는 상기 단계는 상기 각각의 사용자의 상기 무작위 시드가 상기 각각의 사용자의 서명으로서 상기 현재의 블록에서 나타나지 않는 것을 보장하는, 방법.
  11. 제1항에 있어서, 로컬 개인 키로 상기 무작위 시드에 서명하는 상기 단계는 입력으로서 상기 무작위 시드 및 상기 현재의 블록의 식별자 중 하나 이상을 사용하는 암호화 프로그램을 이용하는 단계를 포함하는, 방법.
  12. 제1항에 있어서, 상기 복수의 사용자 중 어느 한 사용자는 상기 블록체인 상의 데이터를 통해 상기 복수의 사용자 각각에 의해 기여된(contributed) 난수 시드 및 서명을 획득할 수 있는, 방법.
  13. 제11항에 있어서, 상기 암호화 프로그램은 PGP(Pretty Good Privacy)인, 방법.
  14. 제2항에 있어서, 상기 미리 정해진 기간은 적어도 하나(1)의 블록 기간이지만 여섯(6)개보다 많지 않은 블록 기간인, 방법.
  15. 제1항에 있어서, 상기 복수의 사용자는 제1 사용자, 제2 사용자 및 뱅커를 포함하는, 방법.
  16. 복수의 사용자 간의 블록체인 상에 스마트 컨트랙트에 의해 발생된 제1 난수를 검증하는 방법으로서,
    a) 상기 스마트 컨트랙트에 의해 발생된 제1 난수를 획득하는 단계;
    b) 상기 블록체인의 마지막 블록 해시를 수신하는 단계;
    c) 제2 난수를 계산하는 단계; 및
    d) 상기 제1 난수를 상기 제2 난수와 비교하는 단계
    를 포함하는, 방법.
  17. 제16항에 있어서, 상기 복수의 사용자는 제1 사용자, 제2 사용자 및 뱅커를 포함하는, 방법.
  18. 제16항에 있어서, 상기 복수의 사용자 중 어느 한 사용자는 상기 블록체인 상의 데이터를 통해 상기 복수의 사용자 각각에 의해 기여된 난수 시드 및 서명을 획득할 수 있는, 방법.
KR1020217025655A 2019-01-18 2020-01-20 블록체인 스마트 컨트랙트들에서 난수들을 발생하기 위한 방법 KR20210135495A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962794336P 2019-01-18 2019-01-18
US62/794,336 2019-01-18
PCT/CA2020/050056 WO2020146955A1 (en) 2019-01-18 2020-01-20 A method for generating random numbers in blockchain smart contracts

Publications (1)

Publication Number Publication Date
KR20210135495A true KR20210135495A (ko) 2021-11-15

Family

ID=71612990

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217025655A KR20210135495A (ko) 2019-01-18 2020-01-20 블록체인 스마트 컨트랙트들에서 난수들을 발생하기 위한 방법

Country Status (7)

Country Link
EP (1) EP3912023A4 (ko)
JP (1) JP2022523643A (ko)
KR (1) KR20210135495A (ko)
CN (1) CN113853578A (ko)
CA (1) CA3126956A1 (ko)
IL (1) IL284876A (ko)
WO (1) WO2020146955A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102531826B1 (ko) * 2022-03-15 2023-05-11 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 블록체인에 의해 난수를 획득하는 방법, 장치, 설비 및 매체

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2597955A (en) * 2020-08-11 2022-02-16 Nchain Holdings Ltd Pseudo-ramdom selection on the blockchain
CN112118107B (zh) * 2020-08-12 2021-08-27 北京大学 一种实现数据可信的自适应执行方法
CN112702323B (zh) * 2020-12-14 2022-06-03 杭州溪塔科技有限公司 一种区块链软件的许可签发验证方法、装置和电子设备
CN112527244A (zh) * 2020-12-18 2021-03-19 上海万向区块链股份公司 基于可验证延迟函数的分布式抽签系统和方法
CN112910643B (zh) * 2021-03-03 2023-04-07 中国人民银行数字货币研究所 一种区块链中随机数的生成方法及装置
WO2022241571A1 (en) * 2021-05-21 2022-11-24 Zeu Technologies, Inc. System and method for the safe custody of private data using blockchain
CN113489584B (zh) * 2021-07-02 2024-04-05 北京泛融科技有限公司 一种区块链中随机数的处理方法、装置和电子设备
KR102582307B1 (ko) * 2021-08-17 2023-09-25 한일석 난수 생성 방법
CN114205087B (zh) * 2021-08-30 2023-12-15 深圳时空云科技有限公司 一种基于区块链随机数产生的方法
CN113935737B (zh) * 2021-12-15 2022-10-25 支付宝(杭州)信息技术有限公司 基于区块链的随机数生成方法及装置
CN114328754B (zh) * 2022-03-04 2022-06-28 中科计算技术创新研究院 盲盒管理方法、盲盒管理节点及数字盲盒系统
CN114338051B (zh) * 2022-03-15 2022-06-21 北京百度网讯科技有限公司 区块链获取随机数的方法、装置、设备和介质
WO2024065217A1 (en) * 2022-09-27 2024-04-04 Wormholes Lab Pte. Ltd. Random number generation in a blockchain system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6187251B2 (ja) * 2013-12-27 2017-08-30 富士通株式会社 データ通信方法、およびデータ通信装置
MX2018010057A (es) * 2016-02-23 2019-01-21 Nchain Holdings Ltd Metodo de registro y de manejo automatico para contratos inteligentes de cumplimiento obligado por cadenas de bloques.
GB201620691D0 (en) * 2016-12-05 2017-01-18 Quanta Tech Ltd Random number generation
CN110800004A (zh) * 2016-12-30 2020-02-14 斯洛克It有限公司 区块链启用的服务提供商系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102531826B1 (ko) * 2022-03-15 2023-05-11 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 블록체인에 의해 난수를 획득하는 방법, 장치, 설비 및 매체

Also Published As

Publication number Publication date
CA3126956A1 (en) 2020-07-23
WO2020146955A1 (en) 2020-07-23
JP2022523643A (ja) 2022-04-26
IL284876A (en) 2021-08-31
EP3912023A1 (en) 2021-11-24
CN113853578A (zh) 2021-12-28
EP3912023A4 (en) 2022-10-12

Similar Documents

Publication Publication Date Title
KR20210135495A (ko) 블록체인 스마트 컨트랙트들에서 난수들을 발생하기 위한 방법
Nguyen et al. A survey about consensus algorithms used in blockchain.
ES2840071T3 (es) Métodos y aparato para una base de datos distribuida dentro de una red
Lenstra et al. A random zoo: sloth, unicorn, and trx
JP2019519137A (ja) 分散型トランザクション伝播および検証システム
Sattath On the insecurity of quantum Bitcoin mining
US20200152003A1 (en) Gambling systems and methods based on blockchain technology
US20200304314A1 (en) Message-credentialed blockchains
CN115918030A (zh) 使用区块链的可证明公平的游戏
US20220123947A1 (en) A Method for Generating Random Numbers in Blockchain Smart Contracts
KR20220122994A (ko) 블록체인을 이용한 증명 가능하게 공정한 게임들
Long Nakamoto consensus with verifiable delay puzzle
Yu et al. Low powered blockchain consensus protocols based on consistent hash
US11784822B2 (en) System and method for transmitting a notification to a network
Clark et al. Research perspectives and challenges for bitcoin and cryptocurrencies
Suliyanti et al. Evaluation of hash rate-based double-spending based on proof-of-work blockchain
CN111566681A (zh) 快速且分区弹性的区块链
Li et al. Cryptoeconomics: Economic Mechanisms Behind Blockchains
Ehara et al. How to generate transparent random numbers using blockchain
KR20210123393A (ko) 의사-랜덤 데이터 생성을 위한 컴퓨터 구현된 방법 및 시스템
WO2020255158A1 (en) Colosseum, a scalable and byzantine-fault tolerant consensus mechanism for permissioned systems
Sathya et al. Consensus and Mining in a Nutshell
Ballweg PureLottery: Fair and Bias-Resistant Leader Election with a Novel Single-Elimination Tournament Algorithm
Doolani Proof-of-Stake for SpartanGold
Landerreche Leaning on Impossible-to-Parallelise Work for Immutability Guarantees in the Blockchain