|
Post by isekai on Mar 3, 2023 1:32:31 GMT -7
In this section we introduce Isekai and then we illustrate our implementation of our Bitcoin sanitizer that uses Isekai. A. Isekai
Our implementation is based on Isekai, a versatile framework for verifiable computation. Isekai allows to transform a C/C++ program into a set of R1CS constraints, an internal representation for many SNARKs/STARKs. Moreover, Isekai offers an interface to several SNARK/STARK systems like the SNARK of [22], Bulletproof [23] and Aurora [18] allowing to invoke the prover and the verifier of such system in a black-box way.
Usage: Isekai can generate a proof of the execution of a C/C++ function. The C/C++ function must have one of the following prototypes:
void outsource(struct Input *input, struct
NzikInput *nzik, struct Output
*output);
void outsource(struct Input *input, struct
Output *output);
void outsource(struct NzikInput *nzik,
struct Output *output);
The variables input and output are public parameters and the variable nzik is the private input. The inputs are provided in an external file with the same name of the C/C++ program but with extension .in. With the option --r1cs the R1CS files are generated from the .in file and then with these R1CS files it is possible to generate the proof using the --prove option. The proof is verified using the --verif option. The specific SNARK/STARK scheme is chosen using the option --scheme.
|
|