Silent Transfers

Silent transfer is a feature built upon Blanksquare's Shielder-SDK that allows users to send private token transfers between regular EVM accounts. The functionality implemented by silent transfers is simply as follows:

  • User (Alice) connects their EVM wallet to the silent transfer dApp.

  • Alice wants to send Bob 1000 USDT but would like to hide the fact from the outside world. I.e. would like this transfer to be "silent".

  • Alice specifies the amount, destination, and the privacy level in the dApp and confirms the transfer.

  • The transfer is initialized, and a countdown starts counting the time till it finalizes (the waiting period is determined from the desired privacy level).

  • After the waiting period is over the transfer arrives at Bob (depending on the variant of silent transfers, this might require another interaction by Alice, or will happen automatically).

  • Bob receives the tokens, and while 3rd-party observers can see that 1000 USDT was deposited to Bob's account, they cannot see they were sent by Alice.

For technical details we refer to Details of Silent Transfers.

FAQ

Are silent transfers deployed anywhere?

  • Yes, the HyperBloom platform on HyperEVM has integrated this feature: link to dApp.

What's the typical use-case of silent transfers?

  • Funding a new, fresh account not linked to your previous account/accounts is a typical task that you can now perform fully on-chain (without relying on CEXes) using silent transfers. Simply create a new fresh address in your wallet, and initiate a silent transfer from your current wallet to the fresh one. 3rd party observers will not be able to link your old and new account, because silent transfers use the Shielder (and a time delay). Apart from that, if you just want to make a payment without showing everyone where the payment goes, silent transfer is an ideal tool!

Why is the time delay necessary for silent transfers?

  • Note that the tokens that are being sent between the accounts in silent transfers, hence all user balances for these tokens are visible at ANY time to 3rd party observers. With this thought in mind one can perhaps appreciate how hard, or even seemingly impossible ANY kind of privacy is to achieve. The delay is there to overcome this impossibility. What is visible on chain is that Alice's (the originator of silent transfer) balance of USDT goes down by 1000 (and this cannot be hidden) at the beginning of the transfer. Moreover when the transfer is completed, after delay, it is visible that Bob's balance of USDT goes up by 1000. In the meantime the tokens sit in the Shielder contract, but importantly 3rd party observers cannot connect the dots, that the USDT from Alice went to Bob, because Shielder uses zero-knowledge proofs and has lots of other activity that hides this transaction among others.

Why cannot I just an arbitrary amount to send via a silent transfer?

  • The reason is the same as for why there is a time delay. If you made a transaction with a very specific amount, say 218 USDT. Then external observers could make high-likelihood links between your origin and destination accounts (thus deanonymizing the transfer with high confidence) based on the repeating amount. If all users use the same set of amounts, they can much easier mix with each other.

Are my funds safe during a silent transfer?

  • Yes. You preserve custody over the funds at all times in both variants of silent transfer (1-click and 2-click). In the 2-click version everything happens on the user-side hence, no secrets ever leave your device (the dApp). The 1-click version is optimized for convenience, by delegating the 2nd click to a TEE (Trusted Execution Environment), but still no secret data leaves your device unencrypted. We refer to the details discussed in Details of Silent Transfers.

How much privacy do I get by silent transfers?

  • By the principle of how the transfers work, the gain in privacy depends on how much time do the funds spend in the Shielder, because that determines, to a large extent how likely would a valid probabilistic linking between the origin and destination of the transfer be. It is not easy to express the gain in privacy in strict mathematical terms, but roughly: the more traffic in the Shielder and the more you wait, the better the privacy. Also, by the zero-knowledge property, even if the waiting time is short, an external observer can still not link the origin to destination with 100% confidence, only make some guesses based on timing and the amounts. This means that it is never possible to pinpoint a transfer and claim "this is the origin and destination of a silent transfer" because the zk-snark cryptography prevents that. The best one can do is say "based on the observed on-chain patterns, it is reasonable to link this origin and this destination address" however one can never be sure in the absence of offchain evidence.

Last updated