This folder contains codes for our paper Scalable zkSNARKs for Sparse Matrix Computation.
Given a pairing
then the two-tier commitment
Suppose the prover has made commitments to three matrices
Then, the prover can generate a zero-knowledge proof with
For more details, refer to the math in our paper.
To run the experiment in the DualMatrix paper, run the following command:
cd /path/to/dualmatrix
cargo bench
- Rust Toolchain: 3.10.12
- Environment: Ubuntu 22.04
- util/ Utility functions for Fiat-Shamir transformation, matrix projections, and inner products.
- zkprotocols/ The zero-knowledge MatMul protocol and its sub-protocols.
The matrix-multiplication protocol contains two subprotocols:
- Matrix-projection argument
- Public-inner-product argument
The matrix-projection argument is for the following relation:
The pseudo-code for this subprotocol is as follows:
If our work benefits to your research, please cite our paper as follows:
Anonymous