IP Library Granted Patent US 11,368,288
Granted Patent B2
US 11,368,288 · App. 17/100,790 · Granted Jun 21, 2022

Apparatus and method of lightweight communication protocols between multiple blockchains

Inventors: Shangru Wu (Shenzhen, CN); Haihua Zhang (Beijing, CN); Xingxia Zhang (Hong Kong, HK); Ruoqing Zhang (Hong Kong, HK)
Assignee: Hong Kong Applied Science and Technology Research Institute Company Limited
H04L9/0637H04L9/0643H04L9/3242H04L9/3247
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,368,288
App. No.
17/100,790
Granted
Jun 21, 2022
Kind
B2
Abstract

A method for inter-blockchain communication, comprising: receiving from a sender node in a sender blockchain a data message for transmission to a receiver node in a receiver blockchain; encrypt and encapsulate by an encryption module the data message into an event, wherein the event comprising an exposed header containing information for routing the event through the blockchains and identifying the sender and the receiver nodes; broadcasting the event to a communication bridge comprising multiple bridge nodes; transferring the event through the bridge nodes to an event exchange module of the receiver blockchain; validating the event by a validation module; decrypting and decapsulating the validated event by a decryption module into a decrypted data message; and recording the decrypted data message into the receiver blockchain ledger for reading by the receiver node. The multiple bridge nodes ensure redundancy for the reliable delivery of events in the inter-blockchain communication.

Claims (60)

1. A method for inter-blockchain communication, comprising:

receiving from a sender node in a sender blockchain a data message for transmission to a receiver node in a receiver blockchain;

encrypt and encapsulate by an encryption module the data message into an event, wherein the event comprising an exposed header containing information for routing the event from the sender blockchain to the receiver blockchain and identifying the sender node and the receiver node;

broadcasting the event to a communication bridge;

listening for broadcasts of events and receiving the event by one or more bridge nodes of the communication bridge;

transferring the event through the one or more bridge nodes of the communication bridge to an event exchange module of the receiver blockchain;

receiving the event by an event exchange module of the receiver blockchain;

validating the event by a validation module, and rejecting the event if the event is invalid;

decrypting and decapsulating the validated event by a decryption module into a decrypted data message; and

recording the decrypted data message into the receiver blockchain ledger for reading by the receiver node.

2. The method of claim 1 ,

wherein the communication bridge comprises a plurality of bridge nodes such that at any one point of time there are more than one bridge nodes listening for the broadcasts of events and performing transfers of events.

3. The method of claim 1 ,

wherein the data message comprises a header and a content;

wherein the header comprises a transaction identifier, a sender identifier corresponding to the sender node, a receiver identifier corresponding to the receiver node, the sender blockchain identifier, and the receiver blockchain identifier.

4. The method of claim 1 ,

wherein the event comprises a header, a ciphertext, a signature text, a hash code, and a keyed-hash message authentication code; and

wherein the header comprises a transaction identifier, a sender identifier corresponding to the sender node, a receiver identifier corresponding to the receiver node, the sender blockchain identifier, and the receiver blockchain identifier.

5. The method of claim 4 ,

wherein the hash code is generated by performing a hash operation on the data message;

wherein the keyed-hash message authentication code is generated by performing a HMAC operation on data message and the hash code with a HMAC key

wherein the ciphertext is generated by performing an encryption operation on the data message with an one-time use symmetric key; and

wherein the signature text is generated by performing an encryption operation on the ciphertext with the sender node's private signature key.

6. The method of claim 1 ,

wherein the validation of the event by the validation module comprising:

extracting the header, a ciphertext, a signature text from the event;

determining whether the event is received for first time by comparing a transaction identifier or a combination of the transaction identifier and a sender blockchain identifier in the header with ones received previously, and if there is a match, the event is rejected for being invalid to ensure idempotency; and

verifying the extracted signature text in the event using the sender node's public signature key to decrypt the signature text and comparing its result with the extracted ciphertext in the event, and if there is a match, the event is validated, else the event is rejected.

7. The method of claim 1 ,

wherein the decryption and decapsulation of the validated event comprising:

extracting from the event a ciphertext, a hash code, and a keyed-hash message authentication code;

decrypting the extracted ciphertext using an one-time use symmetric key to generate a decrypted data message, and if the decryption fails, the event is rejected;

performing a hash operation on the decrypted data message to generate a hash code;

performing a HMAC operation on the decrypted data message and the generated hash code with a HMAC key to generate a keyed-hash message authentication code;

verifying the generated keyed-hash message authentication code by comparing it with the extracted keyed-hash message authentication code, and if they are different, the event is rejected;

verifying the generated hash code by comparing it with the extracted hash code, and if they are different, the event is rejected; and

outputting the decrypted data message.

8. A method for inter-blockchain communication, comprising:

receiving an event by an event exchange module of a receiver blockchain, wherein the event comprising:

an exposed header containing information for routing the event from the sender blockchain to the receiver blockchain and identifying the sender node and receiver node; and

a data message sent from a sender node in a sender blockchain;

validating the event by a validation module, comprising:

verifying the event is received for first time to ensure idempotency; and

verifying a signature in the event to ensure the event is not tampered with;

decrypting and decapsulate by a decryption module into a decrypted data message; and

recording the decrypted data message into the receiver blockchain ledger for reading by the receiver node.

9. The method of claim 8 ,

wherein the validation of the event by the validation module comprising:

extracting the header, a ciphertext, a signature text from the event;

determining whether the event is received for first time by comparing a transaction identifier or a combination of the transaction identifier and a sender blockchain identifier in the header with ones received previously, and if there is a match, the event is rejected for being invalid to ensure idempotency; and

verifying the extracted signature text in the event using the sender node's public signature key to decrypt the signature text and comparing its result with the extracted ciphertext in the event, and if there is a match, the event is validated, else the event is rejected.

10. The method of claim 8 ,

wherein the decryption and decapsulation of the validated event comprising:

extracting from the event a ciphertext, a hash code, and a keyed-hash message authentication code;

decrypting the extracted ciphertext using an one-time use symmetric key to generate a decrypted data message, and if the decryption fails, the event is rejected;

performing a hash operation on the decrypted data message to generate a hash code;

performing a HMAC operation on the decrypted data message and the generated hash code with a HMAC key to generate a keyed-hash message authentication code;

verifying the generated keyed-hash message authentication code by comparing it with the extracted keyed-hash message authentication code, and if they are different, the event is rejected;

verifying the generated hash code by comparing it with the extracted hash code, and if they are different, the event is rejected; and

outputting the decrypted data message.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2020
From: WU, SHANGRU; ZHANG, HAIHUA; ZHANG, XINGXIA; ZHANG, RUOQING
To: HONG KONG APPLIED SCIENCE AND TECHNOLOGY RESEARCH INSTITUTE COMPANY LIMITED
Reel/Frame 054438/0232 →
Continuity (1)
Related Publication 20220166602A1 · May 26, 2022