Skip to content
CoinParty - Proof-of-concept implementation of our distributed, secure Bitcoin mixing protocol
JavaScript Python HTML Other
Branch: master
Clone or download
Roman Matzutt
Latest commit e29f483 Jan 19, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
license Code release. Jan 19, 2017
www Code release. Jan 19, 2017
COPYING Code release. Jan 19, 2017
Makefile Code release. Jan 19, 2017 Code release. Jan 19, 2017



CoinParty [1, 2] is a protocol for the distributed mixing service for Bitcoin. Bitcoin users mix their funds in order to maintain their financial privacy despite all of their everyday transactions being opaque on Bitcoin's blockchain. Although the blockchain only records pseudonymous addresses, researchers found that de-anonymization is still possible (e.g., [3]).

Initially, centralized mixing services collected and randomly re-distributed the funds of privacy-aware users. This way, each user becomes anonymous within the group of users participating in the same mixing operation. The mixing service, however, can easily abort operation and steal its users' funds.

To overcome this, we designed and prototypically implemented CoinParty as a distributed mixing service. By using secure multiparty computation (SMC), we can distribute the intermediate control over bitoins to be mixed among multiple independent peers and thereby guarantee correct mixing even if up to (but excluding) one third of the peers are malicious.

In this repository, we publish a prototypic implementation of CoinParty. However, the prototype is just a proof-of-concept implementation and not suitable for productive utilization!


This is just a proof-of-concept prototype and it is not suitable for production use. The code is not sufficiently reviewed and probably insecure. It is likely that your bitcoins will be lost!


The intention of releasing this code is to create a basis for the Bitcoin community to create a complete, reviewed, and robust implementation.


First, please read the disclaimer.

This install guide is written for Ubuntu Linux.

  • Get git, python, and pip:
sudo apt-get install git python python-pip libssl-dev
  • Clone repository:
git clone git://
  • Required dependencies:
pip install twisted ecdsa pycrypto python-bitcoinlib pyelliptic pyopenssl service_identity configobj
  • Get bitcoind:
  • Get (and edit!) a bitcoin.conf file (Most importantly: enable and change RPC credentials and set rpcport=8332)
mkdir -p ~/.bitcoin
wget -O ~/.bitcoin/bitcoin.conf
  • Create mixnet configuration file (in this example, of size 4):
python 4
  • Launch a mixnet (using tmux):
  • Close the mixnet by escaping from tmux via C-b and then typing:
tmux kill-session -t coinparty

Copyright (C) by 2016 Roman Matzutt, Henrik Ziegeldorf (Communication and Distributed Systems, RWTH Aachen University, Germany).

You can’t perform that action at this time.