IP Library Granted Patent US 11,829,352
Granted Patent B2
US 11,829,352 · App. 17/079,887 · Granted Nov 28, 2023

Double signing protection and prevention in a blockchain computer system

Inventors: Brandon Waite (Brooklyn, NY); Robert Christensen (Brooklyn, NY)
Assignee: Coinbase Crypto Services, Inc.
G06F16/2379G06F9/54G06F16/9566H04L9/0643H04L9/3236H04L67/10H04L67/1095G06Q10/06315H04L9/50
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,829,352
App. No.
17/079,887
Granted
Nov 28, 2023
Kind
B2
Abstract

In an embodiment, a method comprises storing, in one or more digital data repositories, a body of code configured to execute one or more operations of a Proof of Stake (PoS) consensus algorithm on a blockchain node of a blockchain network, the one or more operations including a signing of a block for inclusion in the blockchain network; before executing the body of code on the blockchain node of a blockchain network, generating and transmitting a request to execute the body of code to a server computer, the request comprising a global identification value associated with the blockchain node of the blockchain network; in response to transmitting the request, receiving a response from the server computer, the response indicating whether the global identification value is locked; in response determining, based on the response, that the global identification value is not locked, executing the body of code on the node of the blockchain network, wherein executing the body of code on the node includes performing the signing of the block for inclusion in the blockchain network; transmitting the signed block to one or more nodes of the blockchain network.

Claims (48)

1. A computer-implemented method comprising:

storing, in one or more digital data repositories, a body of code configured to execute one or more operations of a Proof of Stake (PoS) consensus algorithm on a given blockchain node of a blockchain network, the one or more operations including signing of a given block for inclusion in a blockchain;

before executing the body of code on a blockchain node of the blockchain network, transmitting, to a server-side system that is not the blockchain node, a request to execute the body of code, the request comprising a global identification value associated with the blockchain node of the blockchain network;

in response to transmitting the request to the server-side system, receiving, from the server-side system, a response indicating that the global identification value associated with the blockchain node is not locked;

performing, based on the response indicating that the global identification value associated with the blockchain node is not locked, the signing of a block to be included in the blockchain by executing the body of code on the blockchain node of the blockchain network; and

transmitting the signed block to one or more nodes of the blockchain network.

2. The method of claim 1 , wherein the one or more operations include grouping one or more transactions into the block.

3. The method of claim 1 , wherein the request is encoded using an HMAC scheme.

4. The method of claim 1 , wherein the global identification value comprises a validator identifier that identifies a validator associated with the blockchain node, the response indicating that the validator identifier is not locked, and

wherein performing the signing of the block to be included in the blockchain comprises performing, based on the response indicating that the validator identifier is not locked, the signing of the block to be included in the blockchain by executing the body of code on the blockchain node of the blockchain network.

5. The method of claim 4 , wherein the validator identifier comprises a validator program identifier that identifies a validator program associated with the blockchain node, the response indicating that the validator program identifier is not locked, and

wherein performing the signing of the block to be included in the blockchain comprises performing, based on the response indicating that the validator program identifier is not locked, the signing of the block to be included in the blockchain by executing the body of code on the blockchain node of the blockchain network.

6. The method of claim 1 , wherein the global identification value comprises a signing program identifier that identifies a signing program associated with the blockchain node, the response indicating that the signing program identifier is not locked, and

wherein performing the signing of the block to be included in the blockchain comprises performing, based on the response indicating that the signing program identifier is not locked, the signing of the block to be included in the blockchain by executing the body of code on the blockchain node of the blockchain network.

7. A computer system comprising:

one or more processors;

one or more memories storing instructions which, when executed by the one or more processors, cause operations comprising:

storing, in one or more digital data repositories, a body of code configured to execute one or more operations of a Proof of Stake (PoS) consensus algorithm on a given blockchain node of a blockchain network, the one or more operations including signing of a given block for inclusion in a blockchain;

before executing the body of code on a blockchain node of the blockchain network, transmitting, to a server-side system, a request to execute the body of code, the request comprising a global identification value associated with the blockchain node of the blockchain network;

in response to transmitting the request to the server-side system, receiving, from the server-side system, a response indicating whether the global identification value associated with the blockchain node is locked;

in response to the response indicating that the global identification value associated with the blockchain node is not locked, performing the signing of a block to be included in the blockchain by executing the body of code on the blockchain node of the blockchain network; and

transmitting the signed block to one or more nodes of the blockchain network.

8. The system of claim 7 , wherein the one or more operations include grouping one or more transactions into the block.

9. The system of claim 7 , wherein the request is encoded using an HMAC scheme.

10. The system of claim 7 , wherein the global identification value comprises a validator identifier that identifies a validator associated with the blockchain node, the response indicating that the validator identifier is not locked, and

wherein performing the signing of the block to be included in the blockchain comprises, in response to the response indicating that the validator identifier is not locked, performing the signing of the block to be included in the blockchain by executing the body of code on the blockchain node of the blockchain network.

11. The system of claim 10 , wherein the validator identifier comprises a validator program identifier that identifies a validator program associated with the blockchain node, the response indicating that the validator program identifier is not locked, and

wherein performing the signing of the block to be included in the blockchain comprises, in response to the response indicating that the validator program identifier is not locked, performing the signing of the block to be included in the blockchain by executing the body of code on the blockchain node of the blockchain network.

12. The system of claim 7 , wherein the global identification value comprises a signing program identifier that identifies a signing program associated with the blockchain node, the response indicating that the signing program identifier is not locked, and

wherein performing the signing of the block to be included in the blockchain comprises, in response to the response indicating that the signing program identifier is not locked, performing the signing of the block to be included in the blockchain by executing the body of code on the blockchain node of the blockchain network.

13. The system of claim 7 , the operations further comprising:

in response to the response indicating that the global identification value is locked, preventing the signing of the block by restricting the executing of the body of code on the blockchain node.

14. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause operations comprising:

storing, in one or more digital data repositories, a body of code configured to execute one or more operations of a consensus algorithm on a given blockchain node of a blockchain network, the one or more operations including signing of a given block for inclusion in a blockchain;

before executing the body of code on a blockchain node of the blockchain network, transmitting, to a server-side system, a request to execute the body of code, the request comprising a global identification value associated with the blockchain node of the blockchain network;

in response to transmitting the request to the server-side system, receiving, from the server-side system, a response indicating whether the global identification value associated with the blockchain node is locked;

in response to the response indicating that the global identification value associated with the blockchain node is not locked, performing the signing of a block to be included in the blockchain by executing the body of code on the blockchain node of the blockchain network; and

transmitting the signed block to one or more nodes of the blockchain network.

15. The media of claim 14 , wherein the one or more operations include grouping one or more transactions into the block.

16. The media of claim 15 , wherein the global identification value comprises a signing program identifier that identifies a signing program associated with the blockchain node, the response indicating that the signing program identifier is not locked, and

wherein performing the signing of the block to be included in the blockchain comprises, in response to the response indicating that the signing program identifier is not locked, performing the signing of the block to be included in the blockchain by executing the body of code on the blockchain node of the blockchain network.

17. The media of claim 14 , wherein the request is encoded using an HMAC scheme.

18. The media of claim 14 , wherein the global identification value comprises a validator identifier that identifies a validator associated with the blockchain node, the response indicating that the validator identifier is not locked, and

wherein performing the signing of the block to be included in the blockchain comprises, in response to the response indicating that the validator identifier is not locked, performing the signing of the block to be included in the blockchain by executing the body of code on the blockchain node of the blockchain network.

19. The media of claim 18 , wherein the validator identifier comprises a validator program identifier that identifies a validator program associated with the blockchain node, the response indicating that the validator program identifier is not locked, and

wherein performing the signing of the block to be included in the blockchain comprises, in response to the response indicating that the validator program identifier is not locked, performing the signing of the block to be included in the blockchain by executing the body of code on the blockchain node of the blockchain network.

20. The media of claim 14 , wherein the global identification value comprises a blockchain node identifier that identifies the blockchain node, the response indicating that the blockchain node identifier is not locked, and

wherein performing the signing of the block to be included in the blockchain comprises, in response to the response indicating that the blockchain node identifier is not locked, performing the signing of the block to be included in the blockchain by executing the body of code on the blockchain node of the blockchain network.

Assignments (5)
MERGER AND CHANGE OF NAME Recorded Sep 14, 2021
From: BISON TRAILS CO.; COINBASE CRYPTO SERVICES, LLC
To: COINBASE CRYPTO SERVICES, LLC
Reel/Frame 057512/0135 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY NAMES PREVIOUSLY RECORDED AT REEL: 054184 FRAME: 0185. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Jan 14, 2021
From: WAITE, BRANDON; CHRISTENSEN, ROBERT
To: BISON TRAILS CO.
Reel/Frame 056150/0084 →
CHANGE OF NAME Recorded Dec 21, 2020
From: BISON TRAILS INC.
To: BISON TRAILS CO.
Reel/Frame 054712/0669 →
CHANGE OF NAME Recorded Dec 21, 2020
From: BISON TRAILS INC.
To: BISON TRAILS CO.
Reel/Frame 054712/0730 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2020
From: WAITE, BRANDON; CHRISTENSEN, ROBERT
To: BISON TRAILS INC.
Reel/Frame 054184/0185 →
Continuity (2)
Continuation 17078530 · Oct 23, 2020
Related Publication 20220129441A1 · Apr 28, 2022