Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

Incremental Proofs of Sequential Work

  • Conference paper
  • First Online:
Advances in Cryptology – EUROCRYPT 2019 (EUROCRYPT 2019)

Abstract

A proof of sequential work allows a prover to convince a verifier that a certain amount of sequential steps have been computed. In this work we introduce the notion of incremental proofs of sequential work where a prover can carry on the computation done by the previous prover incrementally, without affecting the resources of the individual provers or the size of the proofs.

To date, the most efficient instance of proofs of sequential work [Cohen and Pietrzak, Eurocrypt 2018] for N steps require the prover to have \(\sqrt{N}\) memory and to run for \(N + \sqrt{N}\) steps. Using incremental proofs of sequential work we can bring down the prover’s storage complexity to \(\log N\) and its running time to N.

We propose two different constructions of incremental proofs of sequential work: Our first scheme requires a single processor and introduces a poly-logarithmic factor in the proof size when compared with the proposals of Cohen and Pietrzak. Our second scheme assumes \(\log N\) parallel processors but brings down the overhead of the proof size to a factor of 9. Both schemes are simple to implement and only rely on hash functions (modelled as random oracles).

G. Malavolta—Work done while at Friedrich-Alexander-Universität Erlangen-Nürnberg.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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.

    e.g., https://www.freetsa.org.

  2. 2.

    As we are working in the random oracle model, these coins can be taken directly from \(\ell _v\) if we make the hashes sufficiently longer. However, for presentation purposes we use a separate hash function which hashes \(\ell _v\).

References

  1. Arora, S., Safra, S.: Probabilistic checking of proofs: a new characterization of NP. J. ACM (JACM) 45(1), 70–122 (1998)

    Article  MathSciNet  Google Scholar 

  2. Bitansky, N., Canetti, R., Chiesa, A., Tromer, E.: Recursive composition and bootstrapping for SNARKS and proof-carrying data. In: Boneh, D., Roughgarden, T., Feigenbaum, J. (eds.) 45th ACM STOC, Palo Alto, CA, USA, 1–4 June, pp. 111–120. ACM Press (2013)

    Google Scholar 

  3. Bitansky, N., Goldwasser, S., Jain, A., Paneth, O., Vaikuntanathan, V., Waters, B.: Time-lock puzzles from randomized encodings. In: Sudan, M. (ed.) ITCS 2016, Cambridge, MA, USA, 14–16 January, pp. 345–356. ACM (2016)

    Google Scholar 

  4. Boneh, D., Bonneau, J., Bünz, B., Fisch, B.: Verifiable delay functions. In: Shacham, H., Boldyreva, A. (eds.) CRYPTO 2018, Part I. LNCS, vol. 10991, pp. 757–788. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-96884-1_25

    Chapter  Google Scholar 

  5. Cohen, B., Pietrzak, K.: Simple proofs of sequential work. In: Nielsen, J.B., Rijmen, V. (eds.) EUROCRYPT 2018, Part II. LNCS, vol. 10821, pp. 451–467. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-78375-8_15

    Chapter  Google Scholar 

  6. Dwork, C., Naor, M.: Pricing via processing or combatting junk mail. In: Brickell, E.F. (ed.) CRYPTO 1992. LNCS, vol. 740, pp. 139–147. Springer, Heidelberg (1993). https://doi.org/10.1007/3-540-48071-4_10

    Chapter  Google Scholar 

  7. 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 

  8. Kilian, J.: A note on efficient zero-knowledge proofs and arguments (extended abstract). In: 24th ACM STOC, Victoria, British Columbia, Canada, 4–6 May, pp. 723–732. ACM Press (1992)

    Google Scholar 

  9. Mahmoody, M., Moran, T., Vadhan, S.P.: Time-lock puzzles in the random oracle model. In: Rogaway, P. (ed.) CRYPTO 2011. LNCS, vol. 6841, pp. 39–50. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22792-9_3

    Chapter  MATH  Google Scholar 

  10. Mahmoody, M., Moran, T., Vadhan, S.P.: Publicly verifiable proofs of sequential work. In: Kleinberg, R.D. (ed.) ITCS 2013, Berkeley, CA, USA, 9–12 January, pp. 373–388. ACM (2013)

    Google Scholar 

  11. Micali, S.: CS proofs (extended abstracts). In: 35th FOCS, Santa Fe, New Mexico, 20–22 November, pp. 436–453. IEEE Computer Society Press (1994)

    Google Scholar 

  12. Pietrzak, K.: Simple verifiable delay functions. Cryptology ePrint Archive, Report 2018/627 (2018). https://eprint.iacr.org/2018/627

  13. Rivest, R.L., Shamir, A., Wagner, D.A.: Time-lock puzzles and timed-release crypto (1996)

    Google Scholar 

  14. Valiant, P.: Incrementally verifiable computation or proofs of knowledge imply time/space efficiency. In: Canetti, R. (ed.) TCC 2008. LNCS, vol. 4948, pp. 1–18. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-78524-8_1

    Chapter  MATH  Google Scholar 

  15. Wesolowski, B.: Efficient verifiable delay functions. Cryptology ePrint Archive, Report 2018/623 (2018). https://eprint.iacr.org/2018/623

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Russell W. F. Lai .

Editor information

Editors and Affiliations

A General Arity Constructions

A General Arity Constructions

The schemes described in Sects. 4.2 and 5.2 can be generalized rather easily to work with p-ary trees for any .

1.1 A.1 Generalized CP Graphs

We begin by describing the generalized CP graph \(CP^p_n\), and generalizing Lemmas 1, 2, and 3.

Definition 6

(Generalized CP Graphs). For , let \(N = p^{n+1} - 1\) and \(T_{p,n} = (V, E')\) be a complete p-ary tree of depth n. Let \(\varSigma := \{0,\ldots ,p-1\}\) be an alphabet set of size p. The nodes \(V = \varSigma ^{\le n}\) are identified by p-ary strings of length at most n and the empty string \(\epsilon \) represents the root. The edges are directed from the leaves towards the root.

The graph \(CP^p_n = (V,E)\) is a DAG constructed from \(T_{p,n} = (V, E')\) as follows. For any leaf , for any node v which is a left-sibling of a node on the path from u to the root \(\epsilon \), an edge (vu) is appended to \(E'\). Formally, \(E := E' \cup E''\) where

$$\begin{aligned} E'' := \{(v,u): u \in \varSigma ^n, u = a || r || a', v = a || s, r > s~\text {for some }a,a' \in \varSigma ^{\le n}\}. \end{aligned}$$

We state and prove the generalizations of Lemmas 1, 2, and 3.

Lemma 6

The labels of a \(CP^p_n\) graph can be computed in topological order using bits of memory.

Proof

We prove by induction on n. Let \(0, \ldots , p-1\) be the children of \(\epsilon \). For \(i \in \varSigma = \{0,\ldots ,p-1\}\), let \(\mathfrak {T}_i\) be the subtree rooted at the i. Note that \(\mathfrak {T}_i\) is isomorphic to \(CP^p_{n-1}\). To compute the labels of \(CP^p_n\), we first compute the labels of \(\mathfrak {T}_0\). Upon completion, we store only the label of 0, denoted \(\ell _0\). Next, we compute the labels of \(\mathfrak {T}_1\) using \(\ell _0\). This is possible since all edges start from the node 0. Upon completion, we store the label \(\ell _1\). Now suppose that for some \(i \in \{1, \dots , p\}\) the labels of \(\mathfrak {T}_0, \ldots , \mathfrak {T}_{i-1}\) are computed, and we have stored \(\ell _0, \dots , \ell _{i-1}\). The labels of \(\mathfrak {T}_i\) can be computed since all edges start from the nodes \(0, \ldots , i-1\). Eventually, we obtain the last label \(\ell _{p-1}\). Using this with \(\ell _0, \dots , \ell _{p-2}\) stored in the memory, we can compute the label of \(\epsilon \).

Since for each \(i \in \varSigma \), storing \(\ell _i\) requires bits of memory, the memory required for computing the label of \(CP^p_n\) equals to that of \(CP^p_{n-1}\) plus extra bits. Furthermore, \(CP^p_{0}\) has exactly 1 node and its label can be computed using bits of memory. Solving the recursion gives the claimed bound.

Lemma 7

For all \(S \subseteq V\), the subgraph of \(CP^p_n = (V, E)\) on vertex set \(V \setminus \mathfrak {T}_{S^*}\), has a directed path going through all the \(|V| - |\mathfrak {T}_{S^*}|\) nodes.

Proof

We prove by induction on n. The lemma is trivial for \(CP^p_0\) as it contains only 1 node. Now, suppose the lemma is true for \(CP^p_{n-1}\). Consider \(CP^p_n\), and let \(0, \ldots , p-1\) be the children of \(\epsilon \). For \(i \in \varSigma = \{0,\ldots ,p-1\}\), let \(\mathfrak {T}_i\) be the subtree rooted at the i. Note that \(\mathfrak {T}_i\) is isomorphic to \(CP^p_{n-1}\). \(CP^p_n\) consists of the root \(\epsilon \), the subtrees \(\mathfrak {T}_0, \ldots , \mathfrak {T}_{p-1}\), and edges going from i to the leaves of \(\mathfrak {T}_j\) for all \(i < j\) and \(i,j \in \varSigma \).

The lemma is true if \(\epsilon \in S^*\), as \(|V| - |\mathfrak {T}_{S^*}| = 0\). Otherwise, let \(I := S^* \cap \varSigma \) be the subset of children of \(\epsilon \) which are in \(S^*\). For concreteness, we write \(I = \{i_1, \ldots , i_k\}\) for some \(k \in \{1, \dots , p\}\). We apply the lemma to \(\mathfrak {T}_i\) for all \(i \in \varSigma \setminus I\), so that for each \(\mathfrak {T}_i\) there exists a directed path going from the left-most leaf of \(\mathfrak {T}_i\), i.e., \(i0\ldots 0\), to i. Since for all \(i,j \in \varSigma \) where \(i < j\), there exists an edge from i to \(j0\ldots 0\), it means that for each \(i' \in I\), there exists a edge \((i'-1, (i'+1)0\ldots 0)\) which “skips” \(\mathfrak {T}_{i'}\). Formally, the following edges exist:

$$\begin{aligned} (0,10\ldots 0), \ldots , (i_1-2, (i_1-1)0\ldots 0), \\ (i_1-1, (i_1+1)0\ldots 0), \ldots , (i_k-1, (i_k+1)0\ldots 0), \\ (i_k+1, (i_k+2)0\ldots 0), \ldots , (p-1, p0\ldots 0). \end{aligned}$$

Finally, we note that there also exists an edge \((i^*, \epsilon )\) where \(i^* := \max _{i \notin I} (i \in \varSigma )\), which completes the path from \(0\ldots 0\) to \(\epsilon \), passing through all \(|V| - |\mathfrak {T}_{S^*}|\) nodes.

Lemma 8

For all \(S \subset V\), \(\mathfrak {T}_{S^*}\) contains \(\frac{|\mathfrak {T}_{S^*}| + |S|}{p}\) many leaves.

Proof

Let \(S^* = \{v_1,\ldots ,v_k\}\). Since \(S^*\) is minimal, it holds that \(\mathfrak {T}_{v_i} \cap \mathfrak {T}_{v_j} = \emptyset \) for all \(i,j \in \{1,\dots , k\}\) with \(i \ne j\). Therefore we can write

$$\begin{aligned} |\varSigma ^n \cap \mathfrak {T}_{S^*}| = \sum ^k_{i =1} |\varSigma ^n \cap \mathfrak {T}_{v_i}|. \end{aligned}$$

As for all \(i \in \{1, \dots , k\}\), \(\mathfrak {T}_{v_i}\) is a complete p-ary tree, it has \((|\mathfrak {T}_{v_i}|+1)/p\) many leaves. Thus,

$$\begin{aligned} \sum ^k_{i =1} |\varSigma ^n \cap \mathfrak {T}_{v_i}| = \sum ^k_{i =1} \frac{|\mathfrak {T}_{v_i}|+1}{p} = \frac{|\mathfrak {T}_{S^*}| + |S|}{p}. \end{aligned}$$

1.2 A.2 Generalized Single-Thread Construction

The generalized construction is almost identical to the basic one presented in Sect. 4.2, except the graph \(CP_n\) is replaced with \(CP^p_n\), and the computation of the labels is changed accordingly.

  1. 1.

    Initialize \(U \leftarrow \emptyset \).

  2. 2.

    Assign .

  3. 3.

    Traverse the graph \(CP^p_n= (V, E)\) starting from \(0^n\). At every node \(v\in V\) which is traversed, do the following:

    1. (a)

      Compute the label \(\ell _v\) by , where \(v_1,\dots ,v_d \in V\) are all nodes with edges pointing to \(v\), i.e., \((v_i, v) \in E\).

    2. (b)

      Let \(c_0,\ldots ,c_{p-1}\) be the children of \(v\).

    3. (c)

      If , set

    4. (d)

      Otherwise (i.e., if ), do the following:

      1. i

        Compute .

      2. ii

        Choose a random -subset \(S_v\) of via .

      3. iii

        For , write where \(0 \le a < p\) and \(0 \le b < t\) and set \({\mathcal {L}_{v}} [j] \leftarrow (v,\ell _{c_0},\ldots ,\ell _{c_{p-1}},j) \Vert \mathcal {L}_{c_a}[ b ]\).

    5. (e)

      Mark \(c_0, \ldots , c_{p-2}\) as finished, i.e., remove \(c_0, \ldots , c_{p-2}\) from U and, if \(v\) is not the right-most child of its parent, mark \(v\) as unfinished, i.e., add \(v\) to U.

  4. 4.

    Once the set of unfinished nodes consists only of the root-node (i.e., \(U = \{ \epsilon \}\)), terminate and output .

  1. 1.

    Initialize \(U := \emptyset \).

  2. 2.

    Parse \(\pi \) as

  3. 3.

    Assign \(\ell _{0^{n'-n}} := \ell _\epsilon \) and .

  4. 4.

    Execute the algorithm starting from step 3 with a slight change: Traverse the graph \(CP^p_{n'}\) starting from \(0^{n'-n-1} \Vert 1 \Vert 0^n\) (instead of from \(0^{n'}\)).

  1. 1.

    Parse .

  2. 2.

    For all paths do the following:

    1. (a)

      Parse \(\mathsf {path} \) as .

    2. (b)

      For every node \(v\in \{v_0,\dots ,v_n\}\) on the path, check if the label \(\ell _v\) was computed correctly. That is, for \(v= 0^n\) check whether , and for any other node \(v\in V \backslash \{ 0^n\}\) check whether , where \(\ell _{v_1}, \ldots , \ell _{v_d}\) are the nodes with edges pointing to \(v\). The value \(\ell _v\) can either be retrieved from the parent node of \(v\), or is directly available for the case of the root-node \(\epsilon \). For the special case of leaf-nodes, the values \(\ell _{v_1}, \ldots , \ell _{v_d}\) are not stored locally with the node \(v\), but are stored at some other (a-priori known) nodes along the path \(\mathsf {path} \) (refer to the structure of the graph \(CP^p_n\)).

    3. (c)

      For all \(j \in \{0,\dots ,n^*\}\), compute and . Let \(i \in \{0,\ldots ,p-1\}\) so that \(v_{j+1}\) is the i-th child of \(v_j\). Check if .

  3. 3.

    If all checks pass then output 1. Otherwise output 0.

We state the soundness error and the efficiency of the generalized construction. The analysis is essentially identical to that in Sect. 4.3 and is therefore omitted.

Soundness. Here we state a generalized version of Lemma 5 for p-ary trees.

Lemma 9

Let v be a node and let \((v_1, \ldots , v_p)\) the set of children of v. If for all \(i \in \{ 1, \ldots , p \}\) we have

then it holds that

The bound for the soundness error has the same form as that in the basic construction, except that \(n = \log _p (N + 1) - 1\). Previously, \(n = \log (N+1) - 1\). The proof is identical to that of Theorem 2, except that we apply Lemma 9 instead of Lemma 5.

Theorem 4

The construction given in Sect. A.2 is sound for any , and the soundness error is given by .

Efficiency. In the following, we set and . The parallel time complexity of the prover remains unchanged at O(N). The parallel time complexity of the verifier is , which decreases at p increases. The proof size and the space complexity of the prover are and respectively. The fractions \(\phi _p := \frac{p}{\log ^3 p}\) and \(\theta _p := \frac{p^2}{\log ^4 p}\) are minimized at \(p = 20\) and \(p = 7\) respectively. Compared to \(p = 2\), we have \(\phi _{20} / \phi _2 \approx 0.124\) and \(\theta _{7} / \theta _2 \approx 0.197\).

1.3 A.3 Generalized Multi-thread Construction

Similar to the above, we present a generalization of the construction in Sect. 5.2.

  1. 1.

    Initialize \(U \leftarrow \emptyset \) to be the set of unfinished nodes.

  2. 2.

    Assign .

  3. 3.

    Traverse the graph \(CP^p_n\) starting from \(0^n\). At every node \(v\in V\) which is traversed, do the following:

    1. (a)

      Compute the label \(\ell _v\) by , where \(v_1,\dots ,v_d \in V\) are all nodes nodes \(v\) is adjacent with, i.e., \((v_i, v) \in E\).

    2. (b)

      Let \(c_0,\ldots ,c_{p-1}\) be the children of \(v\).

    3. (c)

      If , set

    4. (d)

      Otherwise (i.e., if ), do the following:

      1. i.

        Compute .

      2. ii.

        Choose a random -subset \(S_v\) of via .

      3. iii.

        For , write where \(0 \le a < p\) and \(0 \le b < t\). Set .

    5. (e)

      If \(v\) is not a right node (i.e., it is not the right-most child of its parent):

      1. i.

        Compute .

      2. ii.

        Choose a random t-set of paths with prefix \(v\) via .

      3. iii.

        Execute in a parallel thread and set .

      4. iv.

        Mark \(c_0,\ldots ,c_{p-2}\) as finished, i.e., remove \(c_0,\ldots ,c_{p-2}\) from U and mark \(v\) as unfinished, i.e., add \(v\) to U.

  4. 4.

    Once the set of unfinished nodes consists only of the root-node (i.e., \(U = \{ \epsilon \}\)), terminate and output .

Defined as in Sect. A.2.

  1. 1.

    Parse \(\pi \) as .

  2. 2.

    For all paths do the following:

    1. (a)

      Parse \(\mathsf {path} \) as .

    2. (b)

      For every node \(v\in \{v_0,\dots ,v_n\}\) on the path, check if the label \(\ell _v\) was computed correctly. That is, for \(v= 0^n\) check whether , and for any other node \(v\in V \backslash \{ 0^n\}\) check whether , where \(v_1, \ldots , v_d\) are the nodes with edges pointing to \(v\). The value \(\ell _v\) can either be retrieved from the parent node of \(v\), or is directly available for the case of the root-node \(\epsilon \). For the special case of leaf-nodes, the values \(\ell _{v_1}, \ldots , \ell _{v_d}\) are not stored locally with the node \(v\), but are stored at some other (a-priori known) nodes along \(\mathsf {path} \) (refer to the structure of the graph \(CP^p_n\)).

    3. (c)

      For all \(j \in \{0,\dots ,n^*\}\):

      1. i.

        If \(v_j\) is the right-most child of its parent or \(j = 0\): Compute and . Let \(v_{j+1}\) be the i-th child of \(v_j\), check if .

      2. ii.

        If \(v_j\) is not the right-most child of its parent: Compute and . Check if all paths in \(S_{v_j}\) are present in .

  3. 3.

    If all checks pass output 1, otherwise 0.

Next we state the soundness error and the efficiency.

Soundness. The soundness analysis requires some tweaking of the argument.

Theorem 5

The construction given in Sect. A.3 is sound for any , and the soundness error is given by .

Proof

The proof follows the blueprint of the proof of Theorem 3, except for the following changes. First we add a hybrid for each sibling of the nodes \(\{1^{n^*}, \ldots , 1, \epsilon \}\). The indistinguishability arguments are identical.

Then we define the event \(\hat{\mathsf {BAD}}_{v}\) as follows: \(\mathcal {A}\) queries with a query corresponding to a labeled sub-tree for which it holds that , where \(n_v\) is the depth of \(v\).

We bound the probability that \(\hat{\mathsf {BAD}}_{v}\) happens with an inductive argument over \(v\in \{1^{n^*},\ldots ,1, \epsilon \}\). For the base case \(v= 1^{n^*}\) is enough to observe that \(\delta (\mathsf {L}_v) = \gamma (\mathsf {L}_v)\) and therefore \(\hat{\mathsf {BAD}}_{v}\) happens with probability 0.

For any node \(v\in \{1^{n^*-1},\ldots ,1, \epsilon \}\), fix a query and let \((v_1, \ldots , v_p)\) be the children of \(v\). For all \(i \in \{1, \ldots , p-1\}\) we have that

(8)

as otherwise \(\mathsf {BAD}_{v_i}\) would be triggered. For the node \(v_{p}\) we have that

(9)

by induction hypothesis, as otherwise \(\hat{\mathsf {BAD}}_{v_p}\) would be triggered. We can now rewrite

by (8), (9), and Lemma 9. For \(p>1\) we can bound

since it is a geometric series. Thus we can set and derive

The remainder of the analysis is unchanged.   \(\square \)

Efficiency. In the following, we set and \(n= \log _p N\). The parallel time complexity of the prover remains unchanged at O(N). The number of parallel threads is bounded by \(O(p \log _p N)\), which is minimized at \(p = 3\). The parallel time complexity of the verifier is , which decreases at p increases. The proof size and the space complexity of the prover are and respectively. The fractions \(\phi '_p := \frac{p (1 + \frac{p}{p-1})^2 }{\log p}\) and \(\theta '_p := \frac{p^2 (1 + \frac{p}{p-1})^2 }{\log ^2 p}\) are both minimized at \(p = 4\). Compared to \(p = 2\), we have \(\phi '_{4} / \phi '_2 \approx 0.605\) and \(\theta '_{7} / \theta '_2 \approx 0.605\).

Rights and permissions

Reprints and permissions

Copyright information

© 2019 International Association for Cryptologic Research

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Döttling, N., Lai, R.W.F., Malavolta, G. (2019). Incremental Proofs of Sequential Work. In: Ishai, Y., Rijmen, V. (eds) Advances in Cryptology – EUROCRYPT 2019. EUROCRYPT 2019. Lecture Notes in Computer Science(), vol 11477. Springer, Cham. https://doi.org/10.1007/978-3-030-17656-3_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-17656-3_11

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-17655-6

  • Online ISBN: 978-3-030-17656-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics