Scaling Verifiable Computation Using Efficient Set Accumulators
USENIX Security, 2020 Alex Ozdemir*, Riad Wahby*, Barry Whitehat^, Dan Boneh* *Stanford ^Unaffiliated
Using Efficient Set Accumulators USENIX Security, 2020 Alex Ozdemir* - - PowerPoint PPT Presentation
Scaling Verifiable Computation Using Efficient Set Accumulators USENIX Security, 2020 Alex Ozdemir* , Riad Wahby*, Barry Whitehat^, Dan Boneh* *Stanford ^Unaffiliated Problem: Verifiable Storage Represent a large storage (e.g. array)
USENIX Security, 2020 Alex Ozdemir*, Riad Wahby*, Barry Whitehat^, Dan Boneh* *Stanford ^Unaffiliated
๐๐๐ ๐๐๐ง๐ ๐๐๐(๐, ๐, ๐ค, ๐๐ ) ๐๐๐ ๐๐๐ง๐ฃ๐๐๐๐ข๐(๐, ๐๐ฅ, ๐ค๐ฅ, ๐โฒ, ๐๐ฅ)
๐, ๐ค, ๐๐ ๐โฒ, ๐๐ฅ, ๐ค๐ฅ, ๐๐ฅ ๐ค โ ๐ต[๐] ๐ต ๐๐ฅ โ ๐ค๐ฅ ๐ โ ๐ธ๐๐๐๐ก๐ข(๐ต) Our Work: Concretely cheaper verifiable storage using RSA accumulators Context: Verifiable outsourcing/cryptographic proof systems
๐ฆ ๐
๐ฆ0 ๐ฆ1 ๐ฆ2 ๐ฅ0 ๐ฅ1 ๐ฅ2
๐ฆ ๐
๐ฆ0 ๐ฆ1 ๐ฆ2 ๐ฅ0 ๐ฅ1 ๐ฅ2
๐ฆ ๐ฅ โ ๐ฅ. ๐พ๐ด ๐ฆ, ๐ฅ ? ๐ โ ๐๐ (๐ฆ โ ๐)?
๐ฅ โ ?
๐ฆ ๐ ๐พ๐๐๐๐๐๐พ๐ด(๐, ๐ฆ โ ๐)
๐ โ ๐ธ๐๐๐๐๐พ๐ด(๐ฆ, ๐ฅ) ๐ฅ โ ? ๐ก. ๐ข. ๐
๐ ๐ฆ, ๐ฅ = โค
Using PCPs + Cryptography ๐ โ ๐๐ (๐ฆ โ ๐)?
๐ must be verifiable by an arithmetic constraint system (arithmetic circuit)
๐ฆ0 ๐ฆ1 ๐ฆ2 ๐ฅ0 ๐ฅ1 ๐ฅ2
๐ต ร ๐ถ = ๐ท where ๐ต, ๐ถ, ๐ท are linear combinations of variables
๐ฆ ๐
๐ฆ0 ๐ฆ1 ๐ฆ2 ๐ฅ0 ๐ฅ1 ๐ฅ2
๐ต1 ร ๐ถ1 = ๐ท1 ๐ต2 ร ๐ถ2 = ๐ท2 ๐ต3 ร ๐ถ3 = ๐ท3 โฎ ๐ต๐ ร ๐ถ๐ = ๐ท๐
Variables encoded as field variables Predicates encoded as constraints Constraints may use witness variables
Encoded as the field variable ๐
๐ฅ0 ร (1 โ ๐ฅ0) = 0 ๐ฅ1 ร (1 โ ๐ฅ1) = 0 ๐ฅ2 ร (1 โ ๐ฅ2) = 0 ๐ฅ3 ร (1 โ ๐ฅ3) = 0 0 = ๐ฅ0 + 2๐ฅ1 + 4๐ฅ2 + 8๐ฅ3 โ ๐จ
๐
0 + ๐ 1 + ๐ 2
๐0 + ๐1 + ๐2 = โ0 + โ1 + โ2 + โ3 + โ4 ๐
0 + 2๐ 1 + 4๐ 2
๐0 + 2๐1 + 4๐2 = โ0 + 2โ1 + 4โ2 + 8โ3 + 16โ4 ๐
0 + 3๐ 1 + 9๐ 2
๐0 + 3๐1 + 9๐2 = โ0 + 3โ1 + 9โ2 + 27โ3 + 81โ4 ๐
0 + 4๐ 1 + 16๐ 2
๐0 + 4๐1 + 16๐2 = โ0 + 4โ1 + 16โ2 + 64โ3 + 256โ4 ๐
0 + 5๐ 1 + 25๐ 2
๐0 + 5๐1 + 25๐2 = โ0 + 5โ1 + 25โ2 + 125โ3 + 625โ4
Each coefficient is a field variable:
0 + ๐ 1๐ฆ + ๐ 2๐ฆ2
Check ๐ ๐ โ ๐ ๐ = โ ๐ for different ๐
Represent naturals with limbs, base ๐. Each limb is a field element.
๐๐๐ ๐ ๐ง ๐๐๐ข ๐๐๐๐ง ๐ฆ ร ๐๐๐๐ง ๐ง = ๐จ ~ a ripple-carry adder from digital architecture (range checks!)
Represent naturals with limbs, base ๐. Each limb is a field element.
๐ฆ ๐
๐ฆ0 ๐ฆ1 ๐ฆ2 ๐ฅ0 ๐ฅ1 ๐ฅ2
x0 x1 x2 x3 x4 x5 x6 x7 H H H H H H H ๐ โ0 โ1 โ2 โ3 โ4 โ5
Verification cost: (roughly) ๐ ๐ฆ๐ฉ๐ก ๐ hashes for ๐ updates and a storage of capacity ๐.
Fixed generator A (special) hash function The stored elements
Verification cost: ๐ (๐ข๐๐ญ๐ข๐๐ญ & ๐ง๐ฉ๐๐ฏ๐ฆ๐๐ฌ ร) + ๐ ๐๐ฒ๐ช๐ฉ๐จ๐๐จ๐ฎ๐ฃ๐๐ฎ๐ฃ๐ฉ๐จ๐ for ๐ updates and a storage of capacity ๐.
เต ฯ๐ ๐ผฮ(๐ง๐) โ
Multiprecision Arithmetic
๐ ๐ - bit exponentiations
certificates
Pโs Criterion with ๐1 Pโs Criterion with ๐2 Pโs Criterion with ๐3 Base prime test PRG-based rejection sampling Many fewer constraints than Miller-Rabin, and provably prime
Bellman, using Groth16.
varying size
numbers of swaps (remove x, add y)
few thousand operations
25 210 215 220
removal time (โ43s)
๐ = ๐โฒฯ๐ ๐ผฮ ๐ง๐
linear in storage size.
220 220
Techniques
Conclusions Research Question
Implementation: github.com/alex-ozdemir/bellman-bignat Paper: ia.cr/2019/1494