Blockchain Transaction Chaining for Complex Script Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current blockchain technologies, such as Bitcoin, impose limitations on script size and opcode count, restricting the development of complex functionalities and computations due to security considerations, which hampers the implementation of sophisticated applications like smart contracts.
Innovation Solution
The method involves decomposing complex tasks into multiple blockchain transactions, using unlocking and locking scripts to pass data between transactions, allowing for the execution of lengthy and complex computations while adhering to security-based script size and opcode limits, without modifying the existing protocol.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If script size and opcode count are increased to enable complex functionality, then computational capability is improved, but security is compromised due to potential Denial of Service attacks
Solution Approach 1:
The patent divides a complex computational task into multiple smaller sub-tasks, each executed in separate blockchain transactions with limited script size. The computation is segmented across transaction chains, where each transaction contains a restricted script (within opcode limits) that performs only a portion of the overall computation, thereby maintaining security while achieving complex functionality through composition of multiple simple transactions
Solution Approach 2:
The patent transitions from executing complex computation within a single transaction (one-dimensional approach subject to script size limits) to distributing computation across multiple transactions in a chain (multi-dimensional approach). By adding the dimension of transaction chaining and using the blockchain structure itself as the execution environment, the system achieves unlimited computational capability while each individual transaction remains within security constraints
2Reliability
If script size is limited to prevent Denial of Service attacks, then security is maintained, but complex computations become impossible
Solution Approach 1:
The patent establishes continuous computation across a chain of transactions, where the output of one transaction becomes the input of the next. This continuity allows complex computations to be performed by chaining multiple simple transactions together, with each transaction contributing a portion of the overall computation. The useful action (computation) continues uninterrupted across transaction boundaries, enabling complex functionality while maintaining script size limits at each step
Solution Approach 2:
The patent uses blockchain transactions as intermediaries to pass data and control flow between computation stages. Each transaction acts as an intermediary that receives input data, executes a limited script, produces output data, and passes it to the next transaction. This intermediary mechanism enables complex computations to be broken down into manageable steps, with each step contained within security constraints while the overall computation achieves greater complexity
Data Source
AI summary
The invention relates to blockchain technologies such as the Bitcoin blockchain. The invention uses a novel technique to decompose the functionality of a blockchain transaction script into several chunks or functional parts, and to use the output of a chunk as the input of the next chunk. Advantageously, this allows the blockchain to be used for ever complex tasks and computations while minimising script size, and also provides a novel architecture for the distributed execution of computational processes. The invention comprises a method of using a plurality of blockchain transactions to execute a computer implemented task, the method comprising the steps: using an unlocking script (ULS1) in a blockchain transaction (Tx2) to present at least one data item to a locking script (LS1) of another transaction (Tx1) so as to provide a result on a stack; generating a further unlocking script (ULS2) which comprises the result provided on the stack; presenting the further unlocking script (ULS2) to a further locking script (LS2) such that the result from the stack is provided as input to the further locking script.


