IP Library Granted Patent US 11,277,261
Granted Patent B2
US 11,277,261 · App. 16/138,268 · Granted Mar 15, 2022

Blockchain-based tracking of program changes

Inventors: Michael F. Angelo (Spring, TX); Lloyd Leon Burch (Payson, UT); Baha Masoud (Orem, UT)
Assignee: NETIQ CORPORATION
H04L9/0643G06F16/182G06F21/16H04L9/3247H04L63/12H04L2209/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,277,261
App. No.
16/138,268
Granted
Mar 15, 2022
Kind
B2
Abstract

In some examples, in response to detecting addition or update of a program component of a program, a system creates a blockchain entry for addition to a blockchain register, generates a hash based on the program component, and adds in the blockchain entry a signed hash produced by encrypting the generated hash. The system publishes the blockchain entry for the blockchain, the signed hash in a blockchain entry useable to detect tampering with the program component.

Claims (69)

1. A non-transitory machine-readable storage medium storing instructions for blockchain-based program change tracking, the instructions upon execution causing a system to:

in response to detecting a creation of a program component of a program, create a first blockchain entry corresponding to the creation of the program component for addition to a blockchain register, wherein the blockchain register maintains a history of changes made to the program, and wherein the first blockchain entry includes: an action value indicating the creation of the program component, and a name of an author that created and endorsed the program component;

in response to detecting a deletion of the program component from the program, create a second blockchain entry corresponding to the deletion of the program component for addition to the blockchain register, wherein the second blockchain entry includes: an action value indicating the deletion of the program component, and a name of an entity that performed the deletion of the program component;

store the second blockchain entry corresponding to the deletion of the program component in the blockchain register;

determine whether the program component is to be published;

in response to a determination that the program component is to be published, cause the program component to be published; and

in response to a determination that the program component is not to be published, send the program component to a new entity for review and endorsement.

2. The non-transitory machine-readable storage medium of claim 1 , wherein the instructions further cause the system to:

generate a hash value based on a portion of the program component,

encrypt the hash value with a private key of the author, and

add the encrypted hash value as a signed hash into the first blockchain entry.

3. The non-transitory machine-readable storage medium of claim 2 , wherein the instructions upon execution cause the system to:

include, in the first blockchain entry, information of a public key corresponding to the private key of the author, the public key useable to decrypt the signed hash to validate the program component.

4. The non-transitory machine-readable storage medium of claim 1 , wherein the instructions upon execution cause the system to:

in response to detecting an update of the program component of the program, create a third blockchain entry corresponding to the update of the program component, wherein the third blockchain entry includes a name of an entity that performed the update of the program component.

5. The non-transitory machine-readable storage medium of claim 4 , wherein the instructions upon execution cause the system to:

store the third blockchain entry corresponding to the update of the program component in the blockchain register.

6. The non-transitory machine-readable storage medium of claim 1 , wherein the instructions upon execution cause the system to:

include, in the first blockchain entry, information of a storage location of the program component.

7. The non-transitory machine-readable storage medium of claim 1 , wherein the instructions upon execution cause the system to:

in response to detecting an addition of a further program component of the program:

create a third blockchain entry corresponding to the addition of the further program component,

generate a further hash based on a portion of the further program component,

generate a signed hash by encrypting the further hash with a private key of an entity that added the further program component,

add the signed hash in the third blockchain entry, wherein the signed hash in the third blockchain entry is useable to validate the further program component,

store the third blockchain entry in the blockchain register, and

publish the third blockchain entry.

8. The non-transitory machine-readable storage medium of claim 1 , wherein the instructions upon execution cause the system to:

in response to a review and endorsement of the program component by the new entity, add an identity of the new entity and an endorsement signature of the new entity in the first blockchain entry, wherein the endorsement signature is produced by encrypting a hash value with a private key of the new entity.

9. A system comprising:

a processor; and

a non-transitory storage medium storing instructions that are executable by the processor to:

in response to detecting a creation of a program component of a program, create a first blockchain entry corresponding to the creation of the program component for addition to a blockchain register, wherein the blockchain register maintains a history of changes made to the program, and wherein the first blockchain entry includes: an action value indicating the creation of the program component, and a name of an author that created and endorsed the program component,

in response to detecting a deletion of the program component from the program, create a second blockchain entry corresponding to the deletion of the program component for addition to the blockchain register, wherein the second blockchain entry includes: an action value indicating the deletion of the program component, and a name of an entity that performed the deletion of the program component,

store the second blockchain entry corresponding to the deletion of the program component in the blockchain register,

determine whether the program component is to be published,

in response to a determination that the program component is to be published, cause the program component to be published, and

in response to a determination that the program component is not to be published, send the program component to a new entity for review and endorsement.

10. The system of claim 9 , wherein the instructions are executable by the processor to:

confirm authenticity of the program component by validating the first blockchain entry.

11. The system of claim 9 , wherein the instructions are executable by the processor to:

determine a quality of the program component by identifying the name of the author in the first blockchain entry.

12. The system of claim 11 , wherein the instructions are executable by the processor to:

determine the quality of the program component further based on a reputation statement of the author included in the first blockchain entry.

13. The system of claim 9 , wherein the instructions are executable by the processor to:

after the program component has been reviewed and endorsed by the new entity, add an endorsement signature of the new entity in the first blockchain entry, and

cause the program component to be published.

14. A method performed by a system comprising a hardware processor for blockchain-based program change tracking, comprising:

in response to detecting a creation of a program component of a program, creating a first blockchain entry corresponding to the creation of the program component for addition to a blockchain register, wherein the blockchain register maintains a history of changes made to the program, and wherein the first blockchain entry includes: an action value indicating the creation of the program component, and a name of an author that created and endorsed the program component;

in response to detecting a deletion of the program component from the program, creating a second blockchain entry corresponding to the deletion of the program component for addition to the blockchain register, wherein the second blockchain entry includes: an action value indicating the deletion of the program component, and a name of an entity that performed the deletion of the program component; and

storing the second blockchain entry corresponding to the deletion of the program component in the blockchain register;

determining whether the program component is to be published;

in response to a determination that the program component is to be published, causing the program component to be published; and

in response to a determination that the program component is not to be published, sending the program component to a new entity for review and endorsement.

15. The method of claim 14 , further comprising:

generating a hash value based on a portion of the program component;

encrypting the hash value with a private key of the author of the program component;

add the encrypted hash value as a signed hash in the first blockchain entry; and

detecting tampering with the program component using a decrypted hash generated by decrypting the signed hash in the first blockchain entry.

16. The method of claim 15 , further comprising:

adding, in the first blockchain entry, a public key corresponding to the private key of the author, wherein the public key is useable to decrypt the signed hash to validate the program component.

17. The method of claim 14 , further comprising:

after the program component has been reviewed and endorsed by the new entity, adding an endorsement signature of the new entity in the first blockchain entry, and

causing the program component to be published.

18. The method of claim 14 , further comprising:

providing a notification of availability of the program component.

19. The method of claim 14 , further comprising:

in response to detecting an update of the program component of the program, create a third blockchain entry corresponding to the update of the program component; and

store the third blockchain entry in the blockchain register.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2026
From: NETIQ CORPORATION
To: MICRO FOCUS LLC
Reel/Frame 073758/0696 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052294/0522 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062624/0449 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052295/0041 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062625/0754 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052294/0522 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052295/0041 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2018
From: ANGELO, MICHAEL F.; BURCH, LLOYD LEON; MASOUD, BAHA
To: NETIQ CORPORATION
Reel/Frame 046940/0996 →
Cited By (2)
US 12,284,269 US 12,423,700