Zero-Knowledge Blackjack
A ZKP Application on Soroban
Team Members: Jay Geng, Hidenori Shinohara
Proposer: Leigh McCulloch
Zero Knowledge Proof — Proving Something Without Revealing It
Zero-Knowledge Blackjack
Demo
Technical Details — Setup
Soroban Host
Dealer Contract
Player Contract
1. Setup public parameters → pub_params
2. Compile the circuit → prover_key, verifier_data
Define the circuit and the constraints with Soroban
Technical Details — The Player
Soroban Host
Dealer Contract
Player Contract
generate_proof(Cards, Decision) → Proof
Plonk::prove(pub_params, prover_key, secret_inputs, pub_inputs) → Proof
Technical Details — The Dealer
Soroban Host
Dealer Contract
Player Contract
verify_proof(Proof, Decision) → bool
Plonk::verify (pub_params, verifier_data, Proof, pub_inputs) → bool
Conclusion
Key Takeaways:
Opens door for new applications on blockchain
Links and Resources
Source code:
These are forked from the main Soroban repos:
Further resources