# US 2020/0403984 A1 · Work provenance in computing pools

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

- Number: US 2020/0403984 A1
- Document ID: US20200403984A1
- Status: Published application
- Kind: A1
- Application number: 16/900,860
- Filed: 2020-06-12
- Published: 2020-12-24
- Earliest claimed: 2019-06-18
- Assignees: Core Scientific, Inc.
- Applicants: Core Scientific, Inc.
- Inventors: Kristy-Leigh Anne Minehan
- Web page: https://patentgrep.com/patent/US20200403984A1

## CPC

- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 63/083: {using passwords (cryptographic mechanisms or cryptographic arrangements for entity authentication using a predetermined code H04L9/3226)}
- G06F 9/5011: {the resources being hardware resources other than CPUs, Servers and Terminals}
- G06F 9/5061: {Partitioning or combining of resources}
- G06Q 20/02: involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
- G07F 11/10: two or more magazines having a common delivery chute
- H04L 9/30: Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L 9/3247: {involving digital signatures}
- H04L 9/3297: {involving time stamps, e.g. generation of time stamps}
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- G06F 2209/5011: Pool
- G06Q 2220/00: Business processing using cryptography
- H04L 63/166: {at the transport layer}
- H04L 63/168: {above the transport layer}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G07F: COIN-FREED OR LIKE APPARATUS (coin sorting G07D3/00; coin testing G07D5/00; {handling coins or paper currencies apart from payment activated apparatus G07D; payment architectures, schemes or protocols G06Q20/00})

## Abstract

A system and method for participating in and operating a distributed computing pool are disclosed. Computing pools combine computational resources from a plurality of computing devices over a network by splitting jobs into smaller jobs and distributing those smaller jobs to the computing devices so that they can be solved in parallel with little or no overlap in the work performed. The computing devices attempt to find solutions to the smaller jobs. Solutions found are signed and submitted back to the pool. The pool uses the signature to confirm the true origin of the solution and that the solution has not been tampered with.

## Claims

### Claim 1

A method for participating in a computing pool that combines computational resources over a network, the method comprising:
authenticating a computing device by sending a username, a password, and a public key from the computing device to the pool via the network, wherein the public key corresponds to a private key associated with the computing device;
sending a connection request from the computing device to the pool;
receiving at the computing device a response to the connection request from the pool, wherein the response comprises a job;
executing the job on the computing device to calculate a solution;
signing the solution on the computing device with a signature based on the private key; and
sending the signed solution from the computing device to the pool.

### Claim 2 (depends on 1)

The method of claim 1, further comprising creating an SSL/TLS connection from the computing device to the pool.

### Claim 3 (depends on 1)

The method of claim 1, further comprising receiving a reward from the pool in response to submitting the signed solution if the signed solution is valid and the pool is first to solve a blockchain block.

### Claim 4 (depends on 3)

The method of claim 3, further comprising receiving a share rejected notification from the pool in response to submitting an unsigned share to the pool.

### Claim 5 (depends on 3)

The method of claim 3, further comprising:
authenticating a second computing device by sending a second username and a second password from the second computing device to the pool via the network;
sending a second connection request from the second computing device to the pool;
receiving at the second computing device a second response to the connection request from the pool, wherein the second response comprises a second job;
executing the second job on the second computing device to calculate a second solution;
sending the second solution in unsigned form from the computing device to the pool; and
receiving a reduced reward from the pool in response if the unsigned second solution is valid and the pool is first to solve a blockchain block corresponding to the second solution.

### Claim 6

A method for operating a computing pool, the method comprising:
receiving a connection request from a computing device to a pool;
responding to the connection request by sending a job to the computing device;
waiting for the computing device to execute the job and respond with a solution signed by a private key;
verifying the signature of the solution with a public key;
verifying the solution;
granting a first reward to the computing device if the signature is properly verified;
determining whether the solution is a block, and
submitting the solution to a blockchain node.

### Claim 7 (depends on 6)

The method of claim 6, further comprising rejecting solutions that are not properly verified and not granting the computing device any rewards.

### Claim 8 (depends on 6)

The method of claim 6, further comprising creating an SSL/TLS connection from the computing device to the pool.

### Claim 9 (depends on 6)

The method of claim 6, further comprising granting a reward to the computing device for signed solutions that are verified if the pool is first to solve a current blockchain block.

### Claim 10 (depends on 9)

The method of claim 9, wherein the reward is proportional to the number of shares and share difficulty submitted by the computing device for the current blockchain block.

### Claim 11 (depends on 9)

The method of claim 9, wherein the reward is proportional to the number of shares and share difficulty submitted out of the last N verified shares received by the pool.

### Claim 12 (depends on 9)

The method of claim 9, further comprising:
receiving unsigned solutions from a second computing device;
verifying the unsigned solution; and
granting the second computing device a reduced reward if the solution is verified.

### Claim 13 (depends on 9)

The method of claim 9, further comprising:
receiving unsigned solutions from a second computing device;
verifying the unsigned solution; and
refraining from granting any reward for unsigned solutions.

### Claim 14 (depends on 9)

The method of claim 9, further comprising:
receiving unsigned solutions from a second computing device;
rejecting the unsigned solution before performing any verification; and
refraining from granting any reward for rejected solutions.

### Claim 15

A method for operating a computing pool, the method comprising:
operating a computing pool management application on a server;
in response to receiving at the server a connection request from a computing device attempting to connect to the pool, responding by sending a job from the server to the computing device;
waiting for the computing device to execute the job and respond with a solution signed by a private key;
signing the solution on the computing device with a private key;
sending the signed solution from the computing device to the pool;
in response to receiving a solution to the job from the computing device, verifying the correctness of the solution;
verifying a signature of the solution with a public key; and
allocating a share of any rewards the pool receives for the job to the computing device if the solution is correct and the signature is properly verified.

### Claim 16 (depends on 15)

The method of claim 15, further comprising:
not allocating any share of the rewards the pool receives in response to incorrect solutions.

### Claim 17 (depends on 15)

The method of claim 15, further comprising:
not allocating any share of the rewards the pool receives in response to solutions without verified signatures.

### Claim 18 (depends on 15)

The method of claim 15, further comprising:
allocating a reduced share of the rewards the pool receives in response to valid solutions without verified signatures.

### Claim 19 (depends on 15)

The method of claim 15, further comprising creating an SSL/TLS connection from the computing device to the pool.
