In this section you can find some ideas to hack during LambdaZK Week. These ideas are proposals brought by the sponsors of the event.
It's not mandatory to hack on any of these ideas, you can hack on whatever you want (ZK related). Think of them as a free brainstorming or inspiration
Thanks again to all the sponsors that submitted proposals. At next they will appear alphabetically ordered by each sponsor
Name | Type | Description | Difficulty | Challenges |
zkMNIST | Experimental | zkMachine Learning -- Image processing of handwritten digits. Inspired by -- zk-mnist | Hard | Might require pre-existing ML knowledge and building primitives in Noir. |
Chemistry Simulator | Experimental | Atomic elements minted as NFTs, with a molecular simulator encoded as a Noir circuit. Combine elements to create new compounds. Inspired by tweets from our CEO, Zac Williamson | Hard | |
zkReddit | Noir Projects | Create a simple message board that utilizes ZK for privacy/authentication/reputation. Inspired by -- zk-message-board and Six Moonshot ZK Applications - gubsheep.eth | Medium | |
Code Visualization for Noir | Noir Projects | Visualizing Noir source code and ACIR compiled. Inspired by -- Scaffold-eth, Speed Run Ethereum, surya | Medium | Mapping Noir's syntax and structure to an intuitive visualization for zk development |
zkPhoto | Noir Projects | Use Noir to prove that a low resolution image is downsized from an actual high resolution image. Inspired by -- https://github.com/socathie/zkPhoto | Easy | Noir doesn't support 2D arrays yet. Might require array flattening works. |
Ethereum History API | Noir Projects | Trustlessly and optionally privately prove any piece of information that exists on Ethereum (e.g. token ownership, historical prices, protocol interactions, etc.) using Ethereum storage proofs in Noir. Inspired by -- noir-trie-proofs, Axiom, Herodotus | Medum | |
zkAttestation Station | Experimental | Use Noir to create a version of Optimism's Attestation Station / Ethereum Attestation Service that utilizes zk to improve the value proposition of the service Inspired by -- https://duckduckgo.com/?q=zkattestations; and https://docs.attest.sh/docs/welcome | Medium | |
zkWorth | Noir Projects | Use Noir to prove that your wallet balance is above a certain threshold or contains a certain value of a specific token without exposing your public key. A perhaps tweaked version of noir-trie-proofs can be used to trustlessly + privately prove the criteria. Inspired by -- zk-worth | Medium | To make it more fun, we can add e.g. ECDSA verification to prove the user does own the wallet he/she is balance-proving. |
Proof of Solvency | Experimental | Create a proof of solvency protocol for CEXs using Noir to write the circuits. Inspired by -- summa-dev | Hard | |
BLS Verification in Noir | Noir Library | A library for Boneh-Lynn-Shacham signature verification in Noir. Useful for building e.g. Ethereum Light Client in Noir, ZK Bridges in Noir, etc. | Medium | |
zkAML | Noir Projects | Prove that the source of funds is non-illicit funds without revealing the actual source. Inspired by -- proof-of-innocence, privacy-pools | Medium |
For more inspirations and ideas, check out the Noir grant RFPs: https://www.notion.so/aztecnetwork/Grants-RFPs-Aztec-18528973654d4085b8626f37fabe1421
Name | Type | Description | Difficulty | Challenges |
dojo-zk-hunt | Game | Build zk-hunt with dojo https://github.com/FlynnSC/zk-hunt | Difficult | |
Onchain checkers | Game | Build an onchain version of checkers, possibly allowing people to compose different rules and pieces | Medium | |
On-chain chess | Game | Build a game of chess using dojo. Showcase composability by introducing new rules or conditions of victory, like what https://immortal.game/ does | Hard | |
on-chain tamagotchi | Game | Dojo-powered tamagotchis that can interact with each other, do stuff, breed, etc. | Hard | |
dojo game tutorial | Game | https://mud.dev/tutorials/emojimon but for dojo | Medium | |
Game channel POC | Game | Implement a proof of concept of game channels using dojo: https://xaya.medium.com/xayaships-premieres-breakthrough-game-channels-technology-d53c4aadc124 | Medium | |
Dogfighter-type game | Game | https://medium.com/alliancedao/unblocking-on-chain-games-part-three-the-dogfighter-genre-8ef7c109eb88 | Difficult | |
food-chain magnate game | Game | https://medium.com/alliancedao/unblocking-on-chain-games-part-four-food-chain-magnate-617896839199 | Difficult | |
Any game on this list | Game | https://boardgamegeek.com/search/boardgame?sort=rank&advsearch=1&q=&include%5Bdesignerid%5D=&include%5Bpublisherid%5D=&geekitemname=&range%5Byearpublished%5D%5Bmin%5D=&range%5Byearpublished%5D%5Bmax%5D=&range%5Bminage%5D%5Bmax%5D=&range%5Bnumvoters%5D%5Bmin%5D=&range%5Bnumweights%5D%5Bmin%5D=&range%5Bminplayers%5D%5Bmax%5D=&range%5Bmaxplayers%5D%5Bmin%5D=&range%5Bleastplaytime%5D%5Bmin%5D=&range%5Bplaytime%5D%5Bmax%5D=&floatrange%5Bavgrating%5D%5Bmin%5D=&floatrange%5Bavgrating%5D%5Bmax%5D=&floatrange%5Bavgweight%5D%5Bmin%5D=4&floatrange%5Bavgweight%5D%5Bmax%5D=&colfiltertype=&searchuser=awall1990&playerrangetype=normal&B1=Submit | Difficult | |
18xx game | Game | https://medium.com/alliancedao/unblocking-on-chain-games-part-two-the-18xx-genre-61b2f4e8837d | Difficult | |
Dungeon crawler | Game | Players get dropped on a map and need to navigate it to find a treasure | Medium | |
Lunar lander | Game | Players need to land a lunar module on the moon using only thrust and directions, inspired by terminal-based game | Medium | |
Client side Dojo | Game | Client side execution of dojo systems | Medium | Compile blockifier to wasm, load system dependencies ontop client, execute system, produce state diff, apply to client state |
Just storage prove it | Game | Add support for storage proofs to Katana | Medium | |
Bevy / Unity / Unreal / Phaser dojo bindings | Tools | Create dojo bindings for external clients | Medium | Understand the destination client |
Client side proving | Tools | Prove some game logic client side and pass into a dojo world for incorporation into the shared state | Hard | Compile prover to wasm, verify proof on starknet / katana, continue execute some public logic and incoporate client proof into the game state |
Ticking chain | Tools | Modify katana to support ticking and some native execution | Easy | |
Explore other state representations i.e. quadtrees for chain state | Tools | Medium | ||
zkml on Dojo | Tools | See how to include Giza within the dojo toolchain | Hard | |
Merkle Search Tree state | Tools | Represent sequencer state as Merkle Search Tree for efficient indexing and lookup of onchain state | Medium | |
Verifiable state | Tools | Efficient client side validation of world state | Medium | Requries a lot of storage proofs to verify onchain state. Explore caching / memoization techniques + other approaches to improve efficiency of client side verification of world state |
Dojo world sharding | Tools | Cross-katana and cross L3 communication & messaging | Medium | |
Dojo appchain | Infra | create a dojo app chain: use katana + blockifier and implement some custom syscalls related to dojo world etc.. | Medium |
Name | Type | Description | Difficulty | Challenges |
Paymasters for DAOs | Paymasters | Create paymasters that can be used by DAOs to sponsor transactions for all members. The paymaster will check if the account sending a transaction has balance of the DAO token or if it has the DAO NFT. | Low | - All paymaster contracts must implement the IPaymaster interface from zksync-contracts package - Paymasters must be deployed to the zkSync Era testnet or locally using the zkSync local-setup |
Customizable wallet | Wallets | A wallet offering customizable features, such as spending limit adjustments, paymasters, changing transaction time-lock periods, etc. The customization options could be tailored to the user's needs, creating a more user-friendly experience. | Medium | - All smart contract accounts must implement the IAccount interface from zksync-contracts package - Accounts must be deployed to zkSync Era testnet or locally using the zkSync local-setup |
Governance via L1-L2 | L1-L2 | Leveraging L1-L2 messaging from zkSync Era, allow users to participate in governance decissions voting in L2 and send the final results to L1. | Medium | - Applications should use the L1-L2 communication protocol provided by zkSync. - Smart contracts must be deployed to zkSync Era testnet or locally using the zkSync local-setup |
Social media incentive paymaster | Paymasters | Develop a Paymaster contract that interacts with social media APIs to track user engagement. For instance, when a user likes or retweets a specific post, a corresponding call could be made to the contract. This could be achieved by creating an off-chain service that listens to social media events and interacts with the Paymaster contract. | Medium | - All paymaster contracts must implement the IPaymaster interface from zksync-contracts package - Paymasters must be deployed to the zkSync Era testnet or locally using the zkSync local-setup |
Proof of attendance paymaster | Paymasters | In the context of an event, you could create a Paymaster contract that covers gas fees for attendees. This could work by having attendees scan a QR code or enter a code into an application, which then triggers an event that the Paymaster listens for. This event could be tied to a specific wallet address for verification. | Medium | - All paymaster contracts must implement the IPaymaster interface from zksync-contracts - Paymasters must be deployed to the zkSync Era testnet or locally using the zkSync local-setup |
Private Accounts | Wallets | Private Accounts / @nocturne_xyz. The focus is on masking transfer amounts rather than concealing sender/receiver identities. | Low | |
Private NFTs | Private #NFTs. - Hide ownership, perhaps using Stealth Addresses - Hide the metadata: Currently unavailable, yet desired by web3 gamers wishing to keep attributes (e.g. rarity) secret until certain events occur | Medium | ||
Private DeFi | Paymasters | In an ideal scenario, we would have a fully private DeFi ecosystem. This may be achieved in pieces or all at once | Medium | |
Private Strategy Games | Gaming | A limitation of blockchain games is the transparency of strategies, making it easy for players to decipher the optimal game plan. When an algorithm is open to the public, it becomes effortlessly replicable. | Medium | |
Private Social | Wallets | Stealth Addresses facilitating Social Recovery. One might question, 'Does social recovery of my address compromise privacy?' Likely not, given you can rely on trustworthy friends who are probably less concerned about privacy matters. | Medium | |
Private Identity | Wallets | The passport scenario presents a challenge - how can one selectively disclose information to third parties? As more data migrates on-chain and digital credentials become prevalent | Low | |
Private Reputation | Wallets | Creating a reputation in a wholly private space presents a conundrum. It seems counterintuitive as reputation is traditionally public, contrasting with the secrecy of privacy. As such, harmonizing these two elements remains an elusive challenge | High | |
Network Layer Privacy | Paymasters | Consider the possibilities of obscuring transactions via network layer privacy. One can relay transactions through an intermediary, thus blurring the trace | Medium | |
Private Block Proposing/Building | L1-L2 | Keeping the decision process of the next block's creator private fosters decentralization. This could provide a significant solution to #MEV issues. Only once the block confirms on-chain, will it reveal all transactions. | High | |
zkTrees | Bulk Semaphore https://twitter.com/0xomaryehia/status/1676585785024233472?s=20 | Medium |
Name | Type | Description | Difficulty | Challenges |
zk Credit score | ZK Coprocessor | Ping infura to get data on a certain address. Calculate how frequently their balances were liquidates in lending protocols such as aave. Create a proof of these calculations which act as a reputation/credit score for their onchain loans. Bonsai can be used to post the proofs on chain | Easy to Medium | Should be relatively straight forward, Query data, do a basic credit score algo, post proof onchain |
Reputation System for ETH Stakers | ZK Coprocessor | Similar to zk Credit score, in this case query a staker's history and see how often they have been slashed and how long they've been staking. Generate a proof attesting to this slashing frequency. This enables on chain Dapps to check the reliability of a staker. | Medium | Quering the frequency of slashing for a specific node is potentially difficult |
zkML Rust Crates | zkVM | Look into porting existing ml inferencing creates on top of the RISC Zero zkVM. This enables our zkVM to generate a proof attesting that the output of a model is correlated with the input. This will require usage of Bonsai, our proving infrastructure, as that enables programs that far exceed billions of cycles | Medium | Requires a solid understanding of Rust crates |
Improving Serialization & Crate Support | zkVM | Write code that utilizes data serialization or deserialization crates in the guest. There’s a wide range of data serialization frameworks such as Bincode, Ethereum ABI, ASN.1, CBOR, MessagePack, XML, YAML, BSON Examples: https://crates.io/crates/bincode https://crates.io/crates/prost https://crates.io/crates/capnp https://crates.io/crates/ethabi Alternatively, you can do HTML/CSS generation or get a popular crate to work on the zkVM. | Medium Hard | Requires a strong understanding of Rust crates |
Universal ZK Proving | zkVM | By utlizing the existing REVM demo found here: https://github.com/risc0/risc0/tree/main/examples/zkevm-demo. Run the ETH verifier of another proof system (axiom, succinct, starkware etc.) within our zkVM. Generating a proof of verification in the RISC Zero proof system | Medium | Requires an understanding of other proof system ETH verifiers and debugging zkVM logic |
Enhanced AMM balancing / ZK Oracle | ZK Coprocessor | Query pool values via infura, run novel and complex balancing/blackscholes/etc equations within the zkvm, return these results and a proof attesting to the math behind these results Potentially you can utilize zkML as well for the parameter adjustment of a defi protocol | Medium | Potentially requires an understanding of AMMs and other long tail defi primitives |
Improving VM/Execution Support | zkVM | Port an existing Rust crate of a VM interpreter, or directly port a VM/execution layer onto the zkVM. Example: MIP, MoveVM etc. | Medium Hard | Requires a strong understanding of Rust crates |
Consensus Proofs | zkVM | Generate a proof of a chain's consensus and or block construction. Very useful for zk bridging. We believe this to be realistic for Ethereum and Cosmos amongst others. | Hard | Requires a strong understanding of consensus architecture and light clients. |
ZK Identity | zkVM | Take in any personal information from centralized KYC providers, on chain data etc. and generate a proof that shields certain values. | Easy to Medium | Should be relatively straight forward, Query data, do a proof attesting to the value of the data without revelaing the data it self |
Ethereum Zk bridging | zkVM | Generate a proof of a user locking up their assets via the Altair sync comittee. Similar in design to succinct's work. | Medium Hard | Requires a strong understanding of the Altair light client comittee |
dsa