ZK Hack Istanbul

On Nov 10-12, we hosted our 2nd ZK Hack IRL hackathon in Istanbul. We wanted to share a short post with you to summarize how it went!

Friday, Day 1

On Friday Nov 10th, a beautiful warm day in Istanbul, we arrived at the Feriye venue by the sea at around noon. We were there to host our 6 partner workshops, ā€œbeforeā€ the hack officially kicked off. We had learned from ZK Hack Lisbon that doing these workshops early in the weekend was better for hackers, giving them more time to focus and complete their projects.

Our first workshop was hosted by the ZK Hack team. In it, we shared an overview of the types of tools that could be used during the hackathon and the different characteristics of each zkDSL and framework. Our goal was to help participants to consider which tools they could use for the application they had in mind and how to better make that decision.

Next up, we had the Partner workshops from our top sponsors. Participants had a chance to get a deeper look into these emerging tech stacks and be introduced to the mentors who would be on site to help. After the workshops, we hosted our kick-off with the schedule and plan for the weekend, as well as the list of bounties and prizes. People then broke for dinner and hacking kicked off in earnest!

Our venue for the hackathon sadly wouldnā€™t let us stay overnight, so we wrapped up at 11pm for the eve.

Saturday, Day 2

We arrived at the site at 8am and slowly the hackers returned to the venue and got hacking. We as organizers were already starting to see signs that this was a bigger hack than the last. ZK Hack Lisbon had 33 projects submitted, but by day 2 of ZK Hack Istanbul we already had 58 teams registered. Of course, we wouldnā€™t expect everyone to finish, but it was already a promising sign.

We hosted the Q&A sessions during the day with the teams once again, giving hackers a chance to ask more questions, and then the Turkish Lamp Making workshop. Unexpectedly inspiring ā€“ we got to design our mosaic masterpieces with friends and show off some craft skills.

Saturday was also an opportunity to wander into the different rooms and chat with the teams about what they were working on. A few projects were already taking great shape, while others were still at the draft stage ā€“ but no doubt, the energy was there!

Notable projects

The Team Tab+Enter (Thomas Redfern & Saurav Dhar) had figured out the algorithms behind mental poker, which they originally ambitioned to build for their zk-game PoZKer (ā€œPoker based on cryptography. Trust the math!ā€). But they also had realized already that time would fall short, and had pivoted to implement an oracle for card dealing; a smart move which would enable a cool demo the next day, despite some of the game logic being broken.

Another hack in the zk-game category was zkAargon by Team bluenote (Erhan Tezcan, Mehmet Ersoy, Umut ƖzƧelik), a reimagination of the 1999 puzzle game Aargon featuring lasers and mirrors. In this zk-version, the players can prove a solution without revealing it, and we could tell the team was having fun working around commitments for the puzzle and inventory simultaneously, playing with an interesting game-proving logic despite the challenges.

Hamid Bateni, together with Billy Rennekamp, were hacking on eip-7503-chain, with the idea of bringing EIP7503 to the Polaris EVM. EIP7503 is a fascinating proposal introducing a unique approach to private proof-of-burn for enhanced privacy and scalability, enabling for instance contractless mixers. The teamā€™s focus was to modify the EVM to support new transaction types and verifying circuit proofsā€¦ A daunting task they tackled with enthusiasm, although they knew they couldnā€™t finish in time for the hackathonā€™s deadline.

A solo hacker, Saurabh Chalke, was working on zscan – Etherscan for zk! The goal of this explorer for zero-knowledge is to assist developers in understanding all the info related to proofsā€™ generation and verification (public inputs, circuit metadata, smart contract code, constraints, etc.) by providing a friendly user interface and analytical tools for more detailed insights. Saurabh was eventually able to finalize and deploy a running prototype, which is always a challenge in a hackathon!

Yanis Meziane and Oskar T were the two members of Team rsa-aadhaar-mopro physically present at the Feriye venue, with Vivian counting as an extra half-person helping remotely on some specific parts. And they were also incidentally working on 2.5 projects all together, hence the projectā€™s name Two and a Half ZK. Their focus was proof generation on mobile devices, leveraging on the existing library mopro. The first big chunk, pocket-aadhaar, enhances the existing anon-aadhaar system (anonymously proving valid RSA signature of Indian ID documents), optimizing proving time on mobile. The second part, pocket-kimchi, extends the Kimchi Rust proof system to mobile devices, and the last half-project deals with Circom RSA verification, required for anon-aadhaar.

And to finish this tour with an even more cryptography-heavy project, Harry Liu decided to hack in Python with an implementation of Cached Quotient Lookups he named Baby CQ Lookups ā€“ an alternative to the already existing Rust implementation.

Either one-person teams, duos or larger groups of up to 6, regardless of the number of people, the general atmosphere of the day was a subtle mix of excitement, creativity and hardworking hustle and bustle ā€“ with a pinch of rush feeling starting to emerge at duskā€¦ This was then a good timing for another great dinner, on our ZK Hack beanbags once again! At 11pm, we cleared out the venue, with encouraging thoughts for the several hackers who were still going to be working through the night.

Sunday, Day 3

Kickstarting our last day, we saw hackers finishing off the last touches of their hackathon (some chill, someā€¦ less chill!). The deadline was 12 noon and we had members of the Devfolio team on site to help teams with submissions.

Once all the projects were in, we had our tally: 48 teams finished their projects in time, over a 50% increase from ZK Hack Lisbon. Our amazing judges had quite a feat ahead of them. How would we distill 48 projects down to the handful of winners?

We broke the judges into 5 teams of 3, and started pinging all the teams to get them setup to present their project to the judges!

For 2 hours the judges saw back to back projects. It was really challenging to dive in in such a short time, especially for those projects that were very technical. But by the end, when the judges reconvened, there were definitely some favorites that each group could put forward for the sizes.

Judges finalizing their decisions, a tricky task!

Winners!

We had so much deliberation back and forth around the ranking of the winners though. In the end, we genuinely could not rank them, so decided instead to choose the top 5 and award them an even split of the top 5 prizes ā€“ here they are!

  • DamnFair by Team DamnFair (Yolanda Ying, Mingzhe Wang and Thomas Zhang) is a multi-components solution addressing the challenge of safeguarding against Machine Learning as a Service (MLaaS) scams through the use of AI and blockchain technologies. The project includes a decentralized ML task matching platform using AI algorithms for efficient task allocation, zk-proofs integration for cryptographic task verification, and an on-chain verification and payment trigger for transparent and secure transactions. Web3 mechanisms ā€“ specifically, smart contracts and tokens ā€“ are also used to incentivize contributors with cryptocurrency rewards.
  • zkVM by Team Tetration Lab (Parin Chiamananthapong, Phatrasek Jirabovonvisut, Pakorn Nathong and Jern Kunpittaya) tackles the complexity of building a zero-knowledge virtual machine. Many companies are indeed building such systems, but even when their code is open-source, it is extremely hard to understand and follow, which makes it practically unusable for learning purposes. That’s the rationale behind this project, a sort of “zkVM 101” tutorial. The team chose a high-level zkDSL (Noir) to construct the zkVM circuit, and the various components (DSL, dApp, verifier smart contracts, interactive frontend) also aim to make the process easy to grasp. Two functional zkVMs within a single weekend — well done!
  • Katz by ThĆ©o Madzou is a zk-voting app (and yes, users vote for their favorite cats). Using recursive proofs and on-chain settlement, Katz ensures that individual votes remain private while allowing for transparent overall election results on-chain. The resulting prototype is a complete end-to-end dApp, with a fully functional and slick user interface (and also, cats) which impressed the judges.
  • AnonAbuse by Team Anon Abuse (CheeChyuan Ang, fman dev, Jinsuk Park, afk byte and sfyl) addresses the issue of hacks and thefts in the crypto space, providing a fully anonymous platform for victims to share experiences and information without compromising their privacy. The whole workflow of ensuring a verifiable link between victims and attackers is not only zk-powered but also uses zkML to prevent fake linkages, leading to an on-chain registry of addresses affected by hackers.
  • =nil; chronicle by Team ZkAutochess (Arjan van Hoogdalem, Alexey Kalmykov, Franco Nieddu, Timur Bartenev and Alexandr Kolesnik) is a auto-battler game: players strategically place units on a grid-shaped battlefield during a prep phase, and battles are then autonomously executed by algorithms. In this zk-version, the players’ choices are concealed from their opponents. The game’s design aligns with the constraints of on-chain implementation, with battles executed off-chain and results submitted to smart contracts for rewards and payouts. Additionally, =nil; chronicle enables players to customize the behavior of auto-controlled units, offering advanced players the ability to modify default AI while the game engine verifies the correct execution of battles according to the chosen algorithm.

We had also announced in our opening ceremony that two other prizes would be awarded: Chewing Glass (for the best technical project) and Hackersā€™ Choice (voted for by the participants). Once again, deliberations for Chewing Glass were a tough task, and together with the judges we decided to split the reward in two.

  • O1JS SHA256 Hash Function Circuit by Mahmoud Kaffel is a work towards optimizing the SHA256 circuit implementation for o1js SDK, by operating on 32-bit words as a single field element. Mahmoud encountered and tackled several challenges during the development process: the need for an efficient binary hash function within zk-circuits, the native binary gadgets in o1js hardcoded to operate on 64-bit field elements, limitations in the rotate, shift and rangeCheck functionsā€¦ The way he exhaustively articulated the issues while proceeding with debugging gives invaluable insight to O1Labs team.
  • Hello, HyperCube by Team Meiosis (Kai Jun Eer, Even Lu and Yu Guo) aims to break down the complexity of zkSNARKs by implementing cryptographic primitives that reduce a complex multivariate polynomial circuit into a more manageable univariate polynomial ā€“ a process referred to as “univarization”. The name “Hello, HyperCubeā€ actually stems from the representation of a multilinear polynomial as points on a Boolean hypercube and its subsequent reduction through evaluations on its partial sum using sumcheck. The team implemented two univarization methods, Logup+ and Gemini (with a third method, ZeroMorph, planned for future implementation and benchmarking), and they did so by efficiently splitting tasks, with each member contributing to different parts of the implementation of these low-level cryptographic primitives.

As part of the judging process, we had identified a large pool of other high quality projects from which all ZK Hack participants could vote to elect the Hackersā€™ Choice. This time, the selection was actually rather clear, and KZG CEX Solvency by Pierre Daix-Moreux and Enrico Bottazzi emerged as the winner. The project is an arkworks implementation of the protocol proposed in Having a Safe CEX: Proof of Solvency and Beyond, co-authored by Vitalik Buterin. As explained by the team, the whole concept can be summed up as a transition from a stance of “don’t do evil” to “can’t do evil”, in order to instill greater trust in CEXā€™ financial integrity, with users able to verify the inclusion of their deposits in the CEX balance sheet. Hopefully this implementation of Vitalik’s protocol in arkworks can potentially catalyze further research in this space.

While this wrapped up the winners on that day, there was in fact more! Hackersā€™ Choice, Round #2, was made possible thanks to the Quadratic Voting matching pool feature enabled by our platform partner, Devfolio ā€“ read more about it here. Up until 72 hours after the hackathon finished, participants were able to vote for as many projects as they liked, as much as they liked (with 100 votes to distribute however they wanted). And at this fun little game, the first place ended up being Circom Monolith by Ayush Shukla, an implementation of the Monolith hash function on the Goldilocks field using Circom zk-DSL.

Keep in mind that these prizes were not the only ones awarded during the hackathon ā€“ meanwhile our partners were busy judging their bounty prizes as well, and had made the selections (you can find them all here in our megathread on the winners).

To wrap up the day, we had our results announcement and closing ceremony: Even with the decisions made, we were running late and people were ready to head to their next events at Devconnect. So sadly, we werenā€™t able to have the winners present this time ā€“ something we normally would really like to do. It was instead a bit of a mad dash to get the final slides from partners and ours all updated with winners.
In our closing we invited the partners to the stage to share their bounty winners and then introduced the overall 5 winners, the Chewing Glass prizes and the Hackersā€™ Choice winners. As well we shared our honorable mentions, just a wider sample of great projects that had been built in the weekend (hint: these are the ones we described in our Saturday chapter).

And just like that, ZK Hack Istanbul was overā€¦ We had an amazing time, and all of this was made possible by the team: Anna, Agni, Natalia, Hanna, Rachel, Kobi, Flying Nobita, Gaylord and Thor. As well as our amazing Partners Polygon, Aleo, O1Labs, Ola, and RISC Zero. Huge thanks to our Based Sponsor LambdaClass, ;nil= Foundation, and ZKValidator and to our Community Sponsors Aztec, Ethereumā€™s Ecosystem Support Program, Fenbushi Capital, Inversed Tech, Mantle, Scroll, Snarkify, Starkware, Taiko, and Wormhole ā€“ as well as our Platform partner, Devfolio (thanks for supporting the hackers on Sunday morning!).
Our judges did an incredible job, because of (or rather, thanks to) all the great projects submitted by the participants: kudos to them!

At last, thanks to the crew at the venue ā€“ it was a pleasure to work together.

And to all the participants: we canā€™t wait to see you at the next one!

Table of Contents