Computer-implemented systems and methods to enable complex functionality on a blockchain while preserving security-based restrictions on script size and opcode limits
Abstract
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, comprising the steps: using an unlocking script (ULS 1 ) associated with a first input (In 1 ) in a blockchain transaction (Tx 2 ) to present at least one data item to a locking script (LS 1 ) of another transaction (Tx 1 ) so as to provide a result on a stack; amending the blockchain transaction (Tx 2 ) to include a second input (In 2 ); generating a further unlocking script (ULS 2 ) associated with the second input (In 2 ), the further unlocking script (ULS 2 ) comprising the result from the stack; and presenting the further unlocking script (ULS 2 ) to a further locking script (LS 2 ) such that the result from the stack is provided as input to the further locking script (LS 2 ). Preferably, the locking script (LS 1 ) and the further locking script (LS 2 ) are provided in association with different outputs within the same blockchain transaction (Tx 1 ).
Claims
exact text as granted — not AI-modified1 - 16 . (canceled)
17 . A method comprising:
obtaining an unlocking script (ULS 2 ) associated with an input (In 2 ), the unlocking script (ULS 2 ) comprising a result from a stack-based data structure, wherein the result is based on an output from a first blockchain transaction (Tx 1 ) resulting from a different unlocking script (ULS 1 ) associated with a different output (In 1 ), the unlocking script (ULS 2 ) and unlocking script (ULS 1 ) provided within a blockchain transaction (Tx 2 ); and presenting the unlocking script (ULS 2 ) to an associated locking script (LS 2 ) such that the result from the stack-based data structure is provided as input to the locking script (LS 2 ), wherein the locking script (LS 2 ) is provided within a different blockchain transaction (Tx 1 ).
18 . The method according to claim 17 , wherein a blockchain including the blockchain transaction is of a consensus-based, distributed, electronic ledger.
19 . The method according to claim 17 , further comprising:
using a data item in execution of a calculation or sequence of instructions provided within a different locking script (LS 1 ) associated with the different unlocking script (ULS 1 ).
20 . The method according to claim 19 , wherein:
the result is provided as metadata within the unlocking script (ULS 2 ).
21 . The method according to claim 17 , wherein:
the result from the stack-based data structure is provided as input to further locking script (LS 2 ), wherein the different locking script (LS 1 ) and the locking script (LS 2 ) are provided in association with different outputs within the different blockchain transaction (Tx 1 ).
22 . The method according to claim 17 , further comprising:
obtaining the result from the stack-based structure as metadata within the unlocking script (ULS 2 ).
23 . The method according to claim 17 , further comprising:
validating one or more of the blockchain transaction (Tx 2 ) and the different transaction (Tx 1 ) to generate the result from the stack-based structure.
24 . The method according to claim 17 , wherein validating the one or more of the blockchain transaction (Tx 2 ) and the different transaction (Tx 1 ) includes:
obtaining, by an agent, a value from the stack-based data structure; and adding, by the agent, the value to a script opcode.
25 . The method according to claim 17 , wherein:
obtaining the different unlocking script (ULS 1 ) and the unlocking script (ULS 2 ) in association with different inputs (In 1 In 2 ) within the blockchain transaction (Tx 2 ).
26 . The method according to claim 17 , wherein:
the locking script (LS 1 ) and the further locking script (LS 2 ) are provided in association with different outputs within the different blockchain transaction (Tx 1 ).
27 . The method according to claim 17 , wherein:
presenting the unlocking script (ULS 2 ) to the locking script (LS 2 ) provides a further result on the stack-based structure.
28 . The method according to claim 17 , further comprising:
using a blockchain client to obtain the result from the stack-based structure.
29 . The method according to claim 17 , and further comprising:
submitting one or more of the blockchain transaction (Tx 2 ) and different blockchain transaction (Tx 1 ) to a blockchain network.
30 . The method according to claim 17 , wherein:
the blockchain transaction (Tx 2 ) is modified to include a second input (ln 2 ).
31 . The method according to claim 17 , and further comprising:
using the method to compute a final result, and using the final result to control a process performed off the blockchain.
32 . A computer-implemented system comprising:
a processor; and memory storing non-transitory computer-readable instructions that, when executed by the processor, cause the processor to at least:
obtain an unlocking script (ULS 2 ) associated with an input (In 2 ), the unlocking script (ULS 2 ) comprising a result from a stack-based data structure, wherein the result is based on an output from a first blockchain transaction (Tx 1 ) resulting from a different unlocking script (ULS 1 ) associated with a different output (In 1 ), the unlocking script (ULS 2 ) and unlocking script (ULS 1 ) provided within a blockchain transaction (Tx 2 ); and
present the unlocking script (ULS 2 ) to an associated locking script (LS 2 ) such that the result from the stack-based data structure is provided as input to the locking script (LS 2 ), wherein the locking script (LS 2 ) is provided within a different blockchain transaction (Tx 1 ).
33 . The computer-implemented system according to claim 32 , wherein the instructions include further instructions that cause the processor to:
use a data item in the execution of a calculation or sequence of instructions provided within a different locking script (LS 1 ) associated with the different unlocking script (ULS 1 ).
34 . The computer-implemented system according to claim 32 , wherein:
the result from the stack-based data structure is provided as input to further locking script (LS 2 ), wherein the different locking script (LS 1 ) and the locking script (LS 2 ) are provided in association with different outputs within the different blockchain transaction (Tx 1 ).
35 . The computer-implemented system according to claim 32 , wherein the instructions include further instructions that cause the processor to:
obtain the result from the stack-based structure as metadata within the unlocking script (ULS 2 ); and obtain the different unlocking script (ULS 1 ) and the unlocking script (ULS 2 ) in association with different inputs (In 1 In 2 ) within the blockchain transaction (Tx 2 ).Join the waitlist — get patent alerts
Track US2022398579A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.