YWallet & Warp Sync
Fast Shielded Wallet & Synchronization
I am the author of YWallet and the creator of Warp Sync. Previously I worked as a Senior Software Engineer at Microsoft and was the CTO of a Hedge Fund in Asia.
Part of the grant is retroactive and applies to YWallet. It took over a year of development to reach its current state.
Following on Zooko idea of offering grants for projects that have delivered value to the Zcash ecosystem, I apply for YWallet to receive the first grant of this kind.
Due to increased transaction volume and high block occupancy, most wallets have considerable difficulty in maintaining their operation. Thanks to Warp Sync, YWallet was quite successful in keeping up with the new workload.
I offer to integrate Warp Sync into librustzcash. Other wallets would then benefit from the same technology as YWallet and have their synchronization speed multiplied, in some cases by 100x. Note that WarpSync is currently only for Sapling.
Warp Sync code is made of the following parts:
Parallel batch trial decrypter
Optimized witness merkle tree calculator
Transaction Detail Processor
These parts would be put into librustzcash and wallet devs would be able to use them. There would be some small work to integrate. But documentation and help will be provided.
In librustzcash repo, we would have zcash-warp (or something similar). It should follow the same API as the current synchronization API (but with some deviations when necessary)
Technical Approach: Dive into the how of your project. Describe your approaches, components, workflows, methodology, etc. Bullet points and diagrams are appreciated!
YWallet has a website: https://ywallet.app
Warp Sync is explained in this video: “ZWallet synchronization vs other wallets” - ZWallet synchronization vs other wallets - YouTube
Warp Sync is optional and the current synchronization mechanism in librustzcash will not be removed.
Dependencies: What external entities is your project dependent on? What involvement is required from ZF, ECC, and/or other external organizations? Who would have to incorporate your work in order for it to be usable?
As the maintainers of librustzcash, the ECC devs have the final say in accepting/rejecting the PR. Though, we will work together to make the PR successful.
Execution risks: What obstacles do you expect? What is most likely to go wrong? Which unknown factors could jeopardize success? Who would have to incorporate your work in order for it to be usable?
YWallet is already used by hundreds of users. There is a little risk on this part.
The PR for Warp Sync has to be merged back.
Unintended Consequences: What are the negative ramifications if your project is successful? Consider usability, stability, privacy, integrity, availability, decentralization, interoperability, maintainability, technical debt, requisite education, etc.
I don’t see any negative consequence since we are not removing anything from librustzcash.
Evaluation plan: What metrics for success will you share with the community once you’re done? In addition to quantitative metrics, what qualitative metrics will you commit to report?
Other Zcash shielded wallets have already received grants totalling ~500k each. YWallet has demonstrated that its performance, stability and features are top notch and deserves similar funding.
During the CZ NFT offering, YWallet delivered every subscription without fail,
YWallet was the first (and for a while, the only wallet) to work after NU-5
YWallet could handle the increased work load affecting Zcash since Jul 2022. All other wallets ceased to work at some point.
Warp Sync is the main reason why YWallet could maintain synchronization. By integrating it into librustzcash, wallets such as Nighthawk, Edge, Unstoppable could also benefit.
(To be clear, the work to integrate other wallets is not part of the grant).
PR of WarpSync (not merged)
On Boarding Documentation
Milestone 1 is retroactive.
Other milestones estimated based on typical work need for integration.