# US 10,484,343 B1 · Distributed logging for securing non-repudiable multi-party transactions

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

- Number: US 10,484,343 B1
- Document ID: US10484343B1
- Status: Granted
- Kind: B1
- Application number: 15/723,346
- Filed: 2017-10-03
- Granted: 2019-11-19
- Earliest claimed: 2017-10-03
- Assignees: Cerebri AI Inc.
- Applicants: Cerebri AI Inc.
- Inventors: Gabriel M. Silberman; Jean Belanger; Karen Bennet; Michael L. Roberts; Jay M. Williams
- Web page: https://patentgrep.com/patent/US10484343B1

## CPC

- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- G06F 21/60: Protecting data
- G06F 21/62: Protecting access to data via a platform, e.g. using keys or access control rules
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 21/645: {using a third party}
- 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 63/08: {for authentication of entities (cryptographic mechanisms or cryptographic arrangements for entity authentication H04L9/32)}
- H04L 63/12: {Applying verification of the received information (cryptographic mechanisms or cryptographic arrangements for data integrity or data verification H04L9/32)}
- H04L 63/123: {received data contents, e.g. message integrity}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed herein are methods, systems, and processes for distributed logging for securing non-repudiable transactions. Credentials, request information, response information, and action items generated and received by a requesting computing system and a responding computing system, and transmitted between the requesting computing system and the responding computing system are separately recorded and stored in a requestor log maintained by the requesting computing system and in a responder log maintained by the responding computing system.

## Claims

### Claim 1

One or more tangible, non-transitory, machine-readable media storing instructions that when executed by one or more processors effectuate operations comprising:
receiving, with one or more processors, by a responding computing system executing a software-as-a-service application, a request to the SaaS application from a requesting computing system, wherein
the request comprises a requested action to be performed by a service of the SaaS application and a plurality of data items that are parameters of the request upon which a response to the request is to be based, and
the SaaS application and the requesting computing system are operated by different entities in different computing domains;
logging, with one or more processors, a first record of the received request to a first log, wherein:
the first log is accessible for both reading and writing to both the requesting computing system and the SaaS application,
the first log stores, for each of a plurality of previous transactions, corresponding records of previous sent-requests written by the requesting computing system and records of previous received-requests written by the SaaS application, and
the first log is a tamper-evident log having a plurality of entries linked by cryptographic hash pointers to preceding entries;
executing, with one or more processors, the requested action based on the parameters of the request to produce a response of the service of the SaaS application to the request;
sending, with one or more processors, the response to the requesting computing system;
logging, with one or more processors, a second record of the sent response to a second log of the SaaS application that is different from the first log;
determining, with one or more processors, that the sent response matches a received version of the response by:
accessing a third record of the received version of the response written to the first log by the requesting computing system after receiving the requesting computing system receives the sent response, and
determining that the third record corresponds to the second record; and
storing, with one or more processors, in memory, a result of the determination that the sent response matches the received version.

### Claim 2 (depends on 1)

The one or more media of claim 1, wherein the operations comprise:
steps for two-party authenticate-request-response-action with separate logging systems.

### Claim 3 (depends on 1)

The one or more media of claim 1, wherein the operations comprise:
steps for two-party authenticate-request-response-action with separate logging systems with blockchain and separate logging.

### Claim 4 (depends on 1)

The one or more media of claim 1, wherein the operations comprise:
steps for auditing by request and response computing entities in a two-party system.

### Claim 5 (depends on 1)

The one or more media of claim 1, wherein the operations comprise:
steps for recording requests, responses, and results by the requesting computing system using distributed logging.

### Claim 6 (depends on 1)

The one or more media of claim 1, wherein the operations comprise:
steps for requestor-side auditing using a blockchain log.

### Claim 7 (depends on 1)

The one or more media of claim 1 wherein the operations comprise:
steps for responder auditing using a blockchain log.

### Claim 8 (depends on 1)

The one or more media of claim 1, wherein:
the first record is a hash digest of at least part of the request.

### Claim 9 (depends on 1)

The one or more media of claim 1, wherein:
the first record is an encrypted version of the first request.

### Claim 10 (depends on 1)

The one or more media of claim 1, wherein:
the first log comprises one or more blockchains hosted, at least in part, by entities other than the entities operating the SaaS application and the requesting computing system.

### Claim 11 (depends on 1)

The one or more media of claim 1, wherein the operations comprise:
determining, for another transaction, that another sent response does not match a received version of the other response and, in response, resending the other sent response.

### Claim 12 (depends on 1)

The one or more media of claim 1, wherein the operations comprise:
determining a state of the first log with a consensus algorithm executed by a plurality of computing devices communicating with one another via a peer-to-peer network.

### Claim 13 (depends on 1)

The one or more media of claim 1, wherein the operations comprise:
determining that the received request matches a sent version of the request that was sent by the requesting computing system by:
accessing a fourth record of the sent version of the request written to the first log by the requesting computing system; and
determining that the fourth record corresponds to the first record.

### Claim 14 (depends on 1)

The one or more media of claim 1, wherein the first log comprises a plurality of distributed ledgers.

### Claim 15 (depends on 1)

The one or more media of claim 1, wherein:
the determination is made without waiting for a majority of computing nodes hosting the first log to complete a consensus determination regarding state of the first log.

### Claim 16

A method, comprising:
receiving, with one or more processors, by a responding computing system executing a software-as-a-service application, a request to the SaaS application from a requesting computing system, wherein
the request comprises a requested action to be performed by a service of the SaaS application and a plurality of data items that are parameters of the request upon which a response to the request is to be based, and
the SaaS application and the requesting computing system are operated by different entities in different computing domains;
logging, with one or more processors, a first record of the received request to a first log, wherein:
the first log is accessible for both reading and writing to both the requesting computing system and the SaaS application,
the first log stores, for each of a plurality of previous transactions, corresponding records of previous sent-requests written by the requesting computing system and records of previous received-requests written by the SaaS application, and
the first log is a tamper-evident log having a plurality of entries linked by cryptographic hash pointers to preceding entries;
executing, with one or more processors, the requested action based on the parameters of the request to produce a response of the service of the SaaS application to the request;
sending, with one or more processors, the response to the requesting computing system;
logging, with one or more processors, a second record of the sent response to a second log of the SaaS application that is different from the first log;
determining, with one or more processors, that the sent response matches a received version of the response by:
accessing a third record of the received version of the response written to the first log by the requesting computing system after receiving the requesting computing system receives the sent response, and
determining that the third record corresponds to the second record; and
storing, with one or more processors, in memory, a result of the determination that the sent response matches the received version.

### Claim 17 (depends on 16)

The method of claim 16, comprising:
steps for two-party authenticate-request-response-action with separate logging systems.

### Claim 18 (depends on 16)

The method of claim 16, comprising:
steps for two-party authenticate-request-response-action with separate logging systems with blockchain and separate logging.

### Claim 19 (depends on 16)

The method of claim 16, comprising:
steps for auditing by request and response computing entities in a two-party system.

### Claim 20 (depends on 16)

The method of claim 16, comprising:
steps for recording requests, responses, and results by the requesting computing system using distributed logging.

### Claim 21 (depends on 16)

The method of claim 16, comprising:
steps for requestor-side auditing using a blockchain log.

### Claim 22 (depends on 16)

The method of claim 16, comprising:
steps for responder auditing using a blockchain log.

### Claim 23 (depends on 16)

The method of claim 16, wherein:
the first record is a hash digest of at least part of the request.

### Claim 24 (depends on 16)

The method of claim 16, wherein:
the first record is an encrypted version of the first request.

### Claim 25 (depends on 16)

The method of claim 16, wherein:
the first log comprises one or more blockchains hosted, at least in part, by entities other than the entities operating the SaaS application and the requesting computing system.

### Claim 26 (depends on 16)

The method of claim 16, comprising:
determining, for another transaction, that another sent response does not match a received version of the other response and, in response, resending the other sent response.

### Claim 27 (depends on 16)

The method of claim 16, comprising:
determining a state of the first log with a consensus algorithm executed by a plurality of computing devices communicating with one another via a peer-to-peer network.

### Claim 28 (depends on 16)

The method of claim 16, comprising:
determining that the received request matches a sent version of the request that was sent by the requesting computing system by:
accessing a fourth record of the sent version of the request written to the first log by the requesting computing system; and
determining that the fourth record corresponds to the first record.

### Claim 29 (depends on 16)

The method of claim 16, wherein the first log comprises a plurality of distributed ledgers.
