TumbleBit implementation in .NET Core.
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.
As a user, you will need:
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.
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:
- Visual studio 2017 with update 7 (15.7) (Windows only)
- Visual studio code with C# Extension (Cross platform)
If you have any issue, please check the FAQ, before posting an issue.
The current version has an implementation of:
- Puzzle Solver Algorithm
- Puzzle Promise Algorithm
- TumbleBit: Classic Tumbler Mode
What is next
- Tor integration for Tumbler server and client
- Localhost website as user interface for Tumbler server and Tumbler Client.
- 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
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.