Общий вход: Граф . Пусть
и
.
Дополнительный вход доказывающего: Гамильтонов цикл графа .
1) Первый шаг доказывающего. Доказывающий шифрует граф с помощью ящиков. Для этого он наугад инъективно отображает маркированных вершин в маркированных ящиков , , ..., таким образом, что каждая из перестановок вершин в ящики равновероятна. Для каждой пары ящиков подготавливает ящик . Этот ящик должен содержать , если вершина, содержащаяся в ящике , смежна с вершиной, содержащейся в ящике , и 0 в противном случае. Затем все
ящиков запирает и отправляет проверяющему.
2) Первый шаг проверяющего. Проверяющий получает маркированных ящиков. Теперь ему предоставлен выбор:
(1) Если он пожелает, доказывающий откроет все ящики. В этом случае проверяющий может проверить, что ящики содержат описание графа . (Например, если вершина смежна с вершиной и с вершиной , но но не смежна ни с какими другими вершинами графа , и вершина содержится в ящике , вершина в ящике , вершина в ящике , то должна содержаться в ящиках и , и 0 в ящике для любого другого значения ).
(2) С другой стороны, если проверяющий пожелает, доказывающий откроет в точности ящиков , , , ..., , которые содержат гамильтонов цикл графа , и показать, что они все содержат . Это доказывает существование гамильтонова цикла (в любом графе, представленном в ящиках). Так как не открыты, последовательность вершин, определяющих гамильтонов цикл в графе не раскрывается.
Проверяющий наугад выбирает один из этих 2 вариантов (граф или гамильтонов цикл), и таким образом, оба варианта равновероятны.
3) Второй шаг доказывающего. Доказывающий открывает соответствующие ящики.
Шаги 1)-3) повторяются раз.
4) Заключительный шаг проверяющего. Проверяющий принимает доказательство, если доказывающий выполняет и в каждом случае правильно демонстрирует либо запрашиваемый граф , либо запрашиваемый гамильтонов цикл. В противном случае, отвергает.