#note #book #pazk
- Examples of using randomness to create a proof: same file check, Freivalds algorithm for Matrix Mult.
- Important properties to understand how to check: Completeness, Soundness, Communication cost, Cost to compute
Chapter focuses on 2 examples of verifiable computation.
A naive approach might be for Alice to send her n-byte file to Bob, and bob to do something like:
$ cmp myFile aliceFile
Problems:
- Alice trusts Bob
- Alice send all n bytes
- Bob gets Alice's file, even if he didn't have it
Alice sends the hash of her file,
Now Alice only sends a constant number of bytes, not the whole file, and Bob can't recreate the file from Alice's message.
Problems:
- Alice still trusts Bob to do the comparison
- If Bob wants to convince Carol that they share the same file, he can lie, and just pass along the hash he got from Alice
Alice and Bob independently select random hashes (not the same hash). Alice sends Bob the hash of her message, and what the hash is, Bob does likewise with his hash.
Alice now no longer has to trust that Bob tells her something honestly, but...
Bob could still be passing along a hash he got from someone else (and so could Alice). There's also added communication complexity here for Alice and Bob to describe their hash.
Alice needs to randomly select a hash function,
$h$ -
$h(file_{alice})$ Bob will check: -
$h(f_a) == h(f_b)$ ? False -> Bob's file is different from Alice's, outputNOT-EQUAL
. True: do the other thing.
This can be repeated in the opposite direction as with the prior protocol to convince Alice that Bob has the same file.
Note that if Alice and Bob share a trusted source of randomness, all is well and good BUT AGAIN, Bob might have sent Alice a hash that he got from someone else (bad), so each party would have to prove that they did in fact choose a random hash, or else, add an initial step to challenge the other party to use a particular hash function.
We want to show things. What things matter to show, when talking about VC's?
- Completeness
- Soundness
- Communication cost
Completeness follows naturally, as it usually will. If Bob does honest stuff, Alice will be convinced.
Soundness: The book chooses a particular class of hash function, but the problem reduces to: How likely is it that Bob can guess a hash collision with Alice's input?
So choose a hash function with a sufficiently large digest, and the probability will be low.
Communication cost
Alice sends a hash function and a hash function evaluation. If these are elements in some field
Brief note: The above checks are the most important thing to internalize about this chapter. We check an algorithm's effectiveness by checking how well it posseses desireable properties, which in this case were soundness, completeness, and communication cost.
Given 2
How do?
- Verifier says, "hey prover, what's AB?"
- Prover says, "C"
- Verifer randomly selects r, calculates a vector:
$x=(r,r^2..,r^n)$ Checks that:
If Prover computed C correctly,
Noting that the product of the vector and a matrix is an O(n^2)
operation.
Soundness, Completeness, Communication Cost, cost to compute.
Completeness was just shown.
Cost to compute: described above, the Prover makes no modification to computing C, and may compute in any way.
The Verifier runs two O(n^2)
checks, which is a plausible improvement over one O(n^(2.4))
evaluation.
Soundness
What's the probability that a cheating prover gets lucky? Eg, suppose some row,
Optimistically, this probability is
Communication complexity
The Verifier sends 2 n x n matrices, so