As far as I understand, the goal of Vamp-IR is to be able to use complicated circuits in a simple way. I would like to have a practical example with a "complicated" circuit. For example, we can consider a hash function circuit, very useful for ZK proofs applications. Depending on your curve system, you can use Poseidon over:
the scalar field of bls12_381 using ZK-Garage implementation,
The circuit can be designed differently depending on the implementation. For example it could either compute the hash and output it as a variable, either (given input and output) check that output is the hash of input. Using Vamp-IR, the user doesn't care about this implementation detail and is able to create the circuit in a simple way like:
// this is vamp-ir code
output = Poseidon(input)
(somewhere, the user needs to decide on the backend: Zcash or ZK-Garage)
My questions:
Can we already do this kind of example with Vamp-IR?
As far as I understand, the goal of Vamp-IR is to be able to use complicated circuits in a simple way. I would like to have a practical example with a "complicated" circuit. For example, we can consider a hash function circuit, very useful for ZK proofs applications. Depending on your curve system, you can use Poseidon over:
bls12_381
using ZK-Garage implementation,vesta
using Zcash implementation.The circuit can be designed differently depending on the implementation. For example it could either compute the hash and output it as a variable, either (given
input
andoutput
) check thatoutput
is the hash ofinput
. Using Vamp-IR, the user doesn't care about this implementation detail and is able to create the circuit in a simple way like:(somewhere, the user needs to decide on the backend: Zcash or ZK-Garage)
My questions: