Privacy-preserving decentralized payment instrument network
View Patent ↗Disclosed are various embodiments for providing a privacy-preserving decentralized payment instrument network that allows merchants and transaction account issuers to record transaction-related information in a distributed ledger. In particular, upon receiving authorization from a transaction account issuer to proceed with a transaction, a merchant can securely record transaction data (e.g., transaction confirmation identifier, transaction details, etc.) associated with the transaction in the distributed ledger. Furthermore, upon payment by the issuer to the merchant with regard to the transaction, the issuer can record payment confirmation data on the distributed ledger. The records stored in the distributed ledger can be used to resolve disputes between the parties without third-party intervention or sharing of privacy data.
1 . A system, comprising:
a plurality of nodes comprising a distributed ledger; and
at least one application executable by at least one of the plurality of nodes, wherein, when executed by the at least one of the plurality of nodes, the at least one application causes the at least one of the plurality of nodes to at least:
receive authorization confirmation data and a first zero-knowledge proof from a first entity following a second entity authorizing a transaction between a user account and the first entity, the authorization confirmation data being signed using a first private key of the first entity, and being encrypted using a second public key of the second entity, and comprising a set of transaction details that comprises a transaction account number and a transaction amount, and the system failing to have access to a corresponding first public key of the first entity and failing to have access to a corresponding second private key of the second entity to decrypt the authorization confirmation data;
execute the first zero-knowledge proof to determine whether a plurality of first factors exist without knowledge of sensitive information within the authorization confirmation data, the plurality of first factors comprising (1) the first entity possesses the authorization confirmation data, (2) the first entity possesses the first private key, (3) the authorization confirmation data comprises a corresponding second public key of the second entity, and (4) the authorization confirmation data fails to currently exist on the distributed ledger;
validate the authorization confirmation data in response to determining that the plurality of first factors exist;
write the authorization confirmation data to the distributed ledger;
receive payment confirmation data and a second zero-knowledge proof from the second entity following the second entity providing a payment associated with the transaction to the first entity, the payment confirmation data being signed using the second private key of the second entity, being encrypted using the first public key of the first entity, and comprising of a set of expected transaction details that comprises an expected transaction account number and an expected transaction amount, and the system failing to have access to the corresponding second public key of the second entity;
execute the second zero-knowledge proof to determine whether a plurality of second factors exists without knowledge of the plurality of second factors, the plurality of second factors comprising (1) the distributed ledger contains the authorization confirmation data that resolves secret inputs provided by the second zero-knowledge proof, (2) the first entity possesses a transaction confirmation identifier and the payment confirmation data corresponds to a hash of the transaction confirmation identifier, (3) the payment confirmation data is a settlement equivalent to the authorization confirmation data provided by the first entity, and (4) the expected transaction account number is equivalent to the transaction account number present in the authorization confirmation data;
validate the payment confirmation data in response to determining that the plurality of second factors exist; and
write the payment confirmation data to the distributed ledger to indicate that the second entity has provided the payment associated with the transaction to the first entity.
2 . The system of claim 1 , wherein the authorization confirmation data comprises a hashed memo comprising the corresponding second public key of the second entity, one or more transaction details, and the transaction confirmation identifier associated with the transaction.
3 . The system of claim 1 , wherein the payment confirmation data comprises a hashed version of the transaction confirmation identifier associated with the transaction.
4 . The system of claim 1 , wherein, when executed, the at least one application further causes the at least one of the plurality of nodes to at least:
receive a request from the first entity to verify if the payment for the transaction has been processed;
confirm that the payment confirmation data is written on the distributed ledger; and
notify the first entity that the payment confirmation data is on the distributed ledger.
5 . The system of claim 1 , wherein the payment confirmation data is written to the distributed ledger according to a consensus agreement by the plurality of nodes.
6 . The system of claim 1 , wherein the authorization confirmation data is written to the distributed ledger according to a consensus agreement by the plurality of nodes.
7 . The system of claim 1 , wherein the first entity possesses the corresponding second public key of the second entity and the second entity possesses the corresponding first public key of the first entity.
8 . The system of claim 1 , wherein, when executed, the at least one application further causes the at least one of the plurality of nodes to at least:
receive a request from the first entity to verify if the payment for the transaction has been processed;
confirm that the payment confirmation data fails to be written on the distributed ledger; and
notify the first entity that the payment confirmation data fails to be written on the distributed ledger.
9 . A method, comprising:
receiving, via at least one node of a plurality of nodes comprising a distributed ledger, authorization confirmation data and a first zero-knowledge proof from a first entity following a second entity authorizing a transaction between a user account and the first entity, the authorization confirmation data being signed using a first private key of the first entity, and being encrypted using a second public key of the second entity, and comprising a set of transaction details that comprises a transaction account number and a transaction amount, and the system failing to have access to a corresponding first public key of the first entity and failing to have access to a corresponding second private key of the second entity to decrypt the authorization confirmation data;
executing, via at least one node of the plurality of nodes, the first zero-knowledge proof to determine whether a plurality of first factors exist without knowledge of sensitive information within the authorization confirmation data, the plurality of first factors comprising (1) the first entity possesses the authorization confirmation data, (2) the first entity possesses the first private key, (3) the authorization confirmation data comprises a corresponding second public key of the second entity, and (4) the authorization confirmation data fails to currently exist on the distributed ledger;
validating, via at least one node of the plurality of nodes, the authorization confirmation data in response to determining that the plurality of first factors exist;
writing, via at least one node of the plurality of nodes, the authorization confirmation data to the distributed ledger;
receiving, via at least one node of the plurality of nodes, payment confirmation data and a second zero-knowledge proof from the second entity following the second entity providing a payment associated with the transaction to the first entity, the payment confirmation data being signed using the second private key of the second entity, being encrypted using the first public key of the first entity, and comprising of a set of expected transaction details that comprises an expected transaction account number and an expected transaction amount, and the system failing to have access to the corresponding second public key of the second entity;
executing, via at least one node of the plurality of nodes, the second zero-knowledge proof to determine whether a plurality of second factors exists without knowledge of the plurality of second factors, the plurality of second factors comprising (1) the distributed ledger contains the authorization confirmation data that resolves secret inputs provided by the second zero-knowledge proof, (2) the first entity possesses a transaction confirmation identifier and the payment confirmation data corresponds to a hash of the transaction confirmation identifier, (3) the payment confirmation data is a settlement equivalent to the authorization confirmation data provided by the first entity, and (4) the expected transaction account number is equivalent to the transaction account number present in the authorization confirmation data;
validating, via at least one node of the plurality of nodes, the payment confirmation data in response to determining that the plurality of second factors exist; and
writing, via at least one node of the plurality of nodes, the payment confirmation data to the distributed ledger to indicate that the second entity has provided the payment associated with the transaction to the first entity.
10 . The method of claim 9 , wherein the authorization confirmation data comprises a hashed memo comprising the corresponding second public key of the second entity, one or more transaction details, and the transaction confirmation identifier associated with the transaction.
11 . The method of claim 9 , wherein the payment confirmation data comprises a hashed version of the transaction confirmation identifier associated with the transaction.
12 . The method of claim 9 , further comprising:
receiving a request from the first entity to verify if the payment for the transaction has been processed;
confirming that the payment confirmation data is written on the distributed ledger; and
notifying the first entity that the payment confirmation data is on the distributed ledger.
13 . The method of claim 9 , wherein the first entity possesses the corresponding second public key of the second entity and the second entity possesses the corresponding first public key of the first entity.
14 . The method of claim 9 , further comprising:
receiving a request from the first entity to verify if the payment for the transaction has been processed;
confirming that the payment confirmation data fails to be written on the distributed ledger; and
notifying the first entity that the payment confirmation data fails to be written on the distributed ledger.
15 . A non-transitory, computer-readable medium, comprising machine-readable instructions that, when executed by a processor of at least one node of a plurality of nodes comprising a distributed ledger, cause the at least one node to at least:
receive authorization confirmation data and a first zero-knowledge proof from a first entity following a second entity authorizing a transaction between a user account and the first entity, the authorization confirmation data being signed using a first private key of the first entity, and being encrypted using a second public key of the second entity, and comprising a set of transaction details that comprises a transaction account number and a transaction amount, and the system failing to have access to a corresponding first public key of the first entity and failing to have access to a corresponding second private key of the second entity to decrypt the authorization confirmation data;
execute the first zero-knowledge proof to determine whether a plurality of first factors exist without knowledge of sensitive information within the authorization confirmation data, the plurality of first factors comprising (1) the first entity possesses the authorization confirmation data, (2) the first entity possesses the first private key, (3) the authorization confirmation data comprises a corresponding second public key of the second entity, and (4) the authorization confirmation data fails to currently exist on the distributed ledger;
validate the authorization confirmation data in response to determining that the plurality of first factors exist;
write the authorization confirmation data to the distributed ledger;
receive payment confirmation data and a second zero-knowledge proof from the second entity following the second entity providing a payment associated with the transaction to the first entity, the payment confirmation data being signed using the second private key of the second entity, being encrypted using the first public key of the first entity, and comprising of a set of expected transaction details that comprises an expected transaction account number and an expected transaction amount, and the system failing to have access to the corresponding second public key of the second entity;
execute the second zero-knowledge proof to determine whether a plurality of second factors exists without knowledge of the plurality of second factors, the plurality of second factors comprising (1) the distributed ledger contains the authorization confirmation data that resolves secret inputs provided by the second zero-knowledge proof, (2) the first entity possesses a transaction confirmation identifier and the payment confirmation data corresponds to a hash of the transaction confirmation identifier, (3) the payment confirmation data is a settlement equivalent to the authorization confirmation data provided by the first entity, and (4) the expected transaction account number is equivalent to the transaction account number present in the authorization confirmation data;
validate the payment confirmation data in response to determining that the plurality of second factors exist; and
write the payment confirmation data to the distributed ledger to indicate that the second entity has provided the payment associated with the transaction to the first entity.
16 . The non-transitory, computer-readable medium of claim 15 , wherein the authorization confirmation data comprises a hashed memo comprising the corresponding second public key of the second entity, one or more transaction details, and the transaction confirmation identifier associated with the transaction.
17 . The non-transitory, computer-readable medium of claim 15 , wherein the payment confirmation data comprises a hashed version of the transaction confirmation identifier associated with the transaction.
18 . The non-transitory, computer-readable medium of claim 15 , wherein the machine-readable instructions, when executed by the processor, further cause the at least one node to at least:
receive a request from the first entity to verify if the payment for the transaction has been processed;
confirm that the payment confirmation data is written on the distributed ledger; and
notify the first entity that the payment confirmation data is on the distributed ledger.
19 . The non-transitory, computer-readable medium of claim 15 , wherein the first entity possesses the corresponding second public key of the second entity and the second entity possesses the corresponding first public key of the first entity.
20 . The non-transitory, computer-readable medium of claim 15 , wherein the machine-readable instructions, when executed by the processor, further cause the at least one node to at least:
receive a request from the first entity to verify if the payment for the transaction has been processed;
confirm that the payment confirmation data fails to be written on the distributed ledger; and
notify the first entity that the payment confirmation data fails to be written on the distributed ledger.