or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
STATE OF THE MIXERS
Latest revision September 5th, 2019
A survey of active mixer efforts on Ethereum, including history, context and benchmarks.
Summary
Observers of the Ethereum ecosystem have their attention constantly full of inputs and new developments, which has the paradoxical efect of making bandwidth seem very full, and time very slow.
Given these conditions, it's sometimes challenging to sort out which kernels of ideas should be funded, either as a public good or for-profit. Sustainability models for each are only beginning to be sorted out.
The on-chain mixer vertical (if it can be called that) also experiences this. Many academic papers are written but they are deployed on chain. Small, agile teams have the ability to iterate quickly but at the cost of a long term execution (so far).
This document is meant to serve as a general overview of all mixer efforts currently in development for Ethereum. Requested by Moloch, in the interest of reducing information overhead and duplicative efforts for current teams and prospective developers. 👹
Also included is general tradeoffs and considerations for Snarks / Ring Signatures. Developers looking to create their own mixer will hopefully be able to use this as a reference.
This survey will give most attention to simple mixers, ie, swapping ether for ether, and then exiting. There are more ambitious projects much larger in scope that allow transfers within the contract, effectively creating deep pools of private value transfer. Future versions of mixers may attempt to graduate to this stage as well.
I received significant input on this from the Semaphore Telegram channel, specifically Haarorld, Roman (tornado.cash) Barrywhitehat. Thank you as well to the mixer teams who answered my many questions. 🙏
If there is any incorrect or missing information please make a PR or message me and I will do my best to maintain.
Outline
Strategic importance of mixers
In the early days of Ethereum, before mining was inundated with highly specialised ASICs, it was relatively easy to get new Ether directly from the network. With a modest hardware setup, users could participate in network consensus and be rewarded with enough Ether to use on the platform. In this state, users were given several important advantages:
Given the relatively high levels of mining difficulty and the uncertainty of local transfers, getting uncompromised Ether is nearly impossible today. Properly implemented mixers promise to restore at least a degree of this past, making them incredibly useful for any community that emphasises norms like sovereignty and strong privacy.
However, it's important to state that individual mixers at the application layer will never provide absolute privacy to users, only probabilistic guarantees. As with many mechanisms, it depends which tradeoffs were made in pursuit of which goals. This survey will explore these further.
For additional resources on user privacy outside of mixers at different levels:
BTC coinjoin context / prior art
Abstract Tradeoffs
The final output of a mixer heavily depends on the foundational cryptographic component providing privacy. There are two mechanisms generally used: SNARKs, aka "Succinct Non-Interactive Argument of Knowledge," or Ring-Signatures. Both have specific peculiarities which must be considered in the mixer architecture.
SNARKs
High-level
n
.More detail
Ring Signatures
MIXER LIST
The majority of mixers on Ethereum under active development are SNARK based. The following chart compiles a variety of relevant benchmarks to compare across implementations.
Snark based
Miximus
The following are based on the initial Miximus code by BarryWhiteHat
However, currently, only the ethsnarks-miximus project is being actively maintained and developed. It (ethsnarks-miximus) serves as the basis (with some modification) for the Hopper project.
Ethsnarks-Miximus
Development Status: Active
Deployed to: -
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →Semaphore Mixer
Development Status: Active
Deployed to: Kovan
Hopper
Development Status: Active
Deployed to: Mainnet
K0
Development Status: Active
Deployed to: –
Zeth
Development Status: prototype
Deployed to: –
Tornado Mixer
Development Status: Active
Deployed to: Live on Kovan, Mainnet (limit .1 ETH)
Deposit gas = 43381 + 50859 * tree_depth
Proof time = 1071 + 347 * tree_depth ms
1,060,561 Gas deposit
8,011 ms proof time
Ring Signature based
Heiswap
Development Status: Active / Prototype
Deployed to: Ropsten
Ethereum-RingCT
Status: unmaintained
RingToken
Status: unmaintained
SolidBlu1992
Status: ???
A collection of ring-signature based confidential transaction kernels created by 'SolidBlu1992'
Mobius
Status: unmaintained
Laundromat
Status: Unmaintained
Others
ShareLock
Recommendations for continued efforts
USER AWARENESS / ADOPTION of mixers will be crucial for sustained success. Without a large and consistently fresh sets of deposits / withdrawals, the anonymity set will become stale and "capturable". Proposals may include:
USER EDUCATION on the general tradeoffs between various mixer implementations. Users should be made aware in general that transactions can still leak privacy via IP address or Dapp cookies. Tor can help with this and should be recommended. Mixers should emphasise on front-ends or documentation that accounts should not be reused after interacting. Teams should be honestly present the levels of possible privacy and the tradeoffs made between implementations.
Points 1 and 2 can be significantly aided by an integrating mixing functions into popular wallets. User initiated privacy can leak identifying information over time by accidentally sending between addresses used before and after mixing. To avoid this, mixing should ideally occur pseudo-randomly, in the background, without the user's direct involvement. That's not say users shouldn't be able to initiate, but ideally would bias toward minimal effort on their part. It is a baseline assumption that addresses should not be reused. This can be accomplished through a properly considered UI that automatically retires (eg. hides) addresses once it is swept of funds. Finally, automatic modals warning users of possible account linkage before allowing transaction sends.
Reducing the gas cost of onchain precompiles like EIP-1108 is a significant step forward for all privacy initiatives. Developers should continue collaborating to make the public Ethereum chain a welcoming place for effective privacy. The EF and other interested parties should sponsor EIP champions if needed to shepherd upgrades through to mainnet.
Relayers: Relay networks like Gas Station Network but more decentralised. Will need additional research on what the difference in relayer types are
Trusted setup of each SNARK circuit is a significant overhead. There will need to be some coordination on how to best accomplish this until mechanisms like SONIC and PLONK are better developed.
Make use of existing financial support: POA: Zero Knowledge Fund, MolochDAO, and other Grant giving organisations.
Explore incentivised mixer mechanisms. For example, incentivising anonymity set participation. (more research needed to determine viability, some arguments against here.
A strong focus on security auditing and standardizing cryptographic components would be beneficial for current and future efforts. (CIRCOM lib audit, websnark - prover written in WAss., solidity verifier audit)
UX studies of which factors are important (which numbers displayed) (# since last withdrawal vs deposit)
Experiment with xDAI chain for more complex experiments (no gas limitations)