TumbleBit Implementation in .NET Core
C#
Switch branches/tags
Nothing to show
Clone or download
Latest commit 224a614 Jun 23, 2018

README.md

NTumbleBit

TumbleBit implementation in .NET Core.

Check out the in-depth user guide on the Wiki

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 2.1
  2. At least Bitcoin Core 0.16.0 fully sync, rpc enabled.

On Tumbler server side, run Bitcoin Core with a big RPC work queue. TumbleBit has peak of activity making it likely to reach the limit.

bitcoind -rpcworkqueue=100

Alternatively, you can also put the rpcworkqueue=100 in the configuration file of your bitcoin instance.

As a developer, you need additionally one of those:

  1. Visual studio 2017 with update 7 (15.7) (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 Payment 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

Thanks to Boston University (Ethan Heilman, Leen AlShenibr, Foteini Baldimtsi, Alessandra Scafuro, and Sharon Goldberg) for inventing the TumbleBit protocol.

Thanks to Omar Sagga and Sharon Goldberg for the crypto review of TumbleBit, and PoupardStern and PermutationTest proofs.

Special thanks to @Yzord (aka @badass.sx on Stratis slack) and the dedicated TumbleBit testers in the Stratis team, which brought TumbleBit to the next level.

Thanks to Stratis to dedicate resources to develop NTumbleBit and integrate it to Breeze wallet.