IP Library › Granted Patent US 12,615,164
Granted Patent B2
US 12,615,164 · App. 18/686,656 · Granted Apr 28, 2026

Blockchain based transaction protocol

Inventor: Andrew James Mee (London, GB)
Assignee: nChain Licensing AG
H04L9/50H04L9/3239H04L63/0428H04L63/12H04L67/04
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 12,615,164
App. No.
18/686,656
Granted
Apr 28, 2026
Kind
B2
Abstract

The present disclosure proposes methods, devices and systems for processing a transaction between a customer and a merchant. The method may be performed at a merchant device. The method may comprise receiving customer information from a customer device associated with the customer; establishing a secure communication channel between the customer and the merchant based on the customer information; generating a partial invoice transaction based on the customer information; sending the partial invoice transaction to the customer device via the secure communication channel; receiving via the secure communication channel, a transaction which is a completed version of the partial invoice transaction and which has been authorised at the customer device; validating the transaction; broadcasting the validated transaction to a blockchain node to be submitted to a blockchain; receiving at least one notification that the transaction has been validated by the blockchain node and included on the blockchain.

Claims (70)

1 . A computer implemented method performed at a merchant device for processing a transaction between a customer and a merchant, the method comprising:

receiving a transaction request including customer information and a customer public key from a customer device associated with the customer, the customer public key being associated with an electronic wallet of the customer;

verifying an identity of the customer using the customer public key;

transmitting, to a Simplified Payment Verification server, a request to establish a secure communication channel between the customer and the merchant based on the customer information;

receiving, from the Simplified Payment Verification server, a channel ID associated with the secure communication channel, wherein the Simplified Payment Verification server also transmits the channel ID to the customer device;

generating a partial invoice transaction that is based on the customer information and includes at least one transaction output of an electronic wallet of the merchant;

sending the partial invoice transaction to the customer device via the secure communication channel;

receiving via the secure communication channel, a completed invoice transaction that is a completed version of the partial invoice transaction that includes at least one input transaction inserted by the customer device and including a Merkle proof determined from the electronic wallet of the customer and which has been authorised at the customer device;

validating, by the merchant device, the transaction defined by the completed invoice transaction by determining a first Merkle root determined by the merchant device matches a second Merkle root determined from the Merkle proof of the at least one output transaction of the completed invoice transaction to create a validated transaction;

broadcasting the validated transaction to a blockchain node to be submitted to a blockchain; and

receiving at least one notification that the validated transaction has been validated by the blockchain node and included on the blockchain to execute the completed invoice transaction.

2 . The method of claim 1 , wherein the customer information comprises a purchase order and an alias of the customer.

3 . The method of claim 2 , wherein the alias of the customer is verified in connection with a server which is external to the merchant device.

4 . The method of claim 1 , wherein receiving the customer information establishes a handshake procedure between the customer and the merchant.

5 . The method of claim 1 , wherein the secure communication channel is established in connection with a channel server which is external to the merchant device.

6 . The method of claim 1 , wherein the secure communication channel permits communications to be sent from both the merchant to the customer and from the customer to the merchant.

7 . The method of claim 1 , wherein the secure communication channel is end-to-end encrypted.

8 . The method of any claim 1 , wherein generating the partial invoice transaction comprises populating a transaction template with one or more transaction outputs in connection with a merchant wallet.

9 . The method of any claim 1 , wherein the transaction comprises one or more transaction inputs associated with a customer wallet, wherein the one or more transaction inputs comprises at least a Merkle root of a previous transaction.

10 . The method of claim 9 , wherein the transaction is encapsulated in a data structure that further comprises Merkle Proofs and full transactions of confirmed ancestors.

11 . The method of claim 9 , wherein validating the transaction comprises independently constructing a Merkle root of the previous transaction and cross-checking the constructed Merkle root with the Merkle root of the one or more transaction inputs.

12 . The method of claim 11 , wherein the Merkle root is independently constructed by the merchant device in communication with a headers client which provides a best chain of block headers.

13 . The method of claim 11 , wherein the transaction is validated if the Merkle root provided in the transaction matches the independently constructed Merkle root.

14 . The method of claim 1 , wherein the transaction is a Bitcoin transaction.

15 . The method of claim 1 , wherein the at least one notification is a call-back notification.

16 . The method of claim 15 , wherein the call-back notification provides a return Merkle proof indicative that the transaction has been successfully submitted to the blockchain.

17 . The method of claim 16 , wherein the return Merkle proof comprises:

a transaction identifier of the blockchain transaction that the Merkle proof relates to;

a block header of the block in which the blockchain is included; and

an array of sibling hashes for the transaction identifier.

18 . The method of claim 1 , further comprising sending the at least one notification to the customer device.

19 . The method of claim 1 , further comprising the step of closing the secure communication channel once the at least one notification has been received.

20 . The method of claim 1 , wherein a public address of the customer and a public address of the merchant each include a public key of a respective digital wallet associated with the customer and the merchant.

21 . The method of claim 20 , wherein a digital signature is used for verifying an identity of the merchant and/or the customer, and wherein the digital signatures associated with both the merchant and the customer are required for verification of each respective entity before the transaction is created, stored or posted on a blockchain ledger.

22 . A computer system for processing a transaction between a customer and a merchant, the system comprising:

a merchant device configured to perform the steps of:

receiving a transaction request including customer information and a customer public key from a customer device associated with the customer, the customer public key being associated with an electronic wallet of the customer,

verifying an identity of the customer using the customer public key,

transmitting, to a Simplified Payment Verification server, a request to establish a secure communication channel between the customer and the merchant based on the customer information,

receiving, from the Simplified Payment Verification server, a channel ID associated with the secure communication channel, wherein the Simplified Payment Verification server also transmits the channel ID to the customer device,

generating a partial invoice transaction that is based on the customer information and includes at least one transaction output of an electronic wallet of the merchant,

sending the partial invoice transaction to the customer device via the secure communication channel,

receiving via the secure communication channel, a completed invoice transaction that is a completed version of the partial invoice transaction that includes at least one input transaction inserted by the customer device and including a Merkle proof determined from the electronic wallet of the customer and which has been authorised at the customer device,

validating, by the merchant device, the transaction defined by the completed invoice transaction by determining a first Merkle root determined by the merchant device matches a second Merkle root determined from the Merkle proof of the at least one output transaction of the completed invoice transaction to create a validated transaction,

broadcasting the validated transaction to a blockchain node to be submitted to a blockchain, and

receiving at least one notification that the validated transaction has been validated by the blockchain node and included on the blockchain to execute the completed invoice transaction;

the customer device; and

a blockchain node which is one of a plurality of blockchain nodes that make up a blockchain network.

23 . A computing device comprising a processor and memory, the memory including executable instructions that, as a result of execution by the processor, cause the device to perform a computer-implemented method processing a transaction between a customer and a merchant, comprising:

receiving a transaction request by a merchant device, the transaction request including customer information and a customer public key from a customer device associated with the customer, the customer public key being associated with an electronic wallet of the customer;

verifying an identity of the customer using the customer public key;

transmitting, to a Simplified Payment Verification server, a request to establish a secure communication channel between the customer and the merchant based on the customer information;

receiving, from the Simplified Payment Verification server, a channel ID associated with the secure communication channel, wherein the Simplified Payment Verification server also transmits the channel ID to the customer device;

generating a partial invoice transaction that is based on the customer information and includes at least one transaction output of an electronic wallet of the merchant;

sending the partial invoice transaction to the customer device via the secure communication channel;

receiving via the secure communication channel, a completed invoice transaction that is a completed version of the partial invoice transaction that includes at least one input transaction inserted by the customer device and including a Merkle proof determined from the electronic wallet of the customer and which has been authorised at the customer device;

validating, by the merchant device, the transaction defined by the completed invoice transaction by determining a first Merkle root determined by the merchant device matches a second Merkle root determined from the Merkle proof of the at least one output transaction of the completed invoice transaction to create a validated transaction;

broadcasting the validated transaction to a blockchain node to be submitted to a blockchain; and

receiving at least one notification that the validated transaction has been validated by the blockchain node and included on the blockchain to execute the completed invoice transaction.

24 . A non-transitory computer-readable storage medium media having stored thereon executable instructions that, as a result of being executed by a processor of a computer, cause the computer to perform a method of:

receiving a transaction request by a merchant device, the transaction request including customer information and a customer public key from a customer device associated with a customer, the customer public key being associated with an electronic wallet of the customer;

verifying an identity of the customer using the customer public key;

transmitting, to a Simplified Payment Verification server, a request to establish a secure communication channel between the customer and a merchant based on the customer information;

receiving, from the Simplified Payment Verification server, a channel ID associated with the secure communication channel, wherein the Simplified Payment Verification server also transmits the channel ID to the customer device;

generating a partial invoice transaction that is based on the customer information and includes at least one transaction output of an electronic wallet of the merchant;

sending the partial invoice transaction to the customer device via the secure communication channel;

receiving via the secure communication channel, a completed invoice transaction that is a completed version of the partial invoice transaction that includes at least one input transaction inserted by the customer device and including a Merkle proof determined from the electronic wallet of the customer and which has been authorised at the customer device;

validating, by the merchant device, the transaction defined by the completed invoice transaction by determining a first Merkle root determined by the merchant device matches a second Merkle root determined from the Merkle proof of the at least one output transaction of the completed invoice transaction to create a validated transaction;

broadcasting the validated transaction to a blockchain node to be submitted to a blockchain; and

receiving at least one notification that the validated transaction has been validated by the blockchain node and included on the blockchain to execute the completed invoice transaction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2024
From: MEE, ANDREW JAMES
To: NCHAIN LICENSING AG
Reel/Frame 066697/0408 →
Priority Claims (1)
GB 2113527 · Sep 22, 2021 · national
Continuity (1)
Related Publication 20240380621A1 · Nov 14, 2024
References Cited (8)
US 20090089209A1 · Bixler · 2009 [cited by examiner]
WO 2020165679A1 · 2020 [cited by applicant]
WO 2020212766A1 · 2020 [cited by applicant]
WO 2020234824A1 · 2020 [cited by applicant]
WO 2021064565A1 · 2021 [cited by applicant]
WO 2021165848A1 · 2021 [cited by applicant]
Alin Tomescu et al: “Catena: Preventing Lies with Bitcoin”, IACR, International Association for Cryptologic Research, vol. 20161115:150307, Nov. 13, 2016 (Nov. 13, 2016), pp. 1-17. [cited by applicant]
PCT/EP2022/076270 International Search Report and Written Opinion dated Dec. 13, 2022, 12 pages. [cited by applicant]