- Evaluate the mechanics of ZKP using the gnark kit in a local golang context
- Business flow tested: Proof to be a recipient of an OTC trade
- Setup and release 1 constraint system
- Create public- and private witness
- Run function in golang to proof the recipient is part of a given OTC identified by transactionID
- Demonstrate implementation and deployment of an Ethereum smart contract to verify on-chain
- generate verify function and deploy to chain
- setup proof using private key and private witness
- convert proof and public witness (hash of member slice) to solidity data-types
- call the on-chain version of verify function
- Rebuild POC in Dusk/Plonk
- (optional) test other networks/alternatives.
- this starts with the identification of suitable alternatives given the experiences with gnark and dusk.
go run cmd/poc/main.go circuit
solc --abi ./registry-contract/contracts/Verifier.sol
export GO111MODULE=on export GOPATH= export GOROOT= export GOBIN=
go mod download
go mod tidy
make byteslice_init
make byteslice_chain
➜ zkp git:(master) ✗ git status
modified: cmd/poc/byteslice/circuit/wrapper.go
modified: registry-contract/contracts/Verifier.sol
cd ./registry-contract
truffle compile
cd ./registry-contract
truffle migrate
#tests located in registry-contract/test/
cd ./registry-contract
truffle test
yarn --cwd client install
yarn --cwd client start