IP Library Granted Patent US 12664540
Granted Patent B2
US 12664540 · App. 17/604,388 · Granted Jun 23, 2026

Computer-implemented system and method for implementing alias-based addressing for a distributed ledger

Inventors: Andy Mee (Cardiff, GB); Ryan Dickherber (San Francisco, CA)
Assignee: NCHAIN LICENSING AG
G06Q20/3678G06Q20/0658G06Q20/3825G06Q20/3829G06Q20/389H04L9/088H04L9/30G06Q2220/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12664540
App. No.
17/604,388
Granted
Jun 23, 2026
Kind
B2
Abstract

The present disclosure provides a method of implementing a payment service for one or more clients for transactions associated with a distributed ledger, such as the Bitcoin blockchain. The method comprises providing an alias for a client, associating the alias with a network in a directory and providing a location for a host computing resource responsible for the payment service, wherein the host computing resource is configured to facilitate identification of the client associated with the alias. The present disclosure also provides a method comprising creating a machine readable resource in a location associated with the payment service, wherein the machine readable resource comprises an endpoint identifier for the payment service, an entry associated with at least one capability supported by the payment service, and instructions and/or a specification for accessing a public address for facilitating transactions associated with the alias. The present disclosure also discusses a method of implementing a simplified payment protocol for clients associated with the payment service.

Claims (75)

1 . A computer implemented method of implementing a payment service for one or more clients for transactions associated with a distributed ledger, the method comprising:

creating a machine readable resource associated with the payment service, wherein the machine readable resource comprises:

at least one endpoint identifier associated with a host computing resource responsible for implementing the payment service for each client, each client being associated with an alias, the alias including or related to a network identifier to provide alias-based addressing enabling dynamic key management at a network identifier level by allowing public key updates and replacements through the machine readable resource;

an entry associated with at least one capability among a plurality of capabilities supported by the payment service, wherein the at least one capability includes a simplified payment protocol capability, wherein:

the at least one capability includes payer entity validation, multiple digital signatures for transactions, and payee entity approval requirements that must be satisfied before any transaction is processed; and

the at least one capability further includes a payment request template that encapsulates a generated output script for a payment associated with the alias, wherein the output script is dynamically generated based on current key information obtained through the alias-based addressing; and

instructions and/or a specification for accessing or obtaining a public address associated with the alias, wherein the instructions specify obtaining a public key infrastructure (PKI) request template and generating a complete PKI request by including the alias and network identifier in the template to obtain a public key associated with the alias, the public address used for facilitating transactions associated with the alias; and

providing the machine readable resource at a predictable or known location associated with the payment service as defined by a Uniform Resource Identifier (URI);

accessing the machine readable resource to identify the simplified payment protocol capability for the alias;

generating, by the host computing resource and based on the simplified payment protocol capability, an output script for a payment associated with the alias;

encapsulating, by the host computing resource, the output script in the payment request template according to the instructions in the machine readable resource, wherein the payment request template includes details of required payment amount, a list of outputs, expiration data and metadata needed for the payment;

generating, by the host computing resource, an issuer signature using a private key present on the host computing resource, wherein the issuer signature is a unique session key identifiable only between the host computing resource and a payer entity;

encrypting, by the host computing resource, the payment request template including the encapsulated output script using the issuer signature;

transmitting the encrypted payment request template with the encapsulated output script from the host computing resource to the payer entity based on the simplified payment protocol capability;

receiving a completed payment transaction from the payer entity based on the transmitted payment request template; and

verifying the completed payment transaction using verified digital signatures from the payer entity and the payee entity according to the instructions in the machine readable resource prior to submitting to the distributed ledger.

2 . The method as claimed in claim 1 , wherein each client of the one or more clients is associated with a digital wallet.

3 . The method as claimed in claim 1 , wherein the plurality of capabilities includes one or more of:

payer entity or payee entity validation;

multiple digital signatures for transactions;

payee entity approval for transactions;

email-protocol related payment transactions;

simplified payment protocol or flow for payment transactions; and/or call-back requests or responses.

4 . The method as claimed in claim 2 , further including the step of determining a location for the host computing resource by the method of implementing a payment service for one or more clients for transactions associated with a distributed ledger, the method comprising the steps of:

providing an alias for a given client among the one or more clients, the alias being specific to the given client, the alias including or related to a network identifier;

associating the alias with the network identifier in a directory, the step of associating including:

creating a service record based on the network identifier in the directory; updating the service record to indicate that the payment service is provided by a network or domain associated with the network identifier; and

updating the service record to indicate a location for a host computing resource responsible for the payment service, wherein the host computing resource is configured to facilitate identification of the digital wallet associated with the alias, responsive to a request pertaining to a transaction related to the alias; and

wherein the endpoint identifier in the machine readable resource is based on the determined location.

5 . The method as claimed in claim 1 , wherein, responsive to a request from a requesting entity pertaining to a transaction associated with an alias, the method further comprises steps of:

based on the network identifier associated with the alias in the request, identifying the payment service associated with the alias;

based on the identified payment service, accessing the machine readable resource from the predictable or known location;

responsive to identifying if one or more capabilities required for the transaction are present in the machine readable resource, returning an endpoint identifier of the host computing resource for the payment service from the machine readable resource; and

obtaining a public address associated with the alias based on one or more of the instructions and/or specification in the machine readable resource.

6 . The method associated with a transaction for a distributed ledger, wherein an alias is provided for a given client among one or more clients, the alias being specific to the given client, the alias including or related to a network identifier, the method comprising the steps of:

sending from a requesting entity a request pertaining to a transaction, the request associated with the alias;

accessing the machine readable resource from a location associated with the payment service, wherein the payment service is identified based on the network identifier in the alias, and wherein the machine readable resource is created according to claim 1 ;

based on identifying if one or more capabilities required for the transaction are present in the machine readable resource, receiving an endpoint identifier of the host computing resource for the payment service associated with the alias; and

obtaining a public address associated with the alias using one or more of the instructions and/or specification in the machine readable resource.

7 . The method as claimed in claim 5 , wherein each client is associated with a digital wallet pertaining to a user or entity registered for the payment service in the network, wherein each digital wallet is a cryptocurrency wallet associated with a public key and a private key of an asymmetric cryptography key pair for transactions on the distributed ledger, and wherein the step of obtaining the public address includes obtaining the public key of the digital wallet associated with the alias.

8 . The method as claimed in claim 7 , wherein the public address associated with the alias is based on a cryptographic hash of the public key of the digital wallet associated with the alias.

9 . The method as claimed in claim 7 , wherein the public key of the digital wallet is an elliptic curve digital signature algorithm (ECDSA) public key, wherein the public key is not part of any transaction previously stored on or posted to the distributed ledger.

10 . The method as claimed in claim 5 , wherein the one or more instructions and/or specification in the machine readable resource comprises:

obtaining a public key infrastructure (PKI) request template from the machine readable resource for a PKI endpoint identifier;

including the alias and the network identifier in the template to generate a complete PKI request; and

sending an HTTP GET request based on the complete PKI request to obtain a public key associated with the alias.

11 . The method as claimed in claim 1 , wherein the known or predictable location of the machine readable resource is based on at least one of:

the endpoint identifier,

an Internet protocol communication port used by the payment service, and/or

a configuration specification of the payment service included in a publicly accessible well-known domain repository.

12 . The method as claimed in claim 1 , wherein the machine readable resource is generated using a Java Script Object Notation (JSON) format.

13 . The method as claimed in claim 5 , wherein the step of obtaining the public address associated with the alias includes obtaining a payment destination of a payee entity associated with an alias, the payment destination for use in constructing a transaction for making a cryptocurrency payment from a payer entity to the alias, the method comprises the steps of:

accessing the machine readable resource for the payment service;

returning a payment destination endpoint identifier based on the one or more instructions and/or specification in the machine readable resource;

obtaining payment details for the transaction from the payer entity, the payment details including an alias associated with the payee entity client and an amount of cryptocurrency to be paid to the payee entity;

obtaining a digital signature for associating the payment details with a cryptographic key associated with the payer entity; and

generating an output script associated with the payment destination endpoint identifier associated with the alias, the output script provided for embedding in a transaction for the distributed ledger.

14 . The method as claimed in claim 6 , wherein the step of obtaining the public address associated with the alias includes obtaining a payment destination of a payee entity associated with the alias, the payment destination for use in constructing a transaction for making a cryptocurrency payment from a payer entity to the alias, wherein the step of constructing the transaction comprises:

sending from the payer entity a request pertaining to the transaction, the request associated with the alias;

accessing the machine readable resource from a location associated with the payment service;

receiving a payment destination endpoint identifier based on the one or more instructions and/or specification in the machine readable resource;

providing payment details for the transaction, the payment details including an alias associated with the payee entity client and an amount of cryptocurrency to be paid to the payee entity;

providing a digital signature for associating the payment details with a cryptographic key;

receiving an output script associated with the payment destination endpoint identifier associated with the alias; and

creating the transaction by embedding the received output script in a transaction for the distributed ledger.

15 . The method as claimed in claim 13 , wherein the one or more instructions and/or specification in the machine readable resource comprises:

obtaining a payment destination request template from the machine readable resource for a payment destination endpoint identifier;

including the alias and the network identifier in the template to generate a complete payment destination request; and

sending a HTTP POST request based on the complete payment destination request to obtain the payment destination endpoint identifier associated with the alias.

16 . The method as claimed in claim 13 , wherein the public addresses of the alias and the payer entity each include a public key of a respective digital wallet associated with the payee entity and the payee entity, and wherein the digital signature is used for verifying an identity of the payer entity.

17 . The method as claimed in claim 13 , wherein digital signatures associated with both, the payer entity and the payee entity are required for verification of each respective entity, before the created transaction is stored or posted on the distributed ledger.

18 . A computer implemented method of implementing a payment service for one or more clients for transactions associated with a distributed ledger, the method comprising:

updating a machine readable resource associated with the payment service, the machine readable resource being provided at or accessible from a predictable or known location associated with the payment service, the machine readable resource created according to claim 1 , the step of updating comprising:

adding at least one further capability that is supported by the payment service,

wherein the at least one further capability includes implementing a simplified protocol for processing a digital asset for a given client among the one or more clients.