Lohko wins BNB Chain challenge at Junction 2022
Published: November 8th 2022
This past weekend we were participating in Europe's biggest hackathon, Junction. After a couple of days of hard work, our app was chosen as the winner for a challenge sponsored by BNB Chain!
Junction is a yearly hackathon event that brings together builders from all over the world. This year the event gathered over 1300 participants to compete in different challenges. The event was organized at the Aalto University campus here in Finland, so we thought we’d do something different this weekend and join a hackathon for the first time ever.
The event had multiple challenges to choose from, but we were only interested in the ones related to web3. We ended up choosing the BNB Chain challenge, “The Road Towards Society 2.0”.
Our task was to “design privacy-first Soulbound tokens leveraged by Zero-Knowledge Proof where minimum required information associated with the wallet is shared with the verifier” while making sure that the SBT metadata is not exposed to the public nor stored off-chain.
We wanted to build a service that would allow Binance’s users to verify their personal data on-chain without needing to publicly share it. Since Binance’s users have already verified a bunch of information about themselves when signing up for the trading platform, the validity of the data is already taken care of.
An example of a real-world use case would be signing up for an event that requires participants to be at least 18 years old. For such an event, by leveraging zk-SNARK technology through our portal users can generate zero-knowledge proofs of their personal data and then store the proofs on-chain as Souldbound Token (SBT) metadata. These proofs can then be used by the event organizer’s smart contracts to verify that users are over 18 years old without knowing their specific date of birth.
Our app could also be used to generate proofs for any other data Binance has verified about the user, such as name, nationality, country of residence… all without sharing it with outsiders!
Zero-knowledge proofs can be created with a variety of techniques that are constantly developing. We chose SNARK (Succinct Non-Interactive ARgument of Knowledge) proofs, more specifically PLONK proving system for our app. “Succinct” zero-knowledge proofs can be verified within a few milliseconds, with a proof length of only a few hundred bytes even for statements about programs that are very large. “Non-interactive” means that the proof can be independently verified without the prover’s involvement. Using the user’s sensitive data, we can generate a proof that hides the user’s data but allows anyone to verify attributes of the data on-chain by calling our public verifier smart contracts. SNARKs are cheap to store on-chain due to their small size and also fast & cheap to verify so using them in your project won’t drive the function’s gas usage too high.
For the front-end, we built a simple SBT portal for generating proofs and a demo app for claiming an imaginary afterparty pass that required you to verify your age. The web technology stack we used was Nextjs (TypeScript), Tailwind CSS, wagmi and ethers.js.
See our solution on Github →
After two days of intense coding, we were excited to hear the results on Sunday and were super happy when our app was announced as the challenge winner chosen by the BNB Chain team! They mentioned that our solution was a great example of leveraging zk-proofs and was exactly what they were looking for in the challenge. After the closing ceremony we had a chance to talk with the team a bit and get some photos with them, which was cool. They told us that the photos would be posted on social media, but we haven’t seen anything yet, so here’s one of just us two posing at the booth after being announced as the challenge winners:
Despite not even reaching the final for the main event, we’re super stoked for the recognition we got from the BNB Chain team (and the 2500€ prize money of course)! We kind of suspected that our niche app may not be too popular in the peer reviews since the technology is unfamiliar to most, and definitely think that the right team won the main event (we also voted for them).
It was an amazing learning opportunity about the culture of hackathons, creating clear and concise presentations of your code and peer reviewing other teams’ projects.
Now we’re back to building client projects and keeping an eye out for any future hackathons where we could take on a web3 challenge!