Stolon: anonymous transaction relay using isolated, minimally-distinguishable Zcash-over-Tor connections

Stolon is a transaction diffusion algorithm inspired by Dandelion, with
additional privacy properties. Dandelion diffuses transactions across a p2p
network in two phases, a “stem” phase where transactions are relayed in a line
and a “fluff” phase where transactions are broadcast as widely as possible.
Stolon, named for runners that extend horizontally at or just below the
soil to spread new plants, tweaks this approach to perform the “stem” phase
over ephemeral Tor connections and the “fluff” phase over the clearnet p2p
network.

Stolon is designed to for use both by full nodes such as Zebra and Zcashd as
well as by wallet software. This RFC describes:

  • the threat model Stolon addresses;
  • how Zebra’s architecture makes Stolon easy to implement;
  • how Stolon can be used by Zebra or Zcashd;
  • and how Stolon can be used by wallet software.

The full design document is available here.

In addition, we have a proof-of-concept implementation that works today, with no additional infrastructure: https://github.com/ZcashFoundation/zebra/pull/1008

The implementation in the stolon crate is available as a Rust library, or as a standalone stolon binary that reads a raw transaction from stdin and sends it to the Zcash network. We hope that this code will be useful for wallet software, and we’d be interested in working with developers of wallet software to smooth out any rough edges.

9 Likes

I don’t know much about the security trade-offs of such a design but this is very cool. Thanks for the heads up.

1 Like

str4d is doing his friday livestream on stolon - hacking it into zcashd - always interesting watching the masters work.

Edit: The best part of str4d’s stream is the monologue/commentary, very instructive.

6 Likes

Very cool!