IP Library › Granted Patent US 11,151,558
Granted Patent B2
US 11,151,558 · App. 16/217,734 · Granted Oct 19, 2021

Zero-knowledge proof payments using blockchain

Inventors: Andras L. Ferenczi (Peoria, AZ); Dallas L. Gale (Scottsdale, AZ); Nilesh Y. Jadhav (Phoenix, AZ); Harish R. Naik (Phoenix, AZ)
Assignee: AMERICAN EXPRESS TRAVEL RELATED SERVICES COMPANY, INC
G06Q20/389G06Q20/3827G06Q20/3829H04L9/0643H04L9/3221H04L2209/38H04L2209/56
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 11,151,558
App. No.
16/217,734
Granted
Oct 19, 2021
Kind
B2
Abstract

A zero-knowledge proof purchase system and process using blockchain is disclosed. The system may comprise a customer device, a merchant system, an issuer system, and a blockchain network having a zero-knowledge proof (ZKP) smart contract. The system may implement a zero-knowledge proof algorithm having a key generator function, a proof function, and a validate function. Each function may be configured to perform various tasks in the system to support and enable zero-knowledge proof purchases.

Claims (73)

1. A method, comprising:

executing, by at least one blockchain computing device in a blockchain network, a zero-knowledge proof (ZKP) smart contract in response to receiving a proof, a customer hash, a merchant hash, and a purchase amount from a merchant computing device during a payment process;

executing, by the at least one blockchain computing device via the zero-knowledge proof (ZKP) smart contract, a validate function, wherein the validate function is executed by inputting a verification key, the proof, and the customer hash into the validate function, wherein the validate function is associated with a zero-knowledge proof algorithm, and an output of the validate function comprises a Boolean value;

adjusting, by the at least one blockchain computing device via the ZKP smart contract, a customer account balance associated with the customer hash in response to the validate function passing based at least in part on the Boolean value, wherein the customer account balance is adjusted based at least in part on the purchase amount, and wherein the customer account balance is maintained on the blockchain network;

adjusting, by the at least one blockchain computing device via the ZKP smart contract, a merchant account balance associated with the merchant hash, wherein the merchant account balance is adjusted based at least in part on the purchase amount, and wherein the merchant account balance is maintained on the blockchain network; and

writing, by the at least one blockchain computing device via the ZKP smart contract, a success notification to the blockchain network in response to a consensus agreement among a plurality of blockchain computing devices in the blockchain network, wherein the success notification comprises data indicating that the payment process was successfully completed, and the at least one blockchain computing device being part of the plurality of computing devices.

2. The method of claim 1 , wherein the proof is generated by a customer computing device based at least in part on a proof function associated with the zero-knowledge proof algorithm; and

wherein the proof function is executed by inputting a proving key, the customer hash, and a payment hash into the proof algorithm.

3. The method of claim 2 , wherein the proof is generated in response to a payment purchase being initiated with the merchant computing device; and

wherein the payment hash is generated by inputting customer identifying data and a customer nonce into a hashing algorithm.

4. The method of claim 1 ,

wherein the zero-knowledge proof algorithm is created by an issuer computing device,

wherein the zero-knowledge proof algorithm comprises a key generator function, the proof, and the validate function;

wherein a proving key and the verification key are generated based at least in part on an execution of the key generator function;

wherein the key generator function is executed by inputting a random number into the key generator function; and

wherein the ZKP smart contract is generated to comprise the validate function.

5. The method of claim 1 ,

wherein the merchant hash is generated in response a merchant registration request associated with the merchant computing device; and

wherein the merchant hash is generated by inputting merchant identifying data and a merchant nonce into a hashing algorithm.

6. The method of claim 5 , further comprising writing, by the at least one computing device via the ZKP smart contract, the merchant hash and the merchant account balance to the blockchain.

7. The method of claim 1 ,

wherein the customer hash is generated based at least in part on a customer registration request associated with a customer computing device; and

wherein the customer hash is generated by inputting customer identifying data and a customer nonce into a hashing algorithm.

8. The method of claim 7 , further comprising writing, by the at least one computing device via the ZKP smart contract, the customer hash and the customer account balance to the blockchain network.

9. A computer-based system, comprising:

a processor; and

a tangible, non-transitory memory configured to communicate with the processor, the tangible, non-transitory memory having instructions stored thereon that, in response to execution by the processor, cause the processor to perform operations comprising:

executing a zero-knowledge proof (ZKP) smart contract in response to receiving a proof, a customer hash, a merchant hash, and a purchase amount from a merchant computing device during a payment process;

executing, by the ZKP smart contract, a validate function, wherein the validate function is configured to be executed by inputting a verification key, the proof, and the customer hash into the validate function, wherein the validate function is associated with a zero-knowledge proof algorithm, and an output of the validate function comprises a Boolean value;

adjusting, by the ZKP smart contract, a customer account balance associated with the customer hash in response to the validate function passing based at least in part on the Boolean value, wherein the customer account balance is adjusted based at least in part on the purchase amount, and wherein the customer account balance is maintained on a blockchain;

adjusting, by the ZKP smart contract, a merchant account balance associated with the merchant hash, wherein the merchant account balance is adjusted based at least in part on the purchase amount, and wherein the merchant account balance is maintained on the blockchain; and

writing, by the ZKP smart contract, a success notification to the blockchain in response to a consensus agreement among a plurality of blockchain computing devices in the blockchain, wherein the success notification comprises data indicating that the payment process was successfully completed.

10. The computer-based system of claim 9 ,

wherein the proof is generated by a customer computing device based at least in part on a proof function associated with the zero-knowledge proof algorithm; and

wherein the proof function is configured to be executed by inputting a proving key, the customer hash, and a payment hash into the proof algorithm.

11. The computer-based system of claim 10 ,

wherein the proof is generated by the customer computing device in response to a payment purchase being initiated with the merchant computing device; and

wherein the payment hash is generated by inputting customer identifying data and a customer nonce into a hashing algorithm.

12. The computer-based system of claim 9 ,

wherein the zero-knowledge proof algorithm is created by an issuer computing device;

wherein the zero-knowledge proof algorithm comprises a key generator function, the proof, and the validate function;

wherein a proving key and the verification key are generated in response to an execution of the key generator function;

wherein the key generator function is configured to be executed by inputting a random number into the key generator function; and

wherein the ZKP smart contract is generated to comprise the validate function.

13. The computer-based system of claim 9 ,

wherein the merchant hash is generated by an issuer computing device based at least in part on a merchant registration request associated with the merchant computing device; and

wherein the merchant hash is generated by inputting merchant identifying data and a merchant nonce into a hashing algorithm.

14. The computer-based system of claim 13 , wherein the operations further comprise writing, by the ZKP smart contract, the merchant hash and the merchant account balance to the blockchain.

15. The computer-based system of claim 9 ,

wherein the customer hash is generated by an issuer computing device in response to an issuer computing device receiving a customer registration request from a customer computing device; and

wherein the customer hash is generated by inputting customer identifying data and a customer nonce into a hashing algorithm.

16. The computer-based system of claim 15 , wherein the operations further comprise writing, by the ZKP smart contract, the customer hash and the customer account balance to the blockchain.

17. An article of manufacture including a non-transitory, tangible computer readable storage medium having instructions stored thereon that, in response to execution by a processor of at least one computing device of a blockchain network, cause the processor to perform operations comprising:

executing a zero-knowledge proof (ZKP) smart contract in response to receiving a proof, a customer hash, a merchant hash, and a purchase amount from a merchant computing device during a payment process, the merchant hash being generated via a cryptographic hash function during a registration of a merchant associated with the merchant computing device with a ZKP payments system;

executing, by the ZKP smart contract, a validate function, wherein the validate function is configured to be executed by inputting a verification key, the proof, and the customer hash into the validate function, wherein the validate function is associated with a zero-knowledge proof algorithm, and an output of the validate function comprises a Boolean value;

adjusting, by the ZKP smart contract, a customer account balance associated with the customer hash in response to the validate function passing based at least in part on the Boolean value, wherein the customer account balance is adjusted based at least in part on the purchase amount, and wherein the customer account balance is maintained on the blockchain network;

adjusting, by the ZKP smart contract, a merchant account balance associated with the merchant hash, wherein the merchant account balance is adjusted based at least in part on the purchase amount, and wherein the merchant account balance is maintained on the blockchain network; and

writing, by the ZKP smart contract, a success notification to the blockchain network in response to a consensus agreement among a plurality of blockchain computing devices in the blockchain network, wherein the success notification comprises data indicating that the payment process was successfully completed.

18. The article of manufacture of claim 17 ,

wherein the proof is generated by a customer computing device based at least in part on an execution of a proof function associated with the zero-knowledge proof algorithm;

wherein the proof function is configured to be executed by inputting a proving key, the customer hash, and a payment hash into the proof algorithm;

wherein the proof is generated in response to an initiation of a payment purchase with the merchant computing device; and

wherein the payment hash is generated by inputting customer identifying data and a customer nonce into a hashing algorithm.

19. The article of manufacture of claim 17 , wherein the zero-knowledge proof algorithm is created by an issuer computing device;

wherein the zero-knowledge proof algorithm comprises a key generator function, the proof function, and the validate function;

wherein a proving key and the verification key are generated in response to an execution of the key generator function;

wherein the key generator function is configured to be executed by inputting a random number into the key generator function; and

wherein the ZKP smart contract comprises the validate function.

20. The article of manufacture of claim 17 ,

wherein the merchant hash is generated based at least in part on an issuer computing device receiving a merchant registration request from the merchant computing device;

wherein the merchant hash is generated by inputting merchant identifying data and a merchant nonce into a hashing algorithm;

wherein the customer hash is generated in response to the issuer computing device receiving a customer registration request from a customer computing device; and

wherein the customer hash is generated by inputting customer identifying data and a customer nonce into a hashing algorithm.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2018
From: FERENCZI, ANDRAS L.; GALE, DALLAS L.; JADHAV, NILESH Y.; NAIK, HARISH R.
To: AMERICAN EXPRESS TRAVEL RELATED SERVICES COMPANY, INC.
Reel/Frame 047756/0435 →
Continuity (1)
Related Publication 20200193425A1 · Jun 18, 2020
Cited By (7)
US 12,307,447 US 12,367,490 US 12,517,893 US 12,574,259 US 12,626,254 US 12,681,919 US 12,737,753