Seeking a greater challenge as a Software Engineer in Hong Kong, Marek Narozniak decided to leave his job to work on topological quantum computing while also pursuing a Ph.D. in Physics at New York University. When his ex-colleague, Vimukthi Wickramasinghe, told him about Mina, he was instantly drawn because of his works’ similarities to programming Mina zk-SNARKs — calling it “a different and exotic paradigm of computation.”
They then teamed up to join the Spring 2022 zkApps Builders Program, helping to further build out the Mina developer ecosystem and experience. Learn more about Marek and his first zero knowledge smart contract, LendApp. (Interview has been edited for clarity).
Tell us about the zkApp you and Vimukthi (aka Vim) built together.
Initially, we wanted the app to be based on signed strings (like letters from the bank) but there was no string type so we moved to serialized objects. Eventually, we adjusted the design to fit what o1js (formerly SnarkyJS) offers and it worked.
What did you enjoy most about your zkApp building journey?
When I first joined the zkApp Builders Program, I was completing my Ph.D. and hesitating if I should start my own venture to live off building my own ideas. The program gave me a huge confidence boost to go in that direction!
Everyone was open-minded and the zkApp core developers dedicated a lot of time and resources to help us so that we could all finish our projects. In the process, I learned a lot about designing off-chain contracts and all of the program participants inspired many new ideas that I think about currently.
Were there any challenges you faced while building LendApp?
Of course, plenty! Minor challenges like debugging as well as very complicated problems such as how to design the zk-SNARK circuit. The entire project was one big and exciting challenge.
What is the next step for your zkApp now?
Vim and I built a proof of concept, which is accessible and anybody is welcome to pick up from where we left off. I would be open to continuing to work on it, but I am also interested in working on another project idea that I have in mind. I am looking for a grant — let’s keep our fingers crossed!
If you’d like to support me in my future Mina projects, please consider nominating me for a grant here.
Why are you excited about Mina?
When I was at the beginning of my programming journey, I felt fascinated by computing devices and honestly, was very jealous of my elder colleagues who learned programming on more primitive computers. Lack of resources, scarce computing power, and memory were motivating them to come up with more clever designs while those in my generation are spoiled and allowed to waste huge amounts of those resources on simple ‘Hello World’ programs.
When I started to work with zkApps I felt like one of those people who had to deal with those weak computers many years ago. They struggled with limited processor cycles and memory and zkApp builders also need to optimize their designs as resources for zk-SNARKs improve over time. This is new and fresh technology and I am excited that I am one of the first people to explore its potential.
What is your dream ZK use case or app?
A completely decentralized national ID oracle system. It would allow people to produce digital signatures associated with cryptographic proof of having a valid national ID. I want this system to not require a trusted setup (apart from the Government issuing the ID) and for it to be immune to Sybil attacks (by requiring to burn value to produce a verification).
This kind of project could have a huge social impact and I believe zk-SNARKs are the perfect tool to build it. For instance, people could independently produce polls showing their attitude towards current policies and independently show election data that cannot be centrally manipulated by people counting votes.
You can join Marek on his zkApps journey by getting on the zkApps Beta Testers Leaderboard where you’ll learn the basics of building ZK smart contracts by completing zkApp test challenges for points. To provide a better experience, participation is being opened up in waves – sign up to join the zkApps Beta Testers Leaderboard now
About Mina Protocol
Mina is the world’s lightest blockchain, powered by participants. Rather than apply brute computing force, Mina uses advanced cryptography and recursive zk-SNARKs to design an entire blockchain that is about 22kb, the size of a couple of tweets. It is the first layer-1 to enable efficient implementation and easy programmability of zero knowledge smart contracts (zkApps). With its unique privacy features and ability to connect to any website, Mina is building a private gateway between the real world and crypto—and the secure, democratic future we all deserve.