34
(Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

(Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

Embed Size (px)

Citation preview

Page 1: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

(Implementations of)verifiable computation and

succinct arguments: survey and wishlist

Michael Walfish

NYU

Page 2: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

The motivation is 3rd party computing: cloud, etc.

Ideal requirements:

1. Efficiency (client CPU, communication, server CPU)

2. Privacy of w (desirable in some applications)

3. Practicality (as real people understand the term)

“f”, x

y, short proofclient

(verifier)

server (prover)

without executing f,can check that: “y =

f(x)”

GMR85BCC88

Kilian92Micali94

BG02GOS06IKO07

GKR08GGP10

Groth10Lipmaa12

GGPR12BCCT13

more generally: “prover knows w s.t. y = f(x,w)”

Page 3: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

Good news:

Bad news:

Running code; cost reductions of 1020 vs. theory

Compilers from C to verifiable computations

Stateful computations; remote inputs, outputs

Concretely efficient verifiers

Small computations, extreme expense, etc.

Useful only for special-purpose applications

SBW11CMT12

SMBW12TRMP12

SVPBBW12SBVBPW13

VSBW13PGHR13

Thaler13BCGTV13

BFRSBW13BFR13

DFKP13BCTV14aBCTV14b

BCGGMTV14FL14

KPPSST14FGV14

BBFR14WSRHBW15

CFHKKNPZ15CTV15

SOSP (!)

Page 4: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

(1) Summary of state of the art

(2) Reality check

(3) Next steps

This talk

Page 5: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

back-end(probabilistic proof

protocol)

front-end(program translator)

Common framework in state of the art systems:

arithmetic circuit

(non-det. input)

central construction

: QAPs [GGPR12]

x y, π

main(){ ...}

C program

prover

verifier

interactive argument [IKO07]

non-interactive argument [Groth10, Lipmaa12, GGPR12]

interactive proof [GKR08]

Page 6: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

proververifier

Attempt 1: Use PCPs that are asymptotically short[ALMSS92, AS92]

... ...

ACCEPT/REJECT

...

“short” PCP

[BGHSV05, BGHSV06, Dinur07, BS08, Meir12, BCGT13]

This does not meet the efficiency requirements (because |PCP| > running time of f).

Page 7: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

hash tree digest

Attempt 2: Use arguments or CS proofs[Kilian92, Micali94]

proververifier

...

ACCEPT/REJECT

“short” PCP

But the constants seem too high …

Page 8: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

provercommit request

commit response

q1v q2v q3v

L() = <,v>

Attempt 3: Use long PCPs interactively[IKO07, SMBW12, SVPBBW12]

Achieves simplicity, with good constants …

… and prover’s work is quadratic; address that shortly

ACCEPT/REJECT

z ⊗ z

z

v

queries: q1, q2, q3, …

verifier

Hadamard encoding of v

...

… but pre-processing is required (because |qi|=|v|)

Page 9: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

prover

E(q1v) E(q2v) E(q3v)

L() = <,v>

Attempt 4: Use long PCPs non-interactively[BCIOP13]

ACCEPT/REJECT

z ⊗ z

z

v

E(q1), E(q2), E(q3)…

verifier

Hadamard encoding of v

...

Query process now happens “in the exponent”

… prover’s work still quadratic; addressing that soon

… pre-processing still required (again because |qi|=|v|)

Page 10: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

efficient (short) PCPs

arguments,CS proofs

arguments w/ preprocessing

SNARGs w/ preprocessing

who ALMSS92, AS92, BGSHV, Dinur, …

Kilian92, Micali94

IKO07, SMBW12, SVPBBW12

GGPR12,BCIOP13, …

what classical PCP commit to PCP by hashing

commit to long PCP using linearity

encrypt queries to a long PCP

security unconditional

CRHFs linearly HE knowledge-of-exponent

why/why not not efficientfor V

constants are unfavorable

simple simple, non-interactive

Recap

(Thanks to Rafael Pass.)

Page 11: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

z

h

PCP structure implicit in GGPR. Made explicit in [BCIOP13,

SBVBBW13].

[Groth10, Lipmaa12, GGPR12]

Final attempt: apply linear query structure to GGPR’s QAPs

prover

L() { return <,v>;}

z ⊗ z

z

vquerie

s

Addresses the issue of quadratic costs.

Page 12: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

• standard assumptions• amortize over batch• interactive

• non-falsifiable assumptions• amortize indefinitely• non-interactive, ZK, …

plaintext

queries

QAPs

queries in

exponent

“Pinocchio,” “libsnark”[PGHR13, BCTV14a]

“Zaatar”[SBVBBW13]

interactive

argument[IKO07]

SNARG, zk-SNARK with pre-processing[Groth10, BCCT12, GGPR12]

All recent systems based on GGPRSBVBPW13, PGHR13, BFRSBW13, BCGTV13, BCGGMTV14, BBFR14, BCTV14a, BCTV14b, FL14, KPPSST14, WSRBW15, CFHKKNPZ15, CTV15

pre-processingavoidable in theory [BCCT13, BCTV14b, CTV15]

Page 13: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

back-end(argument variants)

front-end(program translator)

Common framework in state of the art systems:

arithmetic circuit

(non-det. input)

y, π

main(){ ...}

C program

prover

verifier

QAPs[GGPR12]

x

Page 14: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

State of the art front-ends

“ASIC”

circuit is unrolled CPU execution

Verbose circuits (costly)

Good amortization

Great programmability

Concise circuits

Amortization worse

How is programmability?

“CPU”

each line translates to gates[SBVBPW13, VSBW13, PGHR13,

BFRSBW13, BCGGMTV14, BBFR14, FL14, KPPSST14, WSRBW15,

CFHKKNPZ15]

[BCGTV13, BCTV14a, BCTV14b, CTV15]

C prog MIPS.exe

CPU state

fetch-decode-execute

C prog

Page 15: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

applicable computations

concretecosts special-purpose pure stateful

general loops

function pointers

lower ThalerCRYPTO13

CMT, TRMPITCS, Hotcloud12

Pepper, GingerSMBW NDSS12SVPBBW Security12Trueset, ZerocashKPPSST Security14, BCGGMTV Oakland15

ZaatarSBVBPW Eurosys13

PinocchioPGHR Oakland13

GeppettoCFHKKNPZOakland15

Pantry BFRSBW

SOSP13

BuffetWSRHBW NDSS15

higher

highest(still theory)

Front-ends trade off performance and expressiveness

better

Proof-carrying dataBCTV CRYPTO14, CTV Eurocrypt15

BCTVSecurity14BCGTVCRYPTO13

ASIC

CPU

?

[Your work here! ]

Page 16: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

Summary of common framework:

back-end(argument variants)

front-end(program translator)

y, π

main(){ ...}

prover

verifier

QAPs[GGPR12]

x

“ASIC”

“CPU”

Page 17: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

(1) Summary of state of the art

(2) Reality check

(3) Next steps

Page 18: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

Quick performance study

Back-end: BCTV’s optimized GGPR/Pinocchio implementation

Front-ends: implementations or re-implementations of

Zaatar (ASIC) [SBVBPW Eurosys13]

BCTV (CPU) [Security14]

Buffet (ASIC) [WSRHBW NDSS15]

Page 19: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

applicable computations

concretecosts special-purpose pure stateful

general loops

function pointers

lower ThalerCRYPTO13

CMT, TRMPITCS, Hotcloud12

Pepper, GingerSMBW NDSS12SVPBBW Security12Trueset, ZerocashKPPSST Security14, BCGGMTV Oakland15

ZaatarSBVBPW Eurosys13

PinocchioPGHR Oakland13

GeppettoCFHKKNPZOakland15

Pantry BFRSBW

SOSP13

BuffetWSRHBW NDSS15

higher

highest(still theory)

better

Proof-carrying dataBCTV CRYPTO14, CTV Eurocrypt15

BCTVSecurity14

BCGTVCRYPTO13

Landscape of front-ends (again)

Page 20: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

Quick performance study

Back-end: BCTV’s optimized GGPR/Pinocchio implementation

Front-ends: implementations or re-implementations of:

Zaatar (ASIC) [SBVBPW Eurosys13]

BCTV (CPU) [Security14]

Buffet (ASIC) [WSRHBW NDSS15]Evaluation platform: cluster at Texas Advanced Computing Center (TACC)

Each machine runs Linux on an Intel Xeon 2.7 GHz with 32GB of RAM.

Page 21: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

(1) What are the verifier’s costs?

(2) What are the prover’s costs?

(3) How do the front-ends compare to each other?

(4) Are the constants good or bad?

Proof length 288 bytes

V per-instance 6 ms + (|x| + |y|) ・ 3 µs

V pre-processing |C| ・ 180 µs

P per-instance |C| ・ 60 µs +|C|log |C| ・ 0.9µs

P’s memory requirements O(|C|log|C|)

(|C|: circuit size)

Page 22: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

Extrapolated prover execution time, normalized to Buffet

How does the prover’s cost vary with the choice of front-end?

Page 23: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

Extrapolated prover execution time, normalized to native execution

All of the front-ends have terrible concrete performance

Page 24: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

approach ASIC CPU ASIC

m × mmat. mult 215 7 215

merge sortm elements

256 32 512

KMP str len: msubstr len: k

m=320,k=32

m=160,k=16

m=2900,

k=256

Zaatar BCTV Buffet

The data reflect a “gate budget” of ≈107 gates.

Pre-processing costs 10-30 minutes; proving costs 8-13 minutes

The maximum input size is far too small to be called practical

Page 25: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

Summary of concrete performance

Front-end: generality brings a concrete price (but better in theory)

Verifier’s “variable costs”: genuinely inexpensive Verifier’s “pre-processing”: depends on your perspective Prover’s computational costs: near-total disaster

Memory: creates scaling limit for verifier and prover

Alternatives? Proof-carrying data [BCCT13, BCTV14b, CTV15]: better in

theory, but most concrete costs are orders of magnitude worse

GKR-derived systems [CMT12, VSBW13, …]: great verifier performance; some expressivity limitations

Page 26: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

Where do we go from here?

One option: target domains where prover cost is tolerable

Anonymity for Bitcoin: Zerocash [BCGGMTV Oakland14]

Location-private tolling [PBB Security09]: Pantry [BFRSBW SOSP13]

Another option: try to motivate theoretical advances

Page 27: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

(1) Summary of state of the art

(2) Reality check

(3) Next steps

Page 28: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

What we need:

What we are less worried about:

1000x improvements in prover performance … … and verifier’s pre-processing costs (ideally)

Inexpensive handling of state … … and more generally, “the outside world”

Standard assumptions (ideally)

Non-interactivity (depending on the application)

Pre-processing (if costs are reasonable)

Succinctness (proof can be bigger, verifier can work harder)

Page 29: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

Wishlist (1)

Probabilistic proof protocols that do not require circuits

More efficient reductions from programs to circuits

Variant: special-purpose algorithms for outsourcing pieces of computations, which integrate with circuit verification

Page 30: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

Wishlist (2)

Endow IKO’s arguments with more properties or lower costs Reuse the pre-processing work beyond a batch Make the protocol zero knowledge Enhance efficiency via stronger assumptions and/or

analysis

Construct short PCPs that are efficient and simple

Improve GGPR’s QAPs or the cryptography used to query it (disclaimer: the status quo represents massive progress!)

Apply and possibly develop special-purpose proof systems for cryptographic operations (to accelerate verifier via offloading)

Lots of other ideas needed; we don’t know what they are!

Page 31: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

Conclusion and take-aways

Exciting area, with good news and bad news:

Lots of progress, but …

… “it’s been implemented” != “it’s plausibly deployable”

Overhead rooted in circuit representation and QAPs

Theoretical breakthroughs are needed

Incentive: the potential is huge!

(http://www.pepper-project.org)

Page 32: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

Appendix Slides

Page 33: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

Makes usage assumptions or targets particular computations:

Replication [Castro-Liskov, Malkhi-Reiter], trusted hardware [Chiesa-

Tromer ICS10, Sadeghi et al. TRUST10], auditing [Haeberlen et al. SOSP07, Monrose et al. NDSS99]

Special-purpose [Freivalds MFCS79, Golle-Mironov RSA01, Sion VLDB05, Michalakis et al. NSDI 07, Karame et al. ICIS09, Benabbas et al. CRYPTO11, Boneh-

Freeman EUROCRYPT11, Fiore-Gennaro CCS12, Blanton et al. TISSEC13, ….]

General but not geared toward practice:

Use fully homomorphic encryption [Gennaro et al., Chung et al. CRYPTO10]

Proof-based verifiable computation [Babai85, GMR85, BCC88, BGKW88, BFL90, BFLS91, FGLSS91, LFKN91, Shamir91 ALMSS92, AS92, Kilian92, Micali00, BGHSV04, BGSHV05, BS06, IKO07, GKR08, BCCT12, BCCT13, …]

Prior work on verifiable computation

Page 34: (Implementations of) verifiable computation and succinct arguments: survey and wishlist Michael Walfish NYU

A number of projects have produced experimental results

Pepper, Ginger, Zaatar,Allspice, Pantry, Buffet

HOTOS11NDSS12

SECURITY12EUROSYS13OAKLAND13

SOSP13NDSS15

CMT ITCS12Thaler et al. HOTCLOUD12

Thaler CRYPTO13

CMT, Thaler

GGPR, Pinocchio GGPR EUROCRYPT13Parno et al. OAKLAND13

BCGTV, BCTV BCGTV CRYPTO13BCTV SECURITY14