Proofs of work and bread pudding protocols
First Claim
1. A method of using a computational effort invested in a proof of work (POW), the method executable in one or more processors in communication with one or more memory devices having embodied therein stored programs for performing the method, comprising:
- distributing a computational task among a plurality of entities for execution within a specified interval of time as a POW;
receiving the POW relating to said task from one of said plurality of entities;
using said POW to accomplish said task; and
distribution of the POW as a POW.
14 Assignments
0 Petitions
Accused Products
Abstract
The bread pudding protocol of the present invention represents a novel use of proofs of work and is based upon the same principle as the dish from which it takes its name, namely, that of reuse to minimize waste. Whereas the traditional bread pudding recipe recycles stale bread, our bread pudding protocol recycles the “stale” computations in a POW to perform a separate and useful task, while also maintaining privacy in the task. In one advantageous embodiment of our bread pudding protocol, we consider the computationally intensive operation of minting coins in the MicroMint scheme of Rivest and Shamir and demonstrate how the minting operation can be partitioned into a collection of POWs, which are then used to shift the burden of the minting operation onto a large group of untrusted computational devices. Thus, the computational effort invested in the POWs is recycled to accomplish the minting operation.
-
Citations
31 Claims
-
1. A method of using a computational effort invested in a proof of work (POW), the method executable in one or more processors in communication with one or more memory devices having embodied therein stored programs for performing the method, comprising:
-
distributing a computational task among a plurality of entities for execution within a specified interval of time as a POW; receiving the POW relating to said task from one of said plurality of entities; using said POW to accomplish said task; and distribution of the POW as a POW. - View Dependent Claims (2, 3, 4)
-
-
5. A method of using a computational effort invested in a proof of work (POW), the method executable in one or more processors in communication with one or more memory devices having embodied therein stored programs for performing the method, comprising:
-
partitioning a minting operation into a plurality of sub-computational tasks; distributing one of said plurality of sub-computational tasks to one of a plurality of entities; receiving a POW from said one of said plurality of entities; using said POW to accomplish said minting operation; and distribution of the POW as a POW. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of using a computational effort invested in a proof of work (POW), the method executable in one or more processors in communication with one or more memory devices having embodied therein stored programs for performing the method, comprising:
-
distributing a minting operation among a plurality of entities in a manner that maintains privacy in said minting operation; receiving a POW from said one of said plurality of entities relating to said minting operation; using said POW to accomplish said minting operation; and distribution of the POW as a POW. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method of using a computational effort invested in a proof of work (POW), the method executable in one or more processors in communication with one or more memory devices having embodied therein stored programs for performing the method, comprising:
-
generating a computational task for a certain amount of intense computation in a specified period of time as a POW to accomplish a separate, useful and verifiable correct computation; distributing the computational task for execution among a plurality of server entities receiving a POW relating to said task from one of said plurality of said server entities; using said POW to verify and accomplish said computational task; and distribution of the POW as a POW. - View Dependent Claims (25, 26, 27, 28)
-
-
29. A method of using a computational effort invested in a proof of work (POW), the method executable in one or more processors in communication with one or more memory devices having embodied therein stored programs for performing the method, comprising:
-
a first entity distributing a computational task among a plurality of second entities for execution within a specified interval of time as a POW; receiving at the first entity the POW relating to said task from one of said plurality of entities; using said POW by the first entity to accomplish said task; and re-using of the POW as a POW in another task.
-
-
30. A method of using a computational effort invested in a proof of work (POW), the method executable in one or more processors in communication with one or more memory devices having embodied therein stored programs for performing the method, comprising:
-
a first entity partitioning a minting operation into a plurality of sub-computational tasks;
distributing one of said plurality of sub-computational tasks by the first entity to one of a plurality of second entities;receiving at the first entity a POW from said one of said plurality of entities; using said POW by the first entity to accomplish said minting operation; and re-using of the POW as a POW in another task.
-
-
31. A method of using a computational effort invested in a proof of work (POW), the method executable in one or more processors in communication with one or more memory devices having embodied therein stored programs for performing the method, comprising:
-
generating a computational task by a first server for a certain amount of intense computation in a specified period of time as a POW to accomplish a separate, useful and verifiable correct computation; distributing the computational task by the first server for execution among a plurality of second servers; receiving at the first server a POW relating to said task from one of said plurality of said second servers; using said POW by the first server to verify and accomplish said computational task; and re-using of the POW as a POW in another task.
-
Specification