/NTumbleBit

TumbleBit Implementation in .NET Core

Primary LanguageC#MIT LicenseMIT

NTumbleBit

TumbleBit implementation in .NET Core.

Trailer/Motivation

IMAGE ALT TEXT HERE

Resources

Cross-platform library, based on "TumbleBit: An Untrusted Bitcoin-Compatible Anonymous Payment Hub". Another proof of concept implementation can be found in the old repository of TumbleBit.
An "easy" to understand explanation of the protocol has been presented by Ethan Heilman and Leen Al Shenibr at Scaling Bitcoin Milan, and on NTumbleBit implementation by Nicolas Dorier at Blockchain Core Camp Tokyo.

Requirements

As a user, you will need:

  1. NET Core SDK 1.0.4 (see below)
  2. Bitcoin Core 0.13.1 fully sync, rpc enabled.

You can easily install the SDK on ubuntu systems after having installed the runtime by running

sudo apt-get install dotnet-dev-1.0.4

You can known more about install on your system on this link. Using Bitcoin Core with later version should work as well.

As a developer, you need additionally one of those:

  1. Visual studio 2017 (Windows only)
  2. Visual studio code with C# Extension (Cross plateform)

If you have any issue, please check the FAQ, before posting an issue.

Project status

The current version has an implementation of:

  • Puzzle Solver Algorithm
  • Puzzle Promise Algorithm
  • TumbleBit: Classic Tumbler Mode

What is next

  1. TOR integration for Tumbler server and client
  2. Localhost website as user interface for Tumbler server and Tumbler Client.
  3. TumbleBit: Uni-directional Paymen Hub Mode

Developing on Linux or Mac

We recommend that you use Visual Studio Code, which is free IDE supporting C# development and testing.

Developing on Windows

We recommend that you use Visual studio 2017 for building and running the tests. You can of course use Visual use command line or Visual Studio Code as well.

Acknowledgements

Special thanks to Ethan Heilman and Leen AlShenibr for their work, their research and proof of work made this project possible.