IP Library Granted Patent US 10,417,217
Granted Patent B2
US 10,417,217 · App. 15/392,389 · Granted Sep 17, 2019

Systems and methods for blockchain rule synchronization

Inventors: Ryan Pierce (Chicago, IL); Ajay Madhavan (Aurora, IL); Stanislav Liberman (Highland Park, IL); Mansoor Ahmed (Naperville, IL)
Assignee: Chicago Mercantile Exchange Inc.
G06F16/2365G06F16/2379G06Q20/02G06Q20/0658G06Q40/04
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 10,417,217
App. No.
15/392,389
Filed
Dec 28, 2016
Granted
Sep 17, 2019
Kind
B2
Examiner
LY, ANH
Art Unit
2162
USPC
707/694
Abstract

The disclosed embodiments relate to implementation of a syntax for altering one or more rules by which a blockchain may be modified wherein the software implementing each client of a blockchain network are programmed to be responsive to requests or directives to alter one or more rules by which blocks may be added to a blockchain responsive to transactions received for storage therein, the requests/directives being processed by the client as a transaction and added to the block in accordance with the current state of the operating rules, thereby adding a new rule or modifying an existing rule for subsequent operation of the client.

Claims (64)

1. A method for synchronizing rule changes in a system which implements a blockchain for transactions, the method comprising:

receiving, by a processor, a data message comprising a change to operation of the system with respect to how transactions are validated for addition to the blockchain;

determining, by the processor, if the data message is valid according to one or more rules stored in a data structure of the blockchain; wherein, if the data message is determined to be valid, generating a transaction in a new block comprising at least the data indicative of the change to the operation of the system to the blockchain; and

communicating, by the processor, data indicative of the new block to other systems implementing the blockchain; and

wherein validity of transactions received subsequent to the new block are subject to the one or more rules stored in the data structure of the blockchain including the added change to the operation of the system.

2. The method of claim 1 wherein the data message further specifies when the change in operation of the system is to be effective, wherein the validity of transactions received subsequent to the added block is subject to the one or more rules stored in the data structure of the blockchain including the added change to the operation of the system when those transactions are received subsequent to when the change in operation of the system is to be effective.

3. The method of claim 2 , wherein when the change in operation of the system is to be effective is specified by a block number.

4. The method of claim 1 , wherein the data message is digitally signed by two or more parties authorized to change the operation of the system.

5. The method of claim 1 , wherein the change to the operation of the system comprises an additional rule to the one or more rules stored in the data structure of the blockchain.

6. The method of claim 1 , wherein the change to the operation of the system comprises an alteration to one of the one or more rules stored in the data structure of the blockchain.

7. The method of claim 6 , wherein the alteration is a change to a certificate revocation list of invalid certificates.

8. A method for validating transactions in a system that implements a blockchain, the method comprising:

receiving, by a processor, a data message comprising a transaction to be implemented by the blockchain;

identifying, by the processor, one or more rules for validation of the transaction in data stored in a plurality of blocks of the blockchain;

determining, by the processor, if the transaction is valid according to the one or more rules;

generating, by the processor, a new block of the blockchain including the transaction; and

communicating, by the processor, data indicative of the new block to other systems implementing the blockchain.

9. The method of claim 8 , wherein a newer rule in a more recently generated block takes precedence over an older rule in an older block.

10. The method of claim 8 , wherein the one or more rules comprise at least a transaction fee schedule.

11. The method of claim 8 , wherein the one or more rules comprise at least a whitelist of wallet addresses.

12. A method for synchronizing rule changes in a system that implements a blockchain for transactions, the method comprising:

storing data indicative of one or more rules for validation of a transaction implemented in a data structure in the blockchain;

receiving, by a processor, a data message including a new block of the blockchain;

verifying, by the processor, the new block is valid based the one or more rules stored in the data structure in the blockchain;

identifying, by the processor, in the new block, one or more rule changes; and

updating, by the processor, the one or more rules with the one or more rule changes; wherein a validity of transactions received subsequent to the new block is subject to the one or more updated rules stored in the blockchain.

13. The method of claim 12 , wherein verifying the new block is valid is further based on the one or more rule changes.

14. The method of claim 12 , wherein the new block further specifies when the one or more rule changes is to be effective, wherein the validity of transactions received subsequent to the new block are subject to the one or more updated rules stored in the blockchain when those transactions are received subsequent to when the rule changes are to be effective.

15. A method for synchronizing rule changes in a system which implements a blockchain for transactions, the method comprising:

generating, by a processor, a transaction comprising a rule change to how future transactions are to be validated;

signing, by the processor, the transaction with a signature authorized to make rule changes for the blockchain;

communicating, by the processor, the transaction to other systems implementing the blockchain;

receiving, by the processor, a new block that contains the transaction;

verifying, by the processor, the new block follows the rule change; and

adding, by the processor, the new block to the blockchain.

16. The method of claim 15 , wherein the blockchain includes a list of signatures authorized to make rule changes.

17. A method for validating transactions in a system that implements a blockchain, the method comprising:

receiving, by a processor, data indicative of a first signed transaction including a first rule change to the blockchain;

validating, by the processor, the first rule change using one or more rules stored in a data structure of the blockchain;

generating, by the processor, a new block including the first rule change;

communicating, by the processor, the new block to other nodes implementing the blockchain;

receiving, by the processor, data indicative of a second signed transaction;

validating, by the processor, the second signed transaction using one or more rules stored in a data structure of the blockchain including the first rule change;

if the second signed transaction is valid, including the second signed transaction in a second new block; and

discarding, by the processor, the second signed transaction if the second signed transaction is invalid.

18. The method of claim 17 , further comprising:

receiving, by the processor, data indicative of a third signed transaction including a second rule change while generating the new block;

validating, by the processor, the second rule change; and

generating, by the processor, the new block including the second valid rule change.

19. A system for facilitating interaction with a shared data structure, stored in a memory, by a plurality of participants, the system comprising:

a transaction receiver, coupled with a network interface, operative to receive a data transaction message from a first participant of the plurality of participants, the data transaction message comprising one or more rule changes to the operation of the system;

a validation processor, coupled to the transaction receiver, operative to determine based on a set of validation rules stored in the memory and the one or more rules changes if the received data transaction message is a valid transaction;

a data structure generator, coupled to the transaction receiver, operative to generate a new data structure of the shared data structure containing at least the data transaction for the shared data structure; and

a transmitter, coupled to the data structure generator, operative to transmit the new data structure to the plurality of participants of the shared data structure.

20. The system of claim 19 , wherein the data transaction message further specifies when the one or more rule changes are to be effective, wherein the validity of transactions received subsequent to the new data structure are subject to the one or more rules stored in the data structure including the added rule change when those transactions are received subsequent to when the rule change is to be effective.

21. The system of claim 20 , wherein when the change in operation of the system is to be effective is specified by a data structure number.

22. The system of claim 19 , wherein the change to the operation of the system is a change to a transaction fee schedule.

23. The system of claim 19 , wherein the change to the operation of the system is a change to a maximum data structure size of the shared data structure.

24. The system of claim 19 , wherein the change to the operation of the system is a change to a method for authorization of a change to the one or more rules.

25. A computer system configured to synchronize rule changes in a blockchain for transactions stored in a memory of the computer system, the computer system comprising:

means for receiving a data message comprising a change to operation of the system with respect to how transactions are validated for addition to the blockchain;

means for determining if the data message is valid according to one or more rules stored in the blockchain; wherein, if the data message is determined to be valid, generating a transaction in a new block comprising at least the data indicative of the change to the operation of the system to the blockchain; and

means for communicating data indicative of the new block to other computer systems implementing the blockchain; and

wherein validity of transactions received subsequent to the new block are subject to the one or more rules stored in the blockchain including the added change to the operation of the computer system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2016
From: PIERCE, RYAN; MADHAVAN, AJAY; LIBERMAN, STANISLAV; AHMED, MANSOOR
To: CHICAGO MERCANTILE EXCHANGE INC.
Reel/Frame 040787/0869 →
Continuity (2)
Provisional Application 62371300 · Aug 5, 2016
Related Publication 20180039667A1 · Feb 8, 2018
Cited By (11)
US 12,205,111 US 12,217,257 US 12,254,435 US 12,307,441 US 12,348,651 US 12,373,829 US 12,463,829 US 12,505,438 US 12,511,672 US 12,513,004 US 12,586,067