# US 2020/0401377 A1 · Decentralized Random Number Generator

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2020/0401377 A1
- Document ID: US20200401377A1
- Status: Published application
- Kind: A1
- Application number: 17/013,299
- Filed: 2020-09-04
- Published: 2020-12-24
- Earliest claimed: 2019-01-08
- Assignees: Moac Blockchain Tech Inc
- Applicants: Moac Blockchain Tech Inc
- Inventors: Xiaohu Chen
- Web page: https://patentgrep.com/patent/US20200401377A1

## CPC

- G06F 7/58: Random or pseudo-random number generators
- G06F 7/582: {Pseudo-random number generators}
- G06F 9/466: {Transaction processing}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- H04L 9/0637: {Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]}
- H04L 9/0869: {involving random numbers or seeds}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 9/3255: {using group based signatures, e.g. ring or threshold signatures}
- H04L 12/1881: {with schedule organisation, e.g. priority, sequence management}
- H04L 67/104: Peer-to-peer [P2P] networks
- H04L 67/1048: {Departure or maintenance mechanisms}
- H04L 67/108: {characterised by resources being split in blocks or fragments}
- H04L 67/1093: {Some peer nodes performing special functions}
- H04L 67/131: Protocols for games, networked simulations or virtual reality
- H04L 67/55: Push-based network services
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The current disclosure is directed towards efficiently generating random sequences on a large-scale peer-to-peer network. In one example, the disclosure provides for selecting a first node based on a block generation order, where the first node is selected to generate a current block, adding a first signature share of the first node to the current block, adding at least a second signature share from a previously selected node to the current block, generating a random sequence based on the first signature share and the second signature share, adding the random sequence to the current block, and publishing the current block to a blockchain maintained by a node pool. In this way, a random sequence may be generated on-chain, with linear messaging complexity, without relying on a single trusted party/apparatus, which may thereby decrease a probability of any single party controlling the random sequence produced.

## Claims

### Claim 1

A method comprising:
selecting a first node based on a block generation order, where the first node is selected to generate a current block;
adding a first signature share of the first node to the current block;
adding at least a second signature share from a previously selected node to the current block;
generating a random sequence based on the first signature share and the second signature share;
adding the random sequence to the current block; and
publishing the current block to a blockchain maintained by a node pool.

### Claim 2 (depends on 1)

The method of claim 1, wherein generating the random sequence based on the first signature share and the second signature share comprises determining a threshold signature from the first signature share and the second signature share, and determining the random sequence from the threshold signature.

### Claim 3 (depends on 1)

The method of claim 1, the method further comprising executing a transaction based on the random sequence.

### Claim 4 (depends on 1)

The method of claim 1, wherein the current block comprises:
the first signature share;
the second signature share;
a threshold signature, wherein the threshold signature is determined based on the first signature share and the second signature share;
the random sequence, wherein the random sequence is determined based on the threshold signature; and
a transaction.

### Claim 5 (depends on 1)

The method of claim 1, the method further comprising broadcasting the first signature share of the first node to at least a next selected node within the node pool, wherein the next selected node is selected based on the block generation order.

### Claim 6 (depends on 5)

The method of claim 5, wherein broadcasting the first signature share of the first node to at least the next selected node comprises adding the first signature share of the first node to the current block, and broadcasting the current block to the next selected node.

### Claim 7 (depends on 1)

The method of claim 1, wherein the previously selected node was selected to generate a previous block based on the block generation order.

### Claim 8 (depends on 1)

The method of claim 1, the method further comprising, responsive to addition of a new node to the node pool, updating the block generation order.

### Claim 9 (depends on 1)

The method of claim 1, the method further comprising, responsive to removal of a node from the node pool, updating the block generation order.

### Claim 10

A method of generating a random sequence in a node pool, the method comprising:
selecting a first node of the node pool based on a block generation order;
receiving a plurality of signature shares at the first node;
responsive to the plurality of signature shares exceeding a threshold number of signature shares:
determining a threshold signature;
generating a random sequence based on the threshold signature; and
broadcasting a block to the node pool, wherein the block comprises:
the plurality of signature shares;
the threshold signature; and
the random sequence.

### Claim 11 (depends on 10)

The method of claim 10, wherein determining the threshold signature comprises performing polynomial interpolation on a signature share of the first node and the plurality of signature shares.

### Claim 12 (depends on 10)

The method of claim 10, wherein receiving the plurality of signature shares at the first node comprises receiving one or more signature shares from one or more previously selected nodes of the node pool, wherein each previously selected node comprises a unique signature share.

### Claim 13 (depends on 10)

The method of claim 10, wherein generating the random sequence based on the threshold signature comprises seeding a random sequence generator with the threshold signature.

### Claim 14 (depends on 10)

The method of claim 10, wherein the threshold signature cannot be determined from less than the threshold number of signature shares.

### Claim 15 (depends on 10)

The method of claim 10, wherein each of the plurality of signature shares corresponds to a unique secret share.

### Claim 16 (depends on 10)

The method of claim 10, the method further comprising, executing a smart contract based on the random sequence.

### Claim 17 (depends on 10)

The method of claim 10, wherein the block generation order comprises a round-robin schedule.

### Claim 18

A node within a node pool comprising:
a network interface;
a memory; and
a processor communicatively coupled to the network interface and the memory, the processor configured to:
receive a plurality of signature shares from the node pool via the network interface;
responsive to the plurality of signature shares exceeding a threshold number of signature shares:
determine a threshold signature;
generate a random sequence based on the threshold signature; and
broadcast a block to the node pool via the network interface, wherein the block comprises:
the plurality of signature shares;
the threshold signature; and
the random sequence.

### Claim 19 (depends on 18)

The node of claim 18, wherein the memory comprises a block generation order module configured with a current block generation order indicating an order of block generation for each node within the node pool.

### Claim 20 (depends on 18)

The node of claim 18, wherein broadcast the block to the node pool via the network interface comprises transmitting the block to a next selected node, wherein the next selected node is selected based on the block generation order, and wherein the next selected node is selected to produce a next block of a blockchain.
