¿Un ejemplo sobre el uso de "zk-SNARK" en "contrato inteligente"?

Leí este artículo: https://media.consensys.net/introduction-to-zksnarks-with-examples-3283b554fc3b

Sin embargo, no me queda claro una función como la que ya zksnarkverifyse ha implementado en Ethereum Solidity. ¿O tenemos que implementarlo nosotros mismos?

¿Hay una API o biblioteca para usar zk-SNARKalgoritmos? tal como:

generador de claves publicas G(program C, secret lambda) -> (prover public key, verifier public key),

o

algoritmo probadorP(prover public key, public x, secret w) -> proof

o

algoritmo verificador V(verifier public key, public x, proof) -> true?

donde está el programa C(public x, secret w)C.

Respuestas (1)

Lo único que está en solidez son los contratos precompilados para operaciones de curva elíptica.

Para ver las implementaciones, consulte ¿Existe un zk-SNARK descentralizado (argumento de conocimiento sucinto no interactivo de conocimiento cero)?

Gracias, pero necesitamos implementar verifier algorithm on-chain by Solidity. ¿Cómo hacerlo por ZoKrates? Según su enlace de Github : "Te ayuda a crear programas fuera de la cadena y vincularlos a la cadena de bloques de Ethereum"
Crear un ZK Snark genera un contrato de solidez para desplegar en cadena.