Low-degree testing

(Ingredient 2 of 5 in the PCP overview.)

The issue

In the general sum-check protocol we just described, we have what looks like a pretty neat procedure, but the elephant in the room is that we needed to make a call to some oracle to evaluate a low-degree polynomial. Just one call, which we denoted , but you need an oracle nonetheless. Also, the protocol we just described was interactive; but it would be nice to make it non-interactive.

When we do PCP, the eventual plan we are going to replace both the oracle call and Peggy’s answers with a printed phone book. The phone book contains, among other things, a big table mapping every -tuple to its value that Peggy mails to Victor via Fedex or whatever. This is of course a lot of work for Peggy to print and mail this phone book. However, Victor doesn’t care about Peggy’s shipping costs. After all, it’s not like he’s reading the phone book; he’s just checking the entries he needs. (That’s sort of the point of a phone book, right?)

But now there’s a new issue. How can we trust the entries of the phone book are legitimate? After all, Peggy is the one putting it together. If Peggy was trying to fool Victor, she could write whatever she wanted (“hey Victor, the value of is at every input”) and then just lie during the sum-check protocol. After all, she knows Victor isn’t actually going to read the whole phone book.

The goal

The answer to this turns out be low-degree testing. Victor will spot-check the table of values of (which is supposed to be a polynomial), and test whether the values “look like a polynomial”.

For example, in the case where we described earlier, there is a promise that is supposed a multilinear polynomial. For example, this means that

should be true. If Victor randomly samples equations like this, and they all check out, he can be confident that is probably “mostly” a polynomial.

I say “mostly” because, well, there’s no way to verify the whole phone book. By definition, Victor is trying to avoid reading. Imagine if Peggy makes a typo somewhere in the phone book — well, there’s no way to notice it, because that entry will never see daylight. However, Victor also doesn’t care about occasional typos in the phone book. For his purposes, he just wants to check the phone book is 99\% accurate, since the sum-check protocol only needs to read a few entries anyhow.

The procedure — the line-versus-point test

This is now a self-contained math problem, so I’ll just write the statement and not prove it (the proof is quite difficult). Suppose is a function and we want to see whether or not it’s a polynomial of total degree at most .

The procedure goes as follows. The prover prints out two additional posters containing large tables and , whose contents are defined as follows:

The verifier then does the obvious thing: pick a random point , a random line through it, and check the tables and are consistent.

This simple test turns out to be good enough, though proving this is hard and requires a lot of math. But the statement of the theorem is simple:


Theorem (The line-versus-point test):

There are absolute constants such that:

Let be an integer. Suppose the tables and pass the line-versus-point test with probability at least .

Then there in fact does exist a polynomial of degree at most , such that


So to check the tables, Victor just has to run the line-versus-point test a large number of times – say . Take so small that . Then either the table agrees with some polynomial at 99\% of values, or a single iteration of the line-versus-point test will fail with probability . Now take so large that . If there is no polynomial – if Peggy is cheating – then running the line-versus-point test times will catch Peggy with probability 99\%.