OpenBazaar -- Curious about shielded addresses and lite clients


Tl;Dr: Do zcash lite clients exist that support sending to/from shielded addresses?

OpenBazaar currently supports zcash transparent addresses, but does not support shielded addresses.

Some background:

Most trades on OpenBazaar are “moderated trades”, meaning the funds are held in a 2-of-3 mutlisig address until the trade settles.

Since multisig shielded addresses aren’t a thing (AFAIK), we’ve put off support of shielded addressess on OpenBazaar.

However, we’ve recently decided to look into the following workaround:

(1) Zcash funds would be held user’s shielded addresses
(2) When a trade is initiated, funds would be sent from the buyer’s zaddr to a 2-of-3 multisig taddr
(3) When the trade settles, funds would be sent from the 2-of-3 multisig taddr our to the receiver’s zaddr.

This is something we want to support, but there is a catch:

Our users don’t run full nodes. (It is possible for them to do so, but the reality on the ground is that they just don’t. We support several different coins and it’s just unreasonable for users to run a full node for every coin they want to accept). Moreover, we’re soon introducing a mobile app, and we can’t run a full zcash node on a smartphone.

So we’re looking into whether or not there exist zcash lite clients that allow users to spend to/from shielded addresses.

We understand that there are privacy considerations wrt zaddresses and lite nodes (ie: the private balances & notes can be determined by the server when the client wants to check its balance) – but this would still be strictly better privacy than any other payment option our users have at the moment.

Do such lite clients currently exist?

1 Like

Almost! The reference wallet project involved writing the necessary libraries and applications to support a Sapling-only Android light client, and these can also be used to implement light clients in other contexts (iOS, web, other native applications). See the recent blog post for details. The provided code is a beta preview, is still in flux, has known bugs, and should not be used with mainnet yet (in fact, the code linked in the blog post cannot be used as-is on mainnet). But it should be sufficient for implementing a proof of concept using the Zcash testnet.