Replying to Avatar L0la L33tz

I wrote a very basic overview of watermarking, fingerprinting, timing analysis and supernodes for Bitcoin Magazine's last print issue, which is pretty much an unsolicited advertisement for why I think we need a second mempool (and also mixnets, but thats a longer story). Since no one cares about stuff like this on Twitter anyway, I'll explain here.

Bitcoin has a privacy issue on baselayer. I know this. You know this. Everybody knows this. The problem is that there's a lot of stuff we can't do to solve this issue without completely fucking up how Bitcoin works, like, say, anonymous amounts. But there is some stuff we *can* do to increase privacy on the Bitcoin baselayer. One of those things is incorporating a second mempool to integrate Dandelion++, the routing protocol used in Monero. Hear me out.

One of the ways blockchain surveillance firms identify who what transactions belong to on the Bitcoin blockchain is by operating so-called supernodes. A supernode sets up as many connections to other nodes as it can, and by doing so can establish where a transaction was first seen in the peer-to-peer network, ergo ascribe whom a transaction belongs to.

Here's where Dandelion++ comes in. Instead of propagating transactions to *all* connected peers, Dandelion++ propagates transactions like, well, a Dandelion.

In Dandelion++ propagation, Bitcoin nodes send transactions to *one* peer, instead of to all of them. This peer sends it to another peer, they send it to another peer, and so on and so forth. This is called the "stem phase".

When we've established enough plausible deniability, Dandelion++ reaches the "fluff phase". At this point, a node that did not *create* the transaction, but is simply relaying it, propagates it to all nodes in the network it is connected to, including supernodes, and the next node does the same, and so on and so forth – business as usual.

Incorporating Dandelion++ (or any other anonymizing propagation protocol, like Dandelion, Dandelion Lite, or Clover) would arguably seriously fuck up the blockchain surveillance stick as we are taking away the most obvious attack vector for blockchain surveillance firms. It's also not a trivial task, see ajtowns' overview of stempools (and no one wants to maintain another mempool on bitcoin, if we're honest). But it's a really interesting proposal to think about to increase privacy on Bitcoin that, yes, would be a lot of work to implement and maintain, but also does not get talked about enough imo for everyone yapping about Bitcoin baselayer privacy.

AJ Towns' Stempool overview: https://gist.github.com/ajtowns/f3a19c33b80750a47c5b83ecf6a09aaf

BM Article:

https://bitcoinmagazine.com/print/whistleblowing-in-the-surveillance-age

This is a much simpler alternative that achieves the same thing, and has a PR ready to be merged today. IMO you should promote review of this to get merged asap instead of dandelion which has been around as an idea for a decade.

https://github.com/bitcoin/bitcoin/pull/29415

Reply to this note

Please Login to reply.

Discussion

Hmmm

It offloads the onion routing to Tor and I2P, two of the best anonymity networks to achieve an even better level of privacy. Building out a Bitcoin specific onion routing network using a parallel mempool is a fool's errand and will not be able to achieve the same results as the best researched and developed networks built specifically for anonymity.

This is a work around but it does not achieve „the same thing“

> A supernode [...] can establish where a transaction was first seen in the peer-to-peer network, ergo ascribe whom a transaction belongs to.

It completely removed this ability of the supermodel, whereas with dandelion the supernode still has at least one peer it can ascribe ownership to. So it is even better than dandelion.

How do you think it falls short of achieving the same thing?

because it only works for nodes running behind Tor/I2P, which means that it improves obfuscation only to that percentage. Definitely better than nothing, but not complete heuristic breakage which Dandelion++ etc aim to achieve. I like that your autocorrect turns supernodes into supermodels though.

That's not exactly true though, your node and the peer you anonymously connect to can both be clearnet for Tor. You just need a tor proxy available to your node and it can route it through an exit node.

Similar for I2P, except the peer must be behind I2P as well.

It breaks all heuristics if used today for any transactions sent with it. For dandelion, you need many peers running it to hide in an anonymity set.

Right but propagating exclusively via Tor/I2P even via proxy is not desirable for everyone due to reliability, but again its def an improvement. I don't think an anonymity set assumption makes sense for Dandelion++ as we're not hiding in a crowd, it's rather the idea of a sneakernet: since P2P traffic is encrypted now it's more the idea of passing messages out of band. You could likely observe who is running a stempool, but shouldn't be able to see much more beyond that

I don't think any new onion routing network bolted on to the Bitcoin network will be able to be more reliable than Tor or I2P with decades of research and development. Not to mention that Tor and I2P exist today and dandelion is vaporware that will never realistically be built.

nostr:nevent1qqsqa9mt93l2xqqqesssuqp3xy4ez00zf093zp6znh5x6t64ru05e6cpz3mhxue69uhkummnw3ezummcw3ezuer9wcpzqyxuxzmh6ewz3pxsyfkcatfd2t2s6an8q0laemalfgr3k0nn97n8qvzqqqqqqy0te4c9

I don't think it makes sense to compare the two. Tor and Dandelion serve completely different purposes. Let's agree to disagree.