IP Library › Granted Patent US 11,556,909
Granted Patent B2
US 11,556,909 · App. 16/834,954 · Granted Jan 17, 2023

Universal payment channels

Inventors: Mohammad Mohsen Minaei Bidgoli (Palo Alto, CA); Ranjit Kumaresan (Sunnyvale, CA); Mahdi Zamani (Palo Alto, CA); Sivanarayana Gaddam (Santa Clara, CA)
Assignee: Visa International Service Association
G06Q20/108G06Q20/389G06Q20/3827H04L9/0637H04L9/0643H04L9/50H04L2209/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,556,909
App. No.
16/834,954
Granted
Jan 17, 2023
Kind
B2
Abstract

Systems and methods for transferring value. A method includes posting, by a user device to a blockchain, a deposit transaction comprising a deposit value and conditions and updating, by the user device, a state according to a transaction amount. The method also includes transmitting, by the user device, a state update of the state to a server computer and responsive to transmitting the state update, and receiving, by the user device, a payment complete message comprising a tuple from the server computer. The method also includes verifying, by the user device, the conditions and processing, by the user device, a server deposit transaction on the blockchain in response to verifying.

Claims (85)

1. A method comprising, the following steps:

a) posting, by a user device to a blockchain, a deposit transaction comprising a deposit value and conditions;

b) updating, by the user device, a state according to a transaction amount;

c) transmitting, by the user device, a state update of the state to a server computer;

d) responsive to step c), receiving, by the user device, a payment complete message from the server computer;

e) verifying, by the user device, the conditions by

constructing a witness comprising the state,

evaluating the conditions with the witness to output a value, and

verifying if the value is greater than a threshold; and

f) processing, by the user device, a server deposit transaction on the blockchain in response to verifying.

2. The method of claim 1 , wherein the user device is a first user device, the payment complete message comprises a tuple and is a second payment complete message, and the tuple is a certificate tuple, and wherein the method further comprises the following steps between steps a) and b):

transmitting, by the first user device, a payer authorization message to a second user device, the payer authorization message comprising the certificate tuple comprising a transaction identifier, the transaction amount, and a validity time;

transmitting, by the first user device, the payer authorization message to the server computer;

receiving, by the first user device, a first server authorization message comprising the tuple from the server computer;

receiving, by the first user device, a second authorization complete message comprising the tuple from the second user device;

transmitting, by the first user device, a payment initiation message comprising the transaction identifier to the second user device and the server computer; and

receiving, by the first user device, a first payment complete message comprising the tuple from the second user device.

3. The method of claim 2 , wherein prior to verifying the conditions, the method comprises:

verifying that the first payment complete message and the second payment complete message were received before the validity time.

4. The method of claim 1 , wherein processing the server deposit transaction comprises claiming the value from the deposit value, and wherein the difference between the deposit value and the value is refunded to the server computer.

5. The method of claim 1 , wherein the deposit transaction is a first deposit transaction and the conditions are first conditions, the method further comprising:

posting, by the user device to the blockchain, a second deposit transaction comprising the deposit value and second conditions.

6. The method of claim 5 , wherein the method further comprises:

verifying, by the user device, the second conditions, and wherein the posting of the second deposit transaction to the blockchain is based on the verification of the second conditions.

7. The method of claim 5 , wherein the second conditions depend on the first conditions.

8. A user device comprising:

a processor; and

a non-transitory computer-readable medium comprising code, executable by the processor, for implementing a method comprising at least the steps of:

a) posting, to a blockchain, a deposit transaction comprising a deposit value and conditions;

b) updating a state according to a transaction amount;

c) transmitting a state update of the state to a server computer;

d) responsive to step c), receiving a payment complete message from the server computer;

e) verifying the conditions by

constructing a witness comprising the state,

evaluating the conditions with the witness to output a value, and

verifying if the value is greater than a threshold; and

f) processing a server deposit transaction on the blockchain in response to verifying.

9. The user device of claim 8 , wherein the user device is a first user device, the payment complete message comprises a tuple and is a second payment complete message, wherein the tuple is a certificate tuple, and wherein the method further comprises the following steps between steps a) and b):

transmitting a payer authorization message to a second user device, the payer authorization message comprising the certificate tuple comprising a transaction identifier, the transaction amount, and a validity time;

transmitting the payer authorization message to the server computer;

receiving a first server authorization message comprising the tuple from the server computer;

receiving a second authorization complete message comprising the tuple from the second user device;

transmitting a payment initiation message comprising the transaction identifier to the second user device and the server computer; and

receiving a first payment complete message comprising the tuple from the second user device.

10. The user device of claim 9 , wherein the method further comprises:

determining a current time; and

aborting the method if the current time is greater than the validity time.

11. The user device of claim 9 , wherein the method further comprises, prior to transmitting the payer authorization message:

computing a hash of a random string;

generating an authorization initiation message comprising the hash, the transaction identifier, the transaction amount, and the validity time;

transmitting the authorization initiation message to the second user device; and

receiving, from the second user device, a payee authorization message comprising the tuple.

12. The user device of claim 8 , wherein if the conditions are not verified, processing the server deposit transaction comprises refunding the server deposit transaction to the server computer.

13. The user device of claim 8 , wherein if the method is aborted, the deposit transaction is refunded to the user device.

14. The user device of claim 8 , wherein the state comprises an identifier, a user device balance, and a server balance and wherein updating the state comprises:

incrementing the identifier;

decreasing the user device balance by the transaction amount; and

increasing the server balance by the transaction amount.

15. The user device of claim 8 , wherein the user device is a mobile phone.

16. A method comprising at least the steps of:

a) posting, by a server computer to a blockchain, a deposit transaction comprising a deposit value and conditions;

b) receiving, by the server computer from a user device, a state update;

c) updating, by the server computer, a state according to a transaction amount;

d) transmitting, by the server computer to the user device, a payment complete message;

e) verifying, by the server computer, the conditions by

constructing a witness comprising the state,

evaluating the conditions with the witness to output a value, and

verifying if the value is greater than a threshold; and

f) processing, by the server computer, a server deposit transaction on the blockchain in response to verifying.

17. The method of claim 16 , wherein the user device is a first user device, wherein the blockchain is a first blockchain, the deposit transaction is a first deposit transaction, and the conditions are first conditions, and wherein the payment complete message is a second payment complete message, the method further comprising between steps a) and b):

posting, by the server computer to a second blockchain, a second deposit transaction comprising the deposit value and second conditions;

receiving, by the server computer from a second user device, a payee authorization message, the payee authorization message comprising a tuple comprising a transaction identifier, a transaction amount, and a validity time by which a transaction response is to be received;

receiving, by the server computer from the first user device, a payer authorization message comprising the tuple;

comparing, by the server computer, the tuple in the payee authorization message and the tuple in the payer authorization message;

transmitting, by the server computer to the first user device, a first server authorization response message comprising the tuple;

transmitting, by the server computer to the second user device, a second server authorization message comprising the tuple;

receiving, by the server computer from the first user device, a payment initiation message comprising the transaction identifier; and

receiving, by the server computer from the second user device, a first payment complete message comprising the transaction identifier.

18. The method of claim 17 , further comprising:

setting, by the server computer, a flag to zero in response to receiving the payer authorization message; and

setting, by the server computer, the flag to one in response to receiving the state update.

19. The method of claim 17 , wherein the state is a first state, wherein the first state comprises a first identifier, a first user device balance, and a first server balance, and a second state comprising a second identifier, a second user device balance, and a second server balance.

20. The method of claim 19 , further comprising:

updating, by the server computer, the first state in response to receiving the payment initiation message by incrementing the first identifier, decreasing the first user device balance by the transaction amount, and increasing the first server balance by the transaction amount; and

updating, by the server computer, the second state in response to receiving the first payment complete message by incrementing the second identifier, decreasing the second server balance by the transaction amount, and increasing the second user device balance by the transaction amount.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2020
From: MINAEI BIDGOLI, MOHAMMAD MOHSEN; KUMARESAN, RANJIT; ZAMANI, MAHDI; GADDAM, SIVANARAYANA
To: VISA INTERNATIONAL SERVICE ASSOCIATION
Reel/Frame 054779/0741 →
Continuity (2)
Provisional Application 62888326 · Aug 16, 2019
Related Publication 20210049567A1 · Feb 18, 2021