# US 11,451,406 B2 · Cross-chain messaging and message validation

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

- Number: US 11,451,406 B2
- Document ID: US11451406B2
- Status: Granted
- Kind: B2
- Application number: 16/375,631
- Filed: 2019-04-04
- Published: 2020-10-08
- Granted: 2022-09-20
- Earliest claimed: 2019-04-04
- Assignees: Moac Blockchain Tech Inc
- Applicants: Moac Blockchain Tech Inc
- Inventors: Xiaohu Chen
- Web page: https://patentgrep.com/patent/US11451406B2

## CPC

- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 9/3271: {using challenge-response}
- G06F 9/5061: {Partitioning or combining of resources}
- H04L 9/0637: {Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]}
- H04L 9/085: {Secret sharing or secret splitting, e.g. threshold schemes}
- H04L 9/3066: {involving algebraic varieties, e.g. elliptic or hyper-elliptic curves}
- H04L 9/3236: {using cryptographic hash functions}
- H04L 9/3247: {involving digital signatures}
- H04L 9/3255: {using group based signatures, e.g. ring or threshold signatures}
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- 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

The current disclosure is directed towards providing methods and mechanisms enabling computationally efficient cross-chain messaging and message validation between subchains of a large-scale decentralized network. In one example, the current disclosure provides for determining if a message generated by a first subchain, received at a second subchain, represents a valid, consensually generated message of the first subchain, by comparing the received message with a public-key-share list of the first subchain stored in the second subchain. In one example, the current disclosure provides for a method comprising receiving a first message from a first subchain at a smart contract of a second subchain, wherein the smart contract of the second subchain comprises a public-key-share list of the first subchain, determining if the first message is valid based on the public-key-share list, and executing a transaction based on the first message responsive to the first message being determined valid.

## Claims

### Claim 1

A method comprising:
receiving a first message from a first subchain at a smart contract of a second subchain, wherein the smart contract of the second subchain comprises a public-key-share list of the first subchain, wherein the first message comprises a threshold signature of the first subchain that indicates the first message is approved by a consensus of member nodes of the first subchain according to a pre-agreed-upon consensus protocol known to both the first subchain and the second subchain;
validating the first message based on validation criteria, comprising (1) determining if the first message is valid based on the public-key-share list, and (2) determining if the first message is valid based on the threshold signature included in the first message, including validating the threshold signature is validated by a group public key derived from a plurality of key shares of the public-key-share list of the first subchain stored in the second subchain according to the pre-agreed-upon consensus protocol known to both the first subchain and the second subchain; and
executing a transaction based on the first message responsive to the first message being determined valid.

### Claim 2 (depends on 1)

The method of claim 1, wherein the public-key-share list of the smart contract of the second subchain comprises a first plurality of public-key-shares corresponding to a plurality of nodes of the first subchain.

### Claim 3 (depends on 2)

The method of claim 2, the method further comprising updating the public-key-share list.

### Claim 4 (depends on 3)

The method of claim 3, wherein updating the public-key-share list occurs periodically based on a pre-determined period of time, and wherein updating the public-key-share list comprises receiving at the smart contract of the second subchain a second message from the first subchain, wherein the second message comprises an updated public-key-share list of the first sub chain.

### Claim 5 (depends on 3)

The method of claim 3, wherein updating the public-key-share list occurs responsive to addition of one or more nodes to the first subchain or responsive to removal of one or more nodes from the first subchain, and further comprises receiving at the smart contract of the second subchain a second message from the first subchain, wherein the second message comprises an updated public-key-share list of the first subchain.

### Claim 6 (depends on 2)

The method of claim 2, wherein the first message further comprises:
a second plurality of public-key-shares.

### Claim 7 (depends on 6)

The method of claim 6, wherein determining if the first message is valid based on the public-key-share list comprises:
determining if each public-key-share of the second plurality of public-key-shares is included within the public-key-share list; and
determining if the threshold signature is valid based on the second plurality of public-key-shares.

### Claim 8 (depends on 7)

The method of claim 7, wherein determining if the threshold signature is valid based on the second plurality of public-key-shares comprises:
decrypting the threshold signature to produce a value using the second plurality of public-key-shares; and
verifying the threshold signature based on the first message and further based on the value.

### Claim 9 (depends on 8)

The method of claim 8, wherein the value comprises a hash of the first message.

### Claim 10

A cross-chain messaging mechanism in a first subchain comprising:
a network interface;
a processor coupled to the network interface; and
a memory coupled to the processor comprising a public-key-share list and instructions executable by the processor to:
receive a first message from a first subchain at a second subchain via the network interface, wherein the second subchain comprises a public-key-share list of the first subchain, wherein the first message comprises a threshold signature of the first subchain that indicates the first message is approved by a consensus of a plurality of member nodes of the first subchain according to a pre-agreed-upon consensus protocol know to both the first subchain and the second subchain;
determine if the message is valid based on validation criteria, comprising (1) determining if the first message is valid based on the public-key-share list, and (2) determining if the first message is valid based on the threshold signature included in the first message, including validating the threshold signature is validated by a group key derived from a plurality of key shares of the public-key-share list of the first subchain stored in the second subchain according to the pre-agreed-upon consensus protocol known to the first subchain and the second subchain; and
respond to the message being concluded valid by executing a transaction based on the message.

### Claim 11 (depends on 10)

The cross-chain messaging mechanism of claim 10, wherein the message further comprises:
a second plurality of public-key-shares.

### Claim 12 (depends on 11)

The cross-chain messaging mechanism of claim 11, wherein the memory further includes instructions to determine if the message is valid based on the public-key-share list by:
determining if each public-key-share of the second plurality of public-key-shares is included within the public-key-share list; and
responding to each public-key-share of the second plurality of public-key-shares being included within the public-key-share list by concluding that the message is valid.

### Claim 13 (depends on 12)

The cross-chain messaging mechanism of claim 12, wherein the memory further includes instructions to determine if the message is valid based on the public-key-share list by:
decrypting the first threshold signature with the second plurality of public-key-shares to obtain a first hash;
calculating a second hash based on the message;
comparing the first hash with the second hash; and
responding to the first hash matching the second hash by concluding that the message is valid.

### Claim 14 (depends on 11)

The cross-chain messaging mechanism of claim 11, wherein the memory further includes instructions to execute the transaction based on the message by:
generating a response message;
aggregating a threshold number of signature shares within the response message from a plurality of nodes of the second subchain according to the consensus protocol known to both the first subchain and the second subchain; and
responding to the threshold number of signature shares being aggregated within the response message by:
generating a second threshold signature;
adding the second threshold signature to the response message; and
transmitting the response message to the first subchain via the network interface.

### Claim 15

A method comprising:
receiving a message at a first subchain from a second subchain, wherein the first subchain comprises a public-key-share list of the second subchain, wherein the message comprises a threshold signature of the second subchain that indicates the message is approved by a consensus of member nodes of the second subchain according to a pre-agreed-upon consensus protocol know to both the first subchain and the second subchain;
determining if the message satisfies at least a first validation criterion and a second validation criterion based on the public-key-share list, including determining if the message is valid based on the threshold signature included in the message, including validating the threshold message includes a group public key derived from a plurality of key shares of the public-key-share list of the second subchain according to a pre-agreed-upon consensus protocol known to both the first subchain and the second subchain;
and
responsive to the first validation criterion and the second validation criterion being satisfied:
executing a transaction in the first subchain based on the message.

### Claim 16 (depends on 15)

The method of claim 15, the message further comprising:
at least m public-key-shares from m distinct member nodes of the second subchain.

### Claim 17 (depends on 16)

The method of claim 16, wherein determining if the message satisfies the first validation criterion comprises:
decrypting the threshold signature using a group public-key determined based on the at least m public-key-shares to obtain a first value;
calculating a second value based on the message;
comparing the first value with the second value; and
responding to the first value equaling the second value by concluding that the message satisfies the first validation criterion.

### Claim 18 (depends on 17)

The method of claim 17, wherein first value comprises a first hash, and wherein the second value comprises a second hash.

### Claim 19 (depends on 16)

The method of claim 16, wherein determining if the message satisfies the second validation criterion based on the public-key-share list comprises:
determining if the at least m public-key-shares are included within the public-key-share list; and
responding to the at least m public-key-shares being included within the public-key-share list by concluding that the message satisfies the second validation criterion.

### Claim 20 (depends on 1)

The method of claim 1, wherein executing the transaction based on the first message comprises: generating a response message within the second subchain; aggregating a threshold number of signature shares within the response message from a plurality of nodes of the second subchain; and responsive to the threshold number of signature shares being aggregated within the response message: generating a threshold signature; adding the threshold signature to the response message; and transmitting the response message to the first subchain.

### Claim 21

A method comprising:
receiving a first message from a first subchain at a smart contract of a second subchain, wherein the smart contract of the second subchain comprises a public-key-share list of the first subchain;
determining if the first message is valid based on the public-key-share list;
executing a transaction based on the first message responsive to the first message being determined valid; and
producing a threshold number of signature shares from a signature share comprising m or more signature shares, wherein executing the transaction based on the first message comprises: generating a response message within the second subchain;
aggregating the threshold number of signature shares within the response message from a plurality of nodes of the second subchain; and responsive to the threshold number of signature shares being aggregated within the response message: generating a threshold signature; adding the threshold signature to the response message; and
transmitting the response message to the first subchain.
