Inspiration
The current AI boom excelled by chatGPT, we wanted to bring neural networks to the blockchain.
What it does
It uses a zero-knowledge proof that the user has a picture that authorises him/her to do something on the blockchain
How we built it
- We generate a random number with Chainlink vrf function.
- We make a picture of our (secret) handwritten digit corresponding to the random number.
- We locally generate a proof with the digit as private input and the random number as public input. If the proof is valid we know a secret picture corresponding to the random number.
- We use the proof and the number as input to withdraw all ETH from the contract.
Challenges we ran into
As ZoKrates only support unsigned fields, and max 64 bit unsigned integer we had to conjure a fixed precision field combined with a boolean for the sign (see zokrates/signed_field.zok in the repo).
Accomplishments that we're proud of
We showed it is possible to bring neural networks to the blockchain safely without the cost of storing all parameters or the gas to do any matrix multiplications.
What we learned
We learned how zero-knowledge proofs work and how they can be used efficiently to replace long running, computationally intensive operations in a private safe manner.
What's next for ZkNeuralNetwork Authenticator
We can implement Facial Recognition on the blockchain in a cheap way, where the transaction will be public input and the picture private input to the zokrates prover. That way the image will not reach the blockchain itself.
Log in or sign up for Devpost to join the conversation.