IP Library Granted Patent US 11,902,426
Granted Patent B2
US 11,902,426 · App. 17/359,545 · Granted Feb 13, 2024

Efficient storage of blockchain in embedded device

Inventors: Ananya Shrivastava (Chhattisgarh, IN); Mohammed Sumair (Uttarakhand, IN); Joydeep Kumar Devnath (Assam, IN); Suyash Kandele (Chhattisgarh, IN); Govardhan Mattela (Hyderabad, IN)
Assignee: Ceremorphic, Inc.
H04L9/0825H04L9/0891H04L9/3242H04L9/3247H04L9/3263H04L9/50H04L2209/56
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,902,426
App. No.
17/359,545
Granted
Feb 13, 2024
Kind
B2
Abstract

A lightweight node in a decentralized network includes stores a blockchain with a plurality of blocks. The lightweight node adds blocks to the blockchain successively. A given block having a header and a body. The header includes a data merkle root generated as a root hash of a data merkle tree with one or more leaf nodes that are one or more hashes. A given hash being a hash of a combination of (1) a public key associated with a lightweight node of the decentralized network and (2) of a validity value associated with the public key indicating whether the public key is a valid public key. The data merkle root being insufficient for restoring the data merkle tree. But with a public key and an intermediate hash the date merkle root is sufficient for at least partly verifying the public key.

Claims (38)

1. A method of authentication performed with a first lightweight node on a decentralized network that has a plurality of lightweight nodes, including at least the first lightweight node and a second lightweight node, the method comprising:

transmitting at least a first nonce to the second lightweight node;

receiving from the second lightweight node at least a public key associated with the second lightweight node, an identifier associated with a block of a blockchain in which an enrollment of the second lightweight node was recorded, an intermediate merkle tree hash associated with the second lightweight node, and a signature created with at least the first nonce and a private key associated with the second lightweight node;

determining if the block is referenced on a revocation list that identifies one or more revoked public keys, and:

(a) if the block is referenced then determining if a data merkle root stored on the revocation list for the block matches a data merkle root computed with at least the public key and the intermediate merkle tree hash; and

(b) if the two data merkle roots match then determining if a hash of the public key and a validity value indicating revocation matches a hash on the intermediate hash and responsive to a match determining that the public key is revoked and that the second lightweight node cannot be authenticated;

whereby:

if the block is not referenced on the revocation list, then determining if a data merkle root stored on the revocation list for the registered block matches a data merkle root computed with at least the public key and the intermediate merkle tree hash; and

if the block is referenced on the revocation list, determining that the public key is enrolled on the decentralized network.

2. The method of claim 1 , further comprising:

verifying the signature with at least the public key associated with the second lightweight node; and

upon successful verification, determining that the second lightweight node is authentic.

3. The method of claim 1 wherein at least one said block comprises a header, the header including at least a hash of a previous block and a transaction merkle root.

4. The method of claim 3 where the transaction merkle root includes a root hash of:

(1) a revocation list that includes data regarding at least revoked public keys, and

(2) a transaction merkle tree with one or more leaf nodes that are hashes of data that represent at least transaction data.

5. The method of claim 1 where a body of a block that is most recently added to the blockchain includes at least a revocation list for identifying public keys that have been revoked on a decentralized network.

6. The method of claim 5 wherein the revocation list has an entry for each block of the blockchain that is associated with a revoked public key.

7. The method of claim 6 where the entry includes at least an identifier of the block associated with the entry, one or more identifiers associated with one or more public keys associated with the block that have been revoked, and a data merkle root for the block that has been updated with indicators of the one or more revoked public keys.

8. A non-transitory computer readable medium comprising computer executable instructions which when executed by a computer cause the computer to perform a method of authentication, the method performed with a first lightweight node on a decentralized network that has a plurality of lightweight nodes, including at least the first lightweight node and a second lightweight node, the method comprising:

transmitting at least a first nonce to the second lightweight node;

receiving from the second lightweight node at least a public key associated with the second lightweight node, an identifier associated with a block of a blockchain in which an enrollment of the second lightweight node was recorded, an intermediate merkle tree hash associated with the second lightweight node, and a signature created with at least the first nonce and a private key associated with the second lightweight node;

determining if the block is referenced on a revocation list that identifies one or more revoked public keys, and:

(a) if the block is referenced then determining if a data merkle root stored on the revocation list for the block matches a data merkle root computed with at least the public key and the intermediate merkle tree hash; and

(b) if the two data merkle roots match then determining if a hash of the public key and a validity value indicating revocation matches a hash on the intermediate hash and responsive to a match determining that the public key is revoked and that the second lightweight node cannot be authenticated;

whereby:

if the block is not referenced on the revocation list, then determining if a data merkle root stored on the revocation list for the registered block matches a data merkle root computed with at least the public key and the intermediate merkle tree hash; and

if the block is referenced on the revocation list, determining that the public key is enrolled on the decentralized network.

9. The non-transitory computer readable medium of claim 8 , further comprising:

verifying the signature with at least the public key associated with the second lightweight node; and

upon successful verification, determining that the second lightweight node is authentic.

10. The non-transitory computer readable medium of claim 8 wherein at least one said block comprises a header, the header including at least a hash of a previous block and a transaction merkle root.

11. The non-transitory computer readable medium of claim 10 where the transaction merkle root includes a root hash of:

(1) a revocation list that includes data regarding at least revoked public keys, and

(2) a transaction merkle tree with one or more leaf nodes that are hashes of data that represent at least transaction data.

12. The non-transitory computer readable medium of claim 8 where a body of a block that is most recently added to the blockchain includes at least a revocation list for identifying public keys that have been revoked on a decentralized network.

13. The non-transitory computer readable medium of claim 12 wherein the revocation list has an entry for each block of the blockchain that is associated with a revoked public key.

14. The non-transitory computer readable medium of claim 13 where the entry includes at least an identifier of the block associated with the entry, one or more identifiers associated with one or more public keys associated with the block that have been revoked, and a data merkle root for the block that has been updated with indicators of the one or more revoked public keys.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2025
From: MATTELA, GOVARDHAN
To: REDPINE SIGNALS, INC.
Reel/Frame 071715/0431 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2022
From: SHRIVASTAVA, ANANYA; SUMAIR, MOHAMMED; DEVNATH, JOYDEEP KUMAR; KANDELE, SUYASH
To: REDPINE SIGNALS, INC.
Reel/Frame 060569/0460 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2021
From: REDPINE SIGNALS, INC.
To: CEREMORPHIC, INC.
Reel/Frame 059986/0968 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2021
From: SHRIVASTAVA, ANANYA; SUMAIR, MOHAMMED; DEVNATH, JOYDEEP KUMAR; KANDELE, SUYASH
To: REDPINE SIGNALS, INC.
Reel/Frame 056858/0153 →
Continuity (1)
Related Publication 20220417008A1 · Dec 29, 2022