EP4195127A1 - Computer-implemented methods and systems for validating tokens for blockchain-based cryptocurrencies - Google Patents

Computer-implemented methods and systems for validating tokens for blockchain-based cryptocurrencies Download PDF

Info

Publication number
EP4195127A1
EP4195127A1 EP22208380.0A EP22208380A EP4195127A1 EP 4195127 A1 EP4195127 A1 EP 4195127A1 EP 22208380 A EP22208380 A EP 22208380A EP 4195127 A1 EP4195127 A1 EP 4195127A1
Authority
EP
European Patent Office
Prior art keywords
transaction
token
user
determining
blockchain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP22208380.0A
Other languages
German (de)
French (fr)
Inventor
Craig Steven WRIGHT
Stephane SAVANAH
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nchain Licensing AG
Original Assignee
Nchain Licensing AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nchain Licensing AG filed Critical Nchain Licensing AG
Publication of EP4195127A1 publication Critical patent/EP4195127A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3672Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes initialising or reloading thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/405Establishing or using transaction specific rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/326Payment applications installed on the mobile devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3823Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Definitions

  • the present invention relates generally to distributed ledger technologies such as, but not limited to, the Bitcoin blockchain. Described embodiments relate to security-enhanced systems and methods for validating tokens for blockchain based cryptocurrencies. Some embodiments relate to validating tokens associated with blockchain transactions (TXs) which have not been electronically countersigned by an authorised signatory. Other embodiments relate to systems and computer-implemented control method arranged to enable and improve the transfer and communication of blockchain-implemented tokens between computing nodes.
  • TXs blockchain transactions
  • Other embodiments relate to systems and computer-implemented control method arranged to enable and improve the transfer and communication of blockchain-implemented tokens between computing nodes.
  • blockchain to include all forms of electronic, computer-based, distributed ledgers. These include consensus-based blockchain and transaction-chain technologies, permissioned and un-permissioned ledgers, shared ledgers and variations thereof.
  • the most widely known application of blockchain technology is the Bitcoin ledger, although other blockchain implementations have been proposed and developed. While Bitcoin may be referred to herein for the purpose of convenience and illustration, it should be noted that the invention is not limited to use with the Bitcoin blockchain and alternative blockchain implementations and protocols fall within the scope of the present invention.
  • a blockchain is a peer-to-peer, electronic ledger which is implemented as a computer-based decentralised, distributed system made up of blocks which in turn are made up of transactions.
  • Each transaction is a data structure that encodes the transfer of control of a digital asset between participants in the blockchain system, and includes at least one input and at least one output.
  • Each block contains a hash of the previous block to that blocks become chained together to create a permanent, unalterable record of all transactions which have been written to the blockchain since its inception.
  • Transactions contain small programs known as scripts embedded into their inputs and outputs, which specify how and by whom the outputs of the transactions can be accessed. On the Bitcoin platform, these scripts are written using a stack-based scripting language.
  • a transaction in order for a transaction to be written to the blockchain, it must be i) validated by the first node that receives the transaction - if the transaction is validated, the node relays it to the other nodes in the network; and ii) added to a new block built by a miner; and iii) mined, i.e. added to the public ledger of past transactions.
  • Smart contracts are computer programs designed to automate the execution of the terms of a machine-readable contract or agreement.
  • a smart contract is a machine executable program which comprises rules that can process inputs in order to produce results, which can then cause actions to be performed dependent upon those results.
  • assets may include real property, personal property (including both tangible and intangible property), digital assets such as software, for example, or any other type of asset.
  • digital assets such as software, for example, or any other type of asset.
  • Another area of blockchain-related interest is the use of 'tokens' (or ⁇ coloured coins') to represent and transfer real-world entities via the blockchain.
  • a potentially sensitive or secret item can be represented by the token which has no discernable meaning or value.
  • the token thus serves as an identifier that allows the real-world item to be referenced from the blockchain.
  • the use of tokenisation provides enhanced security and control in respect of the communication, transfer and verification of digital entities on the blockchain.
  • the invention may be described as a verification or authentication method and corresponding system, as it may enable the determination and/or identification of blockchain transactions which comprise or relate to token(s) and which have been digitally signed by an authorised signatory. This may be the token issuer or another party. Security is enhanced as a result of the verification technique.
  • Some embodiments relate to a computer-implemented method of determining the validity of a token associated with a quantity of cryptocurrency.
  • the method may comprise: a second user: receiving, over a communications network, a first transaction comprising a transfer of the token from a first user to the second user; querying a peer-to-peer distributed ledger (blockchain) to determine whether an authenticated transaction associated with the token can be identified, wherein the authenticated transaction comprises a previous transaction associated with the token and wherein the token has been authorised; and responsive to identifying an authenticated transaction, determining that the token is valid.
  • blockchain peer-to-peer distributed ledger
  • querying the peer-to-peer distributed ledger comprises querying the peer-to-peer distributed ledger in response to determining that the token of the first transaction has not been authenticated.
  • determining that the token has not been authenticated comprises determining that a redeem script associated with the token and referenced as an input to the first transaction has not been (cryptographically) signed by an authorised signatory.
  • the token of the authorised transaction may be signed by an authorised signatory.
  • the authorised signatory may comprise at least one of an issuer of the token and a trusted service provider.
  • querying a peer-to-peer distributed ledger comprises: a) determining a previous transaction ID indicated in the first transaction; b) identifying a prior transaction recorded in the peer-to-peer distributed ledger, wherein the transaction ID of the prior transaction corresponds with the determined previous transaction ID; c) determining whether a redeem script of the prior transaction has been signed by an authorised signatory; d) responsive to determining that the redeem script of the prior transaction has been signed by an authorised signatory, identifying the prior transaction as the authorised transaction; e) responsive to determining that the redeem script of the prior transaction has not been signed by an authorised signatory, determining a previous transaction ID indicated in the prior transaction as the previous transaction ID; and identifying a further prior transaction recorded in the peer-to-peer distributed ledger as the prior transaction, wherein a transaction ID of the further prior transaction corresponds with the previous transaction ID; and f) iteratively performing steps c) to e) until no further prior transactions are identified.
  • the invention may comprise performance of one or more of the above steps to: inspect different transactions within respective blocks on the blockchain, starting from an initial or “trigger” transaction, to follow a logical path or hierarchy of transactions until the token's validity is established or at least sufficiently evidenced, or validation fails.
  • the method further comprises responsive to failing to identify an authenticated transaction in the peer-to-peer distributed ledger, determining that the token is invalid.
  • Some embodiments relate to computer-implemented method of determining the validity of a token associated with a quantity of cryptocurrency, the method comprising: a second user: receiving, over a communications network, a first transaction comprising a transfer of the token from a first user to the second user; querying a title registry database to determine if a second transaction comprising a transfer of the token is recorded in the title registry database; and responsive to determining that the second transaction is recorded in the title registry database, determining that the token is valid.
  • the second transaction may predate the first transaction.
  • querying the title registry database comprises querying the title registry database in response to determining that the token has not been authenticated.
  • the title registry database comprises one or more entries relating to transactions comprising a transfer of a token, each entry being associated with a transaction indicator and wherein querying the title registry database comprises determining a transaction indicator associated with the token from the first transaction; and comparing the transaction indicator with the one or more transaction indicators of the title registry database to identify the second transaction.
  • the transaction indicator may comprise a transaction ID.
  • determining that the token has not been authenticated comprises determining that a first redeem script associated with the token and referenced as an input to the transaction has not been signed by an authorised signatory.
  • the authorised signatory may comprise at least one of an issuer of the token and a trusted service provider.
  • the method further comprises responsive to determining that the second transaction is not recorded in the title registry database, determining that the token is invalid.
  • the method further comprises responsive to determining that the second transaction is not recorded in the title registry database, querying a peer-to-peer distributed ledger to determine whether an authenticated transaction associated with the token can be identified, wherein the authenticated transaction comprises a previous transaction associated with the token, wherein the token has been authorised and responsive to identifying an authenticated transaction, determining that the token is valid.
  • Some embodiments relate to a computer-implemented method of maintaining, by a first party, a title registry database for recording transfers of tokens issued by an issuer, wherein each token is associated with a quantity of cryptocurrency, the method comprising: monitoring a peer-to-peer distributed ledger for transactions comprising transfers of tokens issued by the issuer; and responsive to determining a first transaction comprising a transfer of a token issued by the issuer recorded in the peer-to-peer distributed ledger, recording the transfer of the token in the title registry database.
  • monitoring the peer-to-peer distributed ledger further comprises: determining a previous transaction ID of a transaction recorded in the peer-to-peer distributed ledger; comparing the determined previous transaction ID with a set of transaction IDs, each transaction ID of the set identifying a transaction associated with a token issued by the issuer; and responsive to the determined previous transaction ID matching one of the set of transaction IDs, determining the transaction associated with the previous transaction ID as the record of the first transaction comprising a transfer of tokens issued by the issuer.
  • monitoring the peer-to-peer distributed ledger further comprises: determining a target transaction ID of a transaction associated with a token issued by the issuer; comparing the target transaction ID with previous transaction IDs of transactions recorded in the peer-to-peer distributed ledger; and responsive to the target transaction ID matching a previous transaction ID of one of the transactions recorded in the peer-to-peer distributed ledger, determining the transaction recorded in the peer-to-peer distributed ledger as the record of the first transaction.
  • the method further comprises authenticating an entry associated with the recording of the transfer of the token in the title registry database by adding the issuer's signature to the entry.
  • maintaining the title registry database is performed by at least one of the issuer and an approved service provider.
  • the title registry database comprises a distributed hash table.
  • the distributed hash table may comprise contracts associated with the tokens issued by the issuer.
  • Some embodiments relate to a token validation system for determining the validity of a token associated with a quantity of cryptocurrency, the system comprising memory for storing a validation application and a processor, wherein the processor is configured to execute the validation application to perform any of the described methods.
  • Some embodiments relate to title registry maintenance system for maintaining a title registry database for recording transfers of tokens, each associated with a quantity of cryptocurrency, the system comprising memory for storing a maintenance application and a processor, wherein the processor is configured to execute the maintenance application to perform any of the described methods.
  • Some embodiments relate to a computer software program, including machine-readable instructions, when executed by a processor, causes the processor to perform any of the described methods.
  • Described embodiments relate to systems and computer-implemented methods for validating tokens for implementation in conjunction with blockchain based cryptocurrencies such as, for example, Bitcoin. Some embodiments relate to validating tokens associated with transactions which have not been countersigned by an authorised signatory. Other embodiments relate to systems and computer-implemented method for maintaining a title registry database for recording transfers of tokens.
  • the token may be a representation or identifier which is associated with some type or physical, electronic, digital or abstract entity or asset.
  • Some embodiments relate to systems and computer-implemented methods for determining the validity of a token (T) associated with a quantity of cryptocurrency (B 1), wherein the token (T) is transferred from a first user (A) to a second user (B), for example, by means of a blockchain transaction Tx comprising (effecting) a transfer of the token (T).
  • the token (T) has not been authenticated, for example, by an authorised signatory, such as an issuer of the token (T) or a trusted service provider.
  • a peer-to-peer distributed ledger may be queried to determine whether an authenticated transaction associated with the token (T) can be identified. This may or may not be the Bitcoin blockchain.
  • an authenticated transaction may comprise a prior transaction associated with the token (T) where the token (T) has been authorised.
  • the token (T) may be determined to be valid.
  • prior transaction we mean a transaction which has been previously written to the blockchain i.e. at an earlier date. It should be recalled that blocks (and thus transactions) are written to the blockchain in a chronological sequence. The previous transaction may be described as a transaction which is further back in the chain of blocks, ie closer to the originating, genesis block.
  • a title registry storage resource e.g. database may be queried to determine if a second transaction comprising a transfer of the token (T) is registered or recorded in the title registry storage, where the second transaction predates the first transaction.
  • the token (T) may be determined to be valid.
  • a party (P), such as an issuer (I) of the token (T), may be responsible for maintaining the title registry storage by recording any transaction comprising a transfer of the token in the title registry storage.
  • FIG. 1 there is illustrated a system 1 comprising a first processing device 13 associated with an issuer (I) 3, a second processing device 15 associated with a first user (A) 5, and a third processing device 17 associated with a second user (B) 7.
  • the first processing device 13, second processing device 15, and the third processing device 17 may be in communication with one another across a communications network 8.
  • the first processing device 13 may also comprise or be in communication with, for example, directly or over the communications network 8, an associated data store 11.
  • first processing device 13 is illustrated as a single node, it will be appreciated that the first processing device 13 may comprise one or more nodes associated with the issuer (I) 3 and one or more steps of any method described as being performed by first processing device 13 may be distributed and performed at different and/or multiples of the nodes of the first processing device 13.
  • the second processing device 15 and the third processing device 17 may be a computer, a mobile communication device, or other electronic device used by the respective first and second user 5, 7.
  • the second processing device 15 and the third processing device 17 may be virtual machines accessible by the first and second users, respectively, via a terminal or other interface.
  • the issuer (I) 3 creates tokens and may be, for example, a bank, another financial institution, mint, company, etc. However, in other examples, the issuer may not be a financial institution and the invention is not limited to financially-oriented applications.
  • the first user (A) 5 may request the creation of a token from the issuer (I) 3, may request to redeem part of or all of the value of a token with the issuer (I) 3, and/or request to transfer part of or all of the value of a token to the second user (B) 7.
  • the second user (B) 7 may request the creation of a token from the issuer (I) 3, may request to redeem part of or all of the value of a token with the issuer (I) 3, or request to transfer part of or all of the value of a token to the first user (A) 5.
  • the system 1 also comprises one or more processing devices 19 for managing a peer-to peer distributed ledger (blockchain) 9 for recording transactions.
  • the one or more processing devices 19 may be configured to receive transactions, for example, from the first, second, and/or third processing devices 13, 15, and 17, respectively, across the communications network 8, and to record the transactions.
  • An example of a peer-to-peer distributed ledger 9 includes the block chain, which is a distributed network of transactions (TXs) based on the bitcoin protocol.
  • TXs distributed network of transactions
  • the one or more processing devices 19 may be associated with "miners". Therefore, the invention comprises one or more processing devices 19 which are in communication with a blockchain-implemented distributed network. The network and various devices intercommunicate to put the invention into effect.
  • the system 1 also comprises one or more processing devices 21 for managing a title registry database 23 for recording transactions associated with transfers of tokens.
  • the one or more processing devices 21 may be in communication with the first, second, and/or third processing devices 13, 15, and 17, and/or the one or more processing devices 19 across the communications network 8.
  • the one or more processing devices 19 may be configured to receive and record data pertaining to transactions comprising transfers of tokens (T).
  • tokens There are three general types of transactions that involve tokens, namely, the creation of tokens by the issuer (I) 3, the redeeming of part of or all of the value of a token by the first user (A) 5 or the second user (B) 7 with the issuer (I), or the transfer of part of or all the value of a token by the first user (A) 5 or the second user (B) 7 to the second user (B) 7 or the first user (A) 5, respectively.
  • the creation of a first token (T1) generally involves the first user (A) transferring fiat currency (e.g. $1,000 AUD) to the issuer (I) 3 and in exchange for the fiat currency, the issuer (I) "tokenising" a first quantity of cryptocurrency (B1) such that it has a token value and transferring this first quantity of cryptocurrency (B1) to the first user (A) 5.
  • the first token (T1) may be representative of a contract, such as a contract where the issuer (I) agrees to redeem the bearer of the first token (T1) for a specified fiat currency amount (e.g. $1,000 AUD). Therefore, the first token (T1) may be similar to a negotiable instrument.
  • the first user (A) 5 may redeem the first token (T1) at a future date for a value associated with the deposited fiat currency.
  • the terms and conditions may also allow the first user (A) 5 to have at least part of the value of the token transferred to the second user (B).
  • Such terms and conditions may be specific to the token or may be general terms and conditions between the users 5, 7 and the issuer (I) 3.
  • a method 300 of creating a token will be described in detail below with reference to Figures 2 and 3 .
  • the method 300 includes allocating a first quantity of cryptocurrency (B1) for association with a first token (T1), at 310.
  • the method further includes determining a first hash (H1) of a first redeem script (RS1), wherein the first redeem script (RS1) is based on: at least a first metadata (MD1) that includes information associated with the first token (T1); the first user public key (P1A); and a first issuer public key (P1I) associated with the issuer (I), wherein the first issuer public key (P1I) forms a cryptographic pair with a first issuer private key (V1I), at 312.
  • MD1 first metadata
  • P1I first issuer public key
  • V1I first issuer private key
  • the method 300 also includes sending, over the communications network 8, a first data output (O1) to the blockchain 9, at 314.
  • the first data output (O1) includes: an indication of a transaction of the first quantity of cryptocurrency (B1) to the first user (A) 5; and the first hash (H1), wherein the first hash (H1) is associated with the first quantity of cryptocurrency (B1), to provide the first token (T1) that is associated with the first user (A) 5 and issuer (I).
  • the method 300 allows for the creation of a token whereby a record of the token is sent to the blockchain 9.
  • An advantage of recording this transaction on the blockchain 9 is that it may allow the recipient, such as the first user (A) 5 to validate the existence of the token (T1).
  • the at least first metadata (MD1) that includes information associated with the first token (T1) is hashed, this allows the validation of the transaction (which is on the public record) against the information associated with the token.
  • information associated with the first token (T1) may be terms and conditions of a contract.
  • the terms and conditions in the first redeem script to be hashed may advantageously provide comfort to the first user (A) 5 (or any other user) that the terms and conditions cannot be varied as any variation would alter the first hash (H1). Since the first hash (H1) was sent and recorded on the blockchain 9 at the time of creating the first token (T1), it would be impossible (or difficult) to alter the terms and conditions at a later time that would provide an identical first hash (H1).
  • the method 300 of creating a first token (T1) there is shown the method 300 of creating a first token (T1), according to some embodiments.
  • the creating tokens will be discussed in the context of the first user (A) 5 depositing cash with the issuer (I) 3 in return for tokens representing the deposited cash.
  • the tokens can be created in the context of other transactions.
  • the token may represent any other contract, negotiable instrument, tangible property, etc.
  • the first user (A) 5 instigates the creation of a first token (T1) by transmitting from the second processing device 15 a request for the first token (T1) to the first processing device 13 associated with the issuer (I) 3, at 302.
  • the first user (A) 5 makes this request by depositing fiat currency, for example $1000 AUD, with a request to have this amount in tokens (T1).
  • the request may include an offer for a contract, which may include one or more terms and conditions of a contract.
  • the first user (A) 5 may include in the request that the tokens associated with the deposit of $1000 AUD should have a fixed pegging rate to cryptocurrency.
  • a request that the pegging rate is 1000 satoshi/cent (AUD).
  • other terms and conditions may be included in the offer, such as account keeping fees, transaction fees, how the tokens can be redeemed, etc.
  • the first processing device 13 of the issuer (I) receives, over the communications network 8, the request from the first user (A) 5 for the first token (T1) and, in some cases, at least some of the terms and conditions, at 304.
  • the issuer (I) determines whether to accept the request, propose a counter offer that includes a modification of the terms and conditions of the request, or reject the request, at 306.
  • the method 300 may include sending by the issuer (I), over the communications network 8, the result of the determination in step 304, to the first user (A) 5.
  • the request sent to the issuer (I) may simply include a request for a first token (T1).
  • the issuer (I) may send an offer, including terms and conditions, to the first user (A) 5.
  • the first user (A) 5 may, in turn, determine whether to accept the offer, propose a counter offer, or reject the offer, which is then sent to the issuer (I). It will be appreciated that multiple rounds of offers and counter offers may be sent and received between the issuer (I) and first user (A) 5 until they are in agreement.
  • the terms and conditions may be standardised, whereby the user accepts the terms and conditions by performing the steps in the method 300.
  • the issuer (I) may have standardised offers for tokens for their customers, including the first user (A) 5. Such offers for tokens may be listed publicly, such as on a public exchange or on the issuer's website. Standing offers may also be provided by the issuer (I) to the first user (A) 5 privately, such as by email, through an application, or by logging in a secure website.
  • the contract terms and conditions associated with the token may be stored in the data store 11, sent to a third party for storage, or torrented. In some embodiments, the terms and conditions may be stored on a distributed hast table (DHT).
  • DHT distributed hast table
  • the method 300 includes determining a first user public key (P1A) of a cryptographic pair associated with the first user (A) 5, the cryptographic pair including a first user private key (V1A) and the first user public key (P1A), at 308.
  • the first user public key (P1A) may be sent from the first user (A) 5, over the communications network 8, to the issuer (I).
  • the first user public key (P1A) may be associated stored in the data store 11 (which may, for example, be received and stored during registration of the first user (A) 5).
  • the step of determining 308 the first user public key (P1A) may include retrieving the key from the data store 11.
  • the first user public key (P1A) may be received, over the communications network 8, from a third party.
  • the third party may include, for example, a trusted third party that acts as a public directory, such as a certification authority.
  • the method 300 includes allocating a first quantity of cryptocurrency (B1) for association with the first token (T1), at 310.
  • the token In order for a record of a transaction involving the first token (T1) to be recorded on the peer-to-peer distributed ledger (which in this example is the block chain), the token must be associated with a quantity of cryptocurrency. In turn, that quantity of cryptocurrency is recorded on the blockchain as a transaction from the issuer (I) 3 to the first user (A) 5.
  • the allocation of the first quantity of cryptocurrency (B1) for association with the first token (T1) may be based on a ratio of the token value.
  • a pegging rate (PR1) may be specified for the first token (T1).
  • allocating a first quantity of cryptocurrency (B1) at 310 may include determining a first quantity of cryptocurrency (B1) based on the pegging rate (PR1) and the first token value (TV1).
  • the pegging rate (PR1) may be 1000 satoshis/cent AUD and the first token value (TV1) is $1000 AUD.
  • the first quantity of cryptocurrency (B1) may be 10,000,000.
  • the quantity of cryptocurrency to be allocated for a token may be influenced by some of the following considerations.
  • the allocated quantity of cryptocurrency ideally has a market value (for this purpose, this means the market value of the cryptocurrency in itself, assuming it has a value, without reference to the token value) that is less than the value of the token ("token value").
  • token value This is desirable so that there is no motivation to use the quantity of cryptocurrency for the underlying value rather than as a token.
  • This may be analogous to cash coins where it is desirable to have the face value of the coin to be higher than the metal the coin is minted from, so that there is no desire to melt the coins for the value of the metal.
  • the token value is multiples larger than the underlying value of the quantity of cryptocurrency.
  • token may not have a fixed or easily determinable token value.
  • the token may be representative of a contract to perform work, whereby the value may change day to day.
  • the contract may only have a value that is determinable on the day it is redeemed.
  • the quantity of cryptocurrency allocated should not be too large, relative to the token value or the value of the transaction, since recording a transaction of the quantity of cryptocurrency on the peer-to-peer distributed ledger may be at a cost, such as incurring a transaction fee.
  • the transaction fee is based on the quantity of cryptocurrency in the transaction and therefore it may be desirable to keep the quantity of cryptocurrency for the token at a minimum level.
  • the quantity of cryptocurrency allocated for association with the token cannot be infinitely small.
  • a transaction of cryptocurrency may be limited to a minimum size or else it will not be recorded (or the cost of the transaction will be close to, or exceed, the cost of performing the transaction). This minimum amount, in some examples, is a "dust" limit.
  • allocating a quantity of cryptocurrency for a token must be above a minimum threshold of cryptocurrency (MT1).
  • the method 100 may include determining the minimum threshold of cryptocurrency (MT1) suitable for the first token (T1) and determining a first quantity of cryptocurrency (B 1) that is at or above the minimum threshold of cryptocurrency (MT1).
  • the minimum threshold of cryptocurrency (MT1) in “Bitcoin”, is 546 satoshis.
  • the first token (T1) may have a token value (TV1) of $1000 AUD and the first user (A) 5 may wish to transfer $800 AUD of the token value to the second user (B) 7 and keep the remaining $200 AUD tokens.
  • Such a transaction would involve a transaction with the first token (T1) that results in a second token (T2) representing $200 AUD that stays with the first user (A) 5 as change and creating a third token (T3) representing $800 AUD to be transferred to the second user (B) 7.
  • the result of this transfer is two tokens, the second token (T2) and third token (T3), where each of these tokens must also be allocated a quantity of cryptocurrency.
  • the first quantity of cryptocurrency (B1) was minimal, for example at the "dust" limit, then further amounts of cryptocurrency will need to be sourced so that each of the new tokens created are also associated with sufficient quantities of cryptocurrency to satisfy a minimum threshold. Therefore, there may be advantages to allocating a sufficient quantity of cryptocurrency (B1) for the first token (T1) such that the amount is sufficient to be divided up to be used for an anticipated number of subsequent tokens.
  • the terms and conditions may specify the quantity of cryptocurrency or the minimum value or denomination of a token.
  • the term and conditions may set the minimum denomination of token value to $10 AUD. Therefore, allocating a first quantity of cryptocurrency (B1) for a first token (T1) with a token value (TV1) of $1000 AUD may include determining a first quantity that will ensure that there is sufficient cryptocurrency if the entire token value (TV1) is divided up to the smallest denomination.
  • the token value (TV1) may be divided to 100 subsequent tokens (calculated by $1000/$10). Therefore a suitable first quantity of cryptocurrency (B1) may be 100 times the "dust" limit.
  • the method 300 further includes determining a first hash (H1) of a first redeem script (RS1), at 312.
  • the hash of the redeem script may be used to provide a pay to script hash (P2SH) address for a pay to script hash transaction.
  • P2SH pay to script hash
  • An example includes the hash functions used in P2SH script in the Bitcoin protocol. This may include a combination of SHA 256 followed by RIPEMD160.
  • the first redeem script (RS1) is a script that may be used to unlock the first token (T1) which, as discussed later, includes a transaction of the first quantity of cryptocurrency (B1).
  • T1 The first redeem script
  • certain conditions of the first redeem script (RS1) must be met to unlock the transaction.
  • the signatures of the first user (A) 5 and issuer (I) are required.
  • An example of the first redeem script (RS1) will now be described.
  • the first redeem script (RS1)
  • the first redeem script (RS1) is based on: at least a first metadata (MD1) that includes information associated with the first token, the first user public key (P1A) and the first issuer public key (P1I).
  • the redeem script may take the form of: ⁇ NumSigs PubK1 PubK2 ... PubK15 NumKeys OP_CHECKMULTISIG> where
  • At least a number "m” of signatures corresponding to the public keys are required.
  • the order of the public keys are important and the number "m” out of "n” signatures for signing must be done in sequence. For example, say that "m” is two and the number of public keys "n” is fifteen.
  • two signatures are available for use, say Sig1 (corresponding to PubK1) and Sig 15 (corresponding to PubK15), the redeem script must be signed by Sig1 first followed by Sig15.
  • the first redeem script (RS1) that utilises P2SH may include the at least first metadata (MD1) in the redeem script.
  • the at least first metadata (MD1) may be embedded in one or more of the 15 places available for the public keys in the redeem script.
  • the first redeem script (RS1) may take the form of:
  • the advantage of this is that the metadata will be included in the first redeem script (RS 1), which in turn will be hashed and the record of which will be included in the blockchain 9. Therefore, it would be difficult, if not impossible, to change the values of the metadata without resulting in a change of the corresponding hash of the first redeem script hash (RS 1).
  • the first user (A) 5 and the issuer (I) 3 may wish to enter into a contract with particular terms and conditions.
  • the contract may include the issuer (I) creating a token, whereby the specific terms and conditions are included in the metadata embedded in the redeem script.
  • a hash of the redeem script is then recorded on the blockchain 9, which becomes a record of the transaction that is difficult or impossible to change.
  • the issuer (I) attempts to deceive the first user (A) 5, and for example, attempts to modify a term and alleges that the modified term was in the originally agreed contract.
  • the first user (A) 5 may be able to contest this by placing the modified term in the metadata of the redeem script and hashing it, and then showing that this does not match the redeem script recorded on the blockchain. Therefore, including information associated with the token in the at least first metadata may be useful for ensuring the integrity of the token.
  • the metadata in the redeem script may itself include a hash of other information. For example if the terms and conditions is lengthy, a hash of the terms and conditions may be used to provide a shorter metadata.
  • the first redeem script (RS 1) may be stored in the data store 11 as a record and for redeeming the first token (T1). In some alternative examples, the first redeem script may be sent to the first user (A) 5, or a third party .
  • the first redeem script takes the form: ⁇ 2 Metadata1 Metadata2 P1A P114 OP_CHECKMULTISIG>
  • the at least first metadata includes both Metadata1 and Metadata2 that occupies two of the places in the redeem script. This is followed by two public keys in sequence, the first user public key (P1A) and the first issuer public key (P1I).
  • the NumSigs is 2 which mean two signatures are required to unlock the transaction.
  • the metadata may include information regarding the token in a number of ways. As discussed, in one example the terms and conditions may be included in the metadata. In another example, a hash of the terms and conditions may be included in the metadata. In yet another example, the metadata may include a pointer to a file that contains the terms and conditions of a contract. In further embodiments, combinations including one or more of the above may be included in the metadata.
  • Metadata1 ContractType 4 Coded value indicates type of contract.
  • This example includes a minimum amount of information in relation to the token and transaction.
  • This example includes providing a pointer to the (smart) contract which may be useful where the size of the contract precludes including such details in the metadata.
  • the metadata may be made public, or transmitted over an unsecure network, it may be desirable that specific details of the token be veiled or hidden for privacy reasons.
  • the first 4 bytes of metadata1 indicates the type of contract.
  • the contract type may be for 'Fiat Currency'.
  • the next 16 bytes holds the IP address of the location of the actual electronic contract file, making allowance for IPv6 addresses. Note that in some embodiments, this value may point to the seed of a torrent file such that the contract file can be distributed over the cloud rather than being centralised.
  • the following 12 bytes contains data specific to the type of contract.
  • the first 20 bytes of metadata2 is a hash of the actual contract file using RIPEMD-160 over SHA256 applied to the file. As the actual contract file is retrievable this allows validation of the transaction against the contract. Note that the contract file itself may be completely public (unencrypted and human readable) or may be encrypted for privacy, depending on the requirements of the specific embodiment. The content of the remaining 12 bytes of metadata2 may be used depending on the type of contract.
  • Metadata1 ContractType 4 0x00000001 Indicates Fiat Currency ContractPointer 16 IPv6 address of the actual contract file location
  • PeggingRate 1 Coded value represents the BTC/fiat pegging rate.
  • TransactionType 1 Coded value represents type of output (issuance/payment/redemption) Padding 8 0x00000... Spare bytes
  • Metadata2 ContractHash 20 RIPEMD-160(SHA256(the actual contract file addressed by ContractPointer)) Padding 12 0x00000... Spare bytes
  • some key parameters of the token included in the metadata may include information relevant the token itself or information that may assist processing of the transaction.
  • the bytes allocated to the Sub-field "ContractTypeData1" in Table 1 above has been used for indicating: fiat denomination, pegging rate, and transaction type.
  • Inclusion of the key parameters in the metadata may assist greater processing efficiency as the issuer (I) 3 may, in some cases, process the tokens in transactions without retrieving the contract file for the key information required to process the transaction.
  • the issuer may embed information in the metadata to associate the second token (T2) with the first token (T1). This may assist the issuer (I) to account for and keep track of the tokens without the expense of tracing through the history of transactions which, for an issuer (I) such as a bank, can be an intensive task.
  • the metadata contains a 2-byte field to indicate the fiat currency (FiatDenomination) and 1-byte field called PeggingRate.
  • the pegging rate is set by the Issuer (I). Several different rates may be set for the same fiat currency, however, a different token (with a different contract) will be needed for each different rate. The choice of rate may be at the discretion of the Issuer (I), however who may take similar considerations for the pegging rate as for the allocation of the quantity of cryptocurrency for the token as discussed above.
  • the PeggingRate is an 8-bit coded value as follows: Leftmost bit will be used as a flag:
  • TransactionType is a 1-byte field indicating whether the transaction is an "issuance" (in which a token is created from cryptocurrency), a payment (in which at least part of the token value is transferred from one user to another user); or a redemption (in which tokens are transferred to the issuer (I) and converted back to regular cryptocurrency).
  • the "Padding" in both the Metadata1 and Metadata2 may include randomly generated values for each transaction.
  • the result is that each of Metadata1 and Metadata2 will vary between transactions.
  • An advantage is that this may lower the risk, and motivation, of an unscrupulous person trying to determine a private key that would match one or both of Metadata1 or Metadata2 as a cryptographic pair (for the purpose of using such a private key to sign the redeem script). This may be important for standardised tokens where the remaining bulk of the Metadata1 or Metadata2 is the same.
  • the first user public key (P1A) and the issuer public key (P1I) are respectively paired with corresponding first user private key (V1A) and issuer private key (V1I).
  • the public keys may be known widely to the public, while in other embodiments, it may be desirable to communicate the public keys as required.
  • the issuer (I) is a financial institution that also manages an electronic wallet of the first user (A) 5 and second user (B) 7 and the first user (A) 5 and second user (B) 7 may access their respective electronic wallets through a virtual machine environment or a terminal.
  • the electronic wallet may be hosted by the issuer (I) 3 (or a server associated with the issuer (I) 3) and the private key(s) of a corresponding user are stored in the data store 11 but can only be accessed (or recreated) by the issuer (I) 3 with authorisation from that user.
  • the first and second users 5, 7 may authorise their private keys to be provided to the issuer (I) 3 to unlock the redeem script.
  • This may include authorising the user's private key(s) to be sent to the first processing device 13 of the issuer (I) 3, wherein the first processing device 13 may unlock the redeem script with the user's private key(s) (e.g. P1A, P1B) and the first issuer public key (P1I).
  • the first processing device 13 may unlock the redeem script with the user's private key(s) (e.g. P1A, P1B) and the first issuer public key (P1I).
  • the method 300 further includes sending by the issuer (I) 3, over a communications network 8, a first data output (O1) to a p blockchain 9, at 314.
  • This first data output (O1) may include an indication of a transaction transferring the first quantity of cryptocurrency (B1) to the first user (A) 5, that is, recording that the underlying quantity of cryptocurrency (B1) associated the first token (T1) has been transferred to the first user (A) 5.
  • the first data output (O1) also includes the first hash (H1) discussed above.
  • the first hash (H1) is associated with the first quantity of cryptocurrency (B1), to provide a record of the first token (T1) that is associated with the first user (A) 5 and the issuer (I).
  • the first hash (H1) is recorded on the blockchain 9 and can be used to prove or verify the existence of the token (T1), the relationship between the issuer (I) and first user (A) 5, and/or the terms and conditions of the token.
  • the method 300 may also include storing 160 the first redeem script (RS1) in a data store 11 for later use.
  • RS1 first redeem script
  • T1 A specific example of a transaction that creates a first token (T1) will now be described with reference to Figure 2 .
  • First user (A) 5 deposits $1000 AUD to the Issuer (I) for equivalent value in a token
  • the first user (A) 5 wishes to deposit $1000 AUD to the issuer (I), who, in return creates a first token (T1), with a token value (TV1) of $1000 AUD, by associating this with a first quantity of cryptocurrency (B1) of 10,000,000.
  • the issuer (I) needs to have cryptocurrency. This may be sourced from previous transactions, or sourced in response to the request from the first user (A) 5 for a first token (T1). This is shown on the left hand side of Figure 2 as the "First quantity of (untokenised) cryptocurrency".
  • Table 3 shows an originating transaction output, in the form of transaction-ID / Satoshis amount/ locking script.
  • This originating transaction output represents the cryptocurrency that the issuer (I) has acquired from a previous transaction and in which at least some of the cryptocurrency will be used for association with the first token.
  • Table 3 ID-201 50,000,000 OP_DUP OP_HASH160 ⁇ PubK-Issuer hash> OP_EQUALVERIFY OP_CHECKSIG
  • the first line "ID-201" is a transaction identifier to identify this transaction.
  • the next line is the number of satoshis in this transaction, which is 50,000,000.
  • the third line is the locking script (output script) for this transaction.
  • the redeem script in this output ⁇ PubK-Issuer hash> , shows that this output has been locked with the first issuer public key (P1I). That is, this transaction can be unlocked using the issuer's corresponding first issuer private key (V1I).
  • the method 300 includes allocating a first quantity of cryptocurrency (B1) suitable for the first token (T1), at 310.
  • the quantities of cryptocurrency that the issuer (I) has on hand may not exactly match the first quantity of cryptocurrency (B 1).
  • the required first quantity of cryptocurrency (B1) is 10,000,000 which is much less than the 50,000,000 in from the transaction ID-201.
  • a transaction to create a first token (T1) may include providing change of cryptocurrency back to the issuer (I) for the excess amounts of cryptocurrency that was not required for the token.
  • the creation of the token 100 may be a transaction that requires a payment of a transaction fee to a miner. This is illustrated with reference to Table 4 below which shows the transaction for creating the tokens.
  • the first line "ID-210" is a transaction identifier to identify this transaction.
  • the second line indicates the "Version number” which states the version of the Bitcoin protocol used..
  • the third line indicates the number of inputs for this transaction, which indicates a single input.
  • Lines 4 to 7 in Table 4 relate to those of the "input" - that is, a previous transaction, ID-201 that is funding the present transaction, ID-210.
  • Line 4 is the transaction identifier of the previous transaction, ID-201.
  • Line 5 "IDX-00" is an index of the output of the previous transaction, ID-201 (which in this case is a reference that the first output from the previous transaction, ID-201, should be used).
  • Line 6 is the "ScriptSig”, which is the unlocking script for the previous transaction, ID-201.
  • previous transaction was locked with the first issuer public key (P1I), that is represented by PubK-Issuer.
  • the previous transaction can be unlocked using the issuer's corresponding first issuer private key (V1I) that is represented as Sig-Issuer.
  • Line 7 is a sequence number associated with the input.
  • ⁇ sequence number' which is no longer used by the bitcoin core.
  • an option is to utilise this field to allocate transaction inputs to outputs.
  • the sequence number can represent a string of 1-bit flags whereby the position of each flag starting with the rightmost bit indicates that the input has contributed part of its funds to the flagged output.
  • the sequence number "000000000000000000000000000000011" indicates that the input is to be paid into outputs 1 and 2, which will be described below.
  • Line 8 in Table 4 indicates the number of outputs for this transaction, which is two. Lines 9 to 11 represent the first output and lines 12 to 14 represent the second output.
  • the first output reflects the first quantity of cryptocurrency (B1) that is associated with the first token (T1).
  • Line 9 is an output value of first quantity of cryptocurrency (B1), which is 10,000,000 satoshis.
  • Line 10 indicates the output script length.
  • Line 11 is the output script - i.e. the locking script that locks the first quantity of cryptocurrency (B1). This includes the first hash (H1) of a first redeem script (RS1) and is represented by: OP_HASH160 ⁇ redeem script hash> OP_EQUAL
  • the "OP HASH160” is a type of hash function where the input is hashed twice - with SHA-256 and subsequently with RIPEMD-160.
  • the redeem script hash is the hash of the first redeem script (RS1) which is in the form described above, and for this example is: 2 metadata1 metadata2 P1A P1I4 OP_CHECKMULTISIG
  • the metadata 1 and metadata2 may include metadata as described above, including an indication that this is an "issuance" transaction.
  • OP_EQUAL provides a Boolean result for verifying the output.
  • the second output reflects the issuer's change for the transaction. Since the input, being the previous transaction ID-201, included 50,000,000 satoshis, the Issuer (I) can expect to receive left over satoshis.
  • Line 12 is an output value for the second output which is 39,999,000.
  • Line 13 is the output script length and line 14 is the output script for the second output. Since the second output is the change back to the issuer (I), the issuer should be free to spend the second output. Accordingly, the output script (i.e. locking script) only includes the first issuer public key (P1I) which is represented by ⁇ PubK-Issuer hash>.
  • the output value(s) of a transaction must be equal to or less than the input.
  • the input was 50,000,000 and the output is 49,999,000 (based on 10,000,000 of the first output and 39,999,000 of the second output).
  • the 1,000 satoshis is a transaction fee (e.g. miner's fee).
  • tokens are redeemed with the issuer (I) 3.
  • the issuer (I) is a service provider that provides electronic wallets for the users 5, 7, the private keys of the users are kept secure in a data store 11 associated with the issuer (I) 3. Therefore, in such embodiments, the users 5, 7 (or their respective processing devices 15, 17) do not sign the redeem script. Instead, the issuer (I) 3, with authorisation from the users 5, 7, signs the redeem script.
  • the first user (A) 5 may send a request to redeem a token to the issuer (I) 3 and either implicitly, or explicitly, this request to redeem a token also includes an authorisation by the first user (A) 5 for the issuer (I) 3 to use the first user private key (P1A) to redeem the token.
  • a method for redeeming a first token (T1) may include receiving by the issuer (I) 3, over the communications network 8, a request from the first user (A) 5 to redeem the first token (T1), determining a first redeem script (RS1) associated with the first token (T1) and obtaining the first user private key (V1A), for example, from the data store 11 or from another entity or node.
  • the issuer may then sign the first redeem script (RS1) with the user private key (P1A) and the first issuer private key (P1I). This may be advantageous as the issuer (I) 3, who is the service provider for the first user (A) 5, can perform these steps securely at the first processing device 13 and without sending the first redeem script (RS1), signed or unsigned, over the communications network 8.
  • the method may also include sending, over the communications network 8, a second data output (O2) to the blockchain 9 comprising an indication of a transaction of the first quantity of cryptocurrency (B1) to the issuer (I).
  • the method returns the first quantity of cryptocurrency (B1) associated with the first token (T1) back to the issuer (I).
  • the recipient of the first quantity of cryptocurrency (B1) in this transaction may then spend the first quantity of cryptocurrency for other transactions - whether as cryptocurrency alone or with other associated tokens.
  • one or more additional tokens may be created.
  • a third token (T3) may be created that is associated with the second user (B) 7 and the issuer (I) 3. This may advantageously allow the first user (A) 5 to, in effect, transfer the same or similar rights associated with a first token (T1), to the second user (B).
  • a new token, in the form of a third token (T3) is created, the third token (T3) may have similar characteristics as the first token (T1).
  • the tokens may have associated metadata that is the same or similar. This may be useful, for example, if the same or similar terms and conditions applicable between the first user (A) 5 and the issuer (I) 3 should also apply between the second user (B) 7 and the issuer (I) 3.
  • the first user (A) 5 may wish to transfer the entire value of the first token (T1) to the second user (B).
  • Such cases may involve the creation of a third token (T3) associated with the first quantity of cryptocurrency B1 that is to be transferred to the second user (B) 7.
  • the third token (T3) is the transfer of the first token (T1), and rights associated with the first token (T1), to the second user (B) 7.
  • the request to create the third token (T3) may comprise, explicitly or implicitly, a request to create the third token (T3) with a third token value (TV3) based on the first portion (R1).
  • the transfer of the value of a token from the first user (A) 5 to the second user (B) involves the issuer (I) 3 as an intermediary to facilitate the transfer. This is distinguished from a direct transaction of the first quantity of cryptocurrency (B1) from the first user (A) 5 to the second user (B) 7.
  • the second user (B) 7 may wish to take precautions to ensure the legitimacy or validity of the token being transferred.
  • the second user (B) 7 has a service provider (SPB) within the same web of trust as the service provider (SPA) of the first user (A) 5, then the service provider (SPB) acts as a signatory for the transaction on spending or redeeming the token and accordingly, the second user (B) 7 is assured of the token's authenticity or validity.
  • the second user (B) 7 does not have a service provider (SPB) or does not have a service provider (SPB) within the same web of trust as the service provider (SPA) of the first user (A) 5, the issuer (I) or an authorised party will not be available to authenticate or validate the transaction.
  • the second user (B) 7 may wish to determine the legitimacy of a token (T1) being transferred to the second user (B) 7.
  • a validation application comprising executable computer code is stored in memory 1520 ( Figure 8 ) of the processing device 17, and when executed by processor 1510 ( Figure 8 ) of the processing device 17, causes the processing device 17 to perform a method 600 or 700 of determining the validity of a token (T) associated with a quantity of cryptocurrency, as discussed in more detail below with reference to Figures 6 and 7 respectively.
  • the second user (B) 7 may manage an electronic wallet (not shown) which may be accessed through a virtual machine environment or a terminal associated with the processing device 17 and the electronic wallet may include an addon feature which allows the second user (B) 7 to cause the processing device 17 to execute the validation application.
  • First user (A) transfers the first token (T1) to the second user (B)
  • the first user (A) 5 wishes to transfer the token (T) to the second user (B) as shown in Figure 4 .
  • the transfer of the quantity of cryptocurrency to the second user (B) 7 allows the second user (B) 7 to then spend the quantity of cryptocurrency (B1) as tokens for future transactions.
  • the second user (B) 7 may also "detokenize" the quantity of cryptocurrency (B1) by one or more transactions that removes the metadata (which may include the payment transaction that transferred the quantity of cryptocurrency (B1) to the second user (B) 7).
  • the second user (B) 7 may further spend this cryptocurrency without the restriction of requiring authorisation (such as a signature) from the first user (A) 5 or other user.
  • ID-510 Before describing the transaction to transfer the first token, ID-510, as illustrated in Table 7 below, we will briefly describe the originating transaction outputs (from transaction ID-500 and ID-400) that are the inputs to the present payment transaction, ID-510.
  • the two inputs in general, include the quantity of cryptocurrency associated with the token (T), and another quantity of cryptocurrency which is used to pay the transaction fee (e.g. miner's fee).
  • the first user (A) 5 may have received the quantity of cryptocurrency in transaction ID-500.
  • the outputs that went to the first user (A) 5 in transaction ID-500 may be summarised as: Table 5 ID-500 10,000,000 OP_HASH160,redeem script hash> OP_EQUAL
  • Line 2 in Table 5 represents the quantity of cryptocurrency associated with the token (T) which numbers in 10,000,000 satoshis.
  • Line 3 represents the output script, which is equivalent to line 11 in Table 4 described above.
  • the first user (A) 5 may also need to pay the transaction fee (e.g. miner's fee) for the payment transaction, ID-510, which is paid in part from a quantity of cryptocurrency received from a previous transaction, ID-400.
  • This quantity of cryptocurrency may be summarised as: Table 6 ID-400 1,000 OP_DUP OP_HASH160 ⁇ PubK-Alice hash>OP_EQUALVERIFY OP_CHECKSIG
  • Line 2 of Table 6 indicates the amount of cryptocurrency from previous transaction which is 1,000.
  • Line 3 of Table 6 is the output script from this previous transaction. Since the cryptocurrency from this transaction, ID-400, is not associated Transaction: Alice pays Bob 10,000,000 tokenised bitcoin ID-510 Transaction ID Version number Version number 2 Number of inputs ID-500 Prev Trans Output 1 DX-00 Prev Trans Output Index Script length Script length Sig-Alice Sig-Issuer ⁇ 2 metadata1 metadata2 PubK-Alice PubK-Issuer 4 OP_CHECKMULTISIG> ScriptSig Sequence number Sequence number ID-400 Prev Trans Output IDX-01 Prev Trans Output Index Script length Script length Sig-Alice PubK-Alice ScriptSig Sequence number Sequence number 1 Number of outputs 10,000,000 Output value Output script length Output script length OP_HASH160 ⁇ redeem script hash> OP_EQUAL Output script LockTime LockTime with a token (or a user associated with a token), the redeem
  • Line 1 "ID-510" is a transaction identifier to identify this transaction.
  • the second line indicates the "Version number” which states the version of the Bitcoin protocol used.
  • Line 3 indicates the number of inputs for this transaction, which indicates two inputs.
  • Lines 4 to 8 in Table 7 relate to those of the first input - that is, a previous transaction, ID-500 that is funding the present transaction, ID-510.
  • Line 4 is the transaction identifier of the previous transaction, ID-500.
  • Line 5 "IDX-00" is an index of the output of the previous transaction, ID-500 (which in this case is a reference that the first output from the previous transaction, ID-500, should be used).
  • Line 6 is "Script length”, which is an indication of the script length.
  • Line 7 is "ScriptSig”, which is the unlocking script for the previous transaction, ID-500.
  • previous transaction ID-500 was locked with the first user (A) public key (P1A) represented by PubK-Alice and a first issuer public key (P1I) represented by PubK-Issuer. Accordingly, the previous transaction can be unlocked using Alice's corresponding private key (V1A) that is represented as Sig-Alice and the issuer's corresponding first issuer private key (V1I) that is represented as Sig-Issuer.
  • Line 8 is a sequence number associated with the input.
  • the first user (A) also needs to pay the transaction fee (e.g. miner's fee) for the transfer transaction, ID-510, which is paid in part from a quantity of cryptocurrency received from a previous transaction, ID-400.
  • Lines 11 to 15 in Table 7 relate to those of the second input - that is the payment of the miners fee.
  • Line 11 is the transaction identifier of the previous transaction, ID-400.
  • Line 12 is "IDX-01" is an index of the output of the previous transaction, ID-400.
  • Line 13 is "Script length", which is an indication of the script length.
  • Line 14 is "ScriptSig”, which is the unlocking script for the previous transaction, ID-400.
  • the redeem script hash is simply a hash of the first user public key (P1A) which is shown as PubK-Alice. That is, to spend the output from transaction ID-400, this simply requires the signing with the first user private key (V1A).
  • Line 15 is a sequence number associated with the input.
  • Line 17 of Table 7 indicates the number of outputs for this transaction, which is one.
  • Lines 18 to 21 represent the output which reflects the quantity of cryptocurrency that is associated with the token (T).
  • Line 18 is an output value of quantity of cryptocurrency, which in this case is 10,000,000 satoshis. This corresponds to the quantity of cryptocurrency from the token (T).
  • Line 19 indicates the output script length.
  • Line 20 is the output script - i.e. the locking script that locks the transfer of the token (T) associated with the quantity of cryptocurrency to the second user (B).
  • the "OP_HASH160” is a type of hash function where the input is hashed twice - with SHA-256 and subsequently with RIPEMD-160.
  • OP_EQUAL provides a Boolean result for verifying the output.
  • the redeem script hash is the hash of the redeem script (RS) which is in the form described above, and for this example is: 1 metadata1 metadata2 PubK-Bob 3 OP_CHECKMULTISIG
  • This redeem script includes the metadata from the token (T) as well as the issuer public key (P1I) shown as PubK-Issuer.
  • the metadata 1 and metadata2 may include metadata as described above, including an indication that this is a "payment" transaction.
  • This redeem script requires one of three signatures to spend the 10,000,000 satoshis.
  • the second user private key (V1B) may be used to sign and spend the cryptocurrency for subsequent transactions.
  • P1A is not in this redeem script. This is because the token (T) and accordingly, the associated quantity of cryptocurrency, has been transferred to the second user (B) 7 and therefore may be considered as spent by the first user (A) 5. Accordingly, the second user (B) 7 should be free to spend the token (T) without requiring authorisation (such as implicit authorisation through a signature of the first user (A) 5).
  • the second user (B) 7 may determine that the first token (T) associated with a quantity of cryptocurrency associated with the transaction ID-510 is valid if the token (T) has been authenticated, for example, signed, by an authorised signatory, such as the issuer (I).
  • the token (T) may be considered to have been authorised by an authorised signatory if a redeem script (RS) associated with the token (T) and referenced as an input to the transaction ID-510 has been signed by an authorised or trusted signatory.
  • RS redeem script
  • the redeem script (RS) associated with the token (T) and referenced as an input to the transaction ID-510 has not been signed by an authorised signatory and accordingly, the second user (B) 7 may not be assured as to the legitimacy of the token (T) by considering the redeem script (RS) referenced as the input funding the transaction ID-510 alone.
  • the system 1 comprises the title registry store 23, which may be controlled or influenced by a control/management application running on the one or more processing devices 21.
  • the management application comprising executable code may be stored in memory 1520 ( Figure 8 ) of the one or more processing devices 21 and processor(s) 1510 ( Figure 8 ) of the one or more processing devices 21 may be configured to execute the management application to perform a method of managing the title registry store 23.
  • the title registry store 23 may be configured to record information pertaining to transactions relating to transfers of tokens.
  • the title registry store 23 maintains a record of a change of ownership of a token (T), i.e., the fact that the ownership has changed, without explicitly identifying the current owner of the token (T).
  • the title registry store 23 may comprise a list or sub-list of validated or verified unspent transaction outputs (UTXOs).
  • UXOs validated or verified unspent transaction outputs
  • the title store register 23 may include at least one of the transaction identifier and the output script of a transaction, which includes an indication of the current owner, i.e., the public key of the current owner, embedded within metadata of the redeem script hash. The previous owner may be determined from their public key identified in the unlocking script of the input section of the transaction.
  • the title registry store 23 may also, or instead, comprise an identifier of the current and/or previous owner of the token.
  • the title registry store 23 may comprise a "Know Your Customer" (KYC) register of direct and/or indirect clients.
  • the maintenance of a KYC register may be a provision in the contract associated with the token, such as a condition of ownership.
  • a condition of validity of the token may require that a payee, such as the second user (B) 7, register directly with the party (P) or Issuer (I). This may be achieved via an off-block mechanism such as through a dedicated web page, with suitable checks such as requiring a signature to prove they are the owner, etc.
  • the party (P) or issuer (I) 3 may store the condition in an internal database, such as data store 11 or on a DHT, such as the DHT configured to store the terms and conditions of the contract described above.
  • the issuer (I) 3 may require to know the current owner in order to perform certain obligations, such as paying any income attached to the contract. For example, if the contract relates to part ownership of a race horse, it may be necessary for the Issuer to be identify a party to whom a share of winnings should be paid.
  • the one or more processing devices 21 may be configured to receive data from the first, second, and/or third processing devices 13, 15, and 17, and/or the one or more processing devices 19 across the communications network 8 and to store the data in the title registry store 23. Similarly, the one or more processing devices 21 may configured to retrieve data from the title registry store 23 and provide the retrieved data to the first, second, and/or third processing devices 13, 15, and 17, and/or the one or more processing devices 19 across the communications network 8, for example, in response to a request for data and/or automatically, such as at predetermined or regular intervals.
  • the recording in the title registry store 23 of a transaction comprising a transfer of a token (T) issued by an issuer (I) 3 is instigated by the issuer (I) 3 of that token (T).
  • the issuer (I) 3 using the one or more processors 13, sends a request to record the transfer of the token to the management application of the title registry store 23 over the communications network 8 to the one or more processors 21 associated with the title registry store 23.
  • the issuer of a token may also be responsible for maintaining or updating the title registry store 23 regarding transactions associated with the token, as discussed in more detail below.
  • the title registry store 23 may comprise a distributed hash table (DHT).
  • the distributed hash table (DHT) may also be configured to store contracts associated with the tokens.
  • the distributed hash table (DHT) configured to store contracts associated with the tokens may include a field comprising one or more links or pointers pointing to a location of a relevant entry in the distributed hash table (DHT) of the title registry database 23.
  • one or more parties (P) are responsible for updating the title store register 23 to maintain or keep an accurate record of any transfers of tokens, and accordingly, changes of ownership of the tokens.
  • each issuer (I) 3 of a token (T) is responsible for maintaining an accurate record of any changes of ownership of that token on the title store register 23, that is, a record of any transactions comprising a transfer of the token which have occurred.
  • a method 500 of maintaining a title registry store 23 for recording transfers of tokens issued by an issuer (I), wherein each token is associated with a quantity of cryptocurrency, will now be described with reference to Figure 5 .
  • a title registry maintenance application comprising executable code may be stored in memory 1520 ( Figure 8 ) of the one or more processing devices 13 and processor(s) 1510 ( Figure 8 ) of the one or more processing devices 13 may be configured to execute the title registry management application to perform the method 500 of maintaining a title registry store for recording transfers of tokens.
  • the method 500 may be performed by a processing device (not shown) associated with an authorised party (P) connected to the communications network 8.
  • the maintenance application is configured to monitor a blockchain 9 for transactions comprising transfers of tokens issued by the issuer (I), at 502.
  • the blockchain 9 for example, the Bitcoin Blockchain, records transactions and may include details of the transactions (TXs) such as the previous transaction identifier, input script(s), and the output script(s).
  • TXs the transactions
  • a token associated with a transaction may be determined from metadata of an input script of the transaction.
  • the maintenance application In response to determining a transaction comprising a transfer of a token (T) issued by the issuer (I), the maintenance application is configured to record the transfer of the token (T) on the title registry store 23. For example, in some embodiments, as shown in Figure 5 , the maintenance application is configured to send a request to record the transfer of the token (T) in the title registry store 23 to the management application hosted by the one or more processing devices 21 associated with a second party (P2) responsible for managing the title registry store 23.
  • P2 second party
  • the request may comprise data including an indicator of a transaction comprising a transfer of the token (T).
  • the data may comprise a transaction identifier of the transaction and/or the first data output (O1).
  • the data is authenticated by the issuer (I) 3, for example, in that it is signed using the issuer's signature (VI1). The data may be retrieved from the details of the transaction of the token recorded in the blockchain 9.
  • the management application stored in memory (not shown) of one or more processing devices (not shown) associated with the second party (P2) is executed by a processor(s) (not shown) of the one or more processing devices (not shown) to enter the data in the title registry store 23, at 510.
  • a new entry is created in the title registry store 23 for each request or valid request received by the second party (P2).
  • the management application may be configured to update the entry as opposed to creating another entry for the token (T).
  • a method 600 of determining the validity of a token (T) associated with a quantity of cryptocurrency using the title registry store 23 will now be described with reference to Figure 6 .
  • the validation application comprising executable code may be stored in memory 1520 ( Figure 8 ) of the processing devices 17 and processor(s) 1510 ( Figure 8 ) of the processing devices 17 is configured to execute the validation application to perform the method 600 of determining the validity of a first token (T1) associated with a first quantity of cryptocurrency (B1).
  • the method 600 may be performed by the processing device 17 associated with the second user (B) 7.
  • the first user (A) may send a first transaction comprising a transfer of the first token (T1) to the second user (B), at 602.
  • the validation application is configured to receive, over the communications network 8, the first transaction comprising a transfer of the token (T) from the first user (A) to the second user (B), at 604.
  • the first transaction may comprise a blockchain transaction for transfer of a portion of cryptocurrency, such as that discussed in connection with Table 7 above.
  • the transaction may comprise a transaction id, one or more inputs and one or more outputs.
  • the input(s) may relate to previous transaction(s) and each may comprise a previous transaction id and an unlocking script comprising a redeem script associated with the first token (T1).
  • At least one of the output(s) may relate to the transfer or payment being effected by the present or first transaction and may comprise a locking script.
  • the validation application is configured to determine whether the token (T) has been authenticated, at 606. For example, this may involve determining whether the redeem script associated with the token (T) and referenced as an input to the first transaction has been signed by an authorised signatory, such as issuer of the token (T) or a trusted service provider.
  • the validation application determines an indicator of a second transaction or previous transaction comprising a transfer of the token (T), at 608.
  • the second transaction may be a previous transaction that predates the first transaction.
  • the indicator may be a transaction identifier of the previous transaction.
  • the previous transaction may be a transaction identified as an input to the present transaction and the identifier may be identified as one of a plurality of input parameters of the present transaction.
  • the validation application is configured to query the title registry database 23 using the indicator to determine whether the second transaction is recorded on the title registry store 23, at 610. For example, if the second transaction has been recorded on the title registry store 23, the title store register 23 may include an indicator of the second transaction, such as the transaction identifier. Thus, in some embodiments, verification of the validity of a token may be determined despite not knowing who the previous or final owner is. Thus, embodiments of the invention provides a novel and advantageous validation technique which solves a technical problem not addressed by the prior art.
  • the title registry store 23 may also or instead comprise an identifier of the current and/or previous owner of the token.
  • the validation application may be configured to query the title registry store 23 only if the validation application first determines that the token (T) has not been authenticated as at 606.
  • the validation application In response to determining that the second transaction is recorded or registered in the title registry store, the validation application is configured to determine that the token (T) is valid, at 612.
  • the validation application in response to determining that the second transaction is not registered in the title registry store, is configured to determine that the token (T) is not valid, at 612. However, in other embodiments, in response to determining that the second transaction is not registered in the title registry store, the validation application is configured to perform steps 710 to 714 of method 700 as described below, at 614.
  • a method 700 of determining the validity of a token (T) associated with a quantity of cryptocurrency using the blockchain 9 will now be described with reference to Figure 7 .
  • the validation application comprising executable code may be stored in memory 1520 ( Figure 8 ) of the processing devices 17 and processor(s) 1510 ( Figure 8 ) of the processing devices 17 is configured to execute the validation application to perform the method 700 of determining the validity of a token (T) associated with a quantity of cryptocurrency.
  • the method 700 may be performed by the processing device 17 associated with the second user (B) 7.
  • the first user (A) may send a first transaction comprising a transfer of the token (T) to the second user (B), at 702.
  • the validation application is configured to perform steps 704 and 708, which correspond with steps 604 and 608 of method 600 as described above in connection with Figure 6 .
  • the validation application is configured to perform step 706, which corresponds with step 606 of method 600 as described above in connection with Figure 6 .
  • the validation application is configured to use the indicator of the previous transaction to query the blockchain 9 to determine whether an authenticated transaction associated with the token (T) can be identified, at 710.
  • An authenticated transaction comprises a transaction associated with the token (T) where the token (T) has been authorised.
  • a token may be considered to be authorised or legitimate if the redeem script associated with the token (T) has been signed by an authorised signatory, such as issuer of the token (T) or a trusted service provider.
  • Signing may comprise a digital, cryptographic signature.
  • the validation application may be configured to query the blockchain 9 only if the validation application first determines that the token (T) of the first transaction has not been authenticated as at 706. For example, this may involve determining whether the redeem script associated with the token (T) and referenced as an input to the transaction has been signed by an authorised signatory, such as issuer of the token (T) or a trusted service provider.
  • querying the blockchain 9 comprises comparing the indicator of the previous transaction with corresponding indicators of transactions recorded in the blockchain 9 to identify a prior transaction having the same indicator as the indicator of the previous transaction.
  • the indicator of the previous transaction may comprise a previous transaction ID indicated in the first transaction.
  • the validation application is configured to step through (ie iterate over) entries in the blockchain 9 to locate an authorised transaction associated with the token.
  • the validation application is configured to locate or identify the transaction associated with the token that immediately preceded the most recent transaction and to determine whether that transaction is an authorised transaction. If the transaction associated with the token that immediately preceded the most recent transaction is not an authorised transaction, the validation application is configured to locate or identify a yet earlier transaction associated with the token and to determine whether that transaction is an authorised transaction.
  • the validation application is configured to determine that the most recent or earlier transaction is an authorised transaction comprises determining whether a redeem script associated with the token and referenced as an input to the transaction has been signed by an authorised signatory, such as issuer of the token (T) or a trusted service provider.
  • the validation application in response to determining that a transaction recorded in the blockchain 9 is not an authorised transaction, is configured to determine an indicator of an earlier transaction from the entry of the transaction and to use the indicator of the earlier transaction to identify an entry for the earlier transaction in the blockchain 9.
  • the indicator may comprise a previous transaction ID associated with the transaction.
  • the validation application is configured to locate or identify the transaction that immediately preceded the most recent transaction or yet earlier transaction by determining a previous transaction identifier from an input script of the most recent transaction or earlier transaction. This process is performed iteratively until no earlier transaction can be identified. Therefore, the invention provides an advantageous validation technique comprising the dynamic construction of a logical hierarchy of related blockchain transactions. The hierarchy is constructed starting from an initial transaction and using a plurality of sources because the transactions are recorded within different blocks on the blockchain. In this sense, the invention identifies and associates the relevant data from multiple sources and uses it in the validation process.
  • step 712 Once the validation application identifies an authorised transaction, the method 700 moves to step 712. If, however, the validation application does not identify an authorised transaction, the method 700 moves to step 714.
  • the validation application In response to identifying an authenticated transaction in the blockchain 9, the validation application is configured to determine that the token (T) is valid, at 712. For example, if the validation application determines that the redeem script of the prior transaction has been signed by an authorised signatory, the validation application identifies the prior transaction as an authorised transaction.
  • the validation application in response to failing to determine an authenticated transaction in the blockchain 9, the validation application is configured to determine that the token (T) is not valid, at 714.
  • the issuer (I) 3, first user (A) 5 and second user (B) 7 may be associated with a first processing device 13, second processing device 15, and a third processing device 17.
  • the blockchain 9 may also be associated with one or more processing devices 19.
  • the title registry database 23 may also be associated with one or more processing devices 21.
  • Such a processing device may be part of an electronic device, such as a computer, tablet computer, mobile communication device, computer server etc.
  • the electronic device may include a data store 11 and a user interface (not shown).
  • FIG 8 illustrates an example of a processing device 13, 15, 17, 19, 21.
  • the processing device 13, 15, 17, 19, 21 includes a processor 1510, a memory 1520 and an interface device 1540 that communicate with each other via a bus 1530.
  • the memory 1520 stores instructions and data for implementing the methods described herein, including methods 300, 500, 600 and 700, and the processor 1510 is configured to execute the instructions from the memory 1520 to perform the methods.
  • the interface device 1540 may include a communications module (not shown) that facilitates communication with the communications network 5 and, in some examples, with the user interface and peripherals such as data store 11.
  • the processing device 1501 may comprise independent network elements, the processing device 13, 15, 17, 19, 21 may also be part of another network element. Further, some functions performed by the processing device 13, 15, 17, 19, 21 may be distributed between multiple network elements.
  • the issuer 3 may have multiple processing devices 23 to perform method 300, 500, 600 and/or 700 in a secure local area network associated with the issuer (I) 3.
  • Signing may comprise executing a cryptographic function.
  • the cryptographic function has an input for a clear text and an input for a key, such as a private key.
  • a processor may execute the function to calculate a number or string that can be used as a signature.
  • the signature is then provided together with the clear text to provide a signed text.
  • the signature changes completely if the message text or the key changes by a single bit. While calculating the signature requires little computational power, recreating a message that has a given signature is practically impossible. This way, the clear text can only be changed and accompanied by a valid signature if the private key is available. Further, other entities can easily verify the signature using the publicly available public key.
  • encrypting and decrypting comprises a processor executing a cryptographic function to calculate an output string representing the encrypted message or a clear text message respectively.
  • Keys, tokens, metadata, transactions, offers, contracts, signatures, scripts, metadata, invitations, and the like refer to data represented as numbers, text or strings stored on data memory, such as variables in program code of type "string” or "int” or other types or text files.
  • An example of the peer-to-peer ledger is the bitcoin block chain. Transferring funds or paying fees in bitcoin currency comprises creating a transaction on the bitcoin block chain with the funds or fees being output from the transaction.
  • An example of a bitcoin transaction includes an input transaction hash, a transaction amount, one or more destinations, a public key of a payee or payees and a signature created by using the input transaction as the input message and a private key of a payer to calculate the signature. The transaction can be verified by checking that the input transaction hash exists in a copy of the bitcoin block chain and that the signature is correct using the public key. To ensure that the same input transaction hash has not been used elsewhere already, the transaction is broadcast to a network of computing nodes ('miners'). A miner accepts and records the transaction on the block chain only if the input transaction hash is not yet connected and the signatures are valid. A miner rejects the transaction if the input transaction hash is already linked to a different transaction.
  • Allocating cryptocurrency for a token comprises creating a transaction with the allocated cryptocurrency and the token represented in a metadata field in the transaction.
  • identifiers for the two items may be stored in the same records to make the two items associated with each other.
  • identifiers for the two items may be included in the transaction string to make the two items associated with each other.
  • redeeming a script and/or unlocking a token comprises calculating a signature string of the script and/or transaction using the private key.
  • the script may require more than one signature derived from different private keys or other conditions.
  • the output of this transaction is then provided to a miner.
  • Authorising another entity may comprise calculating a signature string of a transaction using a private key and providing the signature string to the entity to allow the entity to use the signature to verify the transaction.
  • a user having an account with another entity may comprise the entity storing information about the user, such as email address, name and potentially public keys.
  • the entity may maintain a database, such as SQL, OrientDB, MongoDB or others.
  • the entity may also store one or more of the user's private keys.

Abstract

A computer-implemented method of determining the validity of a token (T) associated with a quantity of cryptocurrency is provided. In some embodiments, the method comprises: a second user (B) receiving, over a communications network, a first transaction comprising a transfer of the token (T) from a first user (A) to the second user (B), querying a peer-to-peer distributed ledger to determine whether an authenticated transaction associated with the token (T) can be identified, wherein the authenticated transaction comprises a previous transaction associated with the token (T) and wherein the token (T) has been authorised and responsive to identifying an authenticated transaction, determining that the token (T) is valid. In some embodiments, the method comprises: a second user: receiving, over a communications network, a first transaction comprising a transfer of the token from a first user to the second user; querying a title registry database to determine if a second transaction comprising a transfer of the token is recorded in the title registry database; and responsive to determining that the second transaction is recorded in the title registry database, determining that the token is valid.

Description

    Technical Field
  • The present invention relates generally to distributed ledger technologies such as, but not limited to, the Bitcoin blockchain. Described embodiments relate to security-enhanced systems and methods for validating tokens for blockchain based cryptocurrencies. Some embodiments relate to validating tokens associated with blockchain transactions (TXs) which have not been electronically countersigned by an authorised signatory. Other embodiments relate to systems and computer-implemented control method arranged to enable and improve the transfer and communication of blockchain-implemented tokens between computing nodes.
  • Background
  • In this document we use the term 'blockchain' to include all forms of electronic, computer-based, distributed ledgers. These include consensus-based blockchain and transaction-chain technologies, permissioned and un-permissioned ledgers, shared ledgers and variations thereof. The most widely known application of blockchain technology is the Bitcoin ledger, although other blockchain implementations have been proposed and developed. While Bitcoin may be referred to herein for the purpose of convenience and illustration, it should be noted that the invention is not limited to use with the Bitcoin blockchain and alternative blockchain implementations and protocols fall within the scope of the present invention.
  • A blockchain is a peer-to-peer, electronic ledger which is implemented as a computer-based decentralised, distributed system made up of blocks which in turn are made up of transactions. Each transaction (TX) is a data structure that encodes the transfer of control of a digital asset between participants in the blockchain system, and includes at least one input and at least one output. Each block contains a hash of the previous block to that blocks become chained together to create a permanent, unalterable record of all transactions which have been written to the blockchain since its inception. Transactions contain small programs known as scripts embedded into their inputs and outputs, which specify how and by whom the outputs of the transactions can be accessed. On the Bitcoin platform, these scripts are written using a stack-based scripting language.
  • In order for a transaction to be written to the blockchain, it must be "validated". Network nodes (miners) perform work to ensure that each transaction is valid, with invalid transactions rejected from the network. Software clients installed on the nodes perform this validation work on an unspent transaction (UTXO) by executing its locking and unlocking scripts. If execution of the locking and unlocking scripts evaluate to TRUE, the transaction is valid and the transaction is written to the blockchain. Thus, in order for a transaction to be written to the blockchain, it must be i) validated by the first node that receives the transaction - if the transaction is validated, the node relays it to the other nodes in the network; and ii) added to a new block built by a miner; and iii) mined, i.e. added to the public ledger of past transactions.
  • Although blockchain technology is most widely known for the use of cryptocurrency implementation, digital entrepreneurs have begun exploring the use of both the cryptographic security system Bitcoin is based on and the data that can be stored on the Blockchain to implement new systems. It would be highly advantageous if the blockchain could be used for automated tasks and processes which are not limited to the realm of cryptocurrency. Such solutions would be able to harness the benefits of the blockchain (e.g. a permanent, tamper proof records of events, distributed processing etc) while being more versatile in their applications.
  • One area of current research is the use of the blockchain for the implementation of "smart contracts". These are computer programs designed to automate the execution of the terms of a machine-readable contract or agreement. Unlike a traditional contract which would be written in natural language, a smart contract is a machine executable program which comprises rules that can process inputs in order to produce results, which can then cause actions to be performed dependent upon those results. In respect of commercial transactions, for example, these may involve the transfer of property rights and/or assets. Such assets may include real property, personal property (including both tangible and intangible property), digital assets such as software, for example, or any other type of asset. In the digital economy, there is often an expectation that exchanges and transfers will be performed in a timely manner and across vast distances. This expectation, along with practical, technical limitations, mean that traditional forms of asset transfer, such as physical delivery of hardcopy of documents representing a contract, negotiable instrument, etc. or the tangible asset itself is not desirable. Thus, smart contracts can provide enhanced control, efficiency and speed of transfer.
  • Another area of blockchain-related interest is the use of 'tokens' (or `coloured coins') to represent and transfer real-world entities via the blockchain. A potentially sensitive or secret item can be represented by the token which has no discernable meaning or value. The token thus serves as an identifier that allows the real-world item to be referenced from the blockchain. The use of tokenisation provides enhanced security and control in respect of the communication, transfer and verification of digital entities on the blockchain.
  • Any discussion of documents, acts, materials, devices, articles or the like which has been included in the present specification is not to be taken as an admission that any or all of these matters form part of the prior art base or were common general knowledge in the field relevant to the present disclosure as it existed before the priority date of each claim of this application.
  • Throughout this specification the word "comprise", or variations such as "comprises" or "comprising", will be understood to imply the inclusion of a stated element, integer or step, or group of elements, integers or steps, but not the exclusion of any other element, integer or step, or group of elements, integers or steps.
  • SUMMARY
  • Embodiments of the invention are provided as defined in the appended claims.
  • The invention may be described as a verification or authentication method and corresponding system, as it may enable the determination and/or identification of blockchain transactions which comprise or relate to token(s) and which have been digitally signed by an authorised signatory. This may be the token issuer or another party. Security is enhanced as a result of the verification technique.
  • Some embodiments relate to a computer-implemented method of determining the validity of a token associated with a quantity of cryptocurrency. The method may comprise: a second user: receiving, over a communications network, a first transaction comprising a transfer of the token from a first user to the second user; querying a peer-to-peer distributed ledger (blockchain) to determine whether an authenticated transaction associated with the token can be identified, wherein the authenticated transaction comprises a previous transaction associated with the token and wherein the token has been authorised; and responsive to identifying an authenticated transaction, determining that the token is valid.
  • In some embodiments, querying the peer-to-peer distributed ledger comprises querying the peer-to-peer distributed ledger in response to determining that the token of the first transaction has not been authenticated.
  • In some embodiments, determining that the token has not been authenticated comprises determining that a redeem script associated with the token and referenced as an input to the first transaction has not been (cryptographically) signed by an authorised signatory. The token of the authorised transaction may be signed by an authorised signatory. For example, the authorised signatory may comprise at least one of an issuer of the token and a trusted service provider.
  • In some embodiments, querying a peer-to-peer distributed ledger comprises: a) determining a previous transaction ID indicated in the first transaction; b) identifying a prior transaction recorded in the peer-to-peer distributed ledger, wherein the transaction ID of the prior transaction corresponds with the determined previous transaction ID; c) determining whether a redeem script of the prior transaction has been signed by an authorised signatory; d) responsive to determining that the redeem script of the prior transaction has been signed by an authorised signatory, identifying the prior transaction as the authorised transaction; e) responsive to determining that the redeem script of the prior transaction has not been signed by an authorised signatory, determining a previous transaction ID indicated in the prior transaction as the previous transaction ID; and identifying a further prior transaction recorded in the peer-to-peer distributed ledger as the prior transaction, wherein a transaction ID of the further prior transaction corresponds with the previous transaction ID; and f) iteratively performing steps c) to e) until no further prior transactions are identified.
  • Thus, the invention may comprise performance of one or more of the above steps to: inspect different transactions within respective blocks on the blockchain, starting from an initial or "trigger" transaction, to follow a logical path or hierarchy of transactions until the token's validity is established or at least sufficiently evidenced, or validation fails.
  • In some embodiments, the method further comprises responsive to failing to identify an authenticated transaction in the peer-to-peer distributed ledger, determining that the token is invalid.
  • Some embodiments relate to computer-implemented method of determining the validity of a token associated with a quantity of cryptocurrency, the method comprising: a second user: receiving, over a communications network, a first transaction comprising a transfer of the token from a first user to the second user; querying a title registry database to determine if a second transaction comprising a transfer of the token is recorded in the title registry database; and responsive to determining that the second transaction is recorded in the title registry database, determining that the token is valid. For example, the second transaction may predate the first transaction.
  • In some embodiments, querying the title registry database comprises querying the title registry database in response to determining that the token has not been authenticated.
  • In some embodiments, the title registry database comprises one or more entries relating to transactions comprising a transfer of a token, each entry being associated with a transaction indicator and wherein querying the title registry database comprises determining a transaction indicator associated with the token from the first transaction; and comparing the transaction indicator with the one or more transaction indicators of the title registry database to identify the second transaction. For example, the transaction indicator may comprise a transaction ID.
  • In some embodiments, determining that the token has not been authenticated comprises determining that a first redeem script associated with the token and referenced as an input to the transaction has not been signed by an authorised signatory. The authorised signatory may comprise at least one of an issuer of the token and a trusted service provider.
  • In some embodiments, the method further comprises responsive to determining that the second transaction is not recorded in the title registry database, determining that the token is invalid.
  • In some embodiments, the method further comprises responsive to determining that the second transaction is not recorded in the title registry database, querying a peer-to-peer distributed ledger to determine whether an authenticated transaction associated with the token can be identified, wherein the authenticated transaction comprises a previous transaction associated with the token, wherein the token has been authorised and responsive to identifying an authenticated transaction, determining that the token is valid.
  • Some embodiments relate to a computer-implemented method of maintaining, by a first party, a title registry database for recording transfers of tokens issued by an issuer, wherein each token is associated with a quantity of cryptocurrency, the method comprising: monitoring a peer-to-peer distributed ledger for transactions comprising transfers of tokens issued by the issuer; and responsive to determining a first transaction comprising a transfer of a token issued by the issuer recorded in the peer-to-peer distributed ledger, recording the transfer of the token in the title registry database.
  • In some embodiments, monitoring the peer-to-peer distributed ledger further comprises: determining a previous transaction ID of a transaction recorded in the peer-to-peer distributed ledger; comparing the determined previous transaction ID with a set of transaction IDs, each transaction ID of the set identifying a transaction associated with a token issued by the issuer; and responsive to the determined previous transaction ID matching one of the set of transaction IDs, determining the transaction associated with the previous transaction ID as the record of the first transaction comprising a transfer of tokens issued by the issuer.
  • In some embodiments, monitoring the peer-to-peer distributed ledger further comprises: determining a target transaction ID of a transaction associated with a token issued by the issuer; comparing the target transaction ID with previous transaction IDs of transactions recorded in the peer-to-peer distributed ledger; and responsive to the target transaction ID matching a previous transaction ID of one of the transactions recorded in the peer-to-peer distributed ledger, determining the transaction recorded in the peer-to-peer distributed ledger as the record of the first transaction.
  • In some embodiments, the method further comprises authenticating an entry associated with the recording of the transfer of the token in the title registry database by adding the issuer's signature to the entry.
  • In some embodiments, maintaining the title registry database is performed by at least one of the issuer and an approved service provider.
  • In some embodiments, the title registry database comprises a distributed hash table. For example, the distributed hash table may comprise contracts associated with the tokens issued by the issuer.
  • Some embodiments relate to a token validation system for determining the validity of a token associated with a quantity of cryptocurrency, the system comprising memory for storing a validation application and a processor, wherein the processor is configured to execute the validation application to perform any of the described methods.
  • Some embodiments relate to title registry maintenance system for maintaining a title registry database for recording transfers of tokens, each associated with a quantity of cryptocurrency, the system comprising memory for storing a maintenance application and a processor, wherein the processor is configured to execute the maintenance application to perform any of the described methods.
  • Some embodiments relate to a computer software program, including machine-readable instructions, when executed by a processor, causes the processor to perform any of the described methods.
  • Brief Description of Drawings
  • Examples of the present disclosure will be described with reference to:
    • Figure 1 is a schematic of an example system for creating and/or transferring tokens, according to some embodiments;
    • Figure 2 is a diagram illustrating an example of a first type of transaction between a first user and an issuer that includes creating a token;
    • Figure 3 is a process flow diagram of a computer-implemented method for creating a token, according to some embodiments;
    • Figure 4 is a diagram illustrating an example of a second type of transaction between a first user and a second user that includes transferring a token;
    • Figure 5 is a process flow diagram of a computer-implemented method for maintaining a title registry database for recording transfers of tokens, according to some embodiments;
    • Figure 6 is a process flow diagram of a computer-implemented method for validating a token, according to some embodiments;
    • Figure 7 is a process flow diagram of a computer-implemented method for validating a token, according to some embodiments; and
    • Figure 8 illustrates a schematic example of a processing device of the system of Figure 1, according to some embodiments.
    Description of Embodiments
  • Described embodiments relate to systems and computer-implemented methods for validating tokens for implementation in conjunction with blockchain based cryptocurrencies such as, for example, Bitcoin. Some embodiments relate to validating tokens associated with transactions which have not been countersigned by an authorised signatory. Other embodiments relate to systems and computer-implemented method for maintaining a title registry database for recording transfers of tokens. The token may be a representation or identifier which is associated with some type or physical, electronic, digital or abstract entity or asset.
  • Some embodiments relate to systems and computer-implemented methods for determining the validity of a token (T) associated with a quantity of cryptocurrency (B 1), wherein the token (T) is transferred from a first user (A) to a second user (B), for example, by means of a blockchain transaction Tx comprising (effecting) a transfer of the token (T). In some embodiments, the token (T) has not been authenticated, for example, by an authorised signatory, such as an issuer of the token (T) or a trusted service provider.
  • In some embodiments, a peer-to-peer distributed ledger (blockchain) may be queried to determine whether an authenticated transaction associated with the token (T) can be identified. This may or may not be the Bitcoin blockchain. For example, such an authenticated transaction may comprise a prior transaction associated with the token (T) where the token (T) has been authorised. In response to an authenticated transaction being identified, the token (T) may be determined to be valid. By "prior" transaction, we mean a transaction which has been previously written to the blockchain i.e. at an earlier date. It should be recalled that blocks (and thus transactions) are written to the blockchain in a chronological sequence. The previous transaction may be described as a transaction which is further back in the chain of blocks, ie closer to the originating, genesis block.
  • In some embodiments, a title registry storage resource e.g. database may be queried to determine if a second transaction comprising a transfer of the token (T) is registered or recorded in the title registry storage, where the second transaction predates the first transaction. In response to the second transaction (T2) being determined as having been recorded in the title registry store, the token (T) may be determined to be valid.
  • In some embodiments, a party (P), such as an issuer (I) of the token (T), may be responsible for maintaining the title registry storage by recording any transaction comprising a transfer of the token in the title registry storage.
  • Referring now to Figure 1, there is illustrated a system 1 comprising a first processing device 13 associated with an issuer (I) 3, a second processing device 15 associated with a first user (A) 5, and a third processing device 17 associated with a second user (B) 7. The first processing device 13, second processing device 15, and the third processing device 17 may be in communication with one another across a communications network 8. The first processing device 13 may also comprise or be in communication with, for example, directly or over the communications network 8, an associated data store 11.
  • Although the first processing device 13 is illustrated as a single node, it will be appreciated that the first processing device 13 may comprise one or more nodes associated with the issuer (I) 3 and one or more steps of any method described as being performed by first processing device 13 may be distributed and performed at different and/or multiples of the nodes of the first processing device 13.
  • In some embodiments, the second processing device 15 and the third processing device 17 may be a computer, a mobile communication device, or other electronic device used by the respective first and second user 5, 7. In other examples, the second processing device 15 and the third processing device 17 may be virtual machines accessible by the first and second users, respectively, via a terminal or other interface.
  • The issuer (I) 3 creates tokens and may be, for example, a bank, another financial institution, mint, company, etc. However, in other examples, the issuer may not be a financial institution and the invention is not limited to financially-oriented applications. The first user (A) 5 may request the creation of a token from the issuer (I) 3, may request to redeem part of or all of the value of a token with the issuer (I) 3, and/or request to transfer part of or all of the value of a token to the second user (B) 7. Similarly, the second user (B) 7 may request the creation of a token from the issuer (I) 3, may request to redeem part of or all of the value of a token with the issuer (I) 3, or request to transfer part of or all of the value of a token to the first user (A) 5.
  • The system 1 also comprises one or more processing devices 19 for managing a peer-to peer distributed ledger (blockchain) 9 for recording transactions. In particular, the one or more processing devices 19 may be configured to receive transactions, for example, from the first, second, and/or third processing devices 13, 15, and 17, respectively, across the communications network 8, and to record the transactions. An example of a peer-to-peer distributed ledger 9 includes the block chain, which is a distributed network of transactions (TXs) based on the bitcoin protocol. Thus, in some embodiments, the one or more processing devices 19 may be associated with "miners". Therefore, the invention comprises one or more processing devices 19 which are in communication with a blockchain-implemented distributed network. The network and various devices intercommunicate to put the invention into effect.
  • In some embodiments, the system 1 also comprises one or more processing devices 21 for managing a title registry database 23 for recording transactions associated with transfers of tokens. The one or more processing devices 21 may be in communication with the first, second, and/or third processing devices 13, 15, and 17, and/or the one or more processing devices 19 across the communications network 8. In particular, the one or more processing devices 19 may be configured to receive and record data pertaining to transactions comprising transfers of tokens (T).
  • Overview of transactions involving tokens
  • There are three general types of transactions that involve tokens, namely, the creation of tokens by the issuer (I) 3, the redeeming of part of or all of the value of a token by the first user (A) 5 or the second user (B) 7 with the issuer (I), or the transfer of part of or all the value of a token by the first user (A) 5 or the second user (B) 7 to the second user (B) 7 or the first user (A) 5, respectively.
  • Referring to Figure 2, the creation of a first token (T1) generally involves the first user (A) transferring fiat currency (e.g. $1,000 AUD) to the issuer (I) 3 and in exchange for the fiat currency, the issuer (I) "tokenising" a first quantity of cryptocurrency (B1) such that it has a token value and transferring this first quantity of cryptocurrency (B1) to the first user (A) 5. The first token (T1) may be representative of a contract, such as a contract where the issuer (I) agrees to redeem the bearer of the first token (T1) for a specified fiat currency amount (e.g. $1,000 AUD). Therefore, the first token (T1) may be similar to a negotiable instrument. Depending on the particular terms and conditions, the first user (A) 5 may redeem the first token (T1) at a future date for a value associated with the deposited fiat currency. The terms and conditions may also allow the first user (A) 5 to have at least part of the value of the token transferred to the second user (B). Such terms and conditions may be specific to the token or may be general terms and conditions between the users 5, 7 and the issuer (I) 3.
  • Overview of method of creating a token
  • A method 300 of creating a token will be described in detail below with reference to Figures 2 and 3. In particular, the method 300 includes allocating a first quantity of cryptocurrency (B1) for association with a first token (T1), at 310. The method further includes determining a first hash (H1) of a first redeem script (RS1), wherein the first redeem script (RS1) is based on: at least a first metadata (MD1) that includes information associated with the first token (T1); the first user public key (P1A); and a first issuer public key (P1I) associated with the issuer (I), wherein the first issuer public key (P1I) forms a cryptographic pair with a first issuer private key (V1I), at 312. The method 300 also includes sending, over the communications network 8, a first data output (O1) to the blockchain 9, at 314. The first data output (O1) includes: an indication of a transaction of the first quantity of cryptocurrency (B1) to the first user (A) 5; and the first hash (H1), wherein the first hash (H1) is associated with the first quantity of cryptocurrency (B1), to provide the first token (T1) that is associated with the first user (A) 5 and issuer (I).
  • Thus, the method 300 allows for the creation of a token whereby a record of the token is sent to the blockchain 9. An advantage of recording this transaction on the blockchain 9 is that it may allow the recipient, such as the first user (A) 5 to validate the existence of the token (T1). Furthermore, since the at least first metadata (MD1) that includes information associated with the first token (T1) is hashed, this allows the validation of the transaction (which is on the public record) against the information associated with the token. In one example, information associated with the first token (T1) may be terms and conditions of a contract. Thus, including the terms and conditions in the first redeem script to be hashed may advantageously provide comfort to the first user (A) 5 (or any other user) that the terms and conditions cannot be varied as any variation would alter the first hash (H1). Since the first hash (H1) was sent and recorded on the blockchain 9 at the time of creating the first token (T1), it would be impossible (or difficult) to alter the terms and conditions at a later time that would provide an identical first hash (H1).
  • Detailed method of creating a token
  • Referring to Figure 3, there is shown the method 300 of creating a first token (T1), according to some embodiments. In this example, the creating tokens will be discussed in the context of the first user (A) 5 depositing cash with the issuer (I) 3 in return for tokens representing the deposited cash. However, it is to be appreciated that this is a non-limiting example and that the tokens can be created in the context of other transactions. For example, the token may represent any other contract, negotiable instrument, tangible property, etc.
  • Agreeing on terms and conditions for the token
  • The first user (A) 5 instigates the creation of a first token (T1) by transmitting from the second processing device 15 a request for the first token (T1) to the first processing device 13 associated with the issuer (I) 3, at 302. In one example, the first user (A) 5 makes this request by depositing fiat currency, for example $1000 AUD, with a request to have this amount in tokens (T1). The request may include an offer for a contract, which may include one or more terms and conditions of a contract. For example, the first user (A) 5 may include in the request that the tokens associated with the deposit of $1000 AUD should have a fixed pegging rate to cryptocurrency. For example, a request that the pegging rate is 1000 satoshi/cent (AUD). It is to be appreciated that other terms and conditions may be included in the offer, such as account keeping fees, transaction fees, how the tokens can be redeemed, etc.
  • The first processing device 13 of the issuer (I) receives, over the communications network 8, the request from the first user (A) 5 for the first token (T1) and, in some cases, at least some of the terms and conditions, at 304. In some embodiments, the issuer (I) determines whether to accept the request, propose a counter offer that includes a modification of the terms and conditions of the request, or reject the request, at 306. In some embodiments, the method 300 may include sending by the issuer (I), over the communications network 8, the result of the determination in step 304, to the first user (A) 5.
  • In some embodiments, the request sent to the issuer (I) may simply include a request for a first token (T1). In this case, the issuer (I) may send an offer, including terms and conditions, to the first user (A) 5. The first user (A) 5 may, in turn, determine whether to accept the offer, propose a counter offer, or reject the offer, which is then sent to the issuer (I). It will be appreciated that multiple rounds of offers and counter offers may be sent and received between the issuer (I) and first user (A) 5 until they are in agreement. In some embodiments, the terms and conditions may be standardised, whereby the user accepts the terms and conditions by performing the steps in the method 300. In one example, the issuer (I) may have standardised offers for tokens for their customers, including the first user (A) 5. Such offers for tokens may be listed publicly, such as on a public exchange or on the issuer's website. Standing offers may also be provided by the issuer (I) to the first user (A) 5 privately, such as by email, through an application, or by logging in a secure website. The contract terms and conditions associated with the token may be stored in the data store 11, sent to a third party for storage, or torrented. In some embodiments, the terms and conditions may be stored on a distributed hast table (DHT).
  • Determining the first user public key
  • The method 300 includes determining a first user public key (P1A) of a cryptographic pair associated with the first user (A) 5, the cryptographic pair including a first user private key (V1A) and the first user public key (P1A), at 308. In one example, the first user public key (P1A) may be sent from the first user (A) 5, over the communications network 8, to the issuer (I). In another example, the first user public key (P1A) may be associated stored in the data store 11 (which may, for example, be received and stored during registration of the first user (A) 5). Thus, the step of determining 308 the first user public key (P1A) may include retrieving the key from the data store 11. In yet another example, the first user public key (P1A) may be received, over the communications network 8, from a third party. The third party may include, for example, a trusted third party that acts as a public directory, such as a certification authority.
  • Allocating a first quantity of cryptocurrency for association with the token
  • The method 300 includes allocating a first quantity of cryptocurrency (B1) for association with the first token (T1), at 310. In order for a record of a transaction involving the first token (T1) to be recorded on the peer-to-peer distributed ledger (which in this example is the block chain), the token must be associated with a quantity of cryptocurrency. In turn, that quantity of cryptocurrency is recorded on the blockchain as a transaction from the issuer (I) 3 to the first user (A) 5.
  • The allocation of the first quantity of cryptocurrency (B1) for association with the first token (T1) may be based on a ratio of the token value. For example, a pegging rate (PR1) may be specified for the first token (T1). Thus, allocating a first quantity of cryptocurrency (B1) at 310 may include determining a first quantity of cryptocurrency (B1) based on the pegging rate (PR1) and the first token value (TV1). As an illustrative example, the pegging rate (PR1) may be 1000 satoshis/cent AUD and the first token value (TV1) is $1000 AUD. Thus, the first quantity of cryptocurrency (B1) may be 10,000,000.
  • The quantity of cryptocurrency to be allocated for a token may be influenced by some of the following considerations. Firstly, the allocated quantity of cryptocurrency ideally has a market value (for this purpose, this means the market value of the cryptocurrency in itself, assuming it has a value, without reference to the token value) that is less than the value of the token ("token value"). This is desirable so that there is no motivation to use the quantity of cryptocurrency for the underlying value rather than as a token. This may be analogous to cash coins where it is desirable to have the face value of the coin to be higher than the metal the coin is minted from, so that there is no desire to melt the coins for the value of the metal. In some examples, the token value is multiples larger than the underlying value of the quantity of cryptocurrency. However, it is to be appreciated that some token may not have a fixed or easily determinable token value. For example, the token may be representative of a contract to perform work, whereby the value may change day to day. In other examples, the contract may only have a value that is determinable on the day it is redeemed.
  • Another consideration is that the quantity of cryptocurrency allocated should not be too large, relative to the token value or the value of the transaction, since recording a transaction of the quantity of cryptocurrency on the peer-to-peer distributed ledger may be at a cost, such as incurring a transaction fee. In some examples, the transaction fee is based on the quantity of cryptocurrency in the transaction and therefore it may be desirable to keep the quantity of cryptocurrency for the token at a minimum level.
  • On the other hand, the quantity of cryptocurrency allocated for association with the token cannot be infinitely small. Firstly, the cryptocurrency may have a minimum denomination amount, and for example, Bitcoin has a minimum amount of one satoshi (where 1 bitcoin (BTC) = 10,000,000 satoshi). Secondly, a transaction of cryptocurrency may be limited to a minimum size or else it will not be recorded (or the cost of the transaction will be close to, or exceed, the cost of performing the transaction). This minimum amount, in some examples, is a "dust" limit. Thus in some examples, allocating a quantity of cryptocurrency for a token must be above a minimum threshold of cryptocurrency (MT1). Therefore the method 100 may include determining the minimum threshold of cryptocurrency (MT1) suitable for the first token (T1) and determining a first quantity of cryptocurrency (B 1) that is at or above the minimum threshold of cryptocurrency (MT1). In one example, the minimum threshold of cryptocurrency (MT1), in "Bitcoin", is 546 satoshis.
  • Another consideration when allocating the quantity of cryptocurrency for a token is divisibility of the quantity of cryptocurrency for subsequent tokens. For example, the first token (T1) may have a token value (TV1) of $1000 AUD and the first user (A) 5 may wish to transfer $800 AUD of the token value to the second user (B) 7 and keep the remaining $200 AUD tokens. Such a transaction would involve a transaction with the first token (T1) that results in a second token (T2) representing $200 AUD that stays with the first user (A) 5 as change and creating a third token (T3) representing $800 AUD to be transferred to the second user (B) 7. Thus the result of this transfer is two tokens, the second token (T2) and third token (T3), where each of these tokens must also be allocated a quantity of cryptocurrency. If the first quantity of cryptocurrency (B1) was minimal, for example at the "dust" limit, then further amounts of cryptocurrency will need to be sourced so that each of the new tokens created are also associated with sufficient quantities of cryptocurrency to satisfy a minimum threshold. Therefore, there may be advantages to allocating a sufficient quantity of cryptocurrency (B1) for the first token (T1) such that the amount is sufficient to be divided up to be used for an anticipated number of subsequent tokens.
  • In one example, the terms and conditions may specify the quantity of cryptocurrency or the minimum value or denomination of a token. For example, the term and conditions may set the minimum denomination of token value to $10 AUD. Therefore, allocating a first quantity of cryptocurrency (B1) for a first token (T1) with a token value (TV1) of $1000 AUD may include determining a first quantity that will ensure that there is sufficient cryptocurrency if the entire token value (TV1) is divided up to the smallest denomination. In this example, the token value (TV1) may be divided to 100 subsequent tokens (calculated by $1000/$10). Therefore a suitable first quantity of cryptocurrency (B1) may be 100 times the "dust" limit.
  • Determining a first hash (H1) of a first redeem script (RS1)
  • The method 300 further includes determining a first hash (H1) of a first redeem script (RS1), at 312. In one example, the hash of the redeem script may be used to provide a pay to script hash (P2SH) address for a pay to script hash transaction. An example includes the hash functions used in P2SH script in the Bitcoin protocol. This may include a combination of SHA 256 followed by RIPEMD160.
  • The first redeem script (RS1) is a script that may be used to unlock the first token (T1) which, as discussed later, includes a transaction of the first quantity of cryptocurrency (B1). When unlocking the first token (T1), certain conditions of the first redeem script (RS1) must be met to unlock the transaction. In particular, the signatures of the first user (A) 5 and issuer (I) are required. An example of the first redeem script (RS1) will now be described.
  • The first redeem script (RS1)
  • The first redeem script (RS1) is based on: at least a first metadata (MD1) that includes information associated with the first token, the first user public key (P1A) and the first issuer public key (P1I).
  • (i) Redeem script in P2SH in general
  • As background, in a pay to script hash (P2SH) method the redeem script may take the form of:
    <NumSigs PubK1 PubK2 ... PubK15 NumKeys OP_CHECKMULTISIG>
    where
    • NumSigs - is the number "m" of valid signatures required to satisfy the redeem script to unlock the transaction
    • PubK1, PubK2 ... PubK15 - are the public keys that correspond to signatures that unlock the transaction (up to a maximum of 15 public keys)
    • NumKeys - is the number "n" of public keys (which must be 15 or less)
  • To unlock the above redeem script, at least a number "m" of signatures corresponding to the public keys are required. In some examples, the order of the public keys are important and the number "m" out of "n" signatures for signing must be done in sequence. For example, say that "m" is two and the number of public keys "n" is fifteen. Say that two signatures are available for use, say Sig1 (corresponding to PubK1) and Sig 15 (corresponding to PubK15), the redeem script must be signed by Sig1 first followed by Sig15.
  • (ii) The first redeem script (RS1) using P2SH
  • Turning back to the present example, the first redeem script (RS1) that utilises P2SH may include the at least first metadata (MD1) in the redeem script. In particular, the at least first metadata (MD1) may be embedded in one or more of the 15 places available for the public keys in the redeem script.
  • Therefore, in one example, the first redeem script (RS1) may take the form of:
    • <NumSigs Metadata1 Metadata2...PubK1 PubK2...NumKeys
    • OP_CHECKMULTISIG>
    where
    • NumSigs - is the number "m" of valid signatures required to satisfy the redeem script to unlock the transaction
    • Metadata1 and Metadata2- includes metadata that takes the place of a public key
    • PubK1 and PubK2 - are actual public keys. In one example, PubK1 may be the first user public key (P1A) and PubK2 may be the issuer public key (P1I)
    • NumKeys - is the is total number of positions taken by the metadata and the public keys (which must be 15 or less)
  • The advantage of this is that the metadata will be included in the first redeem script (RS 1), which in turn will be hashed and the record of which will be included in the blockchain 9. Therefore, it would be difficult, if not impossible, to change the values of the metadata without resulting in a change of the corresponding hash of the first redeem script hash (RS 1).
  • A practical advantage may be illustrated by the following example. The first user (A) 5 and the issuer (I) 3 may wish to enter into a contract with particular terms and conditions. The contract may include the issuer (I) creating a token, whereby the specific terms and conditions are included in the metadata embedded in the redeem script. A hash of the redeem script is then recorded on the blockchain 9, which becomes a record of the transaction that is difficult or impossible to change. Say the issuer (I) attempts to deceive the first user (A) 5, and for example, attempts to modify a term and alleges that the modified term was in the originally agreed contract. The first user (A) 5 may be able to contest this by placing the modified term in the metadata of the redeem script and hashing it, and then showing that this does not match the redeem script recorded on the blockchain. Therefore, including information associated with the token in the at least first metadata may be useful for ensuring the integrity of the token.
  • It is to be appreciated that the metadata in the redeem script may itself include a hash of other information. For example if the terms and conditions is lengthy, a hash of the terms and conditions may be used to provide a shorter metadata.
  • The first redeem script (RS 1) may be stored in the data store 11 as a record and for redeeming the first token (T1). In some alternative examples, the first redeem script may be sent to the first user (A) 5, or a third party .
  • The metadata
  • In the present example, the first redeem script (RS1) takes the form:
    <2 Metadata1 Metadata2 P1A P114 OP_CHECKMULTISIG>
  • Thus the at least first metadata (MD1) includes both Metadata1 and Metadata2 that occupies two of the places in the redeem script. This is followed by two public keys in sequence, the first user public key (P1A) and the first issuer public key (P1I). The NumSigs is 2 which mean two signatures are required to unlock the transaction.
  • The metadata may include information regarding the token in a number of ways. As discussed, in one example the terms and conditions may be included in the metadata. In another example, a hash of the terms and conditions may be included in the metadata. In yet another example, the metadata may include a pointer to a file that contains the terms and conditions of a contract. In further embodiments, combinations including one or more of the above may be included in the metadata.
  • (i) Metadata with pointer to terms and conditions
  • A specific example of the first metadata (MD1) is illustrated in Table 1 below. Table 1
    Field Sub-field Bytes Value Comments
    Metadata1 ContractType 4 Coded value indicates type of contract.
    ContractPointer 16 IPv6 address of the actual contract file location
    ContractTypeData1 12 Format depends on value of ContractType. Padded with zeros
    Metadata2 ContractHash 20 RIPEMD-160(SHA256(actual contract file addressed by ContractPointer))
    ContractTypeData2 12 Format depends on value of ContractType. Padded with zeros
  • This example includes a minimum amount of information in relation to the token and transaction. This example includes providing a pointer to the (smart) contract which may be useful where the size of the contract precludes including such details in the metadata. Furthermore, since the metadata may be made public, or transmitted over an unsecure network, it may be desirable that specific details of the token be veiled or hidden for privacy reasons.
  • The first 4 bytes of metadata1 indicates the type of contract. For example, the contract type may be for 'Fiat Currency'. The next 16 bytes holds the IP address of the location of the actual electronic contract file, making allowance for IPv6 addresses. Note that in some embodiments, this value may point to the seed of a torrent file such that the contract file can be distributed over the cloud rather than being centralised. The following 12 bytes contains data specific to the type of contract.
  • The first 20 bytes of metadata2 is a hash of the actual contract file using RIPEMD-160 over SHA256 applied to the file. As the actual contract file is retrievable this allows validation of the transaction against the contract. Note that the contract file itself may be completely public (unencrypted and human readable) or may be encrypted for privacy, depending on the requirements of the specific embodiment. The content of the remaining 12 bytes of metadata2 may be used depending on the type of contract.
  • (ii) Metadata with key parameters of the token
  • Another specific example of the first metadata (MD1) is illustrated in Table 2 below: Table 2
    Field Sub-field Bytes Value Comments
    Metadata1 ContractType 4 0x00000001 Indicates Fiat Currency
    ContractPointer 16 IPv6 address of the actual contract file location
    FiatDenomination 2 Coded value indicating currency (e.g. 0x0001=CAD, 0x0002=PHP, etc)
    PeggingRate 1 Coded value represents the BTC/fiat pegging rate.
    TransactionType 1 Coded value represents type of output (issuance/payment/redemption)
    Padding 8 0x00000... Spare bytes
    Metadata2 ContractHash 20 RIPEMD-160(SHA256(the actual contract file addressed by ContractPointer))
    Padding 12 0x00000... Spare bytes
  • In this example, some key parameters of the token included in the metadata. By key parameters, this may include information relevant the token itself or information that may assist processing of the transaction. In particular, the bytes allocated to the Sub-field "ContractTypeData1" in Table 1 above has been used for indicating: fiat denomination, pegging rate, and transaction type.
  • Inclusion of the key parameters in the metadata may assist greater processing efficiency as the issuer (I) 3 may, in some cases, process the tokens in transactions without retrieving the contract file for the key information required to process the transaction.
  • In addition to the above information, other information relating to the history of the token or the tokens preceding the token may be included. For example, if the first user (A) 5 wishes to redeem a portion of the first token (T1) and a second token (T2) is created by the issuer (I) to represent the value of the remaining portion, the issuer may embed information in the metadata to associate the second token (T2) with the first token (T1). This may assist the issuer (I) to account for and keep track of the tokens without the expense of tracing through the history of transactions which, for an issuer (I) such as a bank, can be an intensive task.
  • In Table 2, the metadata contains a 2-byte field to indicate the fiat currency (FiatDenomination) and 1-byte field called PeggingRate. The pegging rate is set by the Issuer (I). Several different rates may be set for the same fiat currency, however, a different token (with a different contract) will be needed for each different rate. The choice of rate may be at the discretion of the Issuer (I), however who may take similar considerations for the pegging rate as for the allocation of the quantity of cryptocurrency for the token as discussed above.
  • In one example, the PeggingRate is an 8-bit coded value as follows:
    Leftmost bit will be used as a flag:
    • 1 = rate expressed as satoshis/cent ('cent' refers to one hundredth of the fiat currency, which is the minimum fiat amount)
    • 0 = rate expressed as cents/satoshi
    The rightmost seven bits represents the rate as a power often in binary, for example:
    USD 10000010 means rate of 100 satoshis/cent (flag is on)
    PHP 00000000 means rate of 1 centavo/satoshi (flag is off)
    IDR 00000001 means rate of 10 rupiah/satoshi (flag is off)
  • In one example, TransactionType is a 1-byte field indicating whether the transaction is an "issuance" (in which a token is created from cryptocurrency), a payment (in which at least part of the token value is transferred from one user to another user); or a redemption (in which tokens are transferred to the issuer (I) and converted back to regular cryptocurrency).
  • In some examples, the "Padding" in both the Metadata1 and Metadata2 may include randomly generated values for each transaction. The result is that each of Metadata1 and Metadata2 will vary between transactions. An advantage is that this may lower the risk, and motivation, of an unscrupulous person trying to determine a private key that would match one or both of Metadata1 or Metadata2 as a cryptographic pair (for the purpose of using such a private key to sign the redeem script). This may be important for standardised tokens where the remaining bulk of the Metadata1 or Metadata2 is the same.
  • The public keys
  • The first user public key (P1A) and the issuer public key (P1I) are respectively paired with corresponding first user private key (V1A) and issuer private key (V1I). It will be appreciated that in some embodiments, the public keys may be known widely to the public, while in other embodiments, it may be desirable to communicate the public keys as required.
  • In some embodiments, the issuer (I) is a financial institution that also manages an electronic wallet of the first user (A) 5 and second user (B) 7 and the first user (A) 5 and second user (B) 7 may access their respective electronic wallets through a virtual machine environment or a terminal. The electronic wallet may be hosted by the issuer (I) 3 (or a server associated with the issuer (I) 3) and the private key(s) of a corresponding user are stored in the data store 11 but can only be accessed (or recreated) by the issuer (I) 3 with authorisation from that user. In such cases, the first and second users 5, 7 may authorise their private keys to be provided to the issuer (I) 3 to unlock the redeem script. This may include authorising the user's private key(s) to be sent to the first processing device 13 of the issuer (I) 3, wherein the first processing device 13 may unlock the redeem script with the user's private key(s) (e.g. P1A, P1B) and the first issuer public key (P1I).
  • Sending a first data output (O1) to a blockchain 150
  • The method 300 further includes sending by the issuer (I) 3, over a communications network 8, a first data output (O1) to a p blockchain 9, at 314. This first data output (O1) may include an indication of a transaction transferring the first quantity of cryptocurrency (B1) to the first user (A) 5, that is, recording that the underlying quantity of cryptocurrency (B1) associated the first token (T1) has been transferred to the first user (A) 5. The first data output (O1) also includes the first hash (H1) discussed above. The first hash (H1) is associated with the first quantity of cryptocurrency (B1), to provide a record of the first token (T1) that is associated with the first user (A) 5 and the issuer (I). Thus, the first hash (H1) is recorded on the blockchain 9 and can be used to prove or verify the existence of the token (T1), the relationship between the issuer (I) and first user (A) 5, and/or the terms and conditions of the token.
  • The method 300 may also include storing 160 the first redeem script (RS1) in a data store 11 for later use.
  • A specific example of a transaction that creates a first token (T1) will now be described with reference to Figure 2.
  • First user (A) 5 deposits $1000 AUD to the Issuer (I) for equivalent value in a token
  • In this example, the first user (A) 5 wishes to deposit $1000 AUD to the issuer (I), who, in return creates a first token (T1), with a token value (TV1) of $1000 AUD, by associating this with a first quantity of cryptocurrency (B1) of 10,000,000.
  • To create tokens, the issuer (I) needs to have cryptocurrency. This may be sourced from previous transactions, or sourced in response to the request from the first user (A) 5 for a first token (T1). This is shown on the left hand side of Figure 2 as the "First quantity of (untokenised) cryptocurrency".
  • Table 3 below shows an originating transaction output, in the form of transaction-ID / Satoshis amount/ locking script. This originating transaction output represents the cryptocurrency that the issuer (I) has acquired from a previous transaction and in which at least some of the cryptocurrency will be used for association with the first token. Table 3
    ID-201
    50,000,000
    OP_DUP OP_HASH160 <PubK-Issuer hash> OP_EQUALVERIFY OP_CHECKSIG
  • The first line "ID-201" is a transaction identifier to identify this transaction. The next line is the number of satoshis in this transaction, which is 50,000,000. The third line is the locking script (output script) for this transaction. The redeem script in this output, <PubK-Issuer hash> , shows that this output has been locked with the first issuer public key (P1I). That is, this transaction can be unlocked using the issuer's corresponding first issuer private key (V1I).
  • As discussed above, the method 300 includes allocating a first quantity of cryptocurrency (B1) suitable for the first token (T1), at 310. However, the quantities of cryptocurrency that the issuer (I) has on hand may not exactly match the first quantity of cryptocurrency (B 1). In the present example, the required first quantity of cryptocurrency (B1) is 10,000,000 which is much less than the 50,000,000 in from the transaction ID-201. Accordingly, a transaction to create a first token (T1) may include providing change of cryptocurrency back to the issuer (I) for the excess amounts of cryptocurrency that was not required for the token. Furthermore, the creation of the token 100 may be a transaction that requires a payment of a transaction fee to a miner. This is illustrated with reference to Table 4 below which shows the transaction for creating the tokens.
    Figure imgb0001
  • The first line "ID-210" is a transaction identifier to identify this transaction. The second line indicates the "Version number" which states the version of the Bitcoin protocol used.. The third line indicates the number of inputs for this transaction, which indicates a single input.
  • Lines 4 to 7 in Table 4 relate to those of the "input" - that is, a previous transaction, ID-201 that is funding the present transaction, ID-210. Line 4 is the transaction identifier of the previous transaction, ID-201. Line 5 "IDX-00" is an index of the output of the previous transaction, ID-201 (which in this case is a reference that the first output from the previous transaction, ID-201, should be used). Line 6 is the "ScriptSig", which is the unlocking script for the previous transaction, ID-201. As noted above, previous transaction was locked with the first issuer public key (P1I), that is represented by PubK-Issuer. Accordingly, the previous transaction can be unlocked using the issuer's corresponding first issuer private key (V1I) that is represented as Sig-Issuer. Line 7 is a sequence number associated with the input. In bitcoin transactions each contains a 4-byte field called `sequence number' which is no longer used by the bitcoin core. Depending on the issuer's implementation, an option is to utilise this field to allocate transaction inputs to outputs. The sequence number can represent a string of 1-bit flags whereby the position of each flag starting with the rightmost bit indicates that the input has contributed part of its funds to the flagged output. In this example, the sequence number "000000000000000000000000000000011" indicates that the input is to be paid into outputs 1 and 2, which will be described below.
  • Line 8 in Table 4 indicates the number of outputs for this transaction, which is two. Lines 9 to 11 represent the first output and lines 12 to 14 represent the second output.
  • The first output reflects the first quantity of cryptocurrency (B1) that is associated with the first token (T1). Line 9 is an output value of first quantity of cryptocurrency (B1), which is 10,000,000 satoshis. Line 10 indicates the output script length. Line 11 is the output script - i.e. the locking script that locks the first quantity of cryptocurrency (B1). This includes the first hash (H1) of a first redeem script (RS1) and is represented by:
    OP_HASH160 <redeem script hash> OP_EQUAL
  • The "OP HASH160" is a type of hash function where the input is hashed twice - with SHA-256 and subsequently with RIPEMD-160. The redeem script hash is the hash of the first redeem script (RS1) which is in the form described above, and for this example is:
    2 metadata1 metadata2 P1A P1I4 OP_CHECKMULTISIG
  • This includes the first user public key (P1A) and the first issuer public key (P1I) as described above. The metadata 1 and metadata2 may include metadata as described above, including an indication that this is an "issuance" transaction. OP_EQUAL provides a Boolean result for verifying the output.
  • The second output reflects the issuer's change for the transaction. Since the input, being the previous transaction ID-201, included 50,000,000 satoshis, the Issuer (I) can expect to receive left over satoshis. Line 12 is an output value for the second output which is 39,999,000. Line 13 is the output script length and line 14 is the output script for the second output. Since the second output is the change back to the issuer (I), the issuer should be free to spend the second output. Accordingly, the output script (i.e. locking script) only includes the first issuer public key (P1I) which is represented by <PubK-Issuer hash>.
  • Generally, the output value(s) of a transaction must be equal to or less than the input. In the above example, the input was 50,000,000 and the output is 49,999,000 (based on 10,000,000 of the first output and 39,999,000 of the second output). Thus, there is a deficit of 1,000 satoshis. In this example, the 1,000 satoshis is a transaction fee (e.g. miner's fee).
  • Overview of redeeming part of or all of the value of a token by the first user (A) with the issuer (I)
  • Generally, tokens are redeemed with the issuer (I) 3. In embodiments, where the issuer (I) is a service provider that provides electronic wallets for the users 5, 7, the private keys of the users are kept secure in a data store 11 associated with the issuer (I) 3. Therefore, in such embodiments, the users 5, 7 (or their respective processing devices 15, 17) do not sign the redeem script. Instead, the issuer (I) 3, with authorisation from the users 5, 7, signs the redeem script. For example, the first user (A) 5 may send a request to redeem a token to the issuer (I) 3 and either implicitly, or explicitly, this request to redeem a token also includes an authorisation by the first user (A) 5 for the issuer (I) 3 to use the first user private key (P1A) to redeem the token.
  • A method for redeeming a first token (T1) may include receiving by the issuer (I) 3, over the communications network 8, a request from the first user (A) 5 to redeem the first token (T1), determining a first redeem script (RS1) associated with the first token (T1) and obtaining the first user private key (V1A), for example, from the data store 11 or from another entity or node. The issuer may then sign the first redeem script (RS1) with the user private key (P1A) and the first issuer private key (P1I). This may be advantageous as the issuer (I) 3, who is the service provider for the first user (A) 5, can perform these steps securely at the first processing device 13 and without sending the first redeem script (RS1), signed or unsigned, over the communications network 8.
  • The method may also include sending, over the communications network 8, a second data output (O2) to the blockchain 9 comprising an indication of a transaction of the first quantity of cryptocurrency (B1) to the issuer (I). Thus, the method returns the first quantity of cryptocurrency (B1) associated with the first token (T1) back to the issuer (I). In one example, since the first redeem script (RS1) is signed with the private keys of both the first user (A) 5 and the issuer (I), the recipient of the first quantity of cryptocurrency (B1) in this transaction, being the issuer (I) 3, may then spend the first quantity of cryptocurrency for other transactions - whether as cryptocurrency alone or with other associated tokens.
  • Transfer of part of or all of the value of a token by the first user (A) to the second user (B)
  • In some embodiments, in order to allow the first user (A) 5 wishing to transfer the value, or portion thereof, of the first token (T1) to the second user (B), one or more additional tokens may be created. For example, a third token (T3) may be created that is associated with the second user (B) 7 and the issuer (I) 3. This may advantageously allow the first user (A) 5 to, in effect, transfer the same or similar rights associated with a first token (T1), to the second user (B). Although a new token, in the form of a third token (T3), is created, the third token (T3) may have similar characteristics as the first token (T1). For example, the tokens may have associated metadata that is the same or similar. This may be useful, for example, if the same or similar terms and conditions applicable between the first user (A) 5 and the issuer (I) 3 should also apply between the second user (B) 7 and the issuer (I) 3.
  • In one example, the first user (A) 5 may wish to transfer the entire value of the first token (T1) to the second user (B). Such cases may involve the creation of a third token (T3) associated with the first quantity of cryptocurrency B1 that is to be transferred to the second user (B) 7. Effectively, the third token (T3) is the transfer of the first token (T1), and rights associated with the first token (T1), to the second user (B) 7.
  • In a further example, only a first portion (R1) of the total value of the first token (T1) is transferred to the second user (B) 7, and in such cases, the remaining second portion (R2) of the total value may be included in a second token (T2) that is refunded back to the first user (A) 5. Thus, the request to create the third token (T3) may comprise, explicitly or implicitly, a request to create the third token (T3) with a third token value (TV3) based on the first portion (R1).
  • Transfer a token by the first user (A) to the second user (B) without the involvement of the issuer (I) or other third party intermediary.
  • In the examples described in the section above, the transfer of the value of a token from the first user (A) 5 to the second user (B) involves the issuer (I) 3 as an intermediary to facilitate the transfer. This is distinguished from a direct transaction of the first quantity of cryptocurrency (B1) from the first user (A) 5 to the second user (B) 7.
  • However, in some cases, it may be desirable to transfer the value of a token by the first user (A) 5 to the second user (B) 7 without the involvement of the issuer (I) 3 or other third party intermediary. For example, such a situation may arise if the second user (B) 7 does not have a service provider or if the service provider of the second user (B) 7 is not within the same web of trust as the service provider of the first user (A) 5 or the issuer (I) 3 responsible for minting the token. In such embodiments, the second user (B) 7 may wish to take precautions to ensure the legitimacy or validity of the token being transferred.
  • Generally, if the second user (B) 7 has a service provider (SPB) within the same web of trust as the service provider (SPA) of the first user (A) 5, then the service provider (SPB) acts as a signatory for the transaction on spending or redeeming the token and accordingly, the second user (B) 7 is assured of the token's authenticity or validity. However, if the second user (B) 7 does not have a service provider (SPB) or does not have a service provider (SPB) within the same web of trust as the service provider (SPA) of the first user (A) 5, the issuer (I) or an authorised party will not be available to authenticate or validate the transaction.
  • Thus, the second user (B) 7 may wish to determine the legitimacy of a token (T1) being transferred to the second user (B) 7. In some embodiments, a validation application comprising executable computer code is stored in memory 1520 (Figure 8) of the processing device 17, and when executed by processor 1510 (Figure 8) of the processing device 17, causes the processing device 17 to perform a method 600 or 700 of determining the validity of a token (T) associated with a quantity of cryptocurrency, as discussed in more detail below with reference to Figures 6 and 7 respectively. In some embodiments, the second user (B) 7 may manage an electronic wallet (not shown) which may be accessed through a virtual machine environment or a terminal associated with the processing device 17 and the electronic wallet may include an addon feature which allows the second user (B) 7 to cause the processing device 17 to execute the validation application.
  • A specific example of a transaction that transfers a token (T1) from the first user (A) to the second user (B) will now be described with reference to Figure 4.
  • First user (A) transfers the first token (T1) to the second user (B)
  • In this example, the first user (A) 5 wishes to transfer the token (T) to the second user (B) as shown in Figure 4. This results in a transaction of the quantity of cryptocurrency from the first user (A) 5 to the second user (B) 7, referred to as transaction ID-510 below. The transfer of the quantity of cryptocurrency to the second user (B) 7 allows the second user (B) 7 to then spend the quantity of cryptocurrency (B1) as tokens for future transactions. The second user (B) 7 may also "detokenize" the quantity of cryptocurrency (B1) by one or more transactions that removes the metadata (which may include the payment transaction that transferred the quantity of cryptocurrency (B1) to the second user (B) 7). The second user (B) 7 may further spend this cryptocurrency without the restriction of requiring authorisation (such as a signature) from the first user (A) 5 or other user.
  • Before describing the transaction to transfer the first token, ID-510, as illustrated in Table 7 below, we will briefly describe the originating transaction outputs (from transaction ID-500 and ID-400) that are the inputs to the present payment transaction, ID-510. The two inputs in general, include the quantity of cryptocurrency associated with the token (T), and another quantity of cryptocurrency which is used to pay the transaction fee (e.g. miner's fee).
  • For example, the first user (A) 5 may have received the quantity of cryptocurrency in transaction ID-500. The outputs that went to the first user (A) 5 in transaction ID-500 may be summarised as: Table 5
    ID-500
    10,000,000
    OP_HASH160,redeem script hash> OP_EQUAL
  • Line 2 in Table 5 represents the quantity of cryptocurrency associated with the token (T) which numbers in 10,000,000 satoshis. Line 3 represents the output script, which is equivalent to line 11 in Table 4 described above.
  • The first user (A) 5 may also need to pay the transaction fee (e.g. miner's fee) for the payment transaction, ID-510, which is paid in part from a quantity of cryptocurrency received from a previous transaction, ID-400. This quantity of cryptocurrency may be summarised as: Table 6
    ID-400
    1,000
    OP_DUP OP_HASH160 <PubK-Alice hash>OP_EQUALVERIFY OP_CHECKSIG
  • Line 2 of Table 6 indicates the amount of cryptocurrency from previous transaction which is 1,000. Line 3 of Table 6 is the output script from this previous transaction. Since the cryptocurrency from this transaction, ID-400, is not associated
    Transaction: Alice pays Bob 10,000,000 tokenised bitcoin
    ID-510 Transaction ID
    Version number Version number
    2 Number of inputs
    ID-500 Prev Trans Output
    1 DX-00 Prev Trans Output Index
    Script length Script length
    Sig-Alice Sig-Issuer <2 metadata1 metadata2 PubK-Alice PubK-Issuer 4 OP_CHECKMULTISIG> ScriptSig
    Sequence number Sequence number
    ID-400 Prev Trans Output
    IDX-01 Prev Trans Output Index
    Script length Script length
    Sig-Alice PubK-Alice ScriptSig
    Sequence number Sequence number
    1 Number of outputs
    10,000,000 Output value
    Output script length Output script length
    OP_HASH160 <redeem script hash> OP_EQUAL Output script
    LockTime LockTime
    with a token (or a user associated with a token), the redeem script hash is simply a hash
    of the first user public key (P1A) which is shown as PubK-Alice. That is, to spend the output from transaction ID-400, this simply requires the signing with the first user private key (V1A).
  • The transaction, ID-510, to transfer the first token (T1), will now be discussed with reference to Table 7 below.
  • Table 7
  • Line 1 "ID-510" is a transaction identifier to identify this transaction. The second line indicates the "Version number" which states the version of the Bitcoin protocol used.. Line 3 indicates the number of inputs for this transaction, which indicates two inputs.
  • Lines 4 to 8 in Table 7 relate to those of the first input - that is, a previous transaction, ID-500 that is funding the present transaction, ID-510. Line 4 is the transaction identifier of the previous transaction, ID-500. Line 5 "IDX-00" is an index of the output of the previous transaction, ID-500 (which in this case is a reference that the first output from the previous transaction, ID-500, should be used). Line 6 is "Script length", which is an indication of the script length. Line 7 is "ScriptSig", which is the unlocking script for the previous transaction, ID-500. As indicated, previous transaction ID-500 was locked with the first user (A) public key (P1A) represented by PubK-Alice and a first issuer public key (P1I) represented by PubK-Issuer. Accordingly, the previous transaction can be unlocked using Alice's corresponding private key (V1A) that is represented as Sig-Alice and the issuer's corresponding first issuer private key (V1I) that is represented as Sig-Issuer. Line 8 is a sequence number associated with the input.
  • The first user (A) also needs to pay the transaction fee (e.g. miner's fee) for the transfer transaction, ID-510, which is paid in part from a quantity of cryptocurrency received from a previous transaction, ID-400. Lines 11 to 15 in Table 7 relate to those of the second input - that is the payment of the miners fee. Line 11 is the transaction identifier of the previous transaction, ID-400. Line 12 is "IDX-01" is an index of the output of the previous transaction, ID-400. Line 13 is "Script length", which is an indication of the script length. Line 14 is "ScriptSig", which is the unlocking script for the previous transaction, ID-400. Since the cryptocurrency from this transaction, ID-400, is not associated with a token (or a user associated with a token), the redeem script hash is simply a hash of the first user public key (P1A) which is shown as PubK-Alice. That is, to spend the output from transaction ID-400, this simply requires the signing with the first user private key (V1A). Line 15 is a sequence number associated with the input.
  • Line 17 of Table 7 indicates the number of outputs for this transaction, which is one. Lines 18 to 21 represent the output which reflects the quantity of cryptocurrency that is associated with the token (T). Line 18 is an output value of quantity of cryptocurrency, which in this case is 10,000,000 satoshis. This corresponds to the quantity of cryptocurrency from the token (T). Line 19 indicates the output script length. Line 20 is the output script - i.e. the locking script that locks the transfer of the token (T) associated with the quantity of cryptocurrency to the second user (B). This includes the hash (H) of a redeem script (RS) and is represented by:
    OP_HASH160 <redeem script hash> OP_EQUAL
  • The "OP_HASH160" is a type of hash function where the input is hashed twice - with SHA-256 and subsequently with RIPEMD-160. OP_EQUAL provides a Boolean result for verifying the output. The redeem script hash is the hash of the redeem script (RS) which is in the form described above, and for this example is:
    1 metadata1 metadata2 PubK-Bob 3 OP_CHECKMULTISIG
  • This redeem script includes the metadata from the token (T) as well as the issuer public key (P1I) shown as PubK-Issuer. The metadata 1 and metadata2 may include metadata as described above, including an indication that this is a "payment" transaction. This redeem script requires one of three signatures to spend the 10,000,000 satoshis. In practice, the second user private key (V1B) may be used to sign and spend the cryptocurrency for subsequent transactions. It notable that the first user public key (P1A) is not in this redeem script. This is because the token (T) and accordingly, the associated quantity of cryptocurrency, has been transferred to the second user (B) 7 and therefore may be considered as spent by the first user (A) 5. Accordingly, the second user (B) 7 should be free to spend the token (T) without requiring authorisation (such as implicit authorisation through a signature of the first user (A) 5).
  • In this example, the previous transaction, ID-500 (i.e. the unspent transaction output (UTXO)) that is funding the present transaction, ID-510 has been signed by the issuer I. Thus, in some embodiments, the second user (B) 7 may determine that the first token (T) associated with a quantity of cryptocurrency associated with the transaction ID-510 is valid if the token (T) has been authenticated, for example, signed, by an authorised signatory, such as the issuer (I). For example, the token (T) may be considered to have been authorised by an authorised signatory if a redeem script (RS) associated with the token (T) and referenced as an input to the transaction ID-510 has been signed by an authorised or trusted signatory.
  • However, consider the case that the service provider (SPA) of the first user (A) 5 is not in the same web of trust as the issuer (I) and that the token (T) associated with the transaction ID-510 is not signed by an authorised signatory. In such a circumstance, the redeem script of the previous transaction ID-500 shown on Line 7 of Table 7, for this example would instead take the form:
    1 metadata1 metadata2 PubK-Alice 3 OP_CHECKMULTISIG
  • In this embodiment, the redeem script (RS) associated with the token (T) and referenced as an input to the transaction ID-510 has not been signed by an authorised signatory and accordingly, the second user (B) 7 may not be assured as to the legitimacy of the token (T) by considering the redeem script (RS) referenced as the input funding the transaction ID-510 alone.
  • The Title Registry Store
  • As discussed in reference to Figure 1, in some embodiments, the system 1 comprises the title registry store 23, which may be controlled or influenced by a control/management application running on the one or more processing devices 21. For example, the management application comprising executable code may be stored in memory 1520 (Figure 8) of the one or more processing devices 21 and processor(s) 1510 (Figure 8) of the one or more processing devices 21 may be configured to execute the management application to perform a method of managing the title registry store 23. The title registry store 23 may be configured to record information pertaining to transactions relating to transfers of tokens.
  • In some embodiments, the title registry store 23 maintains a record of a change of ownership of a token (T), i.e., the fact that the ownership has changed, without explicitly identifying the current owner of the token (T). Thus, in some embodiments, the title registry store 23 may comprise a list or sub-list of validated or verified unspent transaction outputs (UTXOs). For example, if a transaction has been recorded on the title registry store 23, the title store register 23 may include at least one of the transaction identifier and the output script of a transaction, which includes an indication of the current owner, i.e., the public key of the current owner, embedded within metadata of the redeem script hash. The previous owner may be determined from their public key identified in the unlocking script of the input section of the transaction.
  • However, in other embodiments, the title registry store 23 may also, or instead, comprise an identifier of the current and/or previous owner of the token. For example, the title registry store 23 may comprise a "Know Your Customer" (KYC) register of direct and/or indirect clients. In some embodiments, the maintenance of a KYC register may be a provision in the contract associated with the token, such as a condition of ownership. In such an embodiments, a condition of validity of the token may require that a payee, such as the second user (B) 7, register directly with the party (P) or Issuer (I). This may be achieved via an off-block mechanism such as through a dedicated web page, with suitable checks such as requiring a signature to prove they are the owner, etc. In some embodiments, the party (P) or issuer (I) 3 may store the condition in an internal database, such as data store 11 or on a DHT, such as the DHT configured to store the terms and conditions of the contract described above. In some cases, the issuer (I) 3 may require to know the current owner in order to perform certain obligations, such as paying any income attached to the contract. For example, if the contract relates to part ownership of a race horse, it may be necessary for the Issuer to be identify a party to whom a share of winnings should be paid.
  • The one or more processing devices 21 may configured to receive data from the first, second, and/or third processing devices 13, 15, and 17, and/or the one or more processing devices 19 across the communications network 8 and to store the data in the title registry store 23. Similarly, the one or more processing devices 21 may configured to retrieve data from the title registry store 23 and provide the retrieved data to the first, second, and/or third processing devices 13, 15, and 17, and/or the one or more processing devices 19 across the communications network 8, for example, in response to a request for data and/or automatically, such as at predetermined or regular intervals.
  • In some embodiments, the recording in the title registry store 23 of a transaction comprising a transfer of a token (T) issued by an issuer (I) 3 is instigated by the issuer (I) 3 of that token (T). For example, having creating a token (T) for a user, such as the first user (A) 5 or the second user (B) 7, and in addition to sending the first data output (O1) to a blockchain 9 as described above at 314 in connection with the method 300 of creating a token, the issuer (I) 3, using the one or more processors 13, sends a request to record the transfer of the token to the management application of the title registry store 23 over the communications network 8 to the one or more processors 21 associated with the title registry store 23. The issuer of a token may also be responsible for maintaining or updating the title registry store 23 regarding transactions associated with the token, as discussed in more detail below.
  • In some embodiments, the title registry store 23 may comprise a distributed hash table (DHT). In some embodiments, the distributed hash table (DHT) may also be configured to store contracts associated with the tokens. In some embodiments, the distributed hash table (DHT) configured to store contracts associated with the tokens may include a field comprising one or more links or pointers pointing to a location of a relevant entry in the distributed hash table (DHT) of the title registry database 23.
  • Maintaining the Title Registry
  • In general, one or more parties (P) are responsible for updating the title store register 23 to maintain or keep an accurate record of any transfers of tokens, and accordingly, changes of ownership of the tokens. In some embodiments, each issuer (I) 3 of a token (T) is responsible for maintaining an accurate record of any changes of ownership of that token on the title store register 23, that is, a record of any transactions comprising a transfer of the token which have occurred.
  • A method 500 of maintaining a title registry store 23 for recording transfers of tokens issued by an issuer (I), wherein each token is associated with a quantity of cryptocurrency, will now be described with reference to Figure 5. In some embodiments, a title registry maintenance application comprising executable code may be stored in memory 1520 (Figure 8) of the one or more processing devices 13 and processor(s) 1510 (Figure 8) of the one or more processing devices 13 may be configured to execute the title registry management application to perform the method 500 of maintaining a title registry store for recording transfers of tokens. In other embodiments, the method 500 may be performed by a processing device (not shown) associated with an authorised party (P) connected to the communications network 8.
  • In performing the method 500, the maintenance application is configured to monitor a blockchain 9 for transactions comprising transfers of tokens issued by the issuer (I), at 502.
  • The blockchain 9, for example, the Bitcoin Blockchain, records transactions and may include details of the transactions (TXs) such as the previous transaction identifier, input script(s), and the output script(s). As described above, a token associated with a transaction may be determined from metadata of an input script of the transaction.
  • In response to determining a transaction comprising a transfer of a token (T) issued by the issuer (I), the maintenance application is configured to record the transfer of the token (T) on the title registry store 23. For example, in some embodiments, as shown in Figure 5, the maintenance application is configured to send a request to record the transfer of the token (T) in the title registry store 23 to the management application hosted by the one or more processing devices 21 associated with a second party (P2) responsible for managing the title registry store 23.
  • In some embodiments, the request may comprise data including an indicator of a transaction comprising a transfer of the token (T). For example, the data may comprise a transaction identifier of the transaction and/or the first data output (O1). In some embodiments, the data is authenticated by the issuer (I) 3, for example, in that it is signed using the issuer's signature (VI1). The data may be retrieved from the details of the transaction of the token recorded in the blockchain 9.
  • In some embodiments, in response to receiving, by a second party (P2) from a first party (P1), such as the issuer (I) 3 of the token, a request to record a transfer of a token, at 508, the management application stored in memory (not shown) of one or more processing devices (not shown) associated with the second party (P2) is executed by a processor(s) (not shown) of the one or more processing devices (not shown) to enter the data in the title registry store 23, at 510. In some embodiments, a new entry is created in the title registry store 23 for each request or valid request received by the second party (P2). In some embodiments, if an entry for the token (T) associated with the request already exists, the management application may be configured to update the entry as opposed to creating another entry for the token (T).
  • Using the Title Registry to validate the token (T) associated with the transaction
  • A method 600 of determining the validity of a token (T) associated with a quantity of cryptocurrency using the title registry store 23 will now be described with reference to Figure 6. In some embodiments, the validation application comprising executable code may be stored in memory 1520 (Figure 8) of the processing devices 17 and processor(s) 1510 (Figure 8) of the processing devices 17 is configured to execute the validation application to perform the method 600 of determining the validity of a first token (T1) associated with a first quantity of cryptocurrency (B1). The method 600 may be performed by the processing device 17 associated with the second user (B) 7.
  • The first user (A) may send a first transaction comprising a transfer of the first token (T1) to the second user (B), at 602. In performing the method 600, the validation application is configured to receive, over the communications network 8, the first transaction comprising a transfer of the token (T) from the first user (A) to the second user (B), at 604. The first transaction may comprise a blockchain transaction for transfer of a portion of cryptocurrency, such as that discussed in connection with Table 7 above. For example, the transaction may comprise a transaction id, one or more inputs and one or more outputs. The input(s) may relate to previous transaction(s) and each may comprise a previous transaction id and an unlocking script comprising a redeem script associated with the first token (T1). At least one of the output(s) may relate to the transfer or payment being effected by the present or first transaction and may comprise a locking script.
  • In some embodiments, the validation application is configured to determine whether the token (T) has been authenticated, at 606. For example, this may involve determining whether the redeem script associated with the token (T) and referenced as an input to the first transaction has been signed by an authorised signatory, such as issuer of the token (T) or a trusted service provider.
  • The validation application determines an indicator of a second transaction or previous transaction comprising a transfer of the token (T), at 608. The second transaction may be a previous transaction that predates the first transaction. In some embodiments, the indicator may be a transaction identifier of the previous transaction. For example, the previous transaction may be a transaction identified as an input to the present transaction and the identifier may be identified as one of a plurality of input parameters of the present transaction.
  • The validation application is configured to query the title registry database 23 using the indicator to determine whether the second transaction is recorded on the title registry store 23, at 610. For example, if the second transaction has been recorded on the title registry store 23, the title store register 23 may include an indicator of the second transaction, such as the transaction identifier. Thus, in some embodiments, verification of the validity of a token may be determined despite not knowing who the previous or final owner is. Thus, embodiments of the invention provides a novel and advantageous validation technique which solves a technical problem not addressed by the prior art.
  • However, in other embodiments, the title registry store 23 may also or instead comprise an identifier of the current and/or previous owner of the token. In some embodiments, the validation application may be configured to query the title registry store 23 only if the validation application first determines that the token (T) has not been authenticated as at 606.
  • In response to determining that the second transaction is recorded or registered in the title registry store, the validation application is configured to determine that the token (T) is valid, at 612.
  • In some embodiments, in response to determining that the second transaction is not registered in the title registry store, the validation application is configured to determine that the token (T) is not valid, at 612. However, in other embodiments, in response to determining that the second transaction is not registered in the title registry store, the validation application is configured to perform steps 710 to 714 of method 700 as described below, at 614.
  • Using the blockchain to validate the token (T) associated with the transaction
  • A method 700 of determining the validity of a token (T) associated with a quantity of cryptocurrency using the blockchain 9 will now be described with reference to Figure 7. In some embodiments, the validation application comprising executable code may be stored in memory 1520 (Figure 8) of the processing devices 17 and processor(s) 1510 (Figure 8) of the processing devices 17 is configured to execute the validation application to perform the method 700 of determining the validity of a token (T) associated with a quantity of cryptocurrency. The method 700 may be performed by the processing device 17 associated with the second user (B) 7.
  • The first user (A) may send a first transaction comprising a transfer of the token (T) to the second user (B), at 702. In performing the method 700, the validation application is configured to perform steps 704 and 708, which correspond with steps 604 and 608 of method 600 as described above in connection with Figure 6. In some embodiments, the validation application is configured to perform step 706, which corresponds with step 606 of method 600 as described above in connection with Figure 6.
  • The validation application is configured to use the indicator of the previous transaction to query the blockchain 9 to determine whether an authenticated transaction associated with the token (T) can be identified, at 710. An authenticated transaction comprises a transaction associated with the token (T) where the token (T) has been authorised. For example, a token may be considered to be authorised or legitimate if the redeem script associated with the token (T) has been signed by an authorised signatory, such as issuer of the token (T) or a trusted service provider. Signing may comprise a digital, cryptographic signature.
  • In some embodiments, the validation application may be configured to query the blockchain 9 only if the validation application first determines that the token (T) of the first transaction has not been authenticated as at 706. For example, this may involve determining whether the redeem script associated with the token (T) and referenced as an input to the transaction has been signed by an authorised signatory, such as issuer of the token (T) or a trusted service provider.
  • In some embodiments, querying the blockchain 9 comprises comparing the indicator of the previous transaction with corresponding indicators of transactions recorded in the blockchain 9 to identify a prior transaction having the same indicator as the indicator of the previous transaction. For example, the indicator of the previous transaction may comprise a previous transaction ID indicated in the first transaction.
  • The validation application is configured to step through (ie iterate over) entries in the blockchain 9 to locate an authorised transaction associated with the token. Thus, for example, if the most recent transaction identified in the blockchain 9 as being associated with the token (T) is not an authorised transaction, the validation application is configured to locate or identify the transaction associated with the token that immediately preceded the most recent transaction and to determine whether that transaction is an authorised transaction. If the transaction associated with the token that immediately preceded the most recent transaction is not an authorised transaction, the validation application is configured to locate or identify a yet earlier transaction associated with the token and to determine whether that transaction is an authorised transaction.
  • In some embodiments, the validation application is configured to determine that the most recent or earlier transaction is an authorised transaction comprises determining whether a redeem script associated with the token and referenced as an input to the transaction has been signed by an authorised signatory, such as issuer of the token (T) or a trusted service provider.
  • In some embodiments, in response to determining that a transaction recorded in the blockchain 9 is not an authorised transaction, the validation application is configured to determine an indicator of an earlier transaction from the entry of the transaction and to use the indicator of the earlier transaction to identify an entry for the earlier transaction in the blockchain 9. The indicator may comprise a previous transaction ID associated with the transaction. For example, in some embodiments, the validation application is configured to locate or identify the transaction that immediately preceded the most recent transaction or yet earlier transaction by determining a previous transaction identifier from an input script of the most recent transaction or earlier transaction. This process is performed iteratively until no earlier transaction can be identified.
    Therefore, the invention provides an advantageous validation technique comprising the dynamic construction of a logical hierarchy of related blockchain transactions. The hierarchy is constructed starting from an initial transaction and using a plurality of sources because the transactions are recorded within different blocks on the blockchain. In this sense, the invention identifies and associates the relevant data from multiple sources and uses it in the validation process.
  • Once the validation application identifies an authorised transaction, the method 700 moves to step 712. If, however, the validation application does not identify an authorised transaction, the method 700 moves to step 714.
  • In response to identifying an authenticated transaction in the blockchain 9, the validation application is configured to determine that the token (T) is valid, at 712. For example, if the validation application determines that the redeem script of the prior transaction has been signed by an authorised signatory, the validation application identifies the prior transaction as an authorised transaction.
  • In some embodiments, in response to failing to determine an authenticated transaction in the blockchain 9, the validation application is configured to determine that the token (T) is not valid, at 714.
  • Processing device
  • As discussed above in connection with Figure 1, the issuer (I) 3, first user (A) 5 and second user (B) 7 may be associated with a first processing device 13, second processing device 15, and a third processing device 17. The blockchain 9 may also be associated with one or more processing devices 19. The title registry database 23 may also be associated with one or more processing devices 21. Such a processing device may be part of an electronic device, such as a computer, tablet computer, mobile communication device, computer server etc. In addition to a processing device, the electronic device may include a data store 11 and a user interface (not shown).
  • Figure 8 illustrates an example of a processing device 13, 15, 17, 19, 21. The processing device 13, 15, 17, 19, 21 includes a processor 1510, a memory 1520 and an interface device 1540 that communicate with each other via a bus 1530. The memory 1520 stores instructions and data for implementing the methods described herein, including methods 300, 500, 600 and 700, and the processor 1510 is configured to execute the instructions from the memory 1520 to perform the methods. The interface device 1540 may include a communications module (not shown) that facilitates communication with the communications network 5 and, in some examples, with the user interface and peripherals such as data store 11. It should be noted that although the processing device 1501 may comprise independent network elements, the processing device 13, 15, 17, 19, 21 may also be part of another network element. Further, some functions performed by the processing device 13, 15, 17, 19, 21 may be distributed between multiple network elements. For example, the issuer 3 may have multiple processing devices 23 to perform method 300, 500, 600 and/or 700 in a secure local area network associated with the issuer (I) 3.
  • Where this disclosure describes that a user, issuer, merchant, provider or other entity performs a particular action (including signing, issuing, determining, calculating, sending, receiving, creating etc.), this wording is used for the sake of clarity of presentation. It should be understood that these actions are performed by the computing devices operated by these entities.
  • Signing may comprise executing a cryptographic function. The cryptographic function has an input for a clear text and an input for a key, such as a private key. A processor may execute the function to calculate a number or string that can be used as a signature. The signature is then provided together with the clear text to provide a signed text. The signature changes completely if the message text or the key changes by a single bit. While calculating the signature requires little computational power, recreating a message that has a given signature is practically impossible. This way, the clear text can only be changed and accompanied by a valid signature if the private key is available. Further, other entities can easily verify the signature using the publicly available public key.
  • In most circumstances, encrypting and decrypting comprises a processor executing a cryptographic function to calculate an output string representing the encrypted message or a clear text message respectively.
  • Keys, tokens, metadata, transactions, offers, contracts, signatures, scripts, metadata, invitations, and the like refer to data represented as numbers, text or strings stored on data memory, such as variables in program code of type "string" or "int" or other types or text files.
  • An example of the peer-to-peer ledger is the bitcoin block chain. Transferring funds or paying fees in bitcoin currency comprises creating a transaction on the bitcoin block chain with the funds or fees being output from the transaction. An example of a bitcoin transaction includes an input transaction hash, a transaction amount, one or more destinations, a public key of a payee or payees and a signature created by using the input transaction as the input message and a private key of a payer to calculate the signature. The transaction can be verified by checking that the input transaction hash exists in a copy of the bitcoin block chain and that the signature is correct using the public key. To ensure that the same input transaction hash has not been used elsewhere already, the transaction is broadcast to a network of computing nodes ('miners'). A miner accepts and records the transaction on the block chain only if the input transaction hash is not yet connected and the signatures are valid. A miner rejects the transaction if the input transaction hash is already linked to a different transaction.
  • Allocating cryptocurrency for a token comprises creating a transaction with the allocated cryptocurrency and the token represented in a metadata field in the transaction.
  • When two items are associated, this means that there is a logical connection between these items. In a database, for example, identifiers for the two items may be stored in the same records to make the two items associated with each other. In a transaction, identifiers for the two items may be included in the transaction string to make the two items associated with each other.
  • Using the bitcoin protocol, redeeming a script and/or unlocking a token comprises calculating a signature string of the script and/or transaction using the private key. The script may require more than one signature derived from different private keys or other conditions. The output of this transaction is then provided to a miner.
  • Authorising another entity may comprise calculating a signature string of a transaction using a private key and providing the signature string to the entity to allow the entity to use the signature to verify the transaction.
  • A user having an account with another entity may comprise the entity storing information about the user, such as email address, name and potentially public keys. For example, the entity may maintain a database, such as SQL, OrientDB, MongoDB or others. In some examples, the entity may also store one or more of the user's private keys.
  • It will be appreciated by persons skilled in the art that numerous variations and/or modifications may be made to the above-described embodiments, without departing from the broad general scope of the present disclosure. The present embodiments are, therefore, to be considered in all respects as illustrative and not restrictive.
  • Example Enumerate Embodiments
  • Further optional embodiments are set out by way of the following numbered clauses:
    1. 1. A computer-implemented method of determining the validity of a token associated with a quantity of cryptocurrency, the method comprising:
      • receiving, over a communications network, a first transaction comprising a transfer of the token from a first user to a second user;
      • querying a peer-to-peer distributed ledger to determine whether an authenticated transaction associated with the token can be identified, wherein the authenticated transaction comprises a previous transaction associated with the token and wherein the token has been authorised; and
      • responsive to identifying an authenticated transaction, determining that the token is valid.
    2. 2. The method of clause 1, wherein querying the peer-to-peer distributed ledger comprises querying the peer-to-peer distributed ledger in response to determining that the token of the first transaction has not been authenticated.
    3. 3. The method of clause 2, wherein determining that the token has not been authenticated comprises determining that a redeem script associated with the token and referenced as an input to the first transaction has not been signed by an authorised signatory.
    4. 4. The method of any one of clauses 1 to 3, wherein the token of the authorised transaction is signed by an authorised signatory.
    5. 5. The method of clause 3 or clause 4, wherein the authorised signatory comprises at least one of an issuer of the token and a trusted service provider.
    6. 6. The method of any one of the preceding clauses, wherein querying a peer-to-peer distributed ledger comprises:
      1. a) determining a previous transaction ID indicated in the first transaction;
      2. b) identifying a prior transaction recorded in the peer-to-peer distributed ledger, wherein the transaction ID of the prior transaction corresponds with the determined previous transaction ID;
      3. c) determining whether a redeem script of the prior transaction has been signed by an authorised signatory;
      4. d) responsive to determining that the redeem script of the prior transaction has been signed by an authorised signatory, identifying the prior transaction as the authorised transaction;
      5. e) responsive to determining that the redeem script of the prior transaction has not been signed by an authorised signatory,
        • determining a previous transaction ID indicated in the prior transaction as the previous transaction ID; and
        • identifying a further prior transaction recorded in the peer-to-peer distributed ledger as the prior transaction, wherein a transaction ID of the further prior transaction corresponds with the previous transaction ID; and
      6. f) iteratively performing steps c) to e) until no further prior transactions are identified..
    7. 7. The method of any one of the preceding clauses, further comprising responsive to failing to identify an authenticated transaction in the peer-to-peer distributed ledger, determining that the token is invalid.
    8. 8. A computer-implemented method of determining the validity of a token associated with a quantity of cryptocurrency, the method comprising: a second user:
      • receiving, over a communications network, a first transaction comprising a transfer of the token from a first user to the second user;
      • querying a title registry database to determine if a second transaction comprising a transfer of the token is recorded in the title registry database; and
      • responsive to determining that the second transaction is recorded in the title registry database, determining that the token is valid.
    9. 9. The method of clause 8, wherein the second transaction predates the first transaction.
    10. 10. The method of clause 8 or clause 9, wherein querying the title registry database comprises querying the title registry database in response to determining that the token has not been authenticated.
    11. 11. The method of any one of clauses 8 to 10, wherein the title registry database comprises one or more entries relating to transactions comprising a transfer of a token, each entry being associated with a transaction indicator and wherein querying the title registry database comprises determining a transaction indicator associated with the token from the first transaction; and comparing the transaction indicator with the one or more transaction indicators of the title registry database to identify the second transaction.
    12. 12. The method of clause 11, wherein the transaction indicator is a transaction ID.
    13. 13. The method of any one of clauses 8 to 12, wherein determining that the token has not been authenticated comprises determining that a first redeem script associated with the token and referenced as an input to the transaction has not been signed by an authorised signatory.
    14. 14. The method of clause 13, wherein the authorised signatory comprises at least one of an issuer of the token and a trusted service provider.
    15. 15. The method of any one of clauses 8 to 14, further comprising responsive to determining that the second transaction is not recorded in the title registry database, determining that the token is invalid.
    16. 16. The method of any one of clauses 8 to 15, further comprising responsive to determining that the second transaction is not recorded in the title registry database, querying a peer-to-peer distributed ledger to determine whether an authenticated transaction associated with the token can be identified, wherein the authenticated transaction comprises a previous transaction associated with the token, wherein the token has been authorised and responsive to identifying an authenticated transaction, determining that the token is valid.
    17. 17. A computer-implemented method of maintaining, by a first party, a title registry database for recording transfers of tokens issued by an issuer, wherein each token is associated with a quantity of cryptocurrency, the method comprising:
      • monitoring a peer-to-peer distributed ledger for transactions comprising transfers of tokens issued by the issuer; and
      • responsive to determining a first transaction comprising a transfer of a token issued by the issuer recorded in the peer-to-peer distributed ledger, recording the transfer of the token in the title registry database.
    18. 18. The method of clause 17, wherein monitoring the peer-to-peer distributed ledger further comprises:
      • determining a previous transaction ID of a transaction recorded in the peer-to-peer distributed ledger;
      • comparing the determined previous transaction ID with a set of transaction IDs, each transaction ID of the set identifying a transaction associated with a token issued by the issuer; and
      • responsive to the determined previous transaction ID matching one of the set of transaction IDs, determining the transaction associated with the previous transaction ID as the record of the first transaction comprising a transfer of tokens issued by the issuer.
    19. 19. The method of clause 17, wherein monitoring the peer-to-peer distributed ledger further comprises:
      • determining a target transaction ID of a transaction associated with a token issued by the issuer;
      • comparing the target transaction ID with previous transaction IDs of transactions recorded in the peer-to-peer distributed ledger; and
      • responsive to the target transaction ID matching a previous transaction ID of one of the transactions recorded in the peer-to-peer distributed ledger, determining the transaction recorded in the peer-to-peer distributed ledger as the record of the first transaction.
    20. 20. The method of any one of clauses 17 to 19, further comprising authenticating an entry associated with the recording of the transfer of the token in the title registry database by adding the issuer's signature to the entry.
    21. 21. The method of any one of clauses 17 to 20, wherein maintaining the title registry database is performed by at least one of the issuer and an approved service provider.
    22. 22. The method of any one of clauses 17 to 21, wherein the title registry database comprises a distributed hash table.
    23. 23. The method of clause 22, wherein the distributed hash table comprises contracts associated with the tokens issued by the issuer.
    24. 24. A token validation system for determining the validity of a token associated with a quantity of cryptocurrency, the system comprising memory for storing a validation application and a processor, wherein the processor is configured to execute the validation application to perform the method of any one of clauses 1 to 16.
    25. 25. A title registry maintenance system for maintaining a title registry database for recording transfers of tokens, each associated with a quantity of cryptocurrency, the system comprising memory for storing a maintenance application and a processor, wherein the processor is configured to execute the maintenance application to perform the method of any one of clauses 17 to 23.
    26. 26. A computer software program, including machine-readable instructions, when executed by a processor, causes the processor to perform the method of any one of clauses 1 to 23.

Claims (14)

  1. A computer-implemented method of determining the validity of a token associated with a quantity of cryptocurrency, the method comprising: a second user:
    receiving, over a communications network, a first blockchain transaction comprising a transfer of the token from a first user to the second user;
    querying a title registry database to determine if a second blockchain transaction comprising a transfer of the token is recorded in the title registry database, wherein the title registry database comprises one or more entries relating to blockchain transactions comprising a transfer of a token, each entry being associated with a blockchain transaction indicator and wherein querying the title registry database comprises determining a blockchain transaction indicator associated with the token from the first blockchain transaction; and comparing the blockchain transaction indicator with the one or more blockchain transaction indicators of the title registry database to identify the second blockchain transaction; and
    responsive to determining that the second blockchain transaction is recorded in the title registry database, determining that the token is valid; and
    responsive to determining that the second blockchain transaction is not recorded in the title registry database, querying a blockchain based peer-to-peer distributed ledger to determine whether an authenticated blockchain transaction associated with the token can be identified, wherein the authenticated blockchain transaction comprises a previous blockchain transaction associated with the token, wherein the token has been authorised and responsive to identifying an authenticated blockchain transaction, determining that the token is valid, wherein querying the blockchain based peer-to-peer distributed ledger comprises:
    a) determining a previous transaction ID indicated in the first blockchain transaction;
    b) identifying a prior blockchain transaction recorded in the blockchain based peer-to-peer distributed ledger, wherein the transaction ID of the prior blockchain transaction corresponds with the determined previous transaction ID;
    c) determining whether a redeem script of the prior blockchain transaction has been signed by an authorised signatory;
    d) responsive to determining that the redeem script of the prior blockchain transaction has been signed by an authorised signatory, identifying the prior blockchain transaction as the authorised blockchain transaction;
    e) responsive to determining that the redeem script of the prior blockchain transaction has not been signed by an authorised signatory,
    determining a previous transaction ID indicated in the prior blockchain transaction as the previous transaction ID; and
    identifying a further prior blockchain transaction recorded in the blockchain based peer-to-peer distributed ledger as the prior transaction, wherein a transaction ID of the further prior blockchain transaction corresponds with the previous transaction ID; and
    f) iteratively performing steps c) to e) until no further prior blockchain transactions are identified.
  2. The method of claim 1, wherein the second blockchain transaction predates the first blockchain transaction.
  3. The method of claim 1 or claim 2, wherein querying the title registry database comprises querying the title registry database in response to determining that the token has not been authenticated.
  4. The method of any one of claims 1 to 3, wherein the blockchain transaction indicator is a transaction ID.
  5. The method of any one of claims 1 to 4, wherein determining that the token has not been authenticated comprises determining that a first redeem script associated with the token and referenced as an input to the blockchain transaction has not been signed by an authorised signatory.
  6. The method of claim 5, wherein the authorised signatory comprises at least one of an issuer of the token and a trusted service provider.
  7. The method of any one of claims 1 to 6, further comprising responsive to determining that the second blockchain transaction is not recorded in the title registry database, determining that the token is invalid.
  8. The method of any one of claims 1 to 7, wherein the title registry database comprises a distributed hash table.
  9. The method of claim 8, wherein the distributed hash table is configured to store contracts associated with tokens issued by an issuer.
  10. The method of claim 8 or claim 9, wherein the authenticated blockchain transaction associated with the token comprises metadata comprising a pointer to a contract stored on the distributed hash table.
  11. The method of any one of claims 1 to 10, wherein the validity of the token may be determined despite not knowing who the previous or final owner is.
  12. The method of any one of claims 1 to 11, wherein the title registry database comprises an identifier of the current and/or previous owner of the token.
  13. A token validation system for determining the validity of a token associated with a quantity of cryptocurrency, the system comprising memory for storing a validation application and a processor, wherein the processor is configured to execute the validation application to perform the method of any one of claims 1 to 12.
  14. A computer software program, including machine-readable instructions, when executed by a processor, causes the processor to perform the method of any one of claims 1 to 12.
EP22208380.0A 2016-04-11 2017-04-10 Computer-implemented methods and systems for validating tokens for blockchain-based cryptocurrencies Pending EP4195127A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB201606065 2016-04-11
PCT/IB2017/052061 WO2017178955A1 (en) 2016-04-11 2017-04-10 Computer-implemented methods and systems for validating tokens for blockchain-based cryptocurrencies
EP17718613.7A EP3443517A1 (en) 2016-04-11 2017-04-10 Computer-implemented methods and systems for validating tokens for blockchain-based cryptocurrencies

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
EP17718613.7A Division EP3443517A1 (en) 2016-04-11 2017-04-10 Computer-implemented methods and systems for validating tokens for blockchain-based cryptocurrencies

Publications (1)

Publication Number Publication Date
EP4195127A1 true EP4195127A1 (en) 2023-06-14

Family

ID=58579234

Family Applications (2)

Application Number Title Priority Date Filing Date
EP22208380.0A Pending EP4195127A1 (en) 2016-04-11 2017-04-10 Computer-implemented methods and systems for validating tokens for blockchain-based cryptocurrencies
EP17718613.7A Ceased EP3443517A1 (en) 2016-04-11 2017-04-10 Computer-implemented methods and systems for validating tokens for blockchain-based cryptocurrencies

Family Applications After (1)

Application Number Title Priority Date Filing Date
EP17718613.7A Ceased EP3443517A1 (en) 2016-04-11 2017-04-10 Computer-implemented methods and systems for validating tokens for blockchain-based cryptocurrencies

Country Status (8)

Country Link
US (2) US11727391B2 (en)
EP (2) EP4195127A1 (en)
JP (3) JP2019516274A (en)
KR (3) KR20180128968A (en)
CN (1) CN109074565A (en)
CA (1) CA3019275A1 (en)
GB (1) GB2564519A (en)
WO (1) WO2017178955A1 (en)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10354325B1 (en) 2013-06-28 2019-07-16 Winklevoss Ip, Llc Computer-generated graphical user interface
US10068228B1 (en) 2013-06-28 2018-09-04 Winklevoss Ip, Llc Systems and methods for storing digital math-based assets using a secure portal
US9898782B1 (en) 2013-06-28 2018-02-20 Winklevoss Ip, Llc Systems, methods, and program products for operating exchange traded products holding digital math-based assets
US10846984B2 (en) * 2016-02-24 2020-11-24 Uplay1 Casino crypto currency systems and methods
US10362058B2 (en) 2016-05-13 2019-07-23 Vmware, Inc Secure and scalable data transfer using a hybrid blockchain-based approach
WO2019000087A1 (en) * 2017-06-28 2019-01-03 Kitaru Innovations Inc. Method of operating and using a cryptocurrency
US11507947B1 (en) * 2017-07-05 2022-11-22 Citibank, N.A. Systems and methods for data communication using a stateless application
CN111866008B (en) * 2017-07-14 2022-05-31 创新先进技术有限公司 Service data processing method, service processing method and equipment
GB201714987D0 (en) * 2017-09-18 2017-11-01 Nchain Holdings Ltd Computer-implemented system and method
JP6911725B2 (en) * 2017-11-20 2021-07-28 富士通株式会社 Electronic voting system, electronic voting method, and electronic voting program
JP7235153B2 (en) * 2017-12-29 2023-03-08 株式会社三洋物産 game machine
CN108256999B (en) * 2018-01-19 2020-08-14 阿里巴巴集团控股有限公司 Capital transfer method and device and electronic equipment
DE102018000687A1 (en) 2018-01-29 2019-08-01 Giesecke+Devrient Mobile Security Gmbh Use of payment tokens for blockchain transactions
US11200569B1 (en) 2018-02-12 2021-12-14 Winklevoss Ip, Llc System, method and program product for making payments using fiat-backed digital assets
US11308487B1 (en) 2018-02-12 2022-04-19 Gemini Ip, Llc System, method and program product for obtaining digital assets
US11475442B1 (en) 2018-02-12 2022-10-18 Gemini Ip, Llc System, method and program product for modifying a supply of stable value digital asset tokens
US10438290B1 (en) 2018-03-05 2019-10-08 Winklevoss Ip, Llc System, method and program product for generating and utilizing stable value digital assets
US10373129B1 (en) 2018-03-05 2019-08-06 Winklevoss Ip, Llc System, method and program product for generating and utilizing stable value digital assets
US11909860B1 (en) 2018-02-12 2024-02-20 Gemini Ip, Llc Systems, methods, and program products for loaning digital assets and for depositing, holding and/or distributing collateral as a token in the form of digital assets on an underlying blockchain
US10373158B1 (en) 2018-02-12 2019-08-06 Winklevoss Ip, Llc System, method and program product for modifying a supply of stable value digital asset tokens
US10540654B1 (en) 2018-02-12 2020-01-21 Winklevoss Ip, Llc System, method and program product for generating and utilizing stable value digital assets
JP7235154B2 (en) * 2018-02-15 2023-03-08 株式会社三洋物産 game machine
JP7231076B2 (en) * 2018-03-08 2023-03-01 株式会社三洋物産 game machine
US11159306B2 (en) * 2018-04-24 2021-10-26 Duvon Corporation Autonomous exchange via entrusted ledger token and transaction management
US11431477B2 (en) * 2018-05-14 2022-08-30 nChain Holdings Limited Computer-implemented systems and methods for using a blockchain to perform an atomic swap
CN108764870B (en) 2018-05-29 2020-07-07 阿里巴巴集团控股有限公司 Transaction processing method and device based on block chain and electronic equipment
CN108898493A (en) * 2018-06-14 2018-11-27 众安信息技术服务有限公司 A kind of investment tactics method of commerce and system based on block chain
JP2021527893A (en) * 2018-06-18 2021-10-14 ジェイピーモルガン・チェース・バンク,ナショナル・アソシエーション Systems and methods for distributed ledger-based intercompany netting
WO2019246627A1 (en) * 2018-06-22 2019-12-26 Mshift, Inc. Blockchains for facilitating decentralized fund transfer
WO2020006138A1 (en) * 2018-06-29 2020-01-02 Arcblock, Inc. Blockchain adapter, protocol, and access layer
JP2020046975A (en) * 2018-09-19 2020-03-26 G.U.Labs株式会社 Fund transfer system and method for virtual currency
WO2020076178A1 (en) * 2018-10-10 2020-04-16 "Enkri Holding", Limited Liability Company Linking transactions
JP6956062B2 (en) * 2018-10-30 2021-10-27 株式会社Crypto Garage Transaction method, program, verification device and generation method
RU2720529C1 (en) * 2018-11-30 2020-04-30 Алибаба Груп Холдинг Лимитед Using table of nonces for resolving failure of parallel transactions with blockchains
KR102110383B1 (en) * 2018-12-26 2020-05-13 한전케이디엔 주식회사 Mobile Security System based on Block Chain
CN109816361B (en) * 2019-01-10 2023-02-28 仲重宇 Block chain signature transfer method without mineral expense
CN109583863B (en) * 2019-01-21 2024-04-02 深圳市祥云万维科技有限公司 Block chain resource transaction network and transaction method
CN109615352B (en) * 2019-01-21 2024-04-05 深圳市祥云万维科技有限公司 Resource convergence network and method
WO2020150919A1 (en) * 2019-01-21 2020-07-30 深圳市祥云万维科技有限公司 Blockchain resource transaction network, network node, and transaction method
CN109829822B (en) * 2019-01-28 2020-10-23 杭州复杂美科技有限公司 Transaction replacing method, transaction queuing method, device and storage medium
JP2020130466A (en) * 2019-02-15 2020-08-31 株式会社三洋物産 Game machine
CN110008722B (en) * 2019-03-27 2022-04-08 致信互链(北京)科技有限公司 Block chain-based method, device and storage medium for processing accreditation transfer rewards
CN110832519B (en) 2019-03-27 2024-03-19 创新先进技术有限公司 Improving integrity of communications between a blockchain network and external data sources
JP7234740B2 (en) * 2019-03-28 2023-03-08 株式会社三洋物産 game machine
JP7234741B2 (en) * 2019-03-28 2023-03-08 株式会社三洋物産 game machine
JP7234761B2 (en) * 2019-04-11 2023-03-08 株式会社三洋物産 game machine
JP7234760B2 (en) * 2019-04-11 2023-03-08 株式会社三洋物産 game machine
CN110210857B (en) * 2019-05-17 2022-06-21 杭州宇链科技有限公司 Public link-based evidence-based transaction method and device
US20220215394A1 (en) * 2019-05-24 2022-07-07 Gwangju Institute Of Science And Technology Transaction verification system for blockchain, and transaction verification method for blockchain
JP6651108B1 (en) * 2019-06-06 2020-02-19 株式会社chaintope Cryptographic asset management system and cryptographic asset management method
US11240244B2 (en) * 2019-06-26 2022-02-01 Microsoft Technologly Licensing, LLC Presentation interrupt for a DID attestation
JP6865251B2 (en) * 2019-07-04 2021-04-28 三菱Ufj信託銀行株式会社 Token issuance trust system
KR102139008B1 (en) * 2019-07-22 2020-07-28 이화여자대학교 산학협력단 Transaction Methods for Protecting Personal Information in a Public Block Chain Environment
US20210042737A1 (en) * 2019-08-07 2021-02-11 Seatig Inc. Distributed computing architecture with settlement mechanism to enable traceability of credit tokenization, disbursement and repayment
CN112448936B (en) * 2019-09-03 2023-03-14 致信互链(北京)科技有限公司 Method and system for migrating general certificates in block chain
CN110599328B (en) * 2019-09-09 2021-03-19 腾讯科技(深圳)有限公司 Block chain based risk user determination method, device, equipment and storage medium
GB201913143D0 (en) * 2019-09-12 2019-10-30 Nchain Holdings Ltd Running a program from a blockchain
US10652022B1 (en) 2019-10-10 2020-05-12 Oasis Medical, Inc. Secure digital information infrastructure
US10979228B1 (en) * 2019-10-10 2021-04-13 Oasis Medical, Inc. Secure digital information infrastructure
CN110866827B (en) * 2019-10-12 2023-10-20 平安壹钱包电子商务有限公司 Method and device for processing pass, storage medium and server
CN110796449B (en) * 2019-10-28 2023-01-20 网易(杭州)网络有限公司 Transaction processing method, system, medium and computing device
SG10201912999VA (en) * 2019-12-23 2020-09-29 Islamic Res And Training Institute Method and System for Transaction Validation in a Distributed Computing System
CN111191212B (en) * 2019-12-31 2020-12-15 卓尔智联(武汉)研究院有限公司 Block chain-based digital certificate processing method, device, equipment and storage medium
US20210366004A1 (en) * 2020-05-20 2021-11-25 ZEN Global Limited Money management system, money management method, donation management system, donation management method and program
GB202008790D0 (en) * 2020-06-10 2020-07-22 Lee Brendan Computer-implemented methods and systems
EP4165824A1 (en) * 2020-06-10 2023-04-19 Elas Holdings Pty Ltd Computer implemented systems and methods
JP7038764B2 (en) * 2020-07-21 2022-03-18 三菱Ufj信託銀行株式会社 Rights transfer complete electronic book server and rights transfer complete electronic book system
US20220027896A1 (en) * 2020-07-22 2022-01-27 ZUZLab, Inc. Method and system for defining, creating, managing, and transacting multiple classes of digital objects
JP6935662B1 (en) * 2020-08-19 2021-09-15 株式会社chaintope A system that proves that the record has not changed
US11636467B2 (en) * 2020-09-14 2023-04-25 Visa International Service Association System, method, and computer program product for secured, encrypted transaction processing
GB2598945A (en) * 2020-09-21 2022-03-23 Nchain Holdings Ltd Commensal token system
JP2022072359A (en) * 2020-10-29 2022-05-17 Line株式会社 Information processing device, program, method, and terminal
US20220147993A1 (en) * 2020-11-12 2022-05-12 Arbër FAZLIU Secure peer-to-peer transctions using a blockchain network
EP4006795A1 (en) 2020-11-27 2022-06-01 ZOE Life Technologies AG Collaborative big data analysis framework using load balancing
WO2022125595A1 (en) * 2020-12-07 2022-06-16 Deixis, PBC Heterogeneous integration with distributed ledger blockchain services
US11568393B2 (en) * 2020-12-23 2023-01-31 Paypal, Inc. Methods and systems for transferring unspent transaction output (UTXO) tokens in a blockchain network
CN112749967A (en) * 2021-01-19 2021-05-04 矩阵元技术(深圳)有限公司 Transaction data processing method and device, user terminal and server
GB2605792A (en) * 2021-04-13 2022-10-19 Nchain Licensing Ag Blockchain based system and method
GB202106207D0 (en) * 2021-04-30 2021-06-16 Nchain Licensing Ag Devices and methods for splitting serialized tokens
WO2022245929A1 (en) * 2021-05-18 2022-11-24 Wellfield Technology Ir Limited Methods and system for derivative trading on automated market maker liquidity pools
CN113259128B (en) * 2021-06-11 2021-09-24 武汉龙津科技有限公司 Block chain-based evidence extraction method and device, electronic equipment and storage medium
US20230092436A1 (en) * 2021-09-23 2023-03-23 International Business Machines Corporation Framework for demaraction of digital assets
US11887108B2 (en) * 2021-10-01 2024-01-30 Capital One Services, Llc System and user interface of a user device for managing tokens associated with a user
JP2023063369A (en) * 2022-01-07 2023-05-09 株式会社三洋物産 game machine
JP2023053387A (en) * 2022-02-04 2023-04-12 株式会社三洋物産 game machine
US20230319039A1 (en) * 2022-03-31 2023-10-05 Microsoft Technology Licensing, Llc Securing authentication flows using a decentralized identifier
JP2023060269A (en) * 2022-04-01 2023-04-27 株式会社三洋物産 game machine
JP2023060270A (en) * 2022-04-01 2023-04-27 株式会社三洋物産 game machine
KR20230161092A (en) * 2022-05-18 2023-11-27 주식회사 플랜엑스랩 Device for providing nft rental service for digital contents
WO2024054899A1 (en) * 2022-09-07 2024-03-14 Xixventures, Llc Peer-to-peer selectable digital money system
GB2622359A (en) * 2022-09-08 2024-03-20 Nchain Licensing Ag Blockchain-based token protocol
GB2622627A (en) * 2022-09-23 2024-03-27 Nchain Licensing Ag Atomic swap token trades
JP7392071B1 (en) 2022-09-27 2023-12-05 三菱Ufj信託銀行株式会社 Token transfer system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150269570A1 (en) * 2014-03-21 2015-09-24 Charles Phan Systems and methods in support of authentication of an item
US20150294308A1 (en) * 2014-04-14 2015-10-15 21, Inc. Digital currency mining circuitry
US20150371224A1 (en) * 2014-06-24 2015-12-24 Phaneendra Ramaseshu Lingappa Cryptocurrency infrastructure system
US20160098723A1 (en) * 2014-10-01 2016-04-07 The Filing Cabinet, LLC System and method for block-chain verification of goods

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100729085B1 (en) * 1999-12-18 2007-06-14 주식회사 케이티 Method of on-line electronic payment service using digital payment token
US6714939B2 (en) 2001-01-08 2004-03-30 Softface, Inc. Creation of structured data from plain text
KR20140038473A (en) * 2011-05-31 2014-03-28 블랙호크 네트워크, 아이엔씨. A system for payment via electronic wallet
US20160085955A1 (en) 2013-06-10 2016-03-24 Doosra, Inc. Secure Storing and Offline Transferring of Digitally Transferable Assets
US9898782B1 (en) * 2013-06-28 2018-02-20 Winklevoss Ip, Llc Systems, methods, and program products for operating exchange traded products holding digital math-based assets
FR3018370A1 (en) * 2014-03-07 2015-09-11 Enrico Maim METHOD AND SYSTEM FOR AUTOMATIC CRYPTO-CURRENCY GENERATION
US10776761B2 (en) * 2014-03-18 2020-09-15 nChain Holdings Limited Virtual currency system
US20150310466A1 (en) * 2014-04-25 2015-10-29 Truecar, Inc. Sales analyzer systems and methods
JP6813477B2 (en) * 2014-05-09 2021-01-13 ヴェリタセウム アイエヌシー. A device, system, or method that facilitates value transfer between unreliable or unreliable parties.
US9704143B2 (en) 2014-05-16 2017-07-11 Goldman Sachs & Co. LLC Cryptographic currency for securities settlement
KR20160009301A (en) * 2014-07-16 2016-01-26 주식회사 코빗 Private key based e-cash payment system and method thereof
WO2016053760A1 (en) * 2014-09-30 2016-04-07 Raistone, Inc. Systems and methods for transferring digital assets using a de-centralized exchange
US20160162897A1 (en) * 2014-12-03 2016-06-09 The Filing Cabinet, LLC System and method for user authentication using crypto-currency transactions as access tokens
US11250391B2 (en) * 2015-01-30 2022-02-15 Visa International Service Association Token check offline
US11023968B2 (en) 2015-03-05 2021-06-01 Goldman Sachs & Co. LLC Systems and methods for updating a distributed ledger based on partial validations of transactions
US20160267566A1 (en) * 2015-03-13 2016-09-15 Mark Levitt Systems and methods for managing an inventory of digital gift card assets
JP6364132B2 (en) 2015-03-31 2018-07-25 ナスダック, インコーポレイテッドNasdaq, Inc. Blockchain transaction recording system and method
SG11201708295XA (en) 2015-04-06 2017-11-29 Bitmark Inc System and method for decentralized title recordation and authentication
US10635722B2 (en) 2015-04-20 2020-04-28 Ogy Docs, Inc. Method of distributed management of electronic documents of title (EDT) and system thereof
US20160342977A1 (en) 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US11232415B2 (en) 2015-05-28 2022-01-25 OX Labs Inc. Method for cryptographically managing title transactions
EP3317775B1 (en) * 2015-07-02 2022-02-16 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
KR101637854B1 (en) * 2015-10-16 2016-07-08 주식회사 코인플러그 Certificate issuance system and method based on block chain, certificate authentication system and method based on block chain
JP6355168B2 (en) * 2015-11-09 2018-07-11 日本電信電話株式会社 Block chain generation device, block chain generation method, block chain verification device, block chain verification method and program
US10719816B1 (en) * 2015-11-19 2020-07-21 Wells Fargo Bank, N.A. Systems and methods for math-based currency escrow transactions
US11270299B2 (en) * 2015-12-07 2022-03-08 Visa International Service Association Methods and systems of using a cryptocurrency system to manage payments and payment alternatives

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150269570A1 (en) * 2014-03-21 2015-09-24 Charles Phan Systems and methods in support of authentication of an item
US20150294308A1 (en) * 2014-04-14 2015-10-15 21, Inc. Digital currency mining circuitry
US20150371224A1 (en) * 2014-06-24 2015-12-24 Phaneendra Ramaseshu Lingappa Cryptocurrency infrastructure system
US20160098723A1 (en) * 2014-10-01 2016-04-07 The Filing Cabinet, LLC System and method for block-chain verification of goods

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Mastering bitcoin : [unlocking digital cryptocurrencies]", 20 December 2014, O'REILLY MEDIA, Beijing Cambridge Farnham Köln Sebastopol Tokyo, ISBN: 978-1-4493-7404-4, article ANDREAS M. ANTONOPOULOS: "Mastering Bitcoin - Unlocking Digital Cryptocurrencies", XP055306939 *
ANONYMOUS: "Colored Coins - Bitcoin Wiki", 7 July 2015 (2015-07-07), XP055239396, Retrieved from the Internet <URL:https://en.bitcoin.it/w/index.php?title=Colored_Coins&oldid=57259> [retrieved on 20160107] *

Also Published As

Publication number Publication date
JP7241216B2 (en) 2023-03-16
US11727391B2 (en) 2023-08-15
KR20180128968A (en) 2018-12-04
US20190130391A1 (en) 2019-05-02
KR20220141351A (en) 2022-10-19
GB2564519A (en) 2019-01-16
US20240005304A1 (en) 2024-01-04
KR102636102B1 (en) 2024-02-14
JP2019516274A (en) 2019-06-13
EP3443517A1 (en) 2019-02-20
KR20240023688A (en) 2024-02-22
JP2022088560A (en) 2022-06-14
GB201806521D0 (en) 2018-06-06
CN109074565A (en) 2018-12-21
CA3019275A1 (en) 2017-10-19
WO2017178955A1 (en) 2017-10-19
JP2023065633A (en) 2023-05-12

Similar Documents

Publication Publication Date Title
US20240005304A1 (en) Computer-implemented methods and systems for validating tokens for blockchain-based cryptocurrencies
US20220292471A1 (en) Universal tokenisation system for blockchain-based cryptocurrencies
JP7381625B2 (en) Method and system for controlling contract execution using distributed hash table and peer-to-peer distributed ledger
JP7350030B2 (en) Method and system for recording multiple transactions on blockchain
JP6877448B2 (en) Methods and systems for guaranteeing computer software using distributed hash tables and blockchain
JP6514831B1 (en) Method and system for verifying ownership of digital assets using distributed hash tables and peer-to-peer distributed ledgers

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN PUBLISHED

AC Divisional application: reference to earlier application

Ref document number: 3443517

Country of ref document: EP

Kind code of ref document: P

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

P01 Opt-out of the competence of the unified patent court (upc) registered

Effective date: 20230620

REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40086413

Country of ref document: HK

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20231214

RBV Designated contracting states (corrected)

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR