Как связать подпись Mina с конкретной операцией zkApp

Подпись o1js удостоверяет упорядоченный массив полей. Проверяющая схема должна воспроизвести этот массив и наложить ограничение на полученное логическое значение.

Подпишите контекст и полезные данные

Пусть один ключ одобряет голоса в двух независимых выборах. Если подписан только вариант ответа, подпись пройдёт везде с таким же кодированием ответа. Согласуйте константу области, номер голосования, кодирование выбора и nonce. Подготовьте контрольный пример и убедитесь, что перестановка полей нарушает проверку.

const message = [domain, electionId, choice, nonce];
signature.verify(voterKey, message).assertTrue();

Зафиксируйте результат и использование nonce

Вызов verify возвращает доказуемое значение Bool. Потребуйте его истинности и получите допустимый открытый ключ из доверенной политики. Для однократного действия проверьте и обновите nonce в одном переходе состояния. Корректная подпись может повторно сработать в исходном контексте, пока nonce не использован.

Источники