Blockchain License Compatibility Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The incompatibility of different software licenses, particularly in the context of free and open-source software, makes it legally challenging to combine and distribute source code from separately-licensed components, as licenses like the GPL and MPL have contradictory requirements, leading to potential violations and the need for re-licensing, which is often impractical due to the difficulty in obtaining unanimous consent from numerous contributors.

Innovation Solution

Implementing a blockchain-based system where client devices act as peer computing nodes to manage license compatibility by using public key cryptography, digital signatures, and a distributed ledger to record transactions, allowing for the isolation and identification of differently-licensed code segments and triggering notifications for potential incompatibilities, while enabling re-licensing or purchasing of licenses through a recommendation module.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If source code from differently-licensed components is combined and distributed, then software functionality and versatility are improved, but license compatibility and legal compliance deteriorate due to contradictory license requirements

Engineering Contradiction:
Improvesoftware functionalityVSAvoidlicense compatibility
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system segments source code into individually licensed components, each tracked separately in the distributed ledger. This allows different license terms to be maintained for different code segments while enabling their combination in a unified software product, thus resolving the contradiction between functionality and license compatibility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A blockchain-based intermediary system is introduced to mediate between differently-licensed components. The distributed ledger records and verifies license compliance for each component, enabling the combination of incompatible licenses through automated compliance checking and enforcement mechanisms.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If re-licensing is performed to resolve license incompatibility, then legal compliance is improved, but the complexity and time required to obtain unanimous consent from all contributors increases

Engineering Contradiction:
Improvelicense compatibilityVSAvoidre-licensing management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system enables automated license compatibility verification and compliance tracking through the distributed ledger, eliminating the need for manual re-licensing negotiations. Contributors can independently verify compliance through the blockchain system, reducing the complexity and coordination overhead of re-licensing processes.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system provides automated feedback mechanisms that track license compliance status across all code components. When incompatibilities are detected, the system automatically notifies relevant parties and suggests resolution options, reducing the manual effort required for re-licensing management.

Inventive Principle:
Principle #23Feedback

3Reliability

If manually tracking and managing contributors for re-licensing consent is performed, then license compatibility can be achieved, but the time and resources required to track and contact numerous contributors increases

Engineering Contradiction:
Improvelicense compatibilityVSAvoidtime to obtain consent
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

License information and contributor metadata are recorded in the distributed ledger at the time of initial code submission, before any compatibility issues arise. This preliminary recording enables automated tracking and notification systems to efficiently manage re-licensing consent processes without requiring manual contributor tracking later.

Inventive Principle:
Principle #10Preliminary action

Applied Scientific Principles

This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.

Function Achieved in This Case

This approach ensures the integrity and authenticity of source code transactions, facilitates the identification of incompatible licenses, and provides a feasible method for resolving incompatibilities by recommending re-licensing or purchasing necessary licenses, thus enabling the legal combination and distribution of source code from differently-licensed components.

Implementation Method 1

using public key cryptography, digital signatures, and a distributed ledger to record transactions

Methodology Applied
Scientific EffectPublic key cryptography:

Implementation Method 2

using public key cryptography, digital signatures, and a distributed ledger to record transactions

Methodology Applied
Scientific EffectDigital signatures:

Implementation Method 3

one or more client devices can be employed as peer computing nodes that each store a copy of a blockchain distributed ledger

Methodology Applied
Scientific EffectBlockchain distributed ledger:

Data Source

PatentUS12050667B2Cryptographically managing license compatibility
Publication Date: 2024.07.30 T MOBILE US INC
  • US12050667B2 patent drawing
  • US12050667B2 patent drawing
  • US12050667B2 patent drawing

AI summary

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.