An open-source mixer for private transfers on Ethereum

You don’t have to be nervous of your “market research” on SpankChain to want better privacy on Ethereum. In fact, the Ethereum community has repeatedly highlighted its support for an open source initiative that allows for one-off private transfers from any Ethereum account to any other.

Because of this need we’ve spent the past few months building Hopper, a zero-knowledge-based trustless mixer. We’d love for the wider community to now join us in developing it further.

This post explains what Hopper is; how you can use it to make a private transfer; how it works; and what its limitations are. For more technical information, check out our github repository.

1. What is Hopper?

Whenever they want, users can deposit 1 ETH into the Hopper smart contract and later withdraw this deposit to a different account. They do this by providing a zero-knowledge proof that they previously deposited 1 ETH into the mixer. That proof does not reveal from which account the ether was sent.

All deposits into the Mixer have identical amounts. Only you know the secret that distinguishes your deposit from the others and allows you to privately withdraw it.

You can only deposit and then withdraw 1 ETH at a time (because more distinctive numbers would likely break your anonymity). But you can deposit as often as you want.

We decided to make this project entirely open-source and all code is available on our github repository. It currently consists of the Hopper smart-contract and a proof-of-concept iOS app available on Tesflight. If you’re a developer, we’d love for you to contribute! The next steps include developing web and Android clients, auditing the smart-contract, agreeing on a trusted setup, and opening up the system to competing relayers.

2. How to make a private transfer using Hopper?

⚠️ Please note that Hopper is in alpha state and should be used with caution. It has not been properly audited and may contain bugs that result in the loss of your funds. ⚠️