Skip to main content

stoRNA: Stateless Transparent Proofs of Storage-time

  • Conference paper
  • First Online:
Computer Security – ESORICS 2023 (ESORICS 2023)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 14346))

Included in the following conference series:

  • 230 Accesses

Abstract

Proof of Storage-time (PoSt) is a cryptographic primitive that enables a server to demonstrate non-interactive continuous availability of outsourced data in a publicly verifiable way. This notion was first introduced by Filecoin to secure their Blockchain-based decentralized storage marketplace, using expensive SNARKs to compact proofs. Recent work [2] employs the notion of trapdoor delay function to address the problem of compact PoSt without SNARKs. This approach however entails statefulness and non-transparency, while it requires an expensive pre-processing phase by the client. All of the above renders their solution impractical for decentralized storage marketplaces, leaving the stateless trapdoor-free PoSt with reduced setup costs as an open problem. In this work, we present stateless and transparent PoSt constructions using probabilistic sampling and a new Merkle variant commitment. In the process of enabling adjustable prover difficulty, we then propose a multi-prover construction to diminish the CPU work each prover is required to do. Both schemes feature a fast setup phase and logarithmic verification time and bandwidth with the end-to-end setup, prove, and verification costs lower than the existing solutions.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 79.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    The data should be extracted from the configuration corresponding to any specific time and the transition function.

  2. 2.

    RNA is a single strand biological molecule essential in coding, decoding, and expression of genes.

  3. 3.

    The unpredictability of the random oracle is important in the malicious prover case, as it is hard to let the extractor access each \(\textsf{PoR}\)’s challenge and response.

  4. 4.

    Code will be open-sourced soon and is available upon request.

References

  1. Ateniese, G., et al.: Provable data possession at untrusted stores. In: Proceedings of the 14th ACM Conference on Computer and Communications Security, pp. 598–609. ACM (2007)

    Google Scholar 

  2. Ateniese, G., Chen, L., Etemad, M., Tang, Q.: Proof of storage-time: Efficiently checking continuous data availability. In: NDSS (2020)

    Google Scholar 

  3. Ateniese, G., Di Pietro, R., Mancini, L.V., Tsudik, G.: Scalable and efficient provable data possession. In: Proceedings of the 4th International Conference on Security and Privacy in Communication Netowrks. ACM (2008)

    Google Scholar 

  4. Ben-Sasson, E., Chiesa, A., Tromer, E., Virza, M.: Succinct non-interactive zero knowledge for a von neumann architecture. In: 23rd USENIX Security (2014)

    Google Scholar 

  5. Bertrand Portier: Always on: Business considerations for continuous availability. http://www.redbooks.ibm.com/redpapers/pdfs/redp5090.pdf, 2014

  6. Boneh, D., Bonneau, J., Bünz, B., Fisch, B.: Verifiable Delay Functions. In: Shacham, H., Boldyreva, A. (eds.) Advances in Cryptology – CRYPTO 2018: 38th Annual International Cryptology Conference, Santa Barbara, CA, USA, August 19–23, 2018, Proceedings, Part I, pp. 757–788. Springer International Publishing, Cham (2018). https://doi.org/10.1007/978-3-319-96884-1_25

    Chapter  Google Scholar 

  7. Cohen, B., Pietrzak, K.: Simple proofs of sequential work. In: Nielsen, J.B., Rijmen, V. (eds.) Advances in Cryptology – EUROCRYPT 2018: 37th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Tel Aviv, Israel, April 29 - May 3, 2018 Proceedings, Part II, pp. 451–467. Springer International Publishing, Cham (2018). https://doi.org/10.1007/978-3-319-78375-8_15

    Chapter  Google Scholar 

  8. Dziembowski, S., Faust, S., Kolmogorov, V., Pietrzak, K.: Proofs of Space. In: Gennaro, R., Robshaw, M. (eds.) CRYPTO 2015. LNCS, vol. 9216, pp. 585–605. Springer, Heidelberg (2015). https://doi.org/10.1007/978-3-662-48000-7_29

    Chapter  Google Scholar 

  9. Fiat, A., Shamir, A.: How to prove yourself: practical solutions to identification and signature problems. In: Odlyzko, A.M. (ed.) CRYPTO 1986. LNCS, vol. 263, pp. 186–194. Springer, Heidelberg (1987). https://doi.org/10.1007/3-540-47721-7_12

    Chapter  Google Scholar 

  10. Juels, A., Kaliski Jr, B.S.: Pors: proofs of retrievability for large files. In: Proceedings of the 14th ACM Conference on Computer and Communications Security, pp. 584–597. ACM (2007)

    Google Scholar 

  11. Light Clients and Proof of Stake: https://blog.ethereum.org/2015/01/10/light-clients-proof-stake/

  12. Mahmoody, M., Moran, T., Vadhan, S.: Publicly verifiable proofs of sequential work. In: Proceedings of the 4th conference on Innovations in Theoretical Computer Science, pp. 373–388 (2013)

    Google Scholar 

  13. Merkle, R.C.: Protocols for public key cryptosystems. In: IEEE Symposium on Security and Privacy 1980, pp. 122–122. IEEE (1980)

    Google Scholar 

  14. Moran, T., Orlov, I.: Simple proofs of space-time and rational proofs of storage. In: Boldyreva, A., Micciancio, D. (eds.) Advances in Cryptology – CRYPTO 2019: 39th Annual International Cryptology Conference, Santa Barbara, CA, USA, August 18–22, 2019, Proceedings, Part I, pp. 381–409. Springer International Publishing, Cham (2019). https://doi.org/10.1007/978-3-030-26948-7_14

    Chapter  Google Scholar 

  15. Protocol Labs: Filecoin: A decentralized storage network (2018)

    Google Scholar 

  16. Rabaninejad, R., Attari, M.A., Asaar, M.R., Aref, M.R.: Comments on a lightweight cloud auditing scheme: Security analysis and improvement. J. Netw. Comput. Appl. 139, 49–56 (2019)

    Article  Google Scholar 

  17. Rabaninejad, R., Attari, M.A., Asaar, M.R., Aref, M.R.: A lightweight auditing service for shared data with secure user revocation in cloud storage. IEEE Trans. Serv. Comput. 15(1), 1–15 (2019)

    Article  Google Scholar 

  18. Rabaninejad, R., Liu, B., Michalas, A.: Port: non-interactive continuous availability proof of replicated storage. In: Proceedings of the 38th ACM/SIGAPP Symposium on Applied Computing, pp. 270–279 (2023)

    Google Scholar 

  19. Shacham, H., Waters, B.: Compact proofs of retrievability. In: Pieprzyk, J. (ed.) ASIACRYPT 2008. LNCS, vol. 5350, pp. 90–107. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-89255-7_7

    Chapter  Google Scholar 

  20. Todd, P.: Merkle mountain range. https://github.com/opentimestamps/opentimestamps-server/blob/master/doc/merkle-mountain-range.md

  21. Wesolowski, B.: Efficient verifiable delay functions. In: Annual International Conference on the Theory and Applications of Cryptographic Techniques (2019)

    Google Scholar 

  22. Wood, G., et al.: Ethereum: a secure decentralised generalised transaction ledger. Ethereum project yellow paper 151, 1–32 (2014)

    Google Scholar 

Download references

Acknowledgments

This work was funded by the HARPOCRATES EU research project (No. 101069535) and the Technology Innovation Institute (TII), UAE, for the project ARROWSMITH. Giulio Malavolta was partially funded by the German Federal Ministry of Education and Research (BMBF) in the course of the 6GEM research hub under grant number 16KISK038 and by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy - EXC 2092 CASA - 390781972.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Reyhaneh Rabaninejad .

Editor information

Editors and Affiliations

Appendices

A Theorem 1 Proof

(i: Completeness): Directly follows from the completeness of the \(\textsf{PoR}\) and \(\textsf{PoEt}\) schemes.

(ii: Soundness): Let an adversary \(\mathcal {A}\) be against the soundness of the \(\textsf{stoRNA}\) scheme. Let the extractor \(\textsf{PoSt}.\textsf{Ext}= (\textsf{Ext}_{\textsf{PoSt}, 1}, \textsf{Ext}_{\textsf{PoSt}, 2})\) recover the data F from the prover. Where \(\textsf{Ext}_{\textsf{PoSt}, 1}\) on input the description of the prover, outputs the configurations, the epoch (a randomly chosen time slot) and the transition function, and \(\textsf{Ext}_{\textsf{PoSt}, 2}\) is a PoR extractor that recovers the data from the configurations, the epoch and the transition function. Intuitively, we first show that the prover executes “one PoR” in a randomly chosen epoch and then by invoking the \(\textsf{PoR}\) extractor, we recover the data from the configurations the epoch and the transition function (extraction phase).

We first argue about the sequenciality in Algorithm 1. A potentially malicious prover \(\textsf{PoSt}\).\(\textsf{P}'\), making the verifier accept (in relation to \(G_n^{{\textsf{Com}}}\) in Algorithm 2) with high probability must have queried \(\textsf{H}\) “almost” N times sequentially. The proof of sequentiality follows Cohen and Pietrzak [7]. We use the outputs of \(\textsf{PoR}\).\(\textsf{Prove}\) as the input nodes of the specified tree construction of [7]. Thus, the sequentiality proof of Algorithm 1 follows the sequentiality proof of [7]. Formally we have that,

Lemma 1

[Theorem 1 of [7]]. Consider the scheme in Algorithm 1, with parameters c, w, N and a “soundness gap” \(\alpha > 0\). If \(\textsf{PoSt}\).\(\textsf{P}'\) makes at most \((1 - \alpha )N\) sequential queries to \(\textsf{H}\), and at most q queries in total, then \(\textsf{PoSt}\).\(\textsf{V}\) will output reject with probability \( 1 - (1 - \alpha )^c - (2 \cdot n \cdot w \cdot q^2)/ 2^w \).

Where N is assumed to be number of sequential steps of the form \(N = 2^{n+1} - 1\) for an integer \(n \in \textsf{N}\), and c is a statistical security parameter (the size of the subset \(I^*\) in which the larger the c the better the soundness), and w is the output range of \(\textsf{H}\), which we need to be collision-resistant and sequential. \(w = 256\) is a typical value. The proof follows the proof of Theorem 1 in [7].

In general, the verification algorithm of the \(\textsf{stoRNA}\) requires the prover to compute all \(\textsf{PoR}\) challenges and responses and evaluate the \(\textsf{PoEt}\)s. Thus the PoR responses are valid and the \(\textsf{PoEt}\) are evaluated as expected with probability \((1 - \alpha )^c - (2 \cdot n \cdot w \cdot q^2)/ 2^w\) based on Lemma 1. Because of the unpredictability of \(\textsf{PoR}\) and the sequentiality of \(\textsf{PoEt}\), the \(\textsf{PoR}\) proofs must be generated sequentially.

Let \(D_0\) and \(D_k\) be the start and end time points for running \(\mathcal {A}\). For i from 1 to \(k - 1\), we set each time point \(D_{i + 1}\) to be the first time when \(\mathcal {A}\) queries the random oracle \(\textsf{H}\) on \((\textsf{st} \mathbin \Vert l_{\epsilon })\) (Alg.1 step 17). Similarly, we set each time point \(\hat{D}_i\) as the start when \(\mathcal {A}\) queries the \(\textsf{H}\) on \(\textsf{st}\) (Alg.1 step 13). Then we prove that the random time epoch with length \(T > T' + 2\delta D\) chosen by \(\textsf{Ext}_{\textsf{PoSt}, 1}\) must contain at least one interval \([D_i, \hat{D}_i)\) for some i. To this aim, we prove the following lemmas 2, 3, 4, and 5:

Lemma 2

The time point \(D_i\) must precede \(D_{i+1}\).

Proof

we show that each \(\textsf{PoEt}\)’s output \(\textsf{st}_{i-1}\) must be firstly queried to the random oracle \(\textsf{H}\) before \(\textsf{st}_i\). To prove it we use the contradiction in a way that, if not, then \(\mathcal {A}\) must be able to either generate the \(\textsf{PoEt}\) output \(\textsf{st}_i\) before \(\textsf{st}_{i-1}\), which violates the sequentiality of \(\textsf{PoEt}\); or generate the \(\textsf{PoEt}\) input \(\textsf{st}_{i-1}\) before the output of \(\textsf{H}\) (step 17, Algorithm 1), which violates the unpredictability of the random oracle \(\textsf{H}\); or generate the \(\textsf{PoR}\) challenge \(c_i\) before \(\textsf{st}_{i-1}\), which violates the unpredictability of the random oracle \(\textsf{H}\) (step 13, Algorithm 1); or generate the \(\textsf{PoR}\) response \(\pi _i\) before \(c_i\), which violates the unpredictability of \(\textsf{PoR}\);

Lemma 3

\(T'\) is shorter than the length of each time slot \([D_i, D_{i+1})\).

Proof

By the unpredictability of the random oracle, the output of the \(\textsf{PoEt}\), \(\textsf{st}_i\) must be generated before the time point \(D_{i+1}\). On the other hand, the \(\textsf{PoR}\) response \(\pi _i\) must be generated via the \(\textsf{PoR}\) on the challenge \(\textsf{st}_i\) after the time point \(D_i\). Thus, a \(\textsf{PoEt}\) function must be evaluated within the time slot \([D_i, D_{i+1})\). By the sequentiality of \(\textsf{PoEt}\), the length of \([D_i, D_{i+1})\) must be longer than \(T'\).

Lemma 4

\(T' + \delta D\) is bigger than the length of each time slot \([D_i, D_{i+1})\).

Proof

Let \(D'\) be the execution time of \(\textsf{PoSt}\).\(\textsf{P}'\). By the correctness of the verification algorithm, \(D' < (1 + \delta )D\). Based on the result of Lemma 3 , we have that the length of each time slot \([D_i, D_{i+1})\) is longer than \(T'\), thus, the longest slot should be shorter than \((1 + \delta )D - (k - 1)T' = \delta D + T'\).

Lemma 5

Each \(\hat{D}_i \in [D_i, D_{i+1})\) and the time slot \([D_i, \hat{D}_i)\) is shorter than \(\delta D\).

Proof

Finally, we show the \(\textsf{PoEt}\) response \(\textsf{st}_i\) must be queried to the random oracle \(\textsf{H}\) (Algorithm1 step 13) within this time slot \([D_i,D_{i+1})\) and that the time slot \([D_i,\hat{D}_i)\) is shorter than \(\delta T\). The output of the \(\textsf{PoR}\) \(\pi _i\) is queried at the time point \(D_{i + 1}\), hence the input of the \(\textsf{PoR}\), \(c_i\) must be generated by \(\textsf{PoSt}\).\(\textsf{P}'\) before the time \(D_{i+1}\) according to the sequentiality of \(\textsf{PoR}\). Due to the unpredictability of the random oracle, \(\textsf{H}\) must be queried on input \(\textsf{st}_i\) before the time \(D_{i+1}\). On the other hand, according to the unpredictability of \(\textsf{PoEt}\), \(\textsf{PoSt}\).\(\textsf{P}'\) can not figure out the \(\textsf{PoEt}\) proof \(\textsf{st}_i\) before the time point \(D_i\), when the \(\textsf{PoEt}\) input is generated. Given this, \(\textsf{st}_i\) must be queried to the random oracle \(\textsf{H}\) in time slot \([D_i, D_{i+1})\). Furthermore, since the maximum length of \([D_i, D_{i+1})\) and the evaluation time of \(\textsf{PoEt}\) is longer than \(T'\), the slot \([D_i, \hat{D}_i) < \delta D\).

Extraction Phase. In this phase, we show that given the bunch of configurations for \(\textsf{PoSt}\).\(\textsf{P}'\) for time slot \([D_i, \hat{D}_i)\) (or \([D_{i-1}, \hat{D}_{i-1}))\) and the code of the transition function, \(c_i\) and \(\textsf{st}_i\) can be accessed by the \(\textsf{PoSt}\).\(\textsf{Ext}\). Indeed, since both random oracles \(\textsf{H}\) are maintained by the extractor, a cheating prover of \(\textsf{PoR}\).\(\textsf{P}'\) can be constructed by manipulating the output of the random oracle \(\textsf{H}\) (step 13, Algorithm 1) as the \(\textsf{PoR}\) challenge, rewinding the part of the \(\textsf{PoSt}\).\(\textsf{P}'\) corresponding to time segment \([D_i, \hat{D}_i)\) and collecting the queries of the random oracle \(\textsf{H}\) (step 17, Algorithm 1) as the \(\textsf{PoR}\) response. Since there is a \(\textsf{PoR}\) extractor to recover the storage data from \(\textsf{PoR}\).\(\textsf{P}'\), the soundness proof of \(\textsf{PoSt}\) is complete.

B Stateless Multi-prover PoSt Construction

In this section we show improvement options to the concrete efficiency of prover algorithm by proposing an extended multi-prover PoSt construction \( \textsf{mstoRNA}=(\textsf{Store}, \textsf{Prove},\textsf{Verify})\) (see Algorithm 3 for details). More precisely, we assume any arbitrary number of “Time Nodes” and “Storage Nodes” can freely join the DSN by respectively providing “CPU work” and “storage-time” resources to the network. \(\mathsf {mstoRNA.Store}\) algorithm is executed to output file \( F_j\) and tag \( \textsf{tg}_j \) which are outsourced to Storage Node j. In \(\mathsf {stoRNA.Prove}\) algorithm, (i) Time Node, every T time units, shares the \( \textsf{PoEt} \) state and waits for a time gap determined by network latency. (ii) Storage Node j hosting file \( F_j\), generates a challenge based on the freshly advertised \( \textsf{PoEt} \) state, serving as the \( \textsf{PoR} \) challenge, and submits \( \pi _{ij}\leftarrow \mathsf {PoR.Prove} \). (iii) Time Node collects all \( \textsf{PoR} \) proofs from all Storage Nodes and creates a Merkle tree \(\mathsf {MT_i}\) with root \({r_i} \). (iv) Time Node inputs \({r_i} \) together with \( \textsf{PoEt} \) proof to update the commitment graph \( G_n^{\textsf{Com}} \), and (v) Time Node timestamps the updated \( G_n^{\textsf{Com}} \) root, \( l_{\epsilon } \), into the shared \( \textsf{PoEt} \) state for the next \( \textsf{PoEt} \) execution. At the end of the deposit period D, the Time Node returns \( l_{\epsilon } \) together with the final \( \textsf{PoEt} \) state as a commitment to all proofs sequentially generated during D. Upon receiving the commitment, in \(\mathsf {mstoRNA.Verify}\) algorithm, (i) the verifier challenges a randomly sampled subset of time slots (ii) for every challenged time slot, the Time Node provides openings for both \(G_n^{\textsf{Com}}\) and Merkle tree \(\mathsf {MT_i}\) together with all the \( \mathsf {(PoEt,PoR)} \) proofs on the path from this challenged node to the root, (iii) the verifier, verifies commitment openings of both \(\mathsf {MT_i}\) and \(G_n^{\textsf{Com}}\), and (iv) runs \(\mathsf {PoEt.Verify},\mathsf {PoR.Verify}\) algorithms to respectively verify the returned \( \textsf{PoEt,PoR} \) proofs. As the number of Storage Nodes connected to a Time Node increases, the overall computational complexity of the prover algorithm diminishes. This enables even personal resource-constrained devices to partake in DSNs by dedicating some amount of disk-space, resulting in more decentralization. Besides, a PoSt sequence in \( \textsf{mstoRNA} \) can migrate to any other Time Node, who can continue where the previous prover left off. This is particularly important considering real nodes susceptible to Failure.

figure c

Theorem 2

Let \(\textsf{PoR}\) be a stateless PoR scheme with \(\epsilon \)-soundness and unpredictability. Let \(\textsf{PoEt}\) be a PoEt scheme with \(\delta \)-evaluation time. The time cost of \(\textsf{PoR}\) and hash function evaluation are negligible w.r.t. T. The time cost of \(s_0\) sequential steps on the server processor is \(T'\). If \(T' + 2\delta D < T\), the proposed \(\textsf{mstoRNA}\) scheme in Algorithm 3 is stateless, complete, and \(\epsilon \)-sound.

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Rabaninejad, R., Abdolmaleki, B., Malavolta, G., Michalas, A., Nabizadeh, A. (2024). stoRNA: Stateless Transparent Proofs of Storage-time. In: Tsudik, G., Conti, M., Liang, K., Smaragdakis, G. (eds) Computer Security – ESORICS 2023. ESORICS 2023. Lecture Notes in Computer Science, vol 14346. Springer, Cham. https://doi.org/10.1007/978-3-031-51479-1_20

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-51479-1_20

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-51478-4

  • Online ISBN: 978-3-031-51479-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics