ZM!
My name is Austin, and I am stoked to have this opportunity to share the details regarding my grant application for a smart contract VM that will extend the application layer of the primitives coming from the ZCash ecosystem.
The Problem in One Sentence
Lack of choice for simple, programmable, selective disclosure smart contract virtual machines.
Our Proposed Solution In One Sentence
Providing CosmWasm, A WebAssembly smart contract language and VM, with native support of uploading circuit proving and verification keys for distribution and use by smart-contracts, to the ZCash community for application-specific L2’s.
Specification
To review our full specification, please refer to the grant issue opened here: Grant Application - Zk-Cosmwasm: A Programmable Selective Disclosure WebAssembly Smart Contract Virtual Machine · Issue #182 · ZcashCommunityGrants/zcashcommunitygrants · GitHub
Focal Points
Team Building
Currently we have three confirmed team members ready to prioritize implementations. This includes myself, the project scope curator, a team member dedicated to implementation of examples and demos making use of this VM, and a team member who specializes in use of LLMs for code-reviews and audits. We have open positions for 2 more team members, and want to prioritize including new team members able and eager to contribute to iterating from the existing state of the application. This will give us the best chance of long term success with multiple independent parties with vested interest in collaboration. We expect to onboard team members during this initial stage of submission and sharing our grant proposal:
-
Front End Specialist: This team member position is expected to have a dedicated focus on front-end specific library tuning, for wallets,UI’s & auxiliary tooling interacting with the zk-wasmvm.
-
Zk-Circuit Implementation Advisor: This role serves to provide a source of wisdom for our team to in regards to applications and implementations of the zk-proof circuits. This will enhance our team by having a neutral, trustworthy source of feedback, so that our implementation will be able to be usable to the largest potential consumer base possible.
-
Cosmos-SDK integrator:
The team member dedicated to this role will focus on implementing useful application (and consensus) level experiments and demos with the zk-wasmvm. This will expedient sources of inspiration and data points for how others could make use of this VM layer. (I (the author of this post) am qualified from experience to participate in this role, however this project scope will benefit with more brains involved!)UPDATE (1/13/26): We have onboarded a team member for this role.
Efficient Circuit Storage, De/Serialization
A large effort of this specification goes into defining how the Virtual Machine parses circuits verifying keys from its raw bytes during proof verification. We make use of existing storage optimization techniques available in the VM to pin circuits to cache, reducing redundant and overall on-chain gas cost for accessing circuits repeated use.
Benchmarking, Audits, and Testing Suites
This grant, if approved will set the expectation that a substantial amount of the energy dedicated to further iterating what exist will go to ensuring functionality and soundness of the implementation. This includes making sure it is as easy as possible for anyone to review, and more importantly verify that our claims on benchmarking and functionality are accurate.
This will include:
- A formal specification testing suite (via * Quint)
- Known exploit sanity tests (via * Wycheproof)
- Code Coverage tests
- Unit,Integration,E2E, and property tests
- Deterministic Nix environment
Cost Analysis & Review
our requested grant is totaled at 500,000, which we are proposing to be distributed across a timespan of at minimum 6 months to maximum 12 months. We are requesting an initial startup funding of 50,000, and within 2 weeks we expect to accomplish our first milestone, which will provide:
- A complete technical architecture documentation
- Basic tests and demonstration of the functional application layer module for storage and access of circuit verification keys
- Basic tests and demonstration of the functional FFI binary that powers plonkish circuit key deserialization and use for verifying proofs
- Gas benchmarking and reports for verification operations
- CONTRIBUTING.md guidelines
By reaching these goals set, we are requesting from our grant to have 50,000 distributed for reaching this milestone.
Our second milestone for funding will request 100,000 after we complete the following goals set:
- Full SDK integration and documentation
- Rust library for proof generation and contract interaction
- Typescript + Wasm-bindgen library for proof generation
- Circuit versioning and depreciation mechanism
- Example application demonstrating end-to-end flow
Following our second milestone, we project a timeline of 2-6 months to accomplish our next set of goals, which are:
- multi-circuit type integration (binius64, noir, groth16 verifier integration)
- reference circuits/contract pairs for demonstrating application implementations
- a complete, comprehensive product and API documentation
- an internal audit/review post-mortem
Upon reaching this goal verifiably, we are requesting in this grant 200,000 to be released for compensation of our team.
Our final set of goals we are proposing will include the following:
- 3rd party audit process post mortem & remediation of any issues discovered
- Production deployment on existing CosmWasm chain
- Deployment of a bug bounty program
- Mainnet deployment & existing cosmwasm migration guide
- Project retrospective and future roadmap documentation.
We will upon verification of reaching our final set of goals request in this grant to receive the remaining 100,000.
Request for Feedback
I am eager to see what you guys think about this implementation. Is this something you see being actually useful with respect to the current roadmap of ZCash? I am most excited about this implementation powering frameworks like private DAOs, interoperable e-cash vouchers, and private NFT-FI, however I’m certain theres even more useful implementations with this design that could ultimately directly benefit the Zcash ecosystem.
THANK YOU for your time reviewing our proposal and most imporantly the opportunity for support and feedback, I’m looking forward to providing as much clarity as needed :![]()