Я читаю это объяснение zkSnark, написанное Максимом Петкусом - http://www.petkus.info/papers/WhyAndHowZkSnarkWorks.pdf
Используемый здесь пример состоит в том, что существует многочлен степени 3, который, как известно верификатору, имеет корни 1 и 2.
Весь полином есть $р(х)$
Целевой полином $т(х) = (х-1)(х-2)$.
3-й корень происходит от $ч(х)$, то есть если третий корень равен 3, то $ч(х) = (х-3)$.
И $р(х) = h(х). т(х)$.
Таким образом, кажется, что секрет, который доказывающий доказывает проверяющему, заключается в его знании $ч(х)$
Однако в глубине руководства, в разделе 3.6, где автор добавляет к протоколу неинтерактивность, он говорит следующее.
До этого момента у нас была интерактивная схема с нулевым разглашением. Почему
что по делу? Поскольку доказательство справедливо только для исходного
верификатор, никто другой (другие верификаторы) не может доверять тому же доказательству
поскольку:
верификатор может вступить в сговор с проверяющим и раскрыть эти секретные параметры $s$, $\альфа$ что позволяет подделать доказательство, как упоминалось
в примечании 3.1
проверяющий может сам генерировать поддельные доказательства по той же причине
верификатор должен хранить $\альфа$ и $т(с)$ пока все соответствующие доказательства не будут проверены, что дает дополнительную поверхность для атаки с возможным
утечка секретных параметров
я понимаю как $\альфа$ является секретом и нуждается в защите, но почему $т(с)$ должна быть защищена - в интерактивной версии это было известно как доказывающему, так и верификатору, так почему же при добавлении неинтерактивности в протокол $т(с)$ вдруг станет тайной?