Built on Light Protocol
Noir Pay will be directly built ontop of the Light Protocol SDK and provide users with a beautifully simple private payments solution via our frontend. Have you ever thought about privately paying via Solana Pay. This repo represents a fork of the light protocol program which is built as a single unfractured shielded pool for SPL tokens. This purpose of this fork is to work on local optimisations and bug testing as contribution towards the Light Protocol SDK.
First clone the repo locally.
git clone https://github.com/Lightprotocol/light-protocol-program.git
Then run these commands in order, it is important that you run the tests one after the other as this is how the functional flow of zk-PROOFs work. You cannot withdraw funds that no proof was ever generated for.
cd ./program && cargo test-bpf deposit_should_succeed
./program && cargo test-bpf withdrawal_should_succeed
Please note this will only currently work on Linux/Mac OSX environment's due to the need for the Solana Rust BPF Toolchain. - I have tested it from within WSL2 and it works there also.
The Light Protocol program verifies zkSNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) Proofs to enable anonymous transactions on Solana.
Zero-knowledge proofs verify that the owner of recipient address B has deposited tokens to a shielded pool (similar to Zcash) from another address A before. Light Protocol is trustless: the zero-knowledge proof includes meta data such as the recipient address. If this data is tampered with the zero-knowledge proof becomes invalid and the withdrawal fails.
- The implementation of the groth16_verifier is based on the arkworks libraries, mainly ark_bn254, ark_ec and ark_ff.
- The implementation of the poseidon hash is based on arkworks_gadgets.
- Light uses a circuit based on tornado_pool.
If you like to directly contact Light Protocol you can do so via their Twitter
Bounty currently @ 88 SOL [$10,500] At time of writing.
If you are a keen web3 developer and would love to build a beautiful frontend for 'Noir Pay' with integration into Solana Pay - then lets do that today! To claim / start working on this bounty please reach out to sleepdev#6905 on discord or alternatively @0xnicoj on twitter.