Orchard and UA for YWallet
Add Orchard features to YWallet Mobile and Desktop Apps
BTCPay Server integration of Zcash
Background in OS, Database engine, and high frequency trading systems
Over 25 years of experience
The Zcash protocol recently activated NU5, which has the Orchard pool. Orchard is a big step forward for Zcash, and should have support within YWallet.
The Orchard pool is designed as a separate shielded pool from Sapling, and so requires a significant amount of wallet work to support sending transactions to and from the Orchard pool.
YWallet will implement full support for the Orchard shielded pool in its various wallets and SDKs. This includes full support for sending and receiving shielded Orchard funds in a way that works across all wallets.
We’ll implement smart note management, leveraging UA’s ability to include multiple address types.
YWallet Mobile and Desktop
Add support for all Unified Addresses
Add support for zcashd v5.0.0 mnemonic wallets
Add sending and receiving funds from Orchard
Lite client support for Orchard
WarpSync for Orchard, so that orchard blocks are synced at full speed.
Create an account from UA view key
Smart note management, leveraging UA’s ability to include multiple address types.
Note Management: Auto and manual shielding across all pools as recommended by “shielded by default”
Technical Approach: Dive into the how of your project. Describe your approaches, components, workflows, methodology, etc. Bullet points and diagrams are appreciated!
YWallet uses its own SDK (called zcash-sync), which features the “warpsync” algorithm that syncs the Zcash blockchain significantly faster. The main part of this grant is adding Orchard support to YWallet including extending warpsync to the orchard pool, adding support for unified addresses, and the ability to decode v4 and v5 transactions
The UI will also be extended to support Orchard features like the unified addresses and the separate Orchard pool.
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?
No external dependencies. A prototype has been built.
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?
A prototype has been built for Orchard/warpsync.
Smart note management is a work in progress. There could be an issue with finding the optimal combination of notes in complex cases but this should not affect normal users.
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.
One of the big challenges of this work is that UI complexity will increase because of the additional shielded pool, and it will make UX worse for a while.
This could lead to user confusion and make YWallet and Zcash harder to use. Although the use of Unified Addresses will mitigate this substantially, for a transition period (while all Zcash users move over to the orchard pool from sapling), there will be increased complexity and confusion in the product.
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 reporting?
Success criteria are:
- YWallet desktop and mobile apps have support for
Send and Receive funds from the orchard pool.
- These features are deployed to 100% of mobile and desktop users of YWallet.
The total budget is identical to the grant for ZecWallet since the project is of the exact same nature.
I replaced the part about FullNode (since YWallet does not have it) with support for UAs with multiple receivers and UA View keys.
Also, I added an intelligent note selection module that improves privacy taking ZIP 315 into consideration.
Together, they will provide a UX close to its intentions.
Warp Sync for Orchard
Refactorization of Warp Sync to support both Sapling / Orchard side by side
Smart Note Selection / Management - Shielded by Default
1 person working full time for 13 weeks (@ $220 / hr) = 220 * 8 * 5 * 13 = $114400