Dreaming about CoinJoin at protocol level

Is it feasible to get perfect privacy for all TXs in every future block, without relying on end user post-intervention (coinjoining), making any chain-analysis useless ?

Dreaming about CoinJoin at protocol level


This is a dream. I'm not even aware if this stuff is even possible but, you know, dreaming is free. There's the VERY REAL possibility that all the following rant is pure bullshit.

Falling asleep

All started while I was on my couch going through my Twitter timeline and I stumbled upon this thread. It had been a few days that a thought was running through my mind:

Is it feasible to get perfect privacy for all TXs in every future block, without relying on end user post-intervention (coinjoining), making any chain-analysis useless ? That would be a huge step forward.

Try to think about it like whirlpool-ing each and every transaction in every future confirmed block aiming at 100% entropy, 0 deterministic links & 0 "unmixed change".

CoinJoin is a trustless method for combining multiple Bitcoin payments from multiple spenders into a single transaction to make it more difficult for outside parties to determine which spender paid which recipient or recipients. Unlike many other privacy solutions, coinjoin transactions do not require a modification to the bitcoin protocol.

But... someone has to do this job and I think that they should be miners. More on this later on.

Start dreaming

In my dream there's a magic black box, at bitcoin protocol level, which is able to mix and match (coinjoin) all the transactions added to the block by the miner while it run his ASICS to find a nonce that create a block hash that is below the target difficulty (which is a valid Proof-of-Work).

The miner will collect additional fees for this work - possibly a fixed amount of sats for each transaction - on top of the current subsidy and the regular fees. This will keep - and perhaps rise - the incentive for the miner itself.

In this fantasy world, every future valid block will contain only already coinjoined transaction. No purchase history, no real time balances. Heuristics will be broken. Fuck chain analysis.

REM activity detected

I admit it candidly. I've no idea how to make this work. Remember? This is only a dream. In the remote case that this is technically possible without harming the current protocol, I can guess that a lot of time and wizardry by bitcoin devs will be needed to create such a magic black box.

I'm not even aware of what sort of technical problems should be faced up let alone their complexity.

But hey, if we can dream about citadels we can also dream about perfect privacy at protocol level. Can't we ?

Thinking about consequences, at minimum time between blocks would increase. This would lead to more time needed for on-chain transaction confirmation; to postpone halving dates and who knows what else.

On the bright side, every end user would be able to just transact with bitcoin (no matter which wallet is used) while the protocol itself take care of obfuscate the details to any chain analysis attempt.

Every bitcoin will be more fungible, so we can safely ignore any connection between any particular individual or use case it interacted with in the past.

Last but not least, probably it will render any KYC procedure less useful.

The morning after

Well, it's time to wake up. But who knows? Maybe someday in the future, as I wake up scratching my head, I'll be surprised by the news that my dreams have come true.

Please consider all of this as a madman's utterances and act accordingly.


Relevant material

Twitter thread by BitcoinQ+A and Matt Odell

NoKYConly by BitcoinQ+A

Rabbit Hole Recap: Week of 2020.09.14

Samourai Wallet – Bitcoin Culture & New Privacy Features

Clark Moody Bitcoin - Dashboard