IP Library › Granted Patent US 11,651,056
Granted Patent B2
US 11,651,056 · App. 16/557,640 · Granted May 16, 2023

Cryptographically managing license compatibility

Inventors: Aaron Drake (Sammamish, WA); Lee Miller London (Seattle, WA)
Assignee: T-Mobile USA, Inc.
G06F21/105G06F21/125H04L9/3236H04L9/3247
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,651,056
App. No.
16/557,640
Filed
Aug 30, 2019
Granted
May 16, 2023
Kind
B2
Art Unit
3685
USPC
705/59
Abstract

This disclosure describes techniques for implementing a blockchain to manage license compatibility. The techniques include parsing a code segment in a version of source code based on one or more parsing parameters, wherein the code segment is associated with a transaction and distributed under a license. Thereafter, one or more blocks are inserted onto a blockchain distributed ledger recording the transaction. Upon receiving an updated version of the source code comprising a change to at least one code segment associated with a new transaction, additional blocks are inserted onto the ledger recording the new transaction. Based at least on the transaction recorded in the blocks, the license associated with the version of the source code is identified. Additionally, a flag may indicate license incompatibility with the license if the change to at least one code segment associated with the new transaction violates a license restriction of the identified license.

Claims (72)

1. A system, comprising:

one or more non-transitory storage mediums configured to provide stored computer-readable instructions, the one or more non-transitory storage mediums coupled to one or more processors, the one or more processors configured to execute the computer-readable instructions to cause the one or more processors to:

parse at least one code segment in a version of source code based at least on one or more parsing parameters, the at least one code segment associated with a first transaction and distributed under a license;

generate a first hash value of the at least one code segment in the version of the source code;

generate a first digital signature of the first hash value using a first key;

insert one or more first blocks that include the first hash value and the first digital signature onto a blockchain distributed ledger recording the first transaction;

receive an updated version of the source code comprising a change to the at least one code segment associated with a second transaction;

generate a second hash value of the updated version of the source code comprising the change to the at least one code segment;

generate a second digital signature of the second hash value using a second key;

insert one or more second blocks that include the second hash value and the second digital signature onto the blockchain distributed ledger recording the second transaction;

compare the first hash value and the second hash value to known hash values of code segments associated with licenses or license restrictions;

verify the first digital signature using a first public key associated with the first key and the second digital signature using a second public key associated with the second key;

identify the license associated with the version of the source code based at least on (i) the first transaction and the second transaction recorded in the blockchain distributed ledger and (ii) comparing the first hash value and the second hash value to known hash values of code segments associated with licenses or license restrictions; and

present a flag indicating license incompatibility with the license when a determination is made that the change to the at least one code segment in the updated version associated with the second transaction recorded in the blockchain distributed ledger violates a license restriction of the license associated with the version of the source code.

2. The system of claim 1 , the one or more processors further configured to:

determine whether the license associated with the version of the source code is equal to an additional license associated with the updated version of the source code based at least on the first hash value and the second hash value; and

as a result of determining that the license is not equivalent to the additional license, generate a recommendation to resolve the license incompatibility.

3. The system of claim 2 , the one or more processors further configured to:

identify a contributor of the source code associated with the first key; and

transmit a request to the contributor for permission to license the version of the source code.

4. The system of claim 2 , the one or more processors further configured to:

generate a recommendation to resolve the license incompatibility based at least on the license restriction.

5. The system of claim 1 , wherein the at least one code segment comprises a module, a method, a library, or a function.

6. The system of claim 1 , wherein the license comprises a free and open-source software license.

7. The system of claim 1 , wherein the one or more parsing parameters are based at least on a client-side structured language, a programming language, or a scripting language.

8. One or more non-transitory computer-readable media storing computer-executable instructions that upon execution cause one or more processors to perform acts comprising:

parsing at least one code segment in a version of source code based at least on one or more parsing parameters, the at least one code segment associated with a first transaction and distributed under a license;

generating a first hash value of the at least one code segment in the version of the source code;

generating a first digital signature of the first hash value using a first key;

inserting one or more first blocks that include the first hash value and the first digital signature onto a blockchain distributed ledger recording the first transaction;

receiving an updated version of the source code comprising a change to the at least one code segment associated with a second transaction;

generating a second hash value of the updated version of the source code comprising the change to the at least one code segment;

generating a second digital signature of the second hash value using a second key

inserting one or more second blocks that include the second hash value and the second digital signature onto the blockchain distributed ledger recording the second transaction;

comparing the first hash value and the second hash value to known hash values of code segments associated with licenses or license restrictions;

verifying the first digital signature using a first public key associated with the first key and the second digital signature using a second public key associated with the second key;

identifying the license associated with the version of the source code based at least on (i) the first transaction and the second transaction recorded in the blockchain distributed ledger and (ii) comparing the first hash value and the second hash value to known hash values of code segments associated with licenses or license restrictions; and

generating a flag indicating license incompatibility with the license when a determination is made that the change to the at least one code segment in the updated version associated with the second transaction recorded in the blockchain distributed ledger violates a license restriction of the license associated with the version of the source code.

9. The one or more non-transitory computer-readable media of claim 8 , the acts further comprising:

determining whether the license associated with the version of the source code is equal to an additional license associated with the updated version of the source code based at least on the first hash value and the second hash value; and

as a result of determining that the license is not equivalent to the additional license, generating a recommendation to resolve the license incompatibility.

10. The one or more non-transitory computer-readable media of claim 9 , the acts further comprising:

identifying a contributor to the source code associated with the first key; and

transmitting a request to the contributor for permission to license the version of the source code.

11. The one or more non-transitory computer-readable media of claim 9 , the acts further comprising:

generating a recommendation to resolve the license incompatibility based at least on the license restriction.

12. The one or more non-transitory computer-readable media of claim 8 , wherein the at least one code segment comprises a module, a method, a library, or a function.

13. The one or more non-transitory computer-readable media of claim 8 , wherein the license comprises a free and open-source software license.

14. The one or more non-transitory computer-readable media of claim 8 , wherein the one or more parsing parameters are based at least on a client-side structured language, a programming language, or a scripting language.

15. A computer-implemented method, comprising:

parsing at least one code segment in a version of source code based at least on one or more parsing parameters, the at least one code segment associated with a first transaction and distributed under a license;

generating a first hash value of the at least one code segment in the version of the source code;

generating a first digital signature of the first hash value using a first key;

inserting one or more first blocks that include the first hash value and the first digital signature onto a blockchain distributed ledger recording the first transaction;

receiving an updated version of the source code comprising a change to the at least one code segment associated with a second transaction;

generating a second hash value of the updated version of the source code comprising the change to the at least one code segment;

generating a second digital signature of the second hash value using a second key;

inserting one or more second blocks that include the second hash value and the second digital signature onto the blockchain distributed ledger recording the second transaction;

comparing the first hash value and the second hash value to known hash values of code segments associated with licenses or license restrictions;

verifying the first digital signature using a first public key associated with the first key and the second digital signature using a second public key associated with the second key;

identifying the license associated with the version of the source code based at least on (i) the first transaction and the second transaction recorded in the blockchain distributed ledger and (ii) comparing the first hash value and the second hash value to known hash values of code segments associated with licenses or license restrictions; and

presenting a flag indicating license incompatibility with the license when a determination is made that the change to the at least one code segment in the updated version associated with the second transaction recorded in the blockchain distributed ledger violates a license restriction of the license associated with the version of the source code.

16. The computer-implemented method of claim 15 , further comprising:

determining whether the license associated with the version of the source code is equal to an additional license associated with the updated version of the source code based at least on the first hash value and the second hash value; and

as a result of determining that the license is not equivalent to the additional license, generating a recommendation to resolve the license incompatibility.

17. The computer-implemented method of claim 16 , further comprising:

authenticating the at least one code segment in the version of the source code based at least on the first hash value for the at least one code segment from a hash function applied to the at least one code segment.

18. The computer-implemented method of claim 16 , further comprising:

identifying a contributor to the source code associated with the first key; and

transmitting a request to the contributor for permission to license the version of the source code.

19. The computer-implemented method of claim 18 , wherein the first key comprises a private key associated with the contributor of the at least one code segment of the version of the source code, the private key providing access to a private channel of the blockchain distributed ledger.

20. The computer-implemented method of claim 16 , wherein the recommendation to resolve the license incompatibility is based at least on the license restriction.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2022
From: DEUTSCHE BANK TRUST COMPANY AMERICAS
To: IBSV LLC; LAYER3 TV, LLC; PUSHSPRING, LLC; T-MOBILE CENTRAL LLC; T-MOBILE USA, INC.; ASSURANCE WIRELESS USA, L.P.; BOOST WORLDWIDE, LLC; CLEARWIRE COMMUNICATIONS LLC; CLEARWIRE IP HOLDINGS LLC; SPRINTCOM LLC; SPRINT COMMUNICATIONS COMPANY L.P.; SPRINT INTERNATIONAL INCORPORATED; SPRINT SPECTRUM LLC
Reel/Frame 062595/0001 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: T-MOBILE USA, INC.; ISBV LLC; T-MOBILE CENTRAL LLC; LAYER3 TV, INC.; PUSHSPRING, INC.; BOOST WORLDWIDE, LLC; CLEARWIRE COMMUNICATIONS LLC; CLEARWIRE IP HOLDINGS LLC; CLEARWIRE LEGACY LLC; SPRINT COMMUNICATIONS COMPANY L.P.; SPRINT INTERNATIONAL INCORPORATED; SPRINT SPECTRUM L.P.; ASSURANCE WIRELESS USA, L.P.
To: DEUTSCHE BANK TRUST COMPANY AMERICAS
Reel/Frame 053182/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2019
From: DRAKE, AARON; LONDON, LEE MILLER
To: T-MOBILE USA, INC.
Reel/Frame 050226/0417 →
Continuity (1)
Related Publication 20210064723A1 · Mar 4, 2021
Cited By (1)
US 12,585,737