IP Library Granted Patent US 11,978,043
Granted Patent B2
US 11,978,043 · App. 16/645,437 · Granted May 7, 2024

Time lock technique for securing a resource on a blockchain

Inventor: Craig Steven Wright (London, GB)
Assignee: nChain Licensing AG
G06Q20/3829G06Q20/40155H04L9/0643H04L9/3236G06Q2220/00H04L9/50
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,978,043
App. No.
16/645,437
Granted
May 7, 2024
Kind
B2
Abstract

The invention comprises a solution for securing an output (UTXO) in a single blockchain (e.g. Bitcoin) transaction (TX) so that it can only be unlocked by an authorised party at an allowed time, and in accordance with external data supplied to the transaction's locking script. The invention may comprise two steps which are implemented within a redeem script provided within the UTXO's locking script: 1) Calculation of a time-related value (which we will call T supplied ) using the external data provided; and 2) use of the calculated T supplied value in a time lock technique to ensure that unlocking occurs at a time pre-determined time. The invention allows external data to be introduced into the time lock control of a transaction on the blockchain. It also includes a technique for combining absolute and relative time locks (e.g. CLTV and CSV as known in the Bitcoin protocol).

Claims (71)

1. A method to secure or unlock an output (UTXO) in a blockchain transaction (TX 0 ), comprising:

using a variable time lock mechanism to control or influence a time T when the output (UTXO) can be unlocked,

wherein the variable time lock mechanism uses a value (T supplied ) that is generated upon provision of a specific value for an input (A) in a form of data which is subsequently supplied by a source external to said blockchain transaction (TX 0 ) and as a result of a calculation that uses the input (A),

wherein the calculation and the variable time lock mechanism are provided in a locking script associated with the output (UTXO), and wherein the input (A) used to determine the value (T supplied ) is provided via an unlocking script associated with an input (In) in a further blockchain transaction (TX 1 ) that is different to the blockchain transaction (TX 0 ) which the calculation and the variable time lock mechanism are provided in,

wherein a controlled resource associated with the output (UTXO) is unlocked in response to ensuring, by the variable time lock mechanism based on the value (T supplied ), that a requirement of a pre-determined time range is met within which the output (UTXO) is expected to be unlocked,

wherein the variable time lock mechanism comprises a portion of code which includes:

NOT[T supplied (CLTV)−1]; or

T supplied (CLTV) AND NOT(NOT[T supplied (CLTV))−1]); or

T supplied (CLTV) AND NOT(NOT[T supplied (CLTV))−1]) AND T supplied (CSV); and

wherein:

CLTV is a CheckLockTimeVerify operation code (opcode),

CSV is a CheckSequenceVerify opcode, and

using the variable time lock mechanism is based at least in part on a hash function operated on the input (A).

2. A method according to claim 1 , wherein:

the source that supplies the input (A) is external to a locking script (LS) which is associated with the output (UTXO).

3. A method according to claim 1 , wherein:

the variable time lock mechanism only permits unlocking of the output (UTXO) when a desired time or range of times has been reached.

4. A method according to claim 1 , wherein:

the calculation comprises a mathematical operator, and

the calculation operates upon a plurality of operands.

5. A method according to claim 4 , wherein at least one of the operands is a hash function.

6. A method according to claim 1 , wherein:

the variable time lock mechanism comprises a Bitcoin CSV and/or CL TV operation, or other functionally similar operation from a blockchain protocol other than Bitcoin.

7. A method according to claim 1 , wherein:

the value (T supplied ) relates to, comprises or represents:

at least one block number or height, or a range thereof; or

a time-stamp, numeric representation of a specific time; or

a range thereof.

8. A method according to claim 1 , further comprising a step of:

using a portion of logic to process, operate on or use the input (A) prior to it being used in the calculation, wherein:

i) the portion of logic is provided in a locking script associated with the output (UTXO); and/or

ii) the portion of logic comprises at least one Boolean operation.

9. A method according to claim 1 , and further comprising a step of:

using the variable time lock mechanism to evaluate the result of a conditional operation such that an event is triggered when the conditional operation evaluates to TRUE.

10. A method to secure an output (UTXO) in a blockchain transaction (TX 0 ), comprising:

i) providing a first input (A) in a form of data to a calculation, to output a result (T supplied ), and/or providing or using a calculation to generate a result (T supplied ) based upon a first input (A) subsequently supplied by a source external to said blockchain transaction (TX 0 ); and

ii) using the result (T supplied ) as a parameter to a variable time lock mechanism arranged to control or influence when the output (UTXO) can be unlocked by:

providing the calculation and the variable time lock mechanism in a locking script associated with the output (UTXO);

providing the first input (A) via an unlocking script associated with a second input (In) in a further blockchain transaction (TX 1 ); and

unlocking a controlled resource associated with the output (UTXO) in response to ensuring, by the variable time lock mechanism based on the result (T supplied ) that a requirement of a pre-determined time range is met within which the output (UTXO) is expected to be unlocked,

wherein the variable time lock mechanism comprises a portion of code which includes:

NOT[T supplied (CLTV)−1]); or

T supplied (CLTV) AND NOT(NOT[T supplied (CLTV)−1]); or

T supplied (CLTV) AND NOT(NOT[T supplied (CLTV)−1]) AND

T supplied (CSV); and

wherein:

CLTV is a CheckLockTimeVerify operation code (opcode);

CSV is a CheckSequenceVerify opcode; and

using the variable time lock mechanism is based at least in part on a hash function operated on the first input (A).

11. A method of securing or unlocking an output (UTXO) in a blockchain transaction (TX 0 ) until a particular time or period of time, comprising the step of:

using a time-based value (T supplied ) as a first input to a variable time lock mechanism, wherein:

the variable time lock mechanism comprises a combination of CLTV and CSV operations or functionally similar/equivalent operations dependent upon a blockchain protocol being used;

the variable time lock mechanism comprises a portion of code which includes:

NOT[T supplied (CLTV)−1]); or

T supplied (CLTV) AND NOT(NOT[T supplied (CLTV)−1]); or

T supplied (CLTV) AND NOT(NOT[T supplied (CLTV)−1]) AND

T supplied (CSV);

wherein:

CLTV is a CheckLockTimeVerify operation code (opcode),

CSV is a CheckSequenceVerify opcode;

the time-based value (T supplied ) is generated, upon provision of a specific value for a second input (A) in a form of data and subsequently supplied by a source external to said blockchain transaction (TX 0 ) and as a result of a calculation that uses the second input (A), wherein using the variable time lock mechanism is based at least in part on a hash function operated on the second input (A);

the calculation and the variable time lock mechanism are provided in a locking script associated with the output (UTXO) and the second input (A) is provided via an unlocking script associated with a third input (In) in a further blockchain transaction (TX 1 ); and

a controlled resource associated with the output (UTXO) is unlocked in response to ensuring, by the variable time lock mechanism based on the time-based value (T supplied ) that a requirement of a pre-determined time range is met within which the output (UTXO) is expected to be unlocked.

12. A computer-implemented system, comprising:

a processor; and

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

13. 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 at least perform the method of claim 1 .

14. A computer-implemented system, comprising:

a processor; and

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

15. 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 at least perform the method of claim 11 .

Assignments (2)
CHANGE OF NAME Recorded May 7, 2023
From: NCHAIN HOLDINGS LTD
To: NCHAIN LICENSING AG
Reel/Frame 063560/0333 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2020
From: WRIGHT, CRAIG
To: NCHAIN HOLDINGS LTD
Reel/Frame 052043/0967 →
Priority Claims (2)
GB 1714517 · Sep 8, 2017 · national
WO PCT/IB2017/055430 · Sep 8, 2017 · international
Continuity (1)
Related Publication 20200279256A1 · Sep 3, 2020