Я не могу найти этот конкретный пример $x^3 – 7x^2 + 12x$ в связанном документе. Но я думаю, что вы несколько ответили на свой вопрос здесь:
Здесь доказывающий знает многочлен степени 3, 2 решения многочлена равны 3 и 4. Он должен доказать проверяющему, что он знает такой многочлен, не раскрывая проверяющему третье решение.
Это именно то, что он пытается доказать здесь - что он знает многочлен степени 3, который имеет решения 3 и 4. Доказательство знания такого многочлена не относится к одному единственному многочлену - таких многочленов степени 3 с корнями несколько. 3 и 4. Все доказательство доказывает знание один из них.
Если доказывающая сторона не знает фактического многочлена (т. $x^3 – 7x^2 + 12x$), но просто выбирает какое-то случайное третье решение, т.е. $х = 2$ И он продолжает выполнять описанные выше шаги протокола, как описано, он все равно будет проверять с помощью верификатора.
Это связано с тем, что знание полинома такое же, как знание его корней - единственный полином степени 3 с корнями 3, 4 и 2 - это $(х-2)(х-3)(х-4)$. Таким образом, доказывающий все еще доказывает, что он знает многочлен степени 3 с корнями 3 и 4, даже если это не так. $x^3 – 7x^2 + 12x$. В этом случае они «знают» многочлен $(х-2)(х-3)(х-4)$ вместо.
Следует подчеркнуть, что этот документ постепенно расширяется до более интересных приложений. Этот протокол доказательства знания полинома — всего лишь строительный блок, и сам по себе он может показаться немного бесполезным. Но позже в документе объясняется, как можно использовать это «Знание полинома», например, в разделе 4.4 и далее. Обычно это происходит потому, что нас на самом деле заботит только то, что многочлен имеет определенный набор корней (что соответствует определенным условиям, в которых доказывается вещь при нулевом знании).