IP Library Granted Patent US 11,630,808
Granted Patent B2
US 11,630,808 · App. 17/246,773 · Granted Apr 18, 2023

Proof of lottery (PoL) blockchain

Inventor: Oded Shmueli (Nofit, IL)
Assignee: Technion Research & Development Foundation Limited
G06F16/1824G06Q20/065G06Q20/223G06Q20/3829G06Q20/4016G07F17/329H04L9/0643H04L9/3239H04L9/50H04L2209/46H04L2209/56
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,630,808
App. No.
17/246,773
Granted
Apr 18, 2023
Kind
B2
Abstract

A method of applying proof of lottery to select block forgers in a blockchain, comprising performing the following at a certain one of a plurality of computing nodes connected to a blockchain network: (1) transmitting one or more of a plurality of participation transactions submitted by at least some of the plurality of computing nodes for participating in selection process conducted to select forgers from the plurality of computing nodes to forge blocks to be added to the blockchain; (2) determining a respective forger, during each selection process, by applying a selection function to an outcome of a hash function and a plurality of participation transactions extracted from a first subset of blocks preceding the respective block, the hash function is applied to a second subset of blocks preceding the respective block; and (3) forging the respective block in case the certain computing node is selected as the respective forger.

Claims (24)

1. A computer implemented method of selecting block forgers in a blockchain, comprising:

using at least one processor of a certain one of a plurality of computing nodes connected to a blockchain network, the at least one processor is configured to execute a code for:

receiving, from the blockchain network, a plurality of participation transactions submitted by one or more of the plurality of computing nodes for participating in at least one selection process conducted by at least a portion of the plurality of computing nodes to select at least one forger from the plurality of computing nodes to forge at least one block to be added to the blockchain; and

determining and selecting the forger, during the at least one participated selection process to identify a respective wining participation transaction, by applying a selection function to an outcome of a hash function and a plurality of participation transactions extracted from a first subset of blocks preceding the at least one block in the blockchain, the hash function is applied to a second subset of blocks preceding the at least one block;

wherein, in response to the at least one participated selection process, the at least one determined and selected forger forges the at least one block in the blockchain.

2. The computer implemented method of claim 1 , wherein the number of blocks in the first subset of blocks and/or the number of blocks in the second subset of blocks are predefined according to at least one operational parameter of the blockchain network.

3. The computer implemented method of claim 1 , wherein at least one other selection process is conducted to determine at least one other forger for forging the at least one block in case the selected forger fails to forge the at least one block within a time period predefined according to at least one operational parameter of the blockchain and/or of the blockchain network.

4. The computer implemented method of claim 3 , further comprising adjusting the predefined time period to increase the time period for overcoming time synchronization gaps between the at least some computing nodes conducting the at least one selection process.

5. The computer implemented method of claim 4 , further comprising the at least some computing nodes conducting the at least one selection process apply at least one synchronization protocol to maintain time synchronization with each other.

6. A computing node configured to select block forgers in a blockchain, comprising:

a communication interface for communicating with a plurality of computing nodes connected to a blockchain network;

a program store for storing a code; and

at least one processor device coupled to the communication interface and to the program store, the at least one processor device is configured to executes the code, the code comprising:

code instruction to receive, from the blockchain network, at a plurality of participation transactions submitted by one or more of the plurality of computing nodes for participating in at least one selection process conducted by at least a portion of the plurality of computing nodes to select at least one forger from the plurality of computing nodes to forge at least one block to be added to the blockchain, and

code instructions to determine and select the forger, during the at least one participated selection process to identify a respective wining participation transaction, by applying a selection function to an outcome of a hash function and a plurality of participation transactions submitted by at least some of the plurality of computing nodes and extracted from a first subset of blocks preceding the at least one block in the blockchain, the hash function is applied to a second subset of blocks preceding the at least one block,

wherein, in response to the at least one participated selection process, the at least one determined and selected forger forges the at least one block in the blockchain.

7. A blockchain network configured to select block forgers in a blockchain, comprising:

a plurality of computing nodes connected to a blockchain network;

wherein at least one or more of the plurality of computing nodes are adapted to receive, from the blockchain network, a plurality of participation transactions submitted by one or more of the plurality of computing nodes for participating in a plurality of selection processes conducted by at least a portion of the plurality of computing nodes to select forgers from the plurality of computing nodes to forge each of a plurality of blocks to be added to the blockchain, during each of the plurality of participated selection processes, conducted to identify a respective wining participation transaction, at least one forger is determined and selected for forging at least one of the plurality of blocks to be added to the blockchain by applying a selection function to an outcome of a hash function and a plurality of participation transactions submitted by at least one or more of the plurality of computing nodes which are extracted from a first subset of blocks preceding the respective one of the plurality of blocks to be added in the blockchain where the hash function is applied to a second subset of blocks preceding the respective block to be added; and

wherein the at least one forger determined and selected in each participated selection process forges the respective block.

8. A computer program product embodied in at least one computer readable storage media well executed for selecting block forgers in a blockchain, comprising:

first program instructions executable by at least one processor to cause the at least one processor to receive, from one or more of a plurality of computing nodes connected to a blockchain network, a plurality of participation transactions submitted by the one or more computing nodes for participating in at least one selection process conducted by at least a portion of the plurality of computing nodes to select at least one forger from the plurality of computing nodes to forge at least one block to be added to the blockchain, and

second program instructions executable by the at least one processor to cause the at least one processor to determine and select the forger, during the at least one participated selection process to identify a respective wining participation transaction, by applying a selection function to an outcome of a hash function and a plurality of participation transactions submitted by at least some of the plurality of computing nodes and extracted from a first subset of blocks preceding the at least one block in the blockchain, the hash function is applied to a second subset of blocks preceding the at least one block;

wherein, in response to the at least one participated selection process, the at least one determined and selected forger forges the at least one block in the blockchain.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2021
From: SHMUELI, ODED
To: TECHNION RESEARCH & DEVELOPMENT FOUNDATION LIMITED
Reel/Frame 056380/0213 →
Continuity (3)
Continuation 16203670 · Nov 29, 2018
Provisional Application 62591789 · Nov 29, 2017
Related Publication 20210255995A1 · Aug 19, 2021