some additional answers/clarifications

 
Question for Jeremy: would you also allow zero-value outputs?  Or would
you just move the dust limit down to a fixed 1-sat?

I would remove it entirely -- i don't think there's a difference between the two realistically.

 

Allowing 0-value or 1-sat outputs minimizes the cost for polluting the
UTXO set during periods of low feerates.


Maybe that incentivizes people to make better use of the low feerate periods to do more important work like consolidations so that others do not have the opportunity to pollute (therefore eliminating the low fee period ;)

 
If your stuff is going to slow down my node and possibly reduce my
censorship resistance, how is that not my business?

You don't know that's what I'm doing, it's a guess as to my future behavior.

If it weren't worth it to me, I wouldn't be doing it. Market will solve what is worth v.s. not worth.

 

> 2) dust outputs can be used in various authentication/delegation smart
> contracts

All of which can also use amounts that are economically rational to
spend on their own.  If you're gonna use the chain for something besides
value transfer, and you're already wiling to pay X in fees per onchain
use, why is it not reasonable for us to ask you to put up something on
the order of X as a bond that you'll actually clean up your mess when
you're no longer interested in your thing?

These authentication/delegation smart contracts can be a part of value transfer e.g. some type of atomic swaps or other escrowed payment.

A bond to clean it up is a fair reason; but perhaps in a protocol it might not make sense to clean up the utxo otherwise and so you're creating a cleanup transaction (potentially has to be presigned in a way it can't be done as a consolidation) and then some future consolidation to make the dusts+eps aggregately convenient to spend. So you'd be trading a decent amount more chainspace v.s. just ignoring the output and writing it to disk and maybe eventually into a utreexo (e.g. imagine utreexo where the last N years of outputs are held in memory, but eventually things get tree'd up) so the long term costs need not be entirely bourne in permanent storage.
 

Nope, nothing is forced.  Any LN node can simply refuse to accept/route
HTLCs below the dust limit.

I'd love to hear some broad thoughts on the impact of this on routing (cc Tarun who thinks about these things a decent amount) as this means for things like multipath routes you have much stricter constraints on which nodes you can route payments through. The impact on capacity from every user's pov might be not insubstantial.

 

I also doubt your proposed solution fixes the problem.  Any LN node that
accepts an uneconomic HTLC cannot recover that value, so the money is
lost either way.  Any sane regulation would treat losing value to
transaction fees the same as losing value to uneconomical conditions.

Finally, if LN nodes start polluting the UTXO set with no economic way
to clean up their mess, I think that's going to cause tension between
full node operators and LN node operators.



My anticipation is that the LN operators would stick the uneconomic HTLCs aggregately into a fan out utxo and try to cooperate, but failing that only pollute the chain by O(1) for O(n) non economic HTLCs. There is a difference between losing money and knowing exactly where it is but not claiming it.