Пример использования «zk-SNARK» в «смарт-контракте»?

Я прочитал эту статью: https://media.consensys.net/introduction-to-zksnarks-with-examples-3283b554fc3b

Однако мне не понятна функция, подобная zksnarkverifyкоторой уже реализована в Ethereum Solidity? Или нам нужно реализовать это самостоятельно?

Есть ли API или библиотека для использования zk-SNARKалгоритмов? Такие как:

генератор открытых ключей G(program C, secret lambda) -> (prover public key, verifier public key),

или

доказывающий алгоритмP(prover public key, public x, secret w) -> proof

или

алгоритм проверки V(verifier public key, public x, proof) -> true?

где программа C(public x, secret w)С.

Ответы (1)

Единственное, что есть в солидности, это предварительно скомпилированные контракты для операций с эллиптическими кривыми.

Для реализации проверьте Существует ли децентрализованный zk-SNARK (краткий неинтерактивный аргумент знаний с нулевым знанием)?

Спасибо, но нам нужно реализовать verifier algorithm по цепочке с помощью Solidity. Как это сделать по ZoKrates? Согласно его ссылке на Github : «Это помогает вам создавать офчейн-программы и связывать их с блокчейном Ethereum».
Создание ZK Snark генерирует контракт солидности для развертывания в цепочке.