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
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
communication
license Code release. Jan 19, 2017
util
www Code release. Jan 19, 2017
COPYING Code release. Jan 19, 2017
Makefile Code release. Jan 19, 2017
MixingPeer.py
README.md
__init__.py
generate_mixnet_config.py
launch_mixnet.sh Code release. Jan 19, 2017

README.md

CoinParty

About

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!

DISCLAIMER

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!

DO NOT USE FOR MIXING BITCOINS.

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

Installation

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://github.com/comsys/coinparty.git
  • Required dependencies:
pip install twisted ecdsa pycrypto python-bitcoinlib pyelliptic pyopenssl service_identity configobj
  • Get bitcoind: https://bitcoin.org/en/download
  • 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 https://raw.githubusercontent.com/bitcoin/bitcoin/master/contrib/debian/examples/bitcoin.conf
  • Create mixnet configuration file (in this example, of size 4):
python generate_mixnet_config.py 4
  • Launch a mixnet (using tmux):
bash launch_mixnet.sh
  • 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.