IP Library › Granted Patent US 11,915,238
Granted Patent B2
US 11,915,238 · App. 16/772,145 · Granted Feb 27, 2024

Blockchain-implemented systems and methods for concurrent bytecode interpretation

Inventors: Ying Chan (Cambridge, GB); Dean Kramer (London, GB)
Assignee: nChain Licensing AG
G06Q20/401G06Q20/0658G06Q20/405H04L9/32
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,915,238
App. No.
16/772,145
Granted
Feb 27, 2024
Kind
B2
Abstract

Computer implemented methods are provided that create and/or validate a spending blockchain transaction that includes i) a plurality of locking scripts each representing an instance of an execution thread (which can be execution threads that are forked from an execution thread represented by a locking script of a previous blockchain transaction and/or execution threads of at least one previous blockchain transaction that are managed and/or controlled for inter-thread communication and control) or ii) a locking script representing an instance of an execution thread joined from a plurality of execution threads represented at least one previous blockchain transaction. Once created and/or validated, the spending blockchain transaction can be communicated on a blockchain network for storage in a blockchain ledger. The blockchain transactions can implement thread-specific locking scripts and associated fork, join and barrier constructs for concurrent or asynchronous threads of execution. The transactions can be validated and stored in a blockchain ledger. The blockchain transactions can be used as part of a smart contract.

Claims (49)

1. A computer-implemented method comprising:

storing a previous blockchain transaction in a blockchain maintained by a blockchain network, the previous blockchain transaction including a locking script representing an instance of a parent execution thread;

creating a first blockchain transaction that includes a plurality of locking scripts each representing an instance of a child execution thread which is forked from the parent execution thread in response to a corresponding first construct or operation included in the locking script of the previous blockchain transaction;

validating the first blockchain transaction by matching at least one of the plurality of locking scripts of the first blockchain transaction to the locking script of the previous blockchain transaction; and

communicating the first blockchain transaction on the blockchain network for storage in the blockchain, wherein the first blockchain transaction points to the locking script of the previous blockchain transaction which represents the parent execution thread.

2. The computer-implemented method of claim 1 , wherein

the locking script of the previous blockchain transaction includes a bytecode sequence and optionally interpreter code, and at least one of the plurality of locking scripts of the first blockchain transaction includes a copy of the bytecode sequence and optionally a copy of the interpreter code of the locking script of the previous blockchain transaction, or

the locking script of the previous blockchain transaction includes a bytecode sequence and optionally interpreter code, and the plurality of locking scripts of the first blockchain transaction include i) a copy of the bytecode sequence and optionally a copy of the interpreter code of the locking script of the previous blockchain transaction or ii) a distinct bytecode sequence and optionally interpreter code that belongs to a collection of valid locking scripts.

3. The computer-implemented method of claim 2 , further comprising:

validating the first blockchain transaction by matching the bytecode sequence and optionally interpreter code for each one of the plurality of locking scripts of the first blockchain transaction to the bytecode sequence and optionally interpreter code of the locking script of the previous blockchain transaction, whereby validation of the first blockchain transaction is determined based on results of such matching; and/or

validating the first blockchain transaction by generating a hash data value that corresponds the locking script of the previous blockchain transaction, adding the hash data value to a collection of hash data values that correspond to the collection of valid locking scripts, and comparing a hash data value generated for each locking script of the first blockchain transaction to the collection of hash data values, whereby validation of the first blockchain transaction is determined based on results of such hash data value comparisons; and/or

validating the first blockchain transaction by checking execution state information of child execution thread instances represented by the plurality of locking scripts of the first blockchain transaction.

4. The computer-implemented method of claim 2 , further comprising:

validating a second blockchain transaction by matching a locking script of at least one other previous blockchain transaction to the locking script of the second blockchain transaction; and/or

validating the second blockchain transaction by matching the bytecode sequence and optionally interpreter code of a locking script of the at least one other previous blockchain transaction to the bytecode sequence and optionally interpreter code of the locking script of the second blockchain transaction, whereby validation of the second blockchain transaction is determined based on the results of such matching; and/or

validating the second blockchain transaction by generating a hash data value that corresponds a locking script of the at least one other previous blockchain transaction, adding the hash data value to a collection of hash data values that correspond to the collection of valid locking scripts, and comparing a hash data value generated for the locking script of the second blockchain transaction to the collection of hash data values, whereby validation of the second blockchain transaction is determined based on results of such hash data value comparisons; and/or

validating the second blockchain transaction by checking execution state information of the child execution thread represented by the locking script of the second blockchain transaction.

5. The computer-implemented method of claim 2 , further comprising:

validating a third blockchain transaction by matching a locking script of at least one other previous blockchain transaction to a locking script of the third blockchain transaction; and/or

validating the third blockchain transaction by matching the bytecode sequence and optionally interpreter code of a locking script of at least one other previous blockchain transaction to the bytecode sequence and optionally interpreter code of a locking script of the third blockchain transaction, whereby validation of the third blockchain transaction is determined based on the results of such matching; and/or

validating the third blockchain transaction by generating a hash data value that corresponds a locking script of the at least one other previous blockchain transaction, adding the hash data value to a collection of hash data values that correspond to the collection of valid locking scripts, and comparing a hash data value generated for a locking script of the third blockchain transaction to the collection of hash data values, whereby validation of the third blockchain transaction is determined based on results of such hash data value comparisons; and/or

validating the third blockchain transaction by checking execution state information of the execution threads, wherein the execution threads are managed and controlled by the third blockchain transaction.

6. The computer-implemented method of claim 1 , wherein:

the plurality of locking scripts of the first blockchain transaction each include execution state information for a respective child execution thread.

7. The computer-implemented method of claim 1 , further comprising:

creating and/or validating a second blockchain transaction that includes a locking script representing an instance of a child execution thread joined from a plurality of parent execution thread instances represented by locking scripts of at least one other previous blockchain transaction stored in the blockchain in response to a corresponding second construct or operation included in at least one locking script of the at least one other previous blockchain transaction; and

communicating the second blockchain transaction on the blockchain network for storage in the blockchain.

8. The computer-implemented method of claim 7 , wherein:

the second blockchain transaction points to a plurality of locking scripts of the at least one other previous blockchain transaction, wherein the plurality of locking scripts represent the plurality of parent execution thread instances joined by the second block transaction.

9. The computer-implemented method of claim 8 , wherein:

the plurality of locking scripts of the at least one other previous blockchain transaction each include a bytecode sequence and optionally interpreter code, and the locking script of the second blockchain transaction includes a copy of the bytecode sequence and optionally the interpreter code of one of the locking scripts of the one or more previous blockchain transaction, or

the plurality of locking scripts of the at least one other previous blockchain transactions each include a bytecode sequence and optionally interpreter code, and the locking script of the second blockchain transaction includes i) a copy of the bytecode sequence and optionally the interpreter code of one of the locking scripts of the one or more previous blockchain transaction, or ii) a distinct bytecode sequence and optionally interpreter code that belongs to a collection of valid locking scripts.

10. The computer-implemented method of claim 7 , wherein:

the locking script of the second blockchain transaction includes execution state information for the child execution thread joined from the plurality of parent execution thread instances.

11. A computer-implemented method according to claim 7 , wherein the first blockchain transaction and/or the second blockchain transaction and/or a third blockchain transaction is part of a smart contract.

12. The computer-implemented method of claim 1 , further comprising:

creating and/or validating a third blockchain transaction that includes a plurality of locking scripts representing execution threads of at least one other previous blockchain transaction stored in the blockchain for inter-thread communication and control in response to a corresponding third construct or operation included in at least one locking script of the least one other previous blockchain transaction; and

communicating the third blockchain transaction on the blockchain network for storage in the blockchain.

13. The computer-implemented method of claim 12 , wherein:

the third blockchain transaction points to a plurality of locking scripts of the at least one other previous blockchain transaction, wherein the plurality of locking scripts represent the plurality of execution threads that are managed or controlled by the third blockchain transaction.

14. The computer-implemented method of claim 13 , wherein:

the plurality of locking scripts of the at least one other previous blockchain transaction each include a bytecode sequence and optionally interpreter code, and the plurality of locking scripts of the third blockchain transaction includes a copy of the bytecode sequence and optionally the interpreter code of one of the locking scripts of the at least one other previous blockchain transaction, or

the plurality of locking scripts of the at least one other previous blockchain transaction each include a bytecode sequence and optionally interpreter code, and the locking scripts of the third blockchain transaction includes i) a copy of the bytecode sequence and optionally the interpreter code of one of the locking scripts of the at least one other previous blockchain transaction, or ii) a distinct bytecode sequence and optionally interpreter code that belongs to a collection of valid locking scripts.

15. The computer-implemented method of claim 12 , wherein:

the locking scripts of the third blockchain transaction include execution state information for the execution threads managed and controlled by the third blockchain transaction.

16. A system, comprising:

a processor; and

memory including executable instructions that, as a result of execution by the processor, causes the system to perform the computer-implemented method of claim 1 .

17. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by a processor of a computer system, cause the computer system to perform the computer-implemented method of claim 1 .

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE SECOND INVENTOR'S EXECUTION DATE FROM 08/07/2017 TO 01/08/2017 PREVIOUSLY RECORDED AT REEL: 53221 FRAME: 460. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 8, 2024
From: CHAN, YING; KRAMER, DEAN
To: NCHAIN HOLDINGS LTD
Reel/Frame 066529/0264 →
CHANGE OF NAME Recorded May 7, 2023
From: NCHAIN HOLDINGS LTD
To: NCHAIN LICENSING AG
Reel/Frame 063560/0287 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2020
From: KRAMER, DEAN; CHAN, YING
To: NCHAIN HOLDINGS LTD
Reel/Frame 053221/0460 →
Priority Claims (1)
GB 1720767 · Dec 13, 2017 · national
Continuity (1)
Related Publication 20210073811A1 · Mar 11, 2021
Cited By (1)
US 12,626,252