IP Library Granted Patent US 11,087,322
Granted Patent B2
US 11,087,322 · App. 16/472,174 · Granted Aug 10, 2021

Computer-implemented systems and methods to enable complex functionality on a blockchain while preserving security-based restrictions on script size and opcode limits

Inventor: Stephane Vincent (Luxembourg, LU)
Assignee: nChain Licensing AG
G06Q20/401G06F9/466G06Q20/065G06Q20/389H04L9/06H04L9/0643H04L9/3239H04L9/3247H04L2209/38H04L2209/56
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,087,322
App. No.
16/472,174
Granted
Aug 10, 2021
Kind
B2
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 first locking script (LS 1 ) of another transaction (Tx 1 ) so as to provide a result on a stack; generating a further unlocking script (ULS 2 ) associated with a second input (In 2 ) and comprising the result from the stack; wherein the second input (In 2 ) is provided in a further blockchain transaction (Tx 3 ); 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. Preferably, the locking script (LS 1 ) and further locking script (LS 2 ) are associated with outputs in different blockchain transactions.

Claims (34)

1. A system to use a plurality of blockchain transactions to execute a computer-implemented task, the system comprising: one or more processors; and

memory encoding instructions executable by the one or more processors to cause the system to perform operations comprising:

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 first locking script (LS 1 ) of another transaction (Tx 1 ) so as to provide a result on a stack;

generating a further unlocking script (ULS 2 ) associated with a second input (In 2 ) and comprising the result from the stack, wherein the second input (In 2 ) is provided in a further blockchain transaction (Tx 3 ), and wherein the locking script (LS 1 ) and further locking script (LS 2 ) are associated with outputs in different blockchain transactions; 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.

2. A system according to claim 1 wherein:

the unlocking script (ULS 1 ) and further unlocking script (ULS 2 ) are associated with inputs in different blockchain transactions.

3. A system according claim 1 wherein the operations further comprise:

using the at least one data item in the execution of a calculation or sequence of instructions provided within the first locking script (LS 1 ).

4. A system according to claim 1 wherein the operations further comprise:

using the result provided on the stack in the execution of a calculation or sequence of instructions provided within the further locking script (LS 2 ).

5. A system method according to claim 1 and further comprising the step of wherein the operations further comprise:

obtaining the result from the stack.

6. A system according to claim 1 wherein the operations further comprise:

using a blockchain client to obtain the result from the stack, wherein the blockchain client is a Bitcoin client.

7. A system according to claim 1 wherein the operations further comprise:

validating the blockchain transaction (Tx 2 ) and/or the other transaction (Tx 1 ), and/or further transaction (Tx 3 ) to generate the result on the stack.

8. A system according to claim 1 wherein the operations further comprise:

obtaining the result from the stack and inserting the result into an unlocking script after a return command or instruction.

9. A system according to claim 8 wherein the return command or instruction is a Bitcoin OP_RETURN opcode.

10. A system according to claim 1 wherein:

presenting the further unlocking script (ULS 2 ) to a further locking script (LS 2 ) provides a further result on the stack, or on a different stack.

11. A system according to claim 1 wherein the operations further comprise:

submitting the blockchain transaction (Tx 2 ) and/or other blockchain transaction (Tx 1 ) and/or further transaction (Tx 3 ) to a blockchain network.

12. A system according to claim 1 wherein:

the at least one data item is provided as metadata within the unlocking script (ULS 1 ); and/or

the result is provided as metadata within the further unlocking script (ULS 2 ).

13. A system according to claim 1 wherein the operations further comprise:

performing one or more of the steps of claim 1 more than once.

14. A system according to claim 1 wherein the plurality of blockchain transactions are for a blockchain, and wherein:

the blockchain is a consensus-based, distributed, electronic ledger; and/or

the blockchain is a Bitcoin blockchain; and/or

one, some or all of the plurality of blockchain transactions are Bitcoin transactions; and/or

the method is arranged for execution on the Bitcoin blockchain.

Assignments (4)
CHANGE OF NAME Recorded Apr 14, 2021
From: NCHAIN HOLDINGS LTD
To: NCHAIN LICENSING AG
Reel/Frame 055955/0459 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2019
From: VINCENT, STEPHANE
To: NCHAIN HOLDINGS LTD
Reel/Frame 049544/0864 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2019
From: VINCENT, STEPHANE
To: NCHAIN HOLDINGS LTD
Reel/Frame 049544/0884 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2019
From: VINCENT, STEPHANE
To: NCHAIN HOLDINGS LTD
Reel/Frame 049544/0911 →
Priority Claims (3)
GB 1621827 · Dec 21, 2016 · national
GB 1621830 · Dec 21, 2016 · national
GB 1621831 · Dec 21, 2016 · national
Continuity (1)
Related Publication 20190354976A1 · Nov 21, 2019
Cited By (2)
US 12,327,241 US 12,567,063