У Вікіпедії наводиться такий приклад. Розглянемо повну проблему coNP UNSAT: надаючи CNF на змінних, ми хочемо переконати перевіряючий факт, що не підходить. Арифметизуємо до многочлена і вибираємо велике просте . Нехай
Протокол діє таким чином:φнφφpq
р (х1, … ,хк) =∑хk + 1= 01⋯∑хн= 01р (х1, … ,хн) .
- Доказ надсилає верифікатору просте , а останній перевіряє, що є простим.q∈ (2н,2n + 1)q
- Довідка надсилає перевіряючий . Перевіряльник перевіряє, що , і надсилає доказ випадковий .p ( z) ∈Zq[ z]p ( 0 ) + p ( 1 ) = 0r1
- Довідка надсилає перевіряючий . перевіряє, що , і надсилає доказ випадковий .р (r1, z) ∈Zq[ z]р (r1, 0 ) + p (r1, 1 ) = p (r1)r2
- Врешті-решт верифікатор отримує і перевіряє, чи має він правильне значення, безпосередньо оцінюючи .р (r1, … ,rн) ∈Zqp
Оскільки ступінь невелика порівняно з , якщо доказчик обманює, то перевіряючий, ймовірно, її зловить (див. Вікіпедію для доказу, або опрацюйте її самостійно, використовуючи лемму Шварца-Зіппеля).pq