# US 12,118,545 B2 · Key-value map commitments system and method

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,118,545 B2
- Document ID: US12118545B2
- Status: Granted
- Kind: B2
- Application number: 18/183,658
- Filed: 2023-03-14
- Published: 2023-07-06
- Granted: 2024-10-15
- Earliest claimed: 2019-09-25
- Assignees: Visa International Service Association
- Applicants: Visa International Service Association
- Inventors: Shashank Agrawal; Srinivasan Raghuraman
- Web page: https://patentgrep.com/patent/US12118545B2

## CPC

- G06Q 20/3827: {Use of message hashing}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- G06Q 20/065: {using e-cash}
- G06Q 20/3678: {e-cash details, e.g. blinded, divisible or detecting double spending}
- G06Q 20/3829: {involving key management}
- G06Q 20/401: {Transaction verification}
- G06Q 20/4014: {Identity check for transactions}
- G06Q 20/409: {Device specific authentication in transaction processing}
- H04L 9/3218: {using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs}
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- H04L 63/12: {Applying verification of the received information (cryptographic mechanisms or cryptographic arrangements for data integrity or data verification H04L9/32)}
- H04L 2463/102: applying security measure for e-commerce
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method includes a validation computer receiving an authorization request message comprising a user state and a user proof from a user device. The user state comprises first and second user state elements. The user proof comprises first, second, and third user proof elements. The validation computer computes a first verification value by multiplying the first user proof element raised to the power of the second user state element, and the second user proof element raised to the power of the first user state element. The computer computes a second verification value by raising the second user proof element to the power of the second user state element. The computer compares the first verification value to a first accumulated state element of an accumulated state. The compares the second verification value to a second accumulated state element. The validation computer authorizes the authorization request message based on the comparison steps.

## Claims

### Claim 1

A method comprising:
receiving, by a validation computer in a system with millions of users, an authorization request message from a user device over a computer network, wherein the authorization request message comprises a user state and a user proof, wherein the user state comprises a first user state element and a second user state element, and wherein the user proof comprises a first user proof element, a second user proof element, and a third user proof element;
computing, by the validation computer, a first verification value by multiplying the first user proof element raised to the power of the second user state element, and the second user proof element raised to the power of the first user state element, wherein the first verification value is a generator raised to a power that is based on amounts and random values of each user in the system;
computing, by the validation computer, a second verification value by raising the second user proof element to the power of the second user state element, wherein the second verification value is the generator raised to a power based on the random values, but without the amounts;
comparing, by the validation computer, the first verification value to a first accumulated state element of an accumulated state;
comparing, by the validation computer, the second verification value to a second accumulated state element of the accumulated state; and
authorizing, by the validation computer, the authorization request message if the first verification value matches the first accumulated state element and the second verification value matches the second accumulated state element.

### Claim 2 (depends on 1)

The method of claim 1, wherein the authorization request message comprises an interaction amount, and wherein the method further comprises:
updating, by the validation computer, the accumulated state based on the interaction amount.

### Claim 3 (depends on 2)

The method of claim 2, wherein updating the accumulated state based on the interaction amount further comprises:
computing, by the validation computer, an updated first accumulated state element by multiplying 1) the first accumulated state element and 2) the second user proof element raised to the power of the interaction amount.

### Claim 4 (depends on 1)

The method of claim 1, wherein the first user state element is an amount associated with a user, the second user state element is a random number, and the third user proof element indicates which of a number of entries in an accumulated state the user is associated with.

### Claim 5 (depends on 1)

The method of claim 1, wherein prior to receiving the authorization request message, the user device generates the authorization request message, the authorization request message requesting authorization for an interaction between the user device and a receiver device.

### Claim 6 (depends on 1)

The method of claim 1 further comprising:
comparing, by the validation computer, the third user proof element to a third accumulated state element of an accumulated state.

### Claim 7 (depends on 6)

The method of claim 6, wherein authorizing the authorization request message includes:
authorizing, by the validation computer, the authorization request message if the first verification value matches the first accumulated state element, the second verification value matches the second accumulated state element, and the third user proof element matches the third accumulated state element.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first user proof element is derived from a plurality of first user state elements and a plurality of second user state elements associated with a plurality of user states, and wherein the second user proof element is derived from the plurality of second user state elements associated with the plurality of user states.

### Claim 9 (depends on 1)

The method of claim 1, wherein the validator computer maintains a blockchain in a verification network, wherein the accumulated state is stored in each block of the blockchain.

### Claim 10

A validation computer in a system with millions of users comprising:
a processor;
a memory; and
a computer-readable medium coupled to the processor, the computer-readable medium comprising code executable by the processor for implementing a method comprising:
receiving an authorization request message from a user device, wherein the authorization request message comprises a user state and a user proof, wherein the user state comprises a first user state element and a second user state element, and wherein the user proof comprises a first user proof element, a second user proof element, and a third user proof element;
computing a first verification value by multiplying the first user proof element raised to the power of the second user state element, and the second user proof element raised to the power of the first user state element, wherein the first verification value is a generator raised to a power that is based on amounts and random values of each user in the system;
computing a second verification value by raising the second user proof element to the power of the second user state element, wherein the second verification value is the generator raised to a power based on the random values, but without the amounts;
comparing the first verification value to a first accumulated state element of an accumulated state;
comparing the second verification value to a second accumulated state element of the accumulated state; and
authorizing the authorization request message if the first verification value matches the first accumulated state element and the second verification value matches the second accumulated state element.

### Claim 11 (depends on 10)

The validation computer of claim 10, wherein the first user state element is an amount associated with a user, the second user state element is a random number, the third user proof element indicates which of a number of entries in an accumulated state the user is associated with, and wherein the first user proof element is derived from a plurality of first user state elements and a plurality of second user state elements associated with a plurality of user states, and wherein the second user proof element is derived from the plurality of second user state elements associated with the plurality of user states.

### Claim 12 (depends on 10)

The validation computer of claim 10, wherein the authorization request message is a request to authorize an interaction and comprises an interaction amount.

### Claim 13 (depends on 12)

The validation computer of claim 12, wherein the user device updates the user proof based on the interaction amount, and wherein the method further comprises:
updating, by the validation computer, the accumulated state based on the interaction amount.

### Claim 14 (depends on 12)

The validation computer of claim 12, wherein after authorizing the authorization request message, the method further comprises:
including, by the validation computer, at least the interaction amount into a new block of a blockchain maintained by the validation computer.

### Claim 15 (depends on 10)

The validation computer of claim 10, wherein after authorizing the authorization request message, the method further comprises:
generating, by the validation computer, an authorization response message indicating whether or not the authorization request message is authorized; and
providing, by the validation computer, the authorization response message to the user device.

### Claim 16 (depends on 15)

The validation computer of claim 15, wherein the user device provides the authorization response message to a receiver device with which the user device initiated an interaction.

### Claim 17 (depends on 10)

The validation computer of claim 10, wherein the method further comprises:
retrieving, by the validation computer, the accumulated state comprising the first accumulated state element and the second accumulated state element from a previous block in a blockchain maintained by the validation computer.

### Claim 18

A method comprising:
generating, by a user device, an authorization request message comprising a user state and a user proof, wherein the user state comprises a first user state element and a second user state element, and wherein the user proof comprises a first user proof element, a second user proof element, and a third user proof element;
providing, by the user device, the authorization request message to a validation computer of a plurality of validation computers in a system with millions of users, wherein the validation computer 1) computes a first verification value by multiplying the first user proof element raised to the power of the second user state element, and the second user proof element raised to the power of the first user state element, wherein the first verification value is a generator raised to a power that is based on amounts and random values of each user in the system, 2) computes a second verification value by raising the second user proof element to the power of the second user state element, wherein the second verification value is the generator raised to a power based on the random values, but without the amounts, 3) compares the first verification value to a first accumulated state element of an accumulated state, 4) compares the second verification value to a second accumulated state element of the accumulated state, and 5) authorizes the authorization request message if the first verification value matches the first accumulated state element and the second verification value matches the second accumulated state element; and
receiving, by the user device, an authorization response message from the validation computer, wherein the authorization response message indicates whether or not the authorization request message was authorized.

### Claim 19 (depends on 18)

The method of claim 18 further comprising:
prior to generating the authorization request message, updating, by the user device, the user proof based on interactions included in a blockchain since a last time the user proof was updated.

### Claim 20 (depends on 18)

The method of claim 18, wherein the authorization request message requests authorization for an interaction between the user device and a receiver device, wherein the authorization request message comprises an interaction amount, and wherein the method further comprises:
providing, by the user device, the authorization response message to the receiver device.
