| CPC G06Q 20/389 (2013.01) [G06F 21/00 (2013.01); G06Q 20/02 (2013.01); G06Q 20/065 (2013.01); G06Q 20/3678 (2013.01); G06Q 20/3827 (2013.01); G06Q 20/3829 (2013.01); H04L 9/0643 (2013.01); H04L 9/30 (2013.01); H04L 9/3247 (2013.01); H04L 9/3252 (2013.01); G06F 2221/2145 (2013.01); G06Q 2220/00 (2013.01); H04L 2209/56 (2013.01)] | 15 Claims |

|
1. A computer-implemented method for controlling the performance of a contract, the method implemented by a processing resource, the method comprising:
storing a contract in a Distributed Hash Table (DHT) comprising a plurality of key-value pairs, the contract being associated with a contract of computer software between a first user (U1) and a second user (U2),
determining, by the processing resource, a key and a key value pair based on the computer software and the contract;
receiving at the processing resource over a communications network, a transaction comprising a transfer of a token from an agent (A) to the first user (U1) or the second user (U2), the transaction comprising metadata that includes an identifier indicative of a location in the DHT where the contract is stored;
querying, by the processing resource, a peer-to-peer distributed ledger to determine whether the transaction comprises at least one unspent output (UTXO) wherein querying a peer-to-peer distributed ledger comprises scanning the peer-to-peer distributed ledger to identify the at least one unspent output (UTXO) to determine whether the at least one unspent output (UTXO) has been spent or not; and
modifying, by the processing resource, performance of the contract, wherein the modifying comprises:
terminating the contract in the event that the at least one unspent output (UTXO) cannot be identified from the peer-to-peer distributed ledger, or
maintaining the contract in the event that the at least one unspent output (UTXO) is identified from the peer-to-peer distributed ledger, wherein the step of terminating the license comprises broadcasting a further transaction to spend the at least one unspent output (UTXO), wherein in the step of broadcasting the further transaction, the further transaction comprises an instruction to spend the at least one unspent output (UTXO) at a specified date and/or time, wherein the further transaction comprises:
an input that spends the at least one unspent output (UTXO); and
a redeem script comprising a signature, the metadata, an agent public key associated with the agent, and a first user public key associated with the first users.
|