Synchronization

More/Synchronization

After installation, the wallet starts with no data from the blockchain/network.

Synchronization is the process by which the wallet gets the transaction data and updates its database.

There are two types of information:

  • accounts and keys: only you should know that.
  • synchronization data: derived from the keys and the blockchain data.

Light wallets

The blockchain has hundreds of GB of data. It contains all the transactions of every user. Therefore it will keep growing larger and larger.

As a light wallet, Ywallet is designed to work on most devices, from low end mobile phones to powerful desktop computers.

These types of wallets do not download the entire blockchain, nor do they validate the transactions.

Instead, they work with lightwallet servers that implement the light client protocol.

Light Client Protocol

Compact Data

When a client asks for blocks from the light wallet server, it receives Compact Blocks made of Compact Transactions.

They only contain the shielded data. t2t transactions are completely discarded. Transparent inputs/outputs are removed from the data too.

Shielded data is further trimmed down by removing the parts that are not necessary for trial decryption and spending, for ex: memos and zk-proofs.

That leaves ~4% of the original blockchain data.

Transparent Data

Note

The Light Client Protocol does not deal with transparent inputs/outputs.

However, not offering a minimal level of support for transparent bundles is far too user unfriendly. For example, users would not be able to shield or unshield their funds if they need to work with an exchange that does not support shielded Zcash (most of them). Therefore, a set of methods were added to the Lightwalletd service to provide some transparent ZEC support.

Unfortunately, they do not have enough functionality to allow for efficient handling of transparent data.

Consequently, YWallet does not fully support transparent transaction history.

Warning

The transaction history does not contain the t2t transactions. But the wallet shows transparent balance and can spend it.

Memos

As mentioned before, the compact blocks do not have the complete transaction outputs. In particular, memos are pruned.

If the user wants to see them, the wallet needs to retrieve the full transaction data from the server.

To do so for every transaction is extremly bandwidth and time consuming. Hence, YWallet will only request the transactions that it knows belong to the account after scanning the compact blocks.

Yet, doing such selective download reveals to the server which transactions belong to you. The server cannot decrypt them but it knows you participated.

You can disable this download in the settings.

Please note this will also prevent the decryption of outgoing destination addresses.

See Also