CONSTRAINTS ON INPUTS OF AN UNLOCKING TRANSACTION IN A BLOCKCHAIN
Trustless deterministic state machines can be implemented using a blockchain infrastructure and state machines can run concurrently over more than one blockchain transaction. The transactions can be done in a Bitcoin blockchain ledger. A unlocking transaction constraint that constrains a unlocking transaction to include a transaction input that references a previous transaction output is determined. A redeemable transaction is created to include a transaction output that includes an amount and a transaction locking script that includes the unlocking transaction constraint, with unlocking the amount being contingent upon execution of at least one unlocking script of the unlocking transaction satisfying the unlocking transaction constraint. The redeemable transaction is caused to be validated at a node of a blockchain network.
1 . A computer-implemented method, comprising:
determining an unlocking transaction constraint that constrains a unlocking transaction to include a unlocking transaction input that references a previous transaction output;
creating a redeemable transaction that includes:
a transaction output that includes a redeemable amount; and
a transaction locking script that includes the unlocking transaction constraint, wherein unlocking the redeemable amount is contingent upon execution of at least one unlocking script of the unlocking transaction satisfying the unlocking transaction constraint; and
causing the redeemable transaction to be validated at a node of a blockchain network.
2 . The computer-implemented method according to claim 1 , wherein the unlocking transaction constraint further constrains the unlocking transaction input to include a particular hash value.
3 . The computer-implemented method according to claim 2 , wherein the particular hash value encodes an identifier that references the previous transaction output.
4 . The computer-implemented method according to claim 1 wherein the unlocking transaction constraint further constrains a locking script of the unlocking transaction to include a set of script elements duplicated from the transaction locking script.
5 . The computer-implemented method according to claim 1 wherein the redeemable transaction encodes a contract having a plurality of states.
6 . The computer-implemented method according to claim 1 further comprising determining a redeemable value for an output of the unlocking transaction.
7 . The computer-implemented method according to claim 1 wherein:
the unlocking transaction constraint includes a particular locking script element from the previous transaction output; and
as a result of the unlocking transaction input including the particular locking script element, the execution of the at least one unlocking script satisfies the unlocking transaction constraint.
8 . The computer-implemented method according to claim 7 , wherein the particular locking script element encodes a cryptographic key of a particular entity.
9 . The computer-implemented method according to claim 1 wherein:
the unlocking transaction constraint is a first unlocking transaction constraint; and
the method further comprises:
determining a second unlocking transaction constraint to further constrain the unlocking transaction; and
creating a second redeemable transaction that includes:
a second amount; and
a second locking script that includes the second unlocking transaction constraint, wherein unlocking a second amount is further contingent upon execution of the at least one unlocking script satisfying the second unlocking transaction constraint.
10 . The computer-implemented method according to claim 9 , wherein:
the locking script is a first locking script;
the at least one unlocking script includes a first unlocking script and a second unlocking script;
the first unlocking transaction constraint constrains the first unlocking script to include at least a portion of the first locking script; and
the second unlocking transaction constraint constrains the second unlocking script to include at least a portion of the second locking script.
11 . The computer-implemented method according to claim 10 , wherein:
the at least a portion of the first locking script includes a cryptographic key associated with a first entity; and
and the at least a portion of the second locking script includes a cryptographic key associated with a second entity different from the first entity.
12 . The computer-implemented method according to claim 1 wherein the unlocking transaction constraint further constrains the unlocking transaction to constrain an output of unlocking transaction.
13 . The computer-implemented method according to claim 12 , wherein:
the unlocking transaction constraints encodes another contract distinct from the contract; and
unlocking the redeemable amount is contingent upon the other contract being implemented in the output of the unlocking transaction.
14 . 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 according to claim 1 .
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 computer-implemented method of claim 1 .
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 according to claim 2 .
17 . 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 according to claim 3 .
18 . 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 according to claim 4 .
19 . 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 according to claim 5 .
20 . 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 according to claim 6 .