pull down to refresh

Tadge Dryja posted this excellent thread on Utreexo today. Personally, I don't believe in the idea of spam transactions in bitcoin. But, if I did, I'd be of the opinion that it's all spam (except transactions that send me bitcoin).

Utreexo: Accumulate Bitcoin. A Bitcoin Twitter Thread

Recently people have been debating "spam" in Bitcoin, arguing over which transactions or outputs count as spam. Really though, it's all spam. Everything except the transactions where I get more bitcoins. Those are important data.

Current bitcoin software[1] forces you to store 11GB of spam utxos if you want to validate your incoming payments. Clearly those devs are all spam fans, gleefully replicating the 11GB spamtxo set across countless thousands of nodes running their bloated software.

But there are some (re)based Bitcoin devs taking a stand against spam. First was pruning, which lets nodes delete blocks once they've been downloaded. This deletes all the JPG inscriptions and other things that use witness space, but leaves the porcine UTXO set untouched.

And now there's Utreexo. Utreexo goes big by going small -- deleting the whole UTXO set -- only storing a small (less than 1KB) set of hashes. Nodes with these hashes still verify every transaction. This deletes all spam from your drive, even fake pubkeys.

Utreexo nodes can use very little storage, which is important now that RAM and NAND prices seem to be going up instead of down. The tradeoff is that utreexo nodes need to download more (extra proofs), but so far internet bandwidth prices haven't gone up.

Until recently, syncing the blockchain (IBD) with utreexo took 2-3X the data download from a normal node, reaching into the terabytes. With new aggregator techniques from SwiftSync, that extra download has been eliminated. (Still partially implemented & finalizing spec)

The utreexo accumulator and aggregator are built using only hash functions, so it is quantum safe. There might be other problems with bitcoin if a quantum computer ever shows up, but utreexo won't be one of them.

New releases of BTCD-based utreexod and rust-based Floresta (built with rust-bitcoin) are out and ready to try. Still in testing mode so don't put real coins on these, and software may crash. But ready for testing!

Post script - yeah this is joking :) I doubt any programmers really like spam. But Utreexo really does let you stop worrying about how big the utxo set gets. It's a great tool for L1 scalability & it's cool there are more people working on it & using it!

I would add that another trade-off of Utreexo is that nodes need archive nodes to do IBD. There is a distinction in Utreexo that nodes that only store the set of hashes can't help other nodes bootstrap. They rely on at least some nodes storing the full chain.

It is surprising that the filteroors don't talk about utreexo more.

  1. This is only true for nodes that use a utxoset architecture (storing transactions separately from the state of unspent transactions). Node architecture like libbitcoin do not create a separate database for the state and so such node runners are not "forced" to store an extra 11GB.

"It is surprising that the filteroors don't talk about utreexo more."

Likely because it isn't a solution. The solution is those transactions do not occur and more people run full nodes themselves.

reply

At least how I have heard their argument presented it is:

  • spam is a problem because it puts a burden on noderunners.

utreexo is a way to make it easier for many people to run nodes. comes with tradeoffs, but so does trying to do a soft fork.

the solution is that those transactions do not occur

In a world where BIP 110 is successful and widely implemented, and bitcoin becomes super popular and blocks are full of wonderful beautiful monetary transactions, running a full node will be just as difficult as it is if the blocks are full of spam. What is your response to this?

reply

"utreexo is a way to make it easier for many people to run nodes"

Not complete and therefore not interesting personally. If people wish to use it then that's their prerogative.

"...blocks are full of wonderful beautiful monetary transactions, running a full node will be just as difficult as it is if the blocks are full of spam."

I'm not sure why that would be an issue. It's far more pleasing to run a node when it's being used to support a vibrant network and not one where the blocks are full of satoshi dice, veriblock, nfts/ordinals/inscriptions and op_net clownery. ETH and SOL exist for these sorts of exercises to my eye.

reply

You must be a much better bitcoiner than me. I don't really look at the different transactions my node downloads and verifies -- unless they are sending me sats.

What I care about as a node runner is how long it takes me to do IBD, how often I have to buy a new hard drive, and if something causes my node to crash.

Whether I am pleased by the kind of transactions that get verified by my node is unimportant.

We know this because people are pleased by different things. For instance, there seem to be lots of people who are displeased by Iran or Israel. Such people might not feel pleasure if Iran or Israel was sending lots of transactions and their node was humming away verifying them.

Making technical decisions based on feelings is not a good way to go.

reply

I quite enjoy watching the transactions from time to time.

Indeed, ideally in my view, much more control should be open to the node runner in terms of configuration and what they deem acceptable. Your settings might vary from mine significantly...based on your feelings.

reply

sure. but what shows up in the utxoset is not up to feelings.

reply

What makes it to the block can be though.

reply

if what makes it into a block is based on people's feelings, what stops a government with strong feelings from deciding what makes it into blocks?

🫵🌲❌⭕

cc @standardcrypto

It is surprising that the filteroors don't talk about utreexo more.
reply

all is not as it seems!

help luke-jr, test and run utreexo.

#1277724

"The rumors have been swirling about a secret knots code fork that actually fixes the utxo bloat."

so he will at last
#ReleaseTheFiles 🫵🏼🎄✖️⭕️ !

Luke is still pretending to not support utreexo btw

playing the long game as usual 🪕

Because they aren't looking for solutions, they are looking for "purity".

reply

Yum spam

reply

It's all spam.

We should stop bitcoining now. Emails, too. Definitely TV, being mostly spam.

reply
I would add that another trade-off of Utreexo is that nodes need archive nodes to do IBD. There is a distinction in Utreexo that nodes that only store the set of hashes can't help other nodes bootstrap. They rely on at least some nodes storing the full chain.

You don't have to prune the chain to use Utreexo.

reply

What would be the advantage of using utreexo without pruning?

reply

That advantage is that you don't have to store the UTXO set. This could improve validation performance if you are RAM constrained, since you don't have to access the disk to load some part of the UTXO set you don't currently have cached in RAM.

reply

Feed me now

reply

Can I have some

reply
201 sats \ 0 replies \ @zeke 3 Apr -324 sats

Tadge is right that the spam debate is mostly a values argument disguised as a technical one. Bitcoin doesn't have an opinion about what a valid transaction is. If it pays the fee and follows consensus rules, it's valid. Period.

The interesting part of the Utreexo angle is that it makes the UTXO set growth problem less relevant. If you can verify the chain without storing every unspent output, then "spam" that creates millions of dust UTXOs becomes someone else's problem, not a consensus problem.

The real question isn't "is it spam?" It's "who pays for the state growth?" Right now the answer is "everyone running a full node." Utreexo changes that answer to "only people who care about specific UTXOs." That's a more honest cost distribution.

0 sats \ 0 replies \ @ZeroChills 4 Apr freebie -50 sats

Love the “it’s all spam except when I get more bitcoins” framing. Utreexo seems like a nice way to sidestep the endless spam debates and just make validating cheaper for more people, even if it comes with the archive‑node tradeoffs you mention.

1 sat \ 0 replies \ @zeke 5 Apr -50 sats

Tadge's framing is sharper than it sounds at first. The 'spam' label implies intent, but the real issue is that Lightning's routing layer has no base fee floor enforcement — anyone can route zero-fee paths and nodes have to eat the HTLC overhead.

The technical version of his point: every payment that fails to route still consumed lock time and liquidity slots on intermediate nodes. With enough volume, you can grief channels at near-zero cost. The fix being explored is reputation-based routing (BOLT 12 + offers) where nodes build a payment history and can deprioritize low-reputation senders. Still experimental but the direction is clear.