# US 11,121,858 B2 · Blockchain analytics

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

- Number: US 11,121,858 B2
- Document ID: US11121858B2
- Status: Granted
- Kind: B2
- Application number: 15/995,062
- Filed: 2018-05-31
- Published: 2019-01-10
- Granted: 2021-09-14
- Earliest claimed: 2017-07-07
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Marc E. Mercuri; Zeyad Rajabi; Eric I. Maino
- Web page: https://patentgrep.com/patent/US11121858B2

## CPC

- G06Q 20/308: {using the Internet of Things}
- H04L 9/0637: {Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]}
- G06F 9/451: Execution arrangements for user interfaces
- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F 11/3072: {where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting}
- G06F 11/3476: {Data logging (G06F11/14, G06F11/2205 take precedence)}
- G06F 16/212: {with details for data modelling support}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/904: Browsing; Visualisation therefor (for navigating the web G06F16/954; browsing optimisation for the web G06F16/957)
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/645: {using a third party}
- G06N 20/00: Machine learning
- G06Q 20/02: involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
- G06Q 20/06: Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q 20/3827: {Use of message hashing}
- G06Q 20/389: {Keeping log of transactions for guaranteeing non-repudiation of a transaction}
- G06Q 20/405: {Establishing or using transaction specific rules}
- H04L 9/0643: {Hash functions, e.g. MD5, SHA, HMAC or f9 MAC}
- H04L 9/3236: {using cryptographic hash functions}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 9/3242: {involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC}
- H04L 9/3247: {involving digital signatures}
- H04L 9/3265: {using certificate chains, trees or paths; Hierarchical trust model}
- H04L 63/101: {Access control lists [ACL]}
- H04L 63/102: {Entity profiles}
- H04L 63/123: {received data contents, e.g. message integrity}
- G06N 3/08: Learning methods
- G06Q 2220/00: Business processing using cryptography
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- H04L 2209/56: Financial cryptography, e.g. electronic payment or e-cash
- H04W 4/70: Services for machine-to-machine communication [M2M] or machine type communication [MTC]
- 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)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

A blockchain analytics system facilitates determination of parameters of blockchain objects for analytics. Examples of parameters of the blockchain object may include an identity of a participant, a role of a participant, a type of the blockchain object and the like. The system may store parameters of blockchain objects in the data repository. The system may use the determined parameters to generate a machine learning blockchain analytics model. The system may generate visualizations, detect patterns and/or for detecting anomalies based on the machine learning blockchain analytics model.

## Claims

### Claim 1

A blockchain analytics system comprising:
a hardware processor; and
a non-transitory computer readable medium storing machine-readable instructions that when executed by the processor cause the processor to:
receive a plurality of events from a blockchain;
place the plurality of events on an event stack;
determine an event in the plurality of events that matches specifications in a context schema;
determine parameters of the determined event;
store the determined parameters in a data repository;
provide read-write access to the data repository to a blockchain agnostic service;
determine a blockchain identity associated with a blockchain object;
determine an off-chain identity associated with the blockchain identity;
generate an integrated profile that combines the off-chain and blockchain identities;
determine a further blockchain identity associated with a participant, wherein the further blockchain identity is based on public key and private key cryptography;
determine a further off-chain identity associated with the further blockchain identity; and
generate a profile for the participant that integrates an off-chain profile of the participant with information from the blockchain.

### Claim 2 (depends on 1)

The system according to claim 1, wherein the machine-readable instructions are executed by the processor to:
identify a write request to the data repository from the blockchain agnostic service, wherein the write request is based on the read-write access to the data repository;
determine a change to the data repository;
determine a message blockchain object including the change based on the context schema; and
deploy the message blockchain object to the blockchain.

### Claim 3 (depends on 1)

The system according to claim 1, wherein the machine-readable instructions to determine parameters of the determined event are executed by the processor to:
determine the participant on the blockchain;
determine a plurality of blockchain objects associated with the participant; and
determine the profile associated with the participant.

### Claim 4 (depends on 1)

The system according to claim 1, wherein the machine-readable instructions are executed by the processor determine a type of blockchain object:
determine a plurality of blockchain objects associated with the type of blockchain object; and
determine a profile associated with the type of blockchain object.

### Claim 5 (depends on 1)

The system according to claim 1, wherein the blockchain object includes a cryptlet that is executable in a secure enclave.

### Claim 6 (depends on 1)

The system according to claim 1, wherein an event of the plurality of events includes a message addressed to the blockchain object that is designated a first blockchain object, and wherein the message includes a second blockchain object addressed to the first blockchain object.

### Claim 7 (depends on 1)

The system according to claim 1, wherein the machine-readable instructions when executed by the processor further cause the processor to:
generate a hash of the blockchain object;
store the blockchain object and the hash in an off-chain storage; and
verify, based on the hash, whether the blockchain object stored on the blockchain is same as the blockchain object stored in the off-chain storage.

### Claim 8 (depends on 1)

The system according to claim 1, wherein the machine-readable instructions when executed by the processor further cause the processor to:
generate a hash of the blockchain object;
store the blockchain object and the hash in an off-chain storage; and
store the hash on the blockchain without storing the blockchain object on the blockchain.

### Claim 9

A blockchain analytics system comprising:
a hardware processor; and
a non-transitory computer readable medium storing machine-readable instructions that when executed by the processor cause the processor to:
retrieve blockchain objects from a blockchain;
determine parameters of blockchain objects retrieved from the blockchain;
store determined parameters in a data repository;
generate a machine learning blockchain analytics model based on the determined parameters;
determine a blockchain identity associated with a blockchain object;
determine an off-chain identity associated with the blockchain identity;
generate an integrated profile that combines the off-chain and blockchain identities;
determine a further blockchain identity associated with a participant, wherein the further blockchain identity is based on public key and private key cryptography;
determine a further off-chain identity associated with the further blockchain identity; and
generate a profile for the participant that integrates an off-chain profile of the participant with information from the blockchain.

### Claim 10 (depends on 9)

The system according to claim 9, wherein the machine-readable instructions are executed by the processor to:
generate a visualization based on determined parameters.

### Claim 11 (depends on 9)

The system according to claim 9, wherein the machine-readable instructions are executed by the processor to:
determine an anomaly in a block update;
deploy an event to an event stack; and
trigger, based on the event, a change in a state of the blockchain object.

### Claim 12 (depends on 9)

The system according to claim 9, wherein the machine-readable instructions are executed by the processor to:
identify a pattern in a blockchain update, based on the machine learning blockchain analytics model;
generate a message blockchain object based on the identified pattern; and
deploy the message blockchain object to the blockchain.

### Claim 13 (depends on 9)

The system according to claim 9, wherein the machine-readable instructions are executed by the processor to:
identify a pattern in a block update, based on the blockchain analytics model; and
alert the participant.

### Claim 14 (depends on 9)

The system according to claim 9, wherein the machine-readable instructions to determine parameters of blockchain objects retrieved from the blockchain are executed by the processor to:
identify parameters of blockchain objects based on a context schema.

### Claim 15

A computer-implemented method for blockchain analytics, the method comprising:
receiving a context schema for a blockchain object, wherein the context schema comprises:
a state map describing states of the blockchain object; and
a persona list of acceptable personas that can interact with the blockchain object in different states;
receiving a plurality of blockchain objects from a blockchain;
identifying a parameter in the plurality of blockchain objects based on the context schema;
determining a profile based on the identified parameter;
determining a blockchain identity associated with a blockchain object;
determining an off-chain identity associated with the blockchain identity;
generating an integrated profile that combines the off-chain and blockchain identities;
determining a further blockchain identity associated with a participant, wherein the further blockchain identity is based on public key and private key cryptography;
determining a further off-chain identity associated with the further blockchain identity; and
generating a further profile for the participant that integrates an off-chain profile of the participant with information from the blockchain.

### Claim 16 (depends on 15)

The computer-implemented method according to claim 15, wherein the parameter is an identity of the participant.

### Claim 17 (depends on 15)

The computer-implemented method according to claim 15, wherein the parameter is a type of the blockchain object.

### Claim 18 (depends on 15)

The computer-implemented method according to claim 15, wherein the parameter is a state of the blockchain object.

### Claim 19 (depends on 15)

The computer-implemented method according to claim 15, wherein the parameter is a persona from the acceptable personas that is authorized to interact with the blockchain object.

### Claim 20 (depends on 15)

The computer-implemented method according to claim 15, wherein the parameter is a blockchain id.
