WO2021005474A1

Computer-implemented system and method for facilitating transactions associated with a blockchain using a network identifier for participating entities

Abstract

The present disclosure proposes methods and devices for facilitating IP transaction involving digital assets over the Internet directly based on IP addresses for entities. The aspects and embodiments of the present disclosure enable secure IP address transactions by ensuring that the public key of the recipient is never used in the generation of payment destination addresses, thereby making message replay and MITM attacks extremely hard to implement by an attacker. Furthermore, the aspects and embodiments ensure that the payment destination addresses for digital assets are based on new or single use private as well as public keys that are computed or provided based on the public key for the recipient and are specific to a given transaction.

WO2021005474A1, drawing sheet 1
Sheet 1 of 17

Term

No projected expiry on record.

  1. Priority and filed
  2. Published
  3. Today

39 claims: 28 independent, 11 dependent

  1. 1
    Claims1 . A computer implemented method for implementing at least one transaction associated with a distributed ledger, the at least one transaction being from sender for a recipient, whereby the sender and recipient are each associated with a respective payment entity among a plurality of payment entities that are communicatively coupled via a communication network, whereby each payment entity among the plurality of payment entities is a computing resource associated with a network identifier that is specific to said payment entity, the method comprising the steps of:obtaining a public key P1 for the recipient;verifying that the obtained public key P1 is associated with the network identifier of the recipient;responsive to the verification being successful, calculating a further public key P2 pertaining to a given transaction based on the obtained public key, the given transaction associated with a digital asset;computing a payment destination address for the recipient based on the further public (P2) key;generating an output script for the given transaction based on the payment destination;and providing an unspent transaction output (UTXO) based on the output script to the distributed ledger.
  2. 3
    The method as claimed in any one of claims 1 or 2 wherein the network identifier is a domain name of the recipient, said domain name being known to the sender, or being obtained from a network address of the recipient that is known to the sender.
  3. 4
    The method as claimed in any preceding claim wherein the obtained public key P1 is part of a cryptographic key pair that includes a private key V1 , such that one or more records associated with network identifier are encrypted with the private key V1 .
  4. 5
    The method as claimed in any preceding claim wherein the obtained public key P1 is digitally signed by a trusted authority (CA) to associate the obtained public key P1 to the network identifier of the recipient, and wherein the step of verifying the obtained public key P1 is performed based on another public key associated with the trusted authority.
  5. 8
    The method as claimed in any preceding claim comprising:accessing a directory relating to a plurality of network identifiers;identifying a record associated with the network identifier of the recipient;and verifying the authenticity of the network identifier based on a security indicator present in the record.
  6. 9
    A computer implemented method for implementing at least one transaction associated with a distributed ledger, the at least one transaction being from sender for a recipient, whereby the sender and recipient are each associated with a respective payment entity among a plurality of payment entities that are communicatively coupled via a communication network, whereby each payment entity among the plurality of payment entities is a computing resource, the method comprising the steps of:determining a network address for the recipient, said network address being associated with a public key P1 for the recipient;verifying that the network address is generated for, and is specific to the recipient;responsive to the verification being successful, calculating a further public key P2 pertaining to a given transaction based on the public key for the recipient, the given transaction associated with a digital asset;computing a payment destination address for the recipient based on the further publicP2 key;generating an output script for the given transaction based on the payment destination;and providing an unspent transaction output (UTXO) based on the output script to the distributed ledger.
  7. 11
    1 1 . The method as claimed in any one of claims 9 or 10 wherein the network address for the recipient is a cryptographically generated address (CGA) derived from a cryptographic key pair including the public key P1 , and a corresponding private key V1 associated with the recipient.
  8. 13
    The method as claimed in any one of claims 9 to 1 1 wherein the step of verifying the network address is based on a digital signature of the private key V2 that is included in a hash function used to generate the CGA for the recipient.
  9. 14
    The method as claimed in any preceding claim wherein the step of calculating a further public key P2 comprises:applying a secure hash function to a data item associated with the given transaction M to obtain a result, the data item M relating to the digital asset to be provided to the recipient;and associating the public key P1 for the recipient with the result.
  10. 15
    The method as claimed in any preceding claim wherein the step of computing the payment destination address includes computing a pay to public key hash (P2PKH) value based on applying a double hash function of the further public key P2, or wherein the step of computing a payment destination is based on a custom script associated with a public template for the recipient for digital assets transactions.
  11. 16
    The method as claimed in any preceding claim wherein the step of providing the UTXO to the distributed ledger includes providing an additional non-spendable output having a locking script including the network identifier or network address of the recipient for the given transaction.
  12. 17
    The method as claimed in any preceding claim comprising:calculating a session key K1 , wherein the session key is based on the further public key P2 for the given transaction, a private key V2 associated with the further public key and the public key P1 associated with the recipient;encrypting a data item M of the given transaction with the session key K1 , the data item M relating to the digital asset;wherein the output script is generated based on the encrypted data item M.
  13. 18
    A computer implemented method for implementing at least one transaction associated with a distributed ledger, the at least one transaction being from sender for a recipient, whereby the sender and recipient are each associated with a respective payment entity among a plurality of payment entities that are communicatively coupled via a communication network, whereby each payment entity among the plurality of payment entities is a computing resource, the method comprising the steps of:obtaining a public key P1 for the recipient;calculating a first public key P21 pertaining to a first transaction TX1 based on the obtained public key, the first transaction TX1 associated with a digital asset;computing a first payment destination address for the recipient based on the first public P21 key;calculating a first session key K1 , wherein the first session key is based on the first public key P21 for the first transaction, a first private key V21 associated with the first public key P21 and the public key P1 associated with the recipient;encrypting a data item M associated with the first transaction TX1 with the first session key K1 , the data item M relating to the digital asset;generating a first output script for the first transaction TX2 based on the encrypted data item M and the first payment destination address;providing an unspent transaction output (UTXO) based on the output script to the distributed ledger;calculating a second public key P22 pertaining to a second transaction TX2 based on the obtained public key P1 , the second transaction associated with the UTXO of the first transaction;computing a second payment destination address for the recipient based on the second public P22 key;calculating a second session key K2, wherein the second session key K2 is based on the second public key P22 for the second transaction TX2, a second private key V22 associated with the second public key P22 and the public key P1 associated with the recipient;encrypting the data item M associated with the first transaction TX1 with the second session key K2;generating a second output script based on the encrypted data item M and the second payment destination;and providing the second output script to the distributed ledger, wherein the second output is a non-spendable output.
  14. 19
    A computer implemented method for implementing at least one transaction associated with a distributed ledger, the at least one transaction being from sender for a recipient, whereby the sender and recipient are each associated with a respective payment entity among a plurality of payment entities that are communicatively coupled via a communication network, whereby each payment entity among the plurality of payment entities is a computing device associated with a network identifier that is specific to said payment entity, the method comprising the steps of:providing a public key P1 associated with the recipient, the public key further associated with a certificate issued by a trusted authority;querying or monitoring the distributed ledger for one or more unspent transaction outputs (UTXO) associated with the recipient;responsive to detecting a UTXO associated with the recipient, whereby the detected UTXO pertains to a given transaction, calculating a private key V2 for the given transaction, the private key V2 associated with a public key P2 for the given transaction;processing a digital asset or processing a transfer of the digital asset by executing one or more output scripts in the detected UTXO to complete the given transaction;and storing the completed transaction in the distributed ledger.
  15. 21
    The method as claimed in any one of claims 19 or 20, wherein the step of calculating the private key for the detected UTXO comprises:obtaining a private key V1 associated with the recipient, the private key being part of a cryptographic key pair associated with the public key P1 of the recipient;computing the private key V2 for the given transaction based on the private key V1 of the recipient and a hash of a data item M associated with the given transaction, the data item M relating to the digital asset.
  16. 22
    The method as claimed in any one of claims 19 to 21 wherein the step of querying or monitoring the distributed ledger comprises monitoring the distributed ledger for one or more non-spendable outputs associated with the recipient, the additional outputs related to the detected UTXO.
  17. 23
    The method as claimed in any one of claims 19 to 22 wherein the one of more UTXOs are provided to the distributed ledger by the sender according to the method as claimed in any one of claims 1 to 17.
  18. 24
    The method as claimed in any one of claims 19 to 23 comprising:calculating a session key K1 , wherein the session key is based on the public key and private key P2, V2 associated with the given transaction, and the public key P1 associated with the recipient;wherein the step of executing one or more output scripts includes decrypting a data item M associated with the given transaction in the one or more output scripts using the session key K1 , the data item M relating to the digital asset.
  19. 25
    A computer implemented method for implementing at least one transaction associated with a distributed ledger, the at least one transaction being from sender for a recipient, whereby the sender and recipient are each associated with a respective payment entity among a plurality of payment entities that are communicatively coupled via a communication network, whereby each payment entity among the plurality of payment entities is a computing device, the method comprising the steps of:providing a public key P1 associated with the recipient, the public key further associated with a certificate issued by a trusted authority;querying or monitoring the distributed ledger for one or more unspent transaction outputs (UTXO) associated with the recipient;responsive to detecting at least one UTXO associated with the recipient, whereby a detected UTXO among the at least one UTXOs pertains to a given transaction, the method further comprises: calculating a private key V2 for the given transaction, the private key V2 associated with a public key P2 for the given transaction;calculating a session key K1 , K2 wherein the session key is based on the public key and private key P2, V2 associated with the given transaction, and the public key P1 associated with the recipient;decrypting a data item M associated with the given transaction in the detected UTXO using the session key K1 , K2, wherein the data item M relates to a digital asset;executing one or more output scripts in the detected UTXO based on the decrypted data item M to complete the given transaction;and storing the completed transaction in the distributed ledger.
  20. 27
    The method as claimed any one of claims 19 to 26 comprising:creating a record for the recipient in a directory relating to a plurality of network identifiers;and updating or including an entry in the record with a security indicator associated with the network identifier of the recipient, said security indicator being provided for verifying the authenticity of the network identifier.
  21. 28
    A computer implemented method for implementing at least one transaction associated with a distributed ledger, the at least one transaction being from sender for a recipient, whereby the sender and recipient are each associated with a respective payment entity among a plurality of payment entities that are communicatively coupled via a communication network, whereby each payment entity among the plurality of payment entities is a computing resource, the method comprising the steps of:obtaining a network address for the recipient, said network address being generated in combination with a public key P1 for the recipient and a digital signature;determining that the network address can accept digital assets;responsive to said determination being successful, establishing a secure communication channel between the sender and the recipient;requesting a payment destination address or a public template from the recipient;responsive to obtaining the payment destination, generating an output script for a transaction pertaining to a digital asset;and sending the output script to the payment destination.
  22. 29
    A computer implemented method for implementing at least one transaction associated with a distributed ledger, the at least one transaction being from sender for a recipient, whereby the sender and recipient are each associated with a respective payment entity among a plurality of payment entities that are communicatively coupled via a communication network, whereby each payment entity among the plurality of payment entities is a computing resource, the method comprising the steps of:responsive to an enquiry from the sender, providing a network address of the recipient for accepting digital assets, the network address being generated in combination with a public key for the recipient and a digital signature;establishing a secure communication channel between the sender and the recipient;generating a payment destination addresses or a public for the recipient;sending the payment destination address to the sender;obtaining an output script for a transaction pertaining to a digital asset from the sender;and processing a payment relating to the digital asset;and creating a completed transaction based on the processed payment for the distributed ledger.
  23. 31
    The method as claimed in any one of claims 28 to 30 wherein the payment destination address is hash of a one-time public key for the digital asset (P2PKH).
  24. 32
    The method as claimed in any one of claims 28 to 30 wherein public template includes a custom script generated for the recipient for obtaining a payment destination address associated with the recipient.
  25. 33
    A computer implemented method for implementing at least one transaction associated with a distributed ledger, the at least one transaction being from sender for a recipient, whereby the sender and recipient are each associated with a respective payment entity among a plurality of payment entities that are communicatively coupled via a communication network, whereby each payment entity among the plurality of payment entities is a computing resource associated with a network identifier that is specific to said payment entity, the method comprising the steps of:querying a directory based on the network identifier of the recipient to resolve a network address for the recipient, wherein the network address being associated with a public key for the recipient, wherein the directory is associated with the communication network;verifying that the network identifier of the recipient corresponds to a network identifier associated with the resolved network address for the recipient;responsive to the verification being successful, performing the method step of any one of claims 7 to 17 or claim 28 for a given transaction.
  26. 35
    The method as claimed in any one of claims 33 or 34 wherein the network identifier is provided in an extension field associated with the network address.
  27. 36
    A computing device, comprising:a processor;and memory including executable instructions that, as a result of execution by the processor, causes the system to perform the computer-implemented method of one of claims 1 to 18, 28, 30, 31 to 33 to 35.
  28. 37
    A computing device, comprising:a processor;and memory including executable instructions that, as a result of execution by the processor, causes the system to perform the computer-implemented method of one of claims 19 to 27 or 29 to 32.
  29. 38
    A system, comprising:one or more sender entities, each sender entity being a computing device according to claim 36;one or more recipient entities, each recipient entity being a computing device according to claim 37;and a communication network for facilitating communication between at least one sender entity and at least one recipient entity.
  30. 39
    A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by a processor of a computer system, cause the computer system to perform the computer-implemented method of any one of claims 1 to 35.
Independent claims30