Abstract
The invention provides a secure method for exchanging entities via a blockchain. The invention incorporates tokenisation techniques, and also techniques for embedding metadata in a redeem script of a blockchain transaction. Embodiment(s) provide a computer implemented method of performing an exchange of entities, the method comprising: receiving, from a first user over a communications network, a first invitation to perform the exchange, the first invitation comprising a first set of metadata associated with the invitation, wherein the first set of metadata comprises an indication of entities to be exchanged and a first set of conditions for the exchange; generating a first script, the first script comprising: the first set of metadata, a first user public key (P1A) associated with the first user, wherein the first user public key (P1A) is a cryptographic pair with a first user private key (V1A), and a first third-party public key (P1T) associated with a first third-party, wherein the first third-party public key (P1T) is a cryptographic pair with a first third-party private key (V1T); hashing the first script to generate a first script hash; publishing the first script and the first script hash on a distributed hash table (DHT) distributed across a first network; and broadcasting, on a second network, a first invitation transaction for inclusion on a peer-to-peer (P2P) distributed ledger, the first invitation transaction comprising an indication of a first quantity of a cryptocurrency to be transferred and the first script hash.
Claims
- A computer implemented method of performing an exchange of entities between a first user and a second user, the method comprising:
- generating a first invitation transaction (Tx) comprising an output (UTXO)
- associated with:
- i) an encrypted, electronically transferrable digital asset; and
- ii) a hash of a script comprising
- a first set of metadata comprising:
- - an indication of entities to be exchanged; and
- - a first set of conditions for the exchange;
- and
- a public cryptographic key (P1A) associated with the first user.
- A method according to claim 1, and further comprising the steps: receiving, from a first user, a first invitation to perform the exchange, the first invitation comprising the first set of metadata associated with the invitation, wherein the first set of metadata comprises an indication of entities to be exchanged and a first set of conditions for the exchange; generating a first script, the first script comprising:
- the first set of metadata,
- a first user public key (PI A) associated with the first user, wherein the first user public key (P1A) is a cryptographic pair with a first user private key (VIA), and
- a first third-party public key (PIT) associated with a first third-party, wherein the first third-party public key (PIT) is a cryptographic pair with a first third-party private key (V1T); hashing the first script to generate a first script hash; sending, over a first network, the first script and the first script hash; and sending, over a second network, a first invitation transaction for inclusion on a peer-to-peer (P2P) distributed ledger, the first invitation transaction comprising an indication of a first quantity of an encrypted, electronically transferrable digital asset to be transferred and the first script hash.
- The method of claim 2 or 1, wherein the sending over the first network comprises publishing the first script and the first script hash on a distributed hash table (DHT) distributed across a first network.
- The method of any one of the preceding claims, further comprising: receiving, over a communications network, a second invitation to perform the exchange from a second user, the second invitation comprising a second set of metadata associated with the invitation, wherein the second set of metadata comprises the indication of entities to be exchanged and a second set of conditions for the exchange, one or more of the second set of conditions matching one or more of the first set of conditions; generating a second script, the second script comprising:
- the second set of metadata,
- a second user public key (P2A) associated with the second user, wherein the second user public key (P2A) is a cryptographic pair with a second user private key (V2A), and
- a second third-party public key (P2T) associated with a second third- party, wherein the second third-party public key (P2T) is a cryptographic pair with a second third-party private key (V2T); hashing the second script to generate a second script hash; broadcasting, on the second network, a second invitation transaction for inclusion on the P2P distributed ledger, the second invitation transaction comprising an indication of a second quantity of an encrypted, electronically transferrable digital asset to be transferred and the second script hash.
- The method of claim 4, further comprising sending, on a third network, the second script and the second script hash.
- The method of claim 5, wherein the first network and the third network are the same network and wherein the sending on the third network comprises publishing the second script and the second script hash on the DHT.
- The method of any one of claims 4 to 6, further comprising: generating a first exchange transaction for inclusion on the P2P distributed ledger, the first exchange transaction comprising:
- the first script,
- the first user private key (VIA),
- the first third-party private key (PIT),
- a first input provided from an output of the first invitation transaction, and
- an first output indicating an first quantity of a first entity to be transferred to the second user; and broadcasting, on the second network, the first exchange transaction.
- The method of claim 7, further comprising: generating a second exchange transaction for inclusion on the P2P distributed ledger, the second exchange comprising:
- the second script,
- the second user private key (V2A), the second third-party private key (P2T),
- a second input provided from an output of the second invitation transaction, and
- a second output indicating a second quantity of a second entity to be transferred to the first user; and broadcasting, on the second network, the second exchange transaction.
- The method of any one of claims 4 to 6, further comprising:
- generating a first exchange transaction for inclusion on the P2P distributed ledger, the first exchange transaction comprising:
- the first script,
- the first user private key (VIA),
- the first third-party private key (PIT),
- the second script,
- the second user private key (V2A),
- the second third-party private key (P2T)
- a first input provided from an output of the first invitation transaction, a second input provided from an output of the second invitation transaction,
- a first output indicating a first quantity of a first entity to be transferred to the second user, and
- a second output indicating a second quantity of a second entity to be transferred to the first user; and
- broadcasting, on the second network, the first exchange transaction.
- The method of claims 7 or 9, wherein generating the first exchange transaction comprises:
- sending the first script to the first user for signing with the first user private key (VIA);
- receiving the first script from the first user signed with the first user private key (VIA); sending the first script signed for signing with the first third-party private key (PIT); and
- receiving the first script from the first third-party signed with the first third- party private key (PIT).
- The method of claim 10 when dependent on claim 9, wherein generating the first exchange transaction comprises:
- sending the first script to the second user for signing with the second user private key (V2A);
- receiving the first script from the second user signed with the second user private key (VIA);
- sending the first script to the second third-party for signing with the second third-party private key (P2T); and
- receiving the first script from the second third-party signed by the second third-party private key (P2T).
- The method of claim 8, wherein generating the second exchange transaction comprises:
- sending the second script to the second user for signing with the second user private key (VIA);
- receiving the second script from the second user signed with the second user private key (VIA);
- sending the second script to the second third-party for signing with the second third-party private key (P2T); and
- receiving the second script from the second third-party signed with the second third-party private key (P2T).
- The method of any one of claims 7 to 12, further comprising sending a prompt to one or more of the first and second users to accept an exchange before generating or broadcasting the first and/or second exchange transactions.
- The method of any of claims 4 to 13, wherein the sending over the first network comprises sending the first script and the first script hash to the second user.
- The method of any preceding claim wherein the P2P distributed ledger is the Bitcoin block chain.
- The method of any one of the preceding claims, wherein the first third-party is an escrow service provider or a token issuer and/or the second third-party is an escrow service provider or a token issuer.
- The method of any one of the preceding claims, further comprising:
- sending a request to the first third-party for the first third-party public key; and receiving the first third-party public key from the first third-party.
- The method of any one of the preceding claims, further comprising:
- sending a request to the second third-party for the second third-party public key; and receiving the second third-party public key from the second third-party.
- The method of any one of the preceding claims, wherein one or more of the first transaction, the second transaction, the third transaction and the fourth transaction is a pay-to-script-hash (P2SH) transaction.
- The method of any one of the preceding claims, wherein one or more of the first redeem script hash and the second redeem script hash is Base58 encoded.
- The method of any one of the preceding claims, wherein the first entity and/or the second entity is one of the following:
- a) bitcoin;
- b) a contract;
- c) goods;
- d) services.
- The method of claim 21 wherein the contract is for one or more of the following:
- a) fiat currency;
- b) title deeds;
- c) tickets;
- d) goods;
- e) services.
- The method of any one of the preceding claims, wherein the first set of conditions and/or the second set of conditions comprise one or more of the following: a) one or more range limits on one or more prices related to the exchange; b) an exchange rate;
- c) a deadline for fulfilment of the first invitation;
- d) a limitation on the geographical area for the exchange to take place.
- The method of any preceding claim where the first and/or second set of metadata is be provided in a redeem script.
- The method of any preceding claim, where the first and/or second set of metadata is provided in the script at a location which is designated in a blockchain protocol as a location for a cryptographic key.
- A processor or group of processors operable to perform the method of any of claims 1 to 22.
- A computer readable medium having stored thereon instructions which, when executed, are operable to perform the method of any of claims 1 to 23.
Applicants
-
Nchain Holdings Ltd
Explore more patents:
Inventors
-
Wright Craig Steven
Explore more patents:
-
Savanah Stephane
Explore more patents:
CPC Classifications
-
G06Q20/065
Explore more patents:
-
G06F16/1834
Explore more patents:
-
G06F16/27
Explore more patents:
-
G06Q20/3829
Explore more patents:
-
H04L9/0643
Explore more patents:
-
H04L9/0861
Explore more patents:
-
H04L9/321
Explore more patents:
-
H04L9/3234
Explore more patents:
-
H04L9/3239
Explore more patents:
-
H04L9/3247
Explore more patents:
-
H04L2209/38
Explore more patents:
-
H04L2209/56
Explore more patents:
IPC Classifications
-
G06Q20/38
Explore more patents:
Document Preview
- Publication: Aug 31, 2017
-
Application:
Feb 14, 2017
IB 2017050818 W
-
Priority:
Feb 23, 2016
GB 201603123 A
-
Priority:
Feb 23, 2016
GB 201603125 A