Blockchain Program Storage with Segmented Local Reconstruction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing blockchain technologies lack a standardized architecture and network protocols for easily building applications and software without extensive knowledge of the underlying technology, limiting their potential as a fundamental infrastructure like the internet.
Innovation Solution
A file format is developed for storing executable software on the blockchain that can be reconstructed locally and run on individual computers, with permissioned access, and integrates access to the blockchain into high-level programming languages for interaction between local software and the blockchain.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If blockchain technology is used to store and execute programs, then the immutability and security of program storage is improved, but the complexity of the system architecture increases
Solution Approach 1:
The program is divided into multiple sections that are stored in separate transactions across the blockchain. The header file contains metadata and references to these sections, allowing the program to be distributed and reconstructed locally without requiring the entire program to be stored in a single transaction or location.
Solution Approach 2:
A local file system acts as an intermediary between the blockchain and the executed program. The blockchain stores only the header file and section references, while the local system handles the actual program reconstruction, execution, and permission verification, simplifying the overall architecture by separating storage from execution.
2Ease of operation
If executable code is stored directly on the blockchain, then the accessibility of the code is improved, but the size of the blockchain increases
Solution Approach 1:
The executable code is segmented into multiple sections stored in separate transactions. Only the header file containing metadata and section references is stored in each transaction, while the actual code sections are distributed across multiple blockchain transactions, reducing the size of individual transactions and the overall blockchain.
Solution Approach 2:
The actual executable code is extracted from the blockchain storage and stored locally in the file system. The blockchain only stores the header file with references to the code sections, significantly reducing blockchain size while maintaining accessibility of the code through local storage and reconstruction.
3Reliability
If permissioned access is implemented for program execution, then the security of program execution is improved, but the complexity of access control mechanisms increases
Solution Approach 1:
Permission requirements are defined in advance within the header file before program execution. The local system checks these pre-stored permission conditions against the current user's credentials before allowing execution, simplifying access control by performing verification beforehand rather than during execution.
Solution Approach 2:
The system performs self-service permission verification by checking the header file's permission conditions locally before execution. The user provides their credentials, and the system automatically verifies access rights based on the pre-defined conditions in the header file, eliminating the need for complex external authorization mechanisms.
Data Source
AI summary
A method comprising: retrieving a header file from a first transaction recorded on a blockchain maintained across a plurality of nodes of a blockchain network. The header file comprises: program header information, and reference information comprising one or more respective transaction IDs of one or more respective second transactions stored on the blockchain. Each second transaction comprises a respective section of a body of the program file, at least one of the sections comprising runnable program code. The method comprises, from the blockchain, retrieving the respective section of the program file from at least one of the second transactions based on the reference information; and running a program comprising the program header information and the at least one retrieved section.


