Jorrit had previously built private voting based on Tornado Cash (Token mixer on ETH) and realized that Ethereum's high fees block out most privacy use cases. The high fees mean that it's only worth it to move thousands of dollars of assets at a time. Tornado Cash fees average ~$100+ per private transaction.
We noticed a huge opportunity in building the first token mixer on Solana. Solana's low fees mean that private transactions cost only a few cents. Low fees mean that suddenly many new use cases for private transactions become feasible. (Private voting, private trading strategies, ...).
We want the Solana ecosystem to have that. That's why we've built it.
What it does
Light Cash is a token mixer that enables private transactions on Solana.
Users can transfer tokens without an on-chain link between sender and recipient.
The protocol breaks the on-chain link by using a zero-knowledge proof.
Executing a private transaction costs only ~$0.07. That's about 1000x cheaper that similar products on ETH.
The user journey consists of 2 steps: deposit and withdrawal:
- User deposits 1 SOL to the program
- User receives a unique deposit note in return
- User uses her deposit note to create a proof client-side
- User sends the proof and a recipient address to a relayer
- Relayer forwards the withdrawal request to the program
- Program verifies zero knowledge proof and transfers SOL to the recipient address
- Relayer receives fee
The entire process is non-custodial so users stay in control of their funds.
How we built it
First, we had to find a cryptography library that compiles on Solana`s runtime.
We now use the arkworks library for both the zero knowledge proof system (Groth16) and the hash function (Poseidon Sponge).
We split the libraries up into a total of 4755 instructions so that they run within the Solana compute and memory budget.
We've put extra thought into building the simplest UX possible. Even crypto beginners should feel comfortable making private transactions.
We're live on devnet. The app verifies the zero knowledge proof completely on-chain!
What's next for Light
Implementing relayers and fees*
*At the time of writing, we're yet to add relayer nodes that will sign transactions on behalf of the user's wallet. That means currently the user's wallet signs both deposit and withdrawal transactions. This is a minor addition and isolated from the core product of verifying zk proofs on Solana, yet obviously needed for true privacy.
Privacy SDK for Solana ecosystem
We'll refactor Light cash into an SDK that developers can use in their own Solana applications.(Think of a Solana DEX or wallet with integrated "Private transfer" button, private voting for DAOs, etc.)
And much more...
Log in or sign up for Devpost to join the conversation.