Для упрощения ECVRF, описанный в черновик-irtf-cfrg-vrf-02 будет использовать пару ключей $(х, Y=xG)$ и принять вход $\альфа$. Он вернется $P = xH$, куда $H = H_p(Y \mathbin\|\alpha)$, а также основанное на Шнорре доказательство дискретно-логарифмической эквивалентности (DLeq), демонстрирующее, что $P$ использует один и тот же закрытый ключ $х$ с $Y$ на генераторных точках $Ч$ и $G$ соответственно. Таким образом, это доказывает, что $P$ был правильно рассчитан как $xH$. $H_p()$ означает создание хэша, приводящего к точке EC, что в связанном документе называется $\texttt{ECVRF_hash_to_curve}$. $G$ относится к известной базовой точке кривой.
модифицированный $\texttt{ECVRF_prove}$ Функция может быть создана для целей создания обязательства. Он выберет единый случайный фактор ослепления $b$, и вернется $B = bG$ и $P' = х(Н+В)$ вместо $P = xH$. Он вернет доказательство DLeq, которое продемонстрирует, что $P'$ использует один и тот же закрытый ключ $х$ с $Y$ на генераторных точках $(Н+В)$ и $G$ соответственно, и таким образом доказать, что $P'$ был рассчитан, как и ожидалось.
модифицированный $\texttt{ECVRF_verify}$ функция может быть создана для проверки обязательства. Это займет $В$ в качестве дополнительного аргумента, чтобы можно было проверить, работает ли доказательство DLeq с генератором $(Н+В)$ вместо $Ч$.
После этой модифицированной проверки верификатор точно знает, что $P' = x(H+B) = xH + xB$. С $х$ является закрытым, верификатор не может вычислить $xB$ для определения зафиксированной стоимости $xH$. Это также означает, что проверяющий не может попытаться выяснить, является ли это обязательством перед каким-либо конкретным $xH$ стоимость.
Доказывающий может открыть обязательство, раскрывая $xB$ и предоставление DLeq доказательства того, что $xB$ и $Y$ использовать один и тот же закрытый ключ $х$ на генераторных точках $В$ и $G$ соответственно. Поскольку проверяющий точно знает, что $P'==x(H+B)$, а также точно знает, что $xB$ вычисляется правильно (благодаря доказательству DLeq), проверяющий точно знает, что правильное значение $xH$ можно рассчитать как $P'-xB$.
$xH$ значение, которое было зафиксировано, будет идентично $xH$ значение, которое было бы получено исходным немодифицированным $\texttt{ECVRF_prove}$ функция.
Обратите внимание, что после того, как обязательство открыто, верификатор может использовать только измененное $\texttt{ECVRF_verify}$ функция проверки правильности значения $xH$ был предоставлен. Если по какой-либо причине проверяющему требуется отдельное доказательство, которое можно использовать с исходным неизмененным $\texttt{ECVRF_verify}$ функция, это дополнительное доказательство может быть предоставлено доказывающей стороной одновременно с открытием обязательства.