Method and system for publicly verifiable proofs of retrievability in blockchains

US11522706B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11522706-B2
Application numberUS-202117141340-A
CountryUS
Kind codeB2
Filing dateJan 5, 2021
Priority dateSep 5, 2018
Publication dateDec 6, 2022
Grant dateDec 6, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for securing a blockchain and incentivizing the storage of blockchain data using a publicly verifiable proof of retrievability (PoR) includes receiving a PoR transaction having a PoR proof, determining whether the PoR proof is a verified PoR proof, and based upon determining that the PoR proof is a verified PoR proof, incorporating, by a block creator node, the PoR transaction into a new block of the blockchain.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for securing a blockchain and incentivizing the storage of blockchain data using a publicly verifiable proof of retrievability (PoR), the method comprising: receiving a PoR transaction comprising a PoR proof; determining whether the PoR proof is a verified PoR proof; and based upon determining that the PoR proof is a verified PoR proof, incorporating, by a block creator node, the PoR transaction into a new block of the blockchain, wherein the PoR transaction was generated by a PoR generation method comprising: retrieving blockchain data associated with the blockchain stored by a PoR creator node; generating a PoR hash based on a last block header and a PoR account identifier of the PoR creator node; generating a PoR challenge vector by executing an associated pseudo-random number generator using the PoR hash as its seed; retrieving challenged block data from the blockchain data according to the PoR challenge vector; sorting the challenged block data into challenge groups according to block creator accounts; for each of the challenge groups, generating a creator PoR proof based on associated challenged block data, at least one associated authentication tag, and an associated vector of public random elements, the associated vector of public random elements being generated by the associated pseudo-random number generator using a respective public key of a corresponding one of the block creator accounts as its seed; generating the PoR proof based on the creator PoR proof and the associated public key of the corresponding one of the block creator accounts for each of the challenge groups; and incorporating the PoR proof and the PoR account identifier. 2. The method of claim 1 , wherein the PoR transaction further comprises the PoR account identifier, and wherein the method further comprises: proposing the new block to a blockchain network, the blockchain network having a reward protocol that provides a reward to an account corresponding to the PoR account identifier included in the new block based upon the new block being accepted by the blockchain network and included in the blockchain. 3. The method of claim 1 , further comprising incorporating a PoR authentication tag in a block header of the new block. 4. The method of claim 3 , wherein the PoR authentication tag was generated using a private key of the block creator node, the vector of public random elements, and data of the new block. 5. The method of claim 4 , wherein the vector of public random elements was generated by the pseudo-random number generator using the public key of the block creator node as its seed. 6. The method of claim 1 , wherein the verified PoR proof is verified using a PoR verification method, which comprises: generating a hash based on the last block header and the PoR account identifier, the PoR account identifier being associated with a PoR node that generated the PoR transaction; generating a challenge vector by executing the pseudo-random number generator using the hash as its seed; retrieving PoR authentication tags of the challenged block headers according to the challenge vector; sorting PoR authentication tags of the challenged block headers into groups according to block creator accounts; and for each of the groups, verifying PoR based on an associated PoR proof and an associated public key of a corresponding one of the block creator accounts. 7. The method of claim 1 , wherein for each of the groups, the associated authentication tag is based on a private key of the corresponding one of the block creator accounts and the associated vector of public random elements. 8. The method of claim 1 further comprising: receiving a plurality of PoR transactions, including the PoR transaction; incorporating, by the block creator node, at most f of the PoR transactions into the new block of the blockchain, f being a tunable parameter of the blockchain. 9. A non-transitory computer readable medium comprising processor executable instructions that, when executed by a processor, cause the processor to perform the following operations for securing a blockchain using a publicly verifiable proof of retrievability (PoR): receiving a PoR transaction comprising a PoR proof; determining whether the PoR proof is a verified PoR proof; and based upon determining that the PoR proof is a verified PoR proof, incorporating, by a block creator node, the PoR transaction into a new block of the blockchain, wherein the PoR transaction is generated by a PoR generation method comprising: retrieving blockchain data associated with the blockchain stored by a PoR creator node; generating a PoR hash based on a last block header and a PoR account identifier of the PoR creator node; generating a PoR challenge vector by executing an associated pseudo-random number generator using the PoR hash as its seed; retrieving challenged block data from the blockchain data according to the PoR challenge vector; sorting the challenged block data into challenge groups according to block creator accounts; for each of the challenge groups, generating a creator PoR proof based on associated challenged block data, at least one associated authentication tag, and an associated vector of public random elements, the associated vector of public random elements being generated by the associated pseudo-random number generator using a respective public key of a corresponding one of the block creator accounts as its seed; generating the PoR proof based on the creator PoR proof and the associated public key of the corresponding one of the block creator accounts for each of the challenge groups; and incorporating the PoR proof and the PoR account identifier. 10. The non-transitory computer readable medium of claim 9 , wherein the PoR transaction further comprises a PoR account identifier, and wherein the operations further comprise: proposing the new block to a blockchain network, the blockchain network having a reward protocol that provides a reward to an account corresponding the PoR account identifier included in the new block based upon the new block being accepted by the blockchain network and included in the blockchain. 11. The non-transitory computer readable medium of claim 9 , wherein the operations further comprise incorporating a PoR authentication tag in a block header of the new block. 12. The non-transitory computer readable medium of claim 9 , wherein the verified PoR proof is verified using a PoR verification operation, which comprises: generating a hash based on a last block header and a PoR account identifier, the PoR account identifier being associated with a PoR node that generated the PoR transaction; generating a challenge vector by executing a pseudo-random number generator using the hash as its seed; retrieving challenged block data according to the challenge vector; sorting the challenged block data into groups according to block creator accounts; and for each of the groups, verifying PoR based on an associated PoR proof and an associated public key of a corresponding one of the block creator accounts. 13. A node of a blockchain network comprising a processor and a memory, the memory comprising processor executable instructions that, when executed by the processor, cause the processor to perform the following operations for securing a blockchain using a publicly verifiable proof of retrievability (PoR): receiving a PoR transaction comprising a PoR proof; determining whether the PoR proof is a verified PoR proof; and based upon determining that the PoR proof is a verified PoR proof, incorporating the PoR transaction into a new block

Assignees

Inventors

Classifications

  • received data contents, e.g. message integrity · CPC title

  • using hash chains, e.g. blockchains or hash trees · CPC title

  • H04L9/3218Primary

    using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs · CPC title

  • Distributed file systems · CPC title

  • Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11522706B2 cover?
A method for securing a blockchain and incentivizing the storage of blockchain data using a publicly verifiable proof of retrievability (PoR) includes receiving a PoR transaction having a PoR proof, determining whether the PoR proof is a verified PoR proof, and based upon determining that the PoR proof is a verified PoR proof, incorporating, by a block creator node, the PoR transaction into a n…
Who is the assignee on this patent?
Nec Corp
What technology area does this patent fall under?
Primary CPC classification H04L9/3218. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 06 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).