Ycash Development Roadmap #1
Published: August 15, 2019. Last updated: December 3, 2019.
This roadmap covers Ycash software development for the next several months. (It also includes projects completed between the Ycash launch on July 18, 2019 and the initial publication of this roadmap on August 15, 2019.) This roadmap is subject to change; check back here for the most up-to-date information.
During the coming months, the Ycash Foundation will fund projects in four key areas.
- Improvements to ycashd and YecWallet
- Light Wallets
- Merchant Tools
- Mining Algorithms
Below is a summary of the projects that the Ycash Foundation is funding, organized by area.
Improvements to ycashd and YecWallet
- YecPaperWallet. Status: Completed July 29, 2019.
- Fast-sync mode for ycashd and YecWallet. Status: Completed July 30, 2019.
- Nullifier Migration Tool. Status: Completed August 16, 2019.
- Incorporate Upstream Changes from zcashd v2.0.6. Status: Completed August 16, 2019.
- Diversified Addresses. Status: Completed August 20, 2019.
- Better Rescanning and Private Key Importing. Status: Completed August 16, 2019
- Viewing Keys. Status: Completed September 26, 2019.
- Wallet Encryption. Status: Initial planning.
- BIP39 Seed Phrase Support in ycashd and YecWallet. Status: Initial planning.
- Trezor Integration. Status: Investigating feasibility.
- YecLite. Status: Completed November 27, 2019
- Light Wallet Based on ZLiTE System. Status: Initial planning.
- Commercial Service for Light Wallets. Status: Initial planning.
- Point-of-Sale Systems for Accepting Ycash. Status: Initial planning.
- Encrypted Memo Tools. Status: Initial planning.
- Investigate Proof of Work Mining Algorithms Tailored to Commodity Hardware. Status: Not yet commenced.
Improvements to ycashd and YecWallet
Offline paper wallets are useful for safely storing large amounts of YEC. At the same time, paper wallets are a fun and easy way to give small amounts of YEC to friends and family. YecPaperWallet will include support for both shielded addresses and transparent addresses. The addition of viewing keys (described below) will enable YecWallet users to create “watch-only” wallets where the spending key resides solely on the paper wallet.
Fast-sync Mode for ycashd and YecWallet
For users downloading the blockchain for the first time, fast-sync mode will reducing the time required to sync by 25% to 33%.
Nullifier Migration Tool
To address Ycash Issue #11, we will add a Nullifier Migration Tool in YecWallet to enable users to easily consolidate balances held across multiple Sapling addresses into a single fresh Sapling address.
Incorporate Upstream Changes from zcashd v2.0.6
Currently, ycashd is based on zcashd v2.0.5–2. We will incorporate the upstream changes from zcashd v2.0.6.
Diversified addresses enable the creation of an unlimited number addresses that map to the same private key. This enables a recipient to give out unique addresses to each individual sender, yet only manage a single private key. See https://www.ycash.xyz/docs/diversified_addresses/.
Better Rescanning and Private Key Importing
Importing private keys can be frustrating because there is no way to track the progress of the subsequent rescan of the blockchain. We will add a new ycashd RPC call that will return the rescan progress. Using this new RPC call, YecWallet will provide visual feedback showing the progress of the rescan. We will also enable partial rescanning (rescanning only a portion of the blockchain).
Viewing keys — keys that allow the viewing of certain shielded transactions without also allowing spending— combined with paper wallets will allow users to create secure “watch-only” wallets.
We will increase the security of ycashd and YecWallet by enabling wallet encryption.
BIP39 Seed Phrase Support for ycashd and YecWallet
Many popular multi-asset wallets use BIP39 seed phrases. We will add BIP39 seed phrase support for both transparent addresses and Sapling addresses. This will enable users to back up their wallets via their seed phrase, and will eliminate the need to perform wallet backups every time that a new transparent address is generated.
We are investigating the possibility of integrating Trezor with ycashd and YecWallet. (We are also investigating the feasibility of Ycash support on Trezor devices.)
YecLite is a lightweight Ycash wallet for shielded transactions on MacOS, Linux, and Windows. It is a port of Zecwallet Lite to Ycash.
Implement ZLiTE-based light wallet
ZLiTe is a lightweight client design proposed by researchers at ETH Zurich and Cornell Tech. It leverages Trusted Execution Environment technology to significantly reduce the bandwidth required for mobile clients to support shielded transactions. We plan to implement a ZLiTE-based light wallet for Ycash.
Commercial service for light wallets
This project will enable commercial companies and community members to run servers that service light wallets. The service provider will be able to choose whether to charge a fee or not.
Point-Of-Sale Systems for Ycash
We place a high priority on facilitating merchant adoption of Ycash. To that end, we will fund the the development of point-of-sale systems that allow merchants to seamlessly accept payment in Ycash.
Encrypted Memo Tools
We will fund projects that allow merchants to use the encrypted memo field for various purposes.
Investigate Proof of Work Mining Algorithms Tailored to Commodity Hardware.
Our commitment to mining on commodity hardware requires that we proactively investigate candidate Proof of Work algorithms. Should Equihash(192,7) ASICs emerge, we need to be prepared to quickly hardfork to a different algorithm. We will begin investigating various Proof of Work mining algorithms tailored to commodity hardware.