# US 12,034,706 B2 · Method and system for private identity verification

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

- Number: US 12,034,706 B2
- Document ID: US12034706B2
- Status: Granted
- Kind: B2
- Application number: 18/050,917
- Filed: 2022-10-28
- Published: 2023-08-10
- Granted: 2024-07-09
- Earliest claimed: 2021-04-09
- Assignees: Polymath Inc.
- Applicants: Polymath Inc.
- Inventors: Arash Afshar; Aram Jivanyan
- Web page: https://patentgrep.com/patent/US12034706B2

## CPC

- H04L 63/0421: {Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer}
- H04L 63/0869: {for achieving mutual authentication (cryptographic mechanisms or cryptographic arrangements for mutual authentication H04L9/3273)}
- H04L 9/3218: {using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- H04L 2209/42: Anonymization, e.g. involving pseudonyms
- H04L 2209/88: Medical equipments
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods, systems, and techniques for private identity verification involve obtaining a cryptographically secure commitment that is generated using a first user identifier and a private user identifier associated with the first user identifier; receiving, from an identity verification system, initial zero knowledge proof messages comprising the commitment; sending, to the identity verification system, a set of cryptographically secure known identifier commitments generated using a set of private user identifiers; receiving, from the identity verification system: (i) a zero knowledge proof response generated using the zero knowledge proof challenge; and (ii) proof that the private user identifier used in the initial zero knowledge proof messages comprises part of the set of private user identifiers; and verifying that the private user identifier used in the initial zero knowledge proof messages comprises part of the set of private user identifiers.

## Claims

### Claim 1

A method comprising:
obtaining a plurality of cryptographically secure blockchain events that are generated with respective private identifiers including a first event that is generated using a first private identifier associated with a first user;
receiving, from an identity verification system, initial zero-knowledge proof messages including the first event;
sending, to the identity verification system, the respective private identifiers;
receiving, from the identity verification system:
a zero-knowledge proof response generated using a zero-knowledge proof challenge; and
proof that the first private identifier used in the initial zero-knowledge proof messages is included in the respective private identifiers; and
verifying that the first private identifier used in the initial zero-knowledge proof messages is included in the respective private identifiers.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
sending the zero-knowledge proof challenge for the first event to the identity verification system before receiving the zero-knowledge proof response.

### Claim 3 (depends on 2)

The method of claim 2, wherein the first event further comprises a first public user identifier that identifies a wallet address of the first user stored on a blockchain.

### Claim 4 (depends on 3)

The method of claim 3, wherein obtaining the first event further comprises retrieving a commitment from the blockchain.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
obtaining a security parameter specifying a size of the respective private identifiers;
padding the respective private identifiers such that the respective private identifiers has a size of the security parameter;
shuffling the padded respective private identifiers; and
generating the respective private identifiers from the shuffled and padded respective private identifiers.

### Claim 6 (depends on 3)

The method of claim 3, wherein the initial zero-knowledge proof messages include a hash of the first public user identifier and the first private identifier concatenated together.

### Claim 7

A system comprising:
a processor;
a network interface communicatively coupled to the processor; and
non-volatile storage communicatively coupled to the processor and having stored thereon computer program code that is executable by the processor and that, when executed by the processor, causes the processor to perform a method comprising:
obtaining a plurality of cryptographically secure blockchain events that are generated with respective private identifiers including a first event that is generated using a first private identifier associated with a first user;
receiving, from an identity verification system, initial zero-knowledge proof messages including the first event;
sending, to the identity verification system, the respective private identifiers;
receiving, from the identity verification system:
a zero-knowledge proof response generated using a zero-knowledge proof challenge; and
proof that the first private identifier used in the initial zero-knowledge proof messages is included in the respective private identifiers; and
verifying that the first private identifier used in the initial zero-knowledge proof messages is included in the respective private identifiers.

### Claim 8 (depends on 7)

The system of claim 7, wherein the method further comprises:
sending the zero-knowledge proof challenge for the first event to the identity verification before receiving the zero-knowledge proof response.

### Claim 9 (depends on 7)

The system of claim 7, wherein the first event further comprises a first public user identifier that identifies a wallet address of the first user stored on a blockchain.

### Claim 10 (depends on 9)

The system of claim 9, wherein obtaining the first event further comprises retrieving a commitment from the blockchain.

### Claim 11 (depends on 7)

The system of claim 7, wherein the method further comprises:
obtaining a security parameter specifying a size of the respective private identifiers;
padding the respective private identifiers such that the respective private identifiers has a size of the security parameter;
shuffling the padded respective private identifiers; and
generating the respective private identifiers from the shuffled and padded respective private identifiers.

### Claim 12 (depends on 10)

The system of claim 10, wherein the initial zero-knowledge proof messages include a hash of the first public user identifier and the first private identifier concatenated together.

### Claim 13

A non-transitory computer readable medium having stored thereon computer program code that is executable by a processor and that, when executed by the processor, causes the processor to perform a method comprising:
obtaining a plurality of cryptographically secure blockchain events that are generated with respective private identifiers including a first event that is generated using a first private identifier associated with a first user;
receiving, from an identity verification system, initial zero-knowledge proof messages including the first event;
sending, to the identity verification system, the respective private identifiers;
receiving, from the identity verification system:
a zero-knowledge proof response generated using a zero-knowledge proof challenge; and
proof that the first private identifier used in the initial zero-knowledge proof messages is included in the respective private identifiers; and
verifying that the first private identifier used in the initial zero-knowledge proof messages is included in the respective private identifiers.

### Claim 14 (depends on 13)

The non-transitory computer readable medium of claim 13, wherein the first event further comprises a first public user identifier that identifies a wallet address of the first user stored on a blockchain.

### Claim 15 (depends on 14)

The non-transitory computer readable medium of claim 14, wherein obtaining the first event further comprises retrieving a commitment from the blockchain.

### Claim 16 (depends on 15)

The non-transitory computer readable medium of claim 15, further comprising:
obtaining a security parameter specifying a size of the respective private identifiers;
padding the respective private identifiers such that the respective private identifiers has a size of the security parameter;
shuffling the padded respective private identifiers; and
generating the respective private identifiers from the shuffled and padded respective private identifiers.

### Claim 17 (depends on 14)

The non-transitory computer readable medium of claim 14, wherein the initial zero-knowledge proof messages include a hash of the first public user identifier and the first private identifier concatenated together.

### Claim 18 (depends on 13)

The non-transitory computer readable medium of claim 13, wherein the method further comprises sending the zero-knowledge proof challenge for the first event to the identity verification system before receiving the zero-knowledge proof response.

### Claim 19 (depends on 13)

The non-transitory computer readable medium of claim 13, wherein the method further comprises determining whether the first user belongs to a class of users associated with the plurality of cryptographically secure blockchain events based on the zero-knowledge proof response.
