# US 12,010,244 B2 · Blockchain based verifiability of user status

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

- Number: US 12,010,244 B2
- Document ID: US12010244B2
- Status: Granted
- Kind: B2
- Application number: 17/093,037
- Filed: 2020-11-09
- Published: 2022-05-12
- Granted: 2024-06-11
- Earliest claimed: 2020-11-09
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Elli Androulaki; Alessandro Sorniotti; Ilie Circiumaru; Miguel Angel Prada Delgado; Marc Ph. Stoecklin; Marko Vukolić; Jesus Diaz Vico
- Web page: https://patentgrep.com/patent/US12010244B2

## CPC

- G06K 7/1095: {the scanner comprising adaptations for scanning a record carrier that is displayed on a display-screen or the like}
- H04L 9/3247: {involving digital signatures}
- G06K 7/10722: {Photodetector array or CCD scanning}
- G06K 7/1417: {2D bar codes}
- G06K 19/06037: {multi-dimensional coding}
- G09C 5/00: Ciphering apparatus or methods not provided for in the preceding groups, e.g. involving the concealment or deformation of graphic data such as designs, written or printed messages
- G16H 10/40: for data related to laboratory analysis, e.g. patient specimen analysis
- G16H 10/60: for patient-specific data, e.g. for electronic patient records
- G16H 10/65: stored on portable record carriers, e.g. on smartcards, RFID tags or CD
- H04L 9/14: using a plurality of keys or algorithms
- H04L 9/30: Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L 9/3226: {using a predetermined code, e.g. password, passphrase or PIN (network architectures or network communication protocols for supporting authentication of entities using passwords in a packet data network H04L63/083)}
- H04L 9/3263: {involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements (network architectures or network communication protocols for supporting authentication of entities using certificates in a packet data network H04L63/0823)}
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- G16H 50/80: for detecting, monitoring or modelling epidemics or pandemics, e.g. flu
- H04L 2209/88: Medical equipments
- G06K: GRAPHICAL DATA READING (image or video recognition or understanding G06V); PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G09C: CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G16H: HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA

## Abstract

An example operation may include one or more of extracting a data object from a machine-readable code. The data object can include fields of data signed with a digital signature of a private key, detecting an identifier of an issuer of the data object from the extracted data object, retrieving a public key from a blockchain based on the identifier of the issuer detected from the field of the extracted data object, and verifying the digital signature of the private key based on the fetched public key.

## Claims

### Claim 1

An apparatus, comprising:
a processor that, when executing instructions stored in an associated memory, is configured to:
extract a data object from a machine-readable code, where the data object comprises a first field of data that is signed with a digital signature of a private key and a second field of data that is hashed before being signed with the digital signature so that a value of the second field is not disclosed when the second field is verified,
retrieve an identifier of an issuer of the data object from the data object,
retrieve a public key from a blockchain based on the identifier of the issuer,
verify the digital signature of the private key based on the public key,
verify that a schema identifier of the first field matches a schema identifier of a first stored schema on the blockchain,
verify that a hash of a schema identifier of the second field matches a hash of a second schema identifier of a second stored schema on the blockchain, and
verify that the data object is trustworthy based on both the verification of the digital signature and the verification of the schema identifiers.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the processor is further configured to:
retrieve, from the data object, a schema identifier that identifies the schema, and
identify that the schema matches the stored schema based on the schema identifier matching a stored schema identifier on the blockchain.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the data object comprises:
a string value that includes data values from the fields concatenated together.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the processor is further configured to:
scan a quick response code via an imaging device, where the quick response code comprises the data object encoded therein.

### Claim 5 (depends on 1)

The apparatus of claim 1, wherein the processor is configured to:
transmit, to a blockchain peer, a request comprising the identifier of the issuer of the data object, and
receive, from the blockchain peer, the public key.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein the data object comprises:
a certificate of health issued by the issuer, the certificate of health comprising a test result, a user identifier, and a timestamp.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein, when the processor retrieves the public key, the processor is further configured to:
retrieve the public key from a registry stored in the blockchain, the registry including identities of a plurality of issuers and public keys of the plurality of issuers.

### Claim 8 (depends on 1)

The apparatus of claim 1, wherein the processor is configured to:
extract an identity of a user associated with and corresponding to the fields of data.

### Claim 9

A method, comprising:
extracting a data object from a machine-readable code, where the data object comprises a first field of data that is signed with a digital signature of a private key and a second field of data that is hashed before being signed with the digital signature so that a value of the second field is not disclosed when the second field is verified;
retrieving an identifier of an issuer of the data object from the data object;
retrieving a public key from a blockchain based on the identifier of the issuer;
verifying the digital signature of the private key based on the public key;
verifying that a schema identifier of the first field matches a schema identifier of a first stored schema on the blockchain;
verifying that a hash of a schema identifier of the second field matches a hash of a second schema identifier of a second stored schema on the blockchain; and
verifying that the data object is trustworthy based on both the verification of the digital signature and the verification of the schema identifiers.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
retrieving, from the data object, a schema identifier that identifies the schema; and
identifying that the schema matches the stored schema based on the schema identifier matching a stored schema identifier on the blockchain.

### Claim 11 (depends on 9)

The method of claim 9, wherein the data object comprises:
a string value including data values from the fields concatenated together.

### Claim 12 (depends on 9)

The method of claim 9, wherein the extracting comprises:
scanning a quick response code via an imaging device, where the quick response code comprises the data object encoded therein.

### Claim 13 (depends on 9)

The method of claim 9, wherein the retrieving the public key further comprises:
transmitting, to a blockchain peer, a request comprising the identifier of the issuer of the data object; and
receiving, from the blockchain peer, the public key.

### Claim 14 (depends on 9)

The method of claim 9, wherein the data object comprises:
a certificate of health issued by the issuer, the certificate of health comprising a test result, a user identifier, and a timestamp.

### Claim 15 (depends on 9)

The method of claim 9, wherein the retrieving the public key further comprises:
retrieving the public key from a registry stored in the blockchain, the registry including identities of a plurality of issuers and public keys of the plurality of issuers.

### Claim 16 (depends on 9)

The method of claim 9, wherein the extracting further comprises:
extracting an identity of a user associated with and corresponding to the fields of data.

### Claim 17

A computer program product comprising a non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform:
extracting a data object from a machine-readable code, where the data object comprises a first field of data that is signed with a digital signature of a private key and a second field of data that is hashed before being signed with the digital signature so that a value of the second field is not disclosed when the second field is verified;
retrieving an identifier of an issuer of the data object from the data object;
retrieving a public key from a blockchain based on the identifier of the issuer;
verifying the digital signature of the private key based on the public key;
verifying that a schema identifier of the first field matches a schema identifier of a first stored schema on the blockchain;
verifying that a hash of a schema identifier of the second field matches a hash of a second schema identifier of a second stored schema on the blockchain; and
verifying that the data object is trustworthy based on both the verification of the digital signature and the verification of the schema identifiers.

### Claim 18 (depends on 17)

The computer program product of claim 17, wherein the instructions further cause the processor to perform:
retrieving, from the data object, a schema identifier that identifies the schema; and
identifying that the schema matches the stored schema based on the schema identifier matching a stored schema identifier on the blockchain.

### Claim 19 (depends on 17)

The computer program product of claim 17, wherein the data object comprises:
a string value including data values from the fields concatenated together.

### Claim 20 (depends on 17)

The computer program product of claim 17, wherein the extracting comprises:
scanning a quick response code via an imaging device, where the quick response code comprises the data object encoded therein.
