IP Library › Granted Patent US 11,126,425
Granted Patent B2
US 11,126,425 · App. 16/389,840 · Granted Sep 21, 2021

Version history management using a blockchain

Inventor: Fraser M. Smith (Salt Lake City, UT)
Assignee: Sarcos Corp.
G06F8/658G06F8/71H04L9/0637H04L2209/38
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,126,425
App. No.
16/389,840
Granted
Sep 21, 2021
Kind
B2
Abstract

A technology is described for managing and securing a software version history for a device using a blockchain. An example method can include receiving device information for a device configured to receive software updates, where a device history for the device can be contained in a blockchain distributed among multiple network nodes. The device information can be validated against the device history contained in the blockchain to confirm an identity of the device, and a software update can be initiated for the device. An indication that the software update was installed on the device can be received and a block can be generated to include information for the software update installed on the device. The block can be sent to the network nodes configured to determine acceptance of the block and append the block to the blockchain when the block is accepted.

Claims (61)

1. A computer implemented method, comprising:

obtaining, in response to a release of a software update, device histories for a plurality of devices from a blockchain;

referencing the device histories obtained from the blockchain to identify which of the plurality of devices are eligible to receive the software update, wherein the blockchain is distributed among multiple network nodes, and the plurality of devices are configured to receive software updates;

obtaining device information for a device of the plurality of devices identified as being eligible to receive the software update;

validating the device information against a device history for the device obtained from the blockchain to confirm an identity of the device;

initiating a software update for the device which is configured to install the software update on the device;

receiving an indication that the software update was installed on the device; and

initiating generation of a block to include device information and information for the software update installed on the device, wherein the block is sent to the multiple network nodes to determine acceptance of the block and append the block to the blockchain when the block is accepted.

2. The method as in claim 1 , further comprising:

obtaining the device history for the device from the blockchain;

validating a device identifier included in the device information against a device identifier recorded in the device history to confirm the identity of the device; and

checking a software version identifier included in the device information against a software version recorded in the device history to confirm a version of software currently installed on the device.

3. The method as in claim 1 , further comprising:

obtaining a software signature for the software update from the blockchain; and

providing the software signature to the device which is configured to validate a copy of the software update using the software signature.

4. The method as in claim 1 , wherein initiating the software update further comprises sending a software copy associated with the software update to the device with instructions to install the software copy on the device.

5. The method as in claim 1 , wherein initiating the software update further comprises sending a network location of a software copy to the device with instructions to obtain the software copy from the network location and install the software copy on the device.

6. The method as in claim 1 , wherein initiating generation of the block further comprises:

sending updated device information to the multiple network nodes indicating that the software update has been installed on the device; and

performing, by the multiple network nodes in response to receiving the updated device information, proof-of-work processing to determine which network node generates the block to include the device information and the information for the software update installed on the device.

7. The method as in claim 1 , wherein initiating generation of the block further comprises:

obtaining a previous block identifier for a latest added block in the blockchain from the blockchain, wherein a block identifier is generated by applying a hash function to information contained in a block; and

storing the previous block identifier in the block.

8. The method as in claim 7 , further comprising:

generating a current block identifier for the block by applying the hash function to information contained in the block; and

storing the current block identifier in the block.

9. The method as in claim 1 , wherein the multiple network nodes are included in one of a public network of peer nodes or a private network of peer nodes.

10. The method as in claim 1 , wherein the device is a robotic device configured to receive software updates.

11. The method as in claim 1 , wherein identifying which of the plurality of devices associated with the device histories are eligible to receive the software update further comprises comparing the device histories to a plurality of factors that determine eligibility of a device to receive the software update.

12. A system, comprising:

at least one processor;

a memory device including instructions that, when executed by the at least one processor, cause the system to:

obtain, in response to a release of a software update, device histories for a plurality of devices from a blockchain;

reference the device histories obtained from the blockchain to determine which of the plurality of devices are eligible to receive the software update, wherein the blockchain is distributed among a network of peer nodes, and the plurality of devices are configured to receive software updates;

obtain device information for a device of the plurality of devices determined to be eligible to receive the software update, wherein the device information includes a device identifier and a version of software currently installed on the device;

validate the device information using a device history for the device to confirm the identity of the device and the version of software currently installed on the device;

send an updated version of the software to the device, which is configured to install the updated version of the software on the device;

receive an indication that the updated version of the software has been installed on the device;

generate a block to include device information and information for the software update version installed on the device; and

send the block to the network of peer nodes which determine acceptance of the block and append the block to the blockchain when the block is accepted.

13. The system as in claim 12 , wherein the memory device further includes instructions that, when executed by the at least one processor, cause the system to:

identify the updated version of the software for the device; and

authenticate the updated version of the software using software authentication information contained in the blockchain.

14. The system as in claim 12 , wherein the memory device further includes instructions that, when executed by the at least one processor, cause the system to obtain the device histories from a peer node which stores a copy of the blockchain.

15. The system as in claim 12 , wherein the memory device further includes instructions that, when executed by the at least one processor, cause the system to:

obtain a portion of the blockchain from a peer node; and

obtain the device histories from the portion of the blockchain.

16. The system as in claim 12 , wherein acceptance of the block by the network of peer nodes is based in part on a determination that a majority of peer nodes that have received the block have communicated agreement to accept the block.

17. A non-transitory machine readable storage medium including instructions embodied thereon, the instructions when executed by one or more processors:

obtain, in response to a release of a software update, device histories for a plurality of devices from a blockchain;

reference the device histories obtained from the blockchain to determine which of the plurality of devices are eligible to receive the software update, wherein the plurality of devices are configured to receive software updates, and the device histories for the plurality of devices are contained in the blockchain which is distributed to a network of peer nodes;

obtain device information for a device of the plurality of devices determined to be eligible to receive the software update;

validate the device information against a device history obtained from the blockchain to confirm an identity of the device and a version of software currently installed on the device;

identify a software update associated with the device;

authenticate the software update using software authentication information obtained from the blockchain to confirm that the software update has not been modified;

send the software update to the device which is configured to install the software update;

receive an indication that the software update was installed on the device;

generate a block to include device information and information for the software update installed on the device; and

send the block to the network of peer nodes to determine acceptance of the block and append the block to the blockchain when the block is accepted.

18. The non-transitory machine readable storage medium in claim 17 , further comprising instructions, that when executed by the one or more processors, authenticate the identity of the device by comparing a device identifier included in the device information to a device identifier included in the device history obtained from the blockchain.

19. The non-transitory machine readable storage medium in claim 17 , further comprising instructions, that when executed by the one or more processors, encrypt the block prior to sending the block to the network of peer nodes.

Assignments (2)
CHANGE OF NAME Recorded Jul 1, 2026
From: SARCOS CORP.
To: PALLADYNE CORP.
Reel/Frame 075900/0210 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2020
From: SMITH, FRASER M.
To: SARCOS CORP.
Reel/Frame 054779/0706 →
Continuity (1)
Related Publication 20200334032A1 · Oct 22, 2020