Z

zk blackjack

decentralized rollup solution for better onchain blackjack experience


The problem zk blackjack solves

Well, you can play blackjack. That's it.
Current most solutions are either centralized (regular online casinos), or require user to sign a transaction with every action user performes.
This project introduces user's ephemeral keys that can be used only for a current game (and become invalid afterwards) to elevate user experience by never touching the wallet during the game. Wallet signing is required only whenever there's a need to transfer currency (e.g. on initiation, or double down, etc).
Basic security is out of the question. App is fully decentralized.
Smart Contract supports a lot of dealers, from which, user can select a specific one they want to play with based on fee charged (or credited), historical experience,

Challenges I ran into

Frontend. Haven't finished it.
Otherwise, I've identified a lot of different attack vectors, and the most interesting one is on player's liveness (e.g. if player goes offline, or refuses to take an action). Introducing the timeout would allow the dealer to wait out the user and reclaim their bet. So, user has to publish data onchain, and after dealer submits the proof that they used user's data, and still failed, the dealer can reclaim the bet.

Tracks Applied (2)

🤩 Best zkVM Application

Built on RISC0

RISC Zero

🤝 ZK Coprocessor

Built on RISC0

RISC Zero

Discussion