Title:
YWallet & Warp Sync
Applicant name:
hanh
Pitch: A one-liner elevator pitch version of your proposal
Fast Shielded Wallet & Synchronization
Total Request (USD):
$500000.00 USD
Have you previously received a grant from Zcash Community Grants (formerly called ZOMG) or ZF?
Yes
Please provide details:
-
Cold Wallet
-
BTCPayServer Integration
Are you seeking or have you received funding from other sources for this proposed project?
No
Applicant background:
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.
Description of Problem or Opportunity:
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.
Proposed Solution: Describe the solution at a high level.
Warp Sync code is made of the following parts:
-
Processing pipeline,
-
Adaptative downloader,
-
Parallel batch trial decrypter
-
Optimized witness merkle tree calculator
-
Transaction Detail Processor
-
Database/Storage
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.
Solution Format: What is the exact form of the final deliverable youâre creating?
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?
TBD
Hardware/Software total budget:
$500000.00 USD
Please provide justification for the total hardware/software budget:
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).
Services total budget (cloud, hosting, etc.):
$0.00 USD
Please provide justification for the total services budget:
N/A
Compensation total budget:
$500000.00 USD
Please provide justification for the total compensation budget:
N/A
Do you require startup funding?
No
Milestone 1 - estimated completion date:
08/01/2022
Milestone 1 - USD value of payout upon completion of deliverables:
$300000.00
Deliverable 1.1
YWallet 1.2.12
Milestone 2 - estimated completion date:
08/01/2022
Milestone 2 - USD value of payout upon completion of deliverables:
$100000.00
Deliverable 2.1
PR of WarpSync (not merged)
Milestone 3 - USD value of payout upon completion of deliverables:
$50000.00
Milestone 3 - estimated completion date:
08/15/2022
Deliverable 3.1
On Boarding Documentation
Milestone 4 - USD value of payout upon completion of deliverables:
$50000.00
Milestone 4 - estimated completion date:
09/07/2022
Deliverable 4.1
PR merged
Total proposed USD value of grant:
$500000.00 USD
How was the project timeline determined?
Milestone 1 is retroactive.
Other milestones estimated based on typical work need for integration.
Application submission date:
07/24/2022