Pages:
Author

Topic: Is it normal for 1 address to hold 1.7m dust UTXOs? (Read 473 times)

copper member
Activity: 821
Merit: 1992
Quote
Why would you be able to spend zero satoshis? What's the point of making those spendable?
Technically it is correct. Some example: 9f0b871e28fa19e2308e2fa74243bf2dcf23b160754df847d5f1e41aabe499d1. The last two inputs have zero satoshis and are spendable. Like it or not, there is no consensus rule that prevents creating or spending zero satoshis, when it is done by miners. It is limited for typical users, because such transactions does not meet the dust limit, so they are non-standard (but valid when placed in a block, so future soft-forks can make them standard).

Practically, why would we ever need that? There could be many reasons, because you can build many protocols based on that. The best example I found is when we would like to introduce Monero-like system in the future, where coin amounts will be hidden. By putting zeroes, you can say to old nodes "don't check that" and make it backward-compatible. Because you have to put some amount in such system, using zero seems to be quite natural choice in this case.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
Why would you be able to spend zero satoshis? What's the point of making those spendable?
legendary
Activity: 3472
Merit: 4801
you can create and move UTXO's with any amount (including zero satoshis).

Good point.  I hadn't thought of that.  I've updated my post.
copper member
Activity: 821
Merit: 1992
Quote
I suppose the good news is that Bitcoin has a hard limit on the maximum number of dust UTXO that it will allow to be created.
There is no such limit. If you are a typical user, you have to obey this dust limit. But if you are a miner, then you can create and move UTXO's with any amount (including zero satoshis). That means, you can burn all coins and create zero satoshis out of thin air, the number of UTXO's is not limited by consensus. You can try it out on regtest, there you can mine any test blocks with a CPU, because it has enormously low difficulty.

Also note that in the past everything below 0.01 BTC was considered a dust (and that limit was lowered without any forks or consensus changes, it is executed on node level and each node can create its own rules or stick with default settings). If a single satoshi will be worth some significant amount, then I think that dust limit can be lowered to one satoshi per kilobyte, per megabyte, maybe per transaction or per "(created*2)-consumed" outputs, we will see.
legendary
Activity: 3472
Merit: 4801
If u looked you will find maybe probably there were 3.73m real money transfer resulting in 1.7m dust don't you find these millions a burden on the UTXO set?

I suppose the good news is that Bitcoin has a hard limit on the maximum number of dust UTXO that it will allow to be created.
Therefore, this "dust UTXO" situation will eventually have to stop.

I think the limit is a bit below 2099999997690000  Wink
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
...
If u looked you will find maybe probably there were 3.73m real money transfer resulting in 1.7m dust don't you find these millions a burden on the UTXO set?
...

No I don't think it's a burden. Neither do any of my RPi nodes nor does the 10+ year old 1st gen mobile core i5 laptop that I just setup following this guide:
https://bitcointalksearch.org/topic/guide-full-node-opensuse-153-bitcoind-electrs-c-lightning-rtl-5366854

If old and or slow hardware with limited RAM and old drives can handle it with no issue, then there is no reason to worry.
Even if that number goes up by 3x or 4x by the time it does, 'scrap' hardware will be 4th gen i3 and 1TB SSD so I really don't see an issue.

-Dave
full member
Activity: 228
Merit: 156
I don't think the entity that owns the private key ever plans on (attempting) to spend any of the UTXO sent to this address.

Most of them are minus not plus; ie, I think I got confused what does that mean?
copper member
Activity: 2996
Merit: 2374
The intention of these transactions is not to transfer bitcoin, but rather to transfer a token via a layer 2 protocol.

I don't think the entity that owns the private key ever plans on (attempting) to spend any of the UTXO sent to this address.
full member
Activity: 228
Merit: 156
It's the USDT Omni wallet for an exchange.

https://www.omniexplorer.info/address/1HckjUpRGcrrRAtFaaCAUaGjsPx9oYmLaZ

Not malicious and there are a bunch of non dust UXTOs in there too.
Don't see what the big deal is, there are a lot of other wallets with similar inputs & outputs that are part of other exchanges.

Personally I would be doing it a bit differently if I was running an exchange, but if the back end programming works and works well running it this way then it's not a big deal.
Well, that and not using USDT or Omni in general, but that is not the point here.

-Dave

There are ~5.44m outs, ~3.73m ins
If u looked you will find maybe probably there were 3.73m real money transfer resulting in 1.7m dust don't you find these millions a burden on the UTXO set?
1.7m here, 394k the next address, 120k, 92k,..., a lot 20k, a lot 14k and so on.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
For a start before the rest of points an NFT could be represented by its money worth value, that even make sense
And what is worth? Prices in free market are constantly fluctuating. You state that an NFT is worth 10,000 sats and whoever takes it, takes the sats, right?

2) How to create fractional satoshis when they will be needed? You would have 0.493 satoshis, how to store that on-chain if it would be $493?
That's a big if. Even if the whole world got into Bitcoin, taxes, stocks, real estate, bonds etc., if everything was calculated in BTC, it'd be unusually unhealthy economically for 1 sat to worth so much whether the dollar had been hyper inflated or not.

In such crazy scenarios, here they come the hard forks.
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
It's the USDT Omni wallet for an exchange.

https://www.omniexplorer.info/address/1HckjUpRGcrrRAtFaaCAUaGjsPx9oYmLaZ

Not malicious and there are a bunch of non dust UXTOs in there too.
Don't see what the big deal is, there are a lot of other wallets with similar inputs & outputs that are part of other exchanges.

Personally I would be doing it a bit differently if I was running an exchange, but if the back end programming works and works well running it this way then it's not a big deal.
Well, that and not using USDT or Omni in general, but that is not the point here.

-Dave


full member
Activity: 228
Merit: 156
For a start before the rest of points an NFT could be represented by its money worth value, that even make sense
copper member
Activity: 821
Merit: 1992
Quote
here there is no corresponding valuable UTXO for each dust one?
It depends how you will define "valuable". Zero satoshi simply means "skip amount validation for old nodes". It can be treated as a valid, non-zero value on another chain. So, "valuable" depends entirely on the chain that is stored on Bitcoin. If it is valuable (on another chain), it will be spent. If not, then it will be left untouched.

Quote
you people are planning to increase the dust memory overhead of UTXOs to higher ratios than now
Sometimes you simply don't want to attach any value to some UTXO. Things are simpler and cheaper where you have zeros. It can be seen clearly on testnet, where you can just use zeros, use nonzero amounts to pay for fees, and assign any values in your software. Also, some UTXO's should have zeros, because for example if you have some NFT, then you want to assign zero, to show that no monetary value is attached into it and it is entirely separated, and there are no coins involved, you have just some token and some owner of that, determined by the Script.

Also, I have some other questions: imagine that zero satoshis (or just dust amounts) will be invalid (or distributed automatically to miners). Then:

1) How to represent things that should not have any monetary value? For example NFT's?
2) How to create fractional satoshis when they will be needed? You would have 0.493 satoshis, how to store that on-chain if it would be $493?
3) What amount should be put to outputs, where that value will be known later? For example, in decentralized mining you don't know how many coins should be received by each miner, when UTXO's are created. You know that after collecting all of them and getting enough confirmations.
Edit: 4) What if Bitcoin community will ever want to move to Monero-like system and hide coin amounts? Putting zero in that case seems to be a good choice. After your proposal, this change will be rejected.

If you want to get rid of dust UTXO's, then I think you should put an incentive for those who will do that. So, something like fees based on UTXO consumption and creation could work better than taking UTXO's by force. In this way, you can still have such outputs, but they will be more expensive (for example if you could pay 0.5 satoshis per byte for consuming a lot of dust inputs, then some people may start doing that).
full member
Activity: 228
Merit: 156
For example imagine doing something like that:
Code:
+------------------------------------+
| Alice 50.01 BTC -> Alice  0.00 BTC |
| Bob    0.00 BTC    Bob   50.00 BTC |
+------------------------------------+
Then, "0.00 BTC" can represent for example "1000.00 ALT" and you can atomically trade on-chain. In this case, Alice sold 50 BTC to Bob for 1000 ALT.

Your idea of destroying or moving small coins somewhere else can break such things. You would think you destroyed 0.00000546 BTC, when in reality you would destroy also some altcoins or other tokens you know nothing about. Also, your idea means using zero satoshis will be impossible or pointless, so that would break many future protocols (like fractional satoshis on-chain, NFT's on Bitcoin, atomic trades between tokens on Bitcoin, etc.).

1-Your example implies what was once said that every real BTC transfer of considerable value (swap with an alt coin, or any side chain TX) creates 1 dust UTXO, but here there is no corresponding valuable UTXO for each dust one?
There are 1.7m extra dust  UTXOs, resulting from about 3.44m real transfer.

2-What you say means that your protocols/plans are more like non-standard transactions that just want to be attached to Bitcoin and that you people are planning to increase the dust memory overhead of UTXOs to higher ratios than now (~ 7%less than 1000 Sat, ~10% less than 1$, 17% less than 4$)

legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
Wait a minute, but people are not going to pay a few cents as ransome?
Ransomware is mentioned in the reports by the people who submitted them. Those don't need to be true though.

With only 2 report, where one of them say "I can help u", the report is far for reliable.

Edit: I guess they used 0.00000546 BTC, because it was the minimal amount then, when Omni was created. But if they could use zero satoshi here, then I think they would do that. The whole idea is to get some representation of a token directly on Bitcoin, that is spendable. If you can create zero satoshis on-chain and if it is standard, then you can create tokens and exchange directly between Bitcoin and Altcoin in a single transaction!

For better or worse, UTXO is 0 satoshi isn't possible. There are few concern with 0 satoshi UTXO which mentioned here https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-December/019637.html.
copper member
Activity: 821
Merit: 1992
Quote
I don't see where is "Omni" written in the original address?
Just look at transactions. Blockchair can even decode that and show you details related to Omni Layer: https://blockchair.com/bitcoin/transaction/1be33473aa7fd41e75a1d7e3000a45b2ff8e394b486a9534e4a4600ff4146c6b
Code:
{
    "txid": "1be33473aa7fd41e75a1d7e3000a45b2ff8e394b486a9534e4a4600ff4146c6b",
    "hash": "1be33473aa7fd41e75a1d7e3000a45b2ff8e394b486a9534e4a4600ff4146c6b",
    "version": 1,
    "size": 257,
    "vsize": 257,
    "weight": 1028,
    "locktime": 0,
    "vin": [
        {
            "txid": "ded898b25fa3e536cf4cb2a102488abecc2f3bc2bd0315a74f305fcc6dd5361a",
            "vout": 0,
            "scriptSig": {
                "asm": "3045022100d0808a9222507fc960e77b6ff074f41096e8d553455b938d74098bd87136e48a022020146378fdf43ed7dea3541fee0ea206fa036897c8bd41c77996ef5d269e5c46[ALL] 030651e1d15ae9a284ffd712885529d3344db3700be756e6c22c56a6c1b57d359d",
                "hex": "483045022100d0808a9222507fc960e77b6ff074f41096e8d553455b938d74098bd87136e48a022020146378fdf43ed7dea3541fee0ea206fa036897c8bd41c77996ef5d269e5c460121030651e1d15ae9a284ffd712885529d3344db3700be756e6c22c56a6c1b57d359d"
            },
            "sequence": 4294967295
        }
    ],
    "vout": [
        {
            "value": 0.00427136,
            "n": 0,
            "scriptPubKey": {
                "asm": "OP_DUP OP_HASH160 b64513c1f1b889a556463243cca9c26ee626b9a0 OP_EQUALVERIFY OP_CHECKSIG",
                "hex": "76a914b64513c1f1b889a556463243cca9c26ee626b9a088ac",
                "address": "1HckjUpRGcrrRAtFaaCAUaGjsPx9oYmLaZ",
                "type": "pubkeyhash",
                "addresses": [
                    "1HckjUpRGcrrRAtFaaCAUaGjsPx9oYmLaZ"
                ],
                "reqSigs": 1
            }
        },
        {
            "value": 0.00000546,
            "n": 1,
            "scriptPubKey": {
                "asm": "OP_DUP OP_HASH160 69bb7659642f5217887351e6a9ccbc45ccd0938d OP_EQUALVERIFY OP_CHECKSIG",
                "hex": "76a91469bb7659642f5217887351e6a9ccbc45ccd0938d88ac",
                "address": "1Ae4XFaCWSVsxdyGBWArfAepWwa99Lmskx",
                "type": "pubkeyhash",
                "addresses": [
                    "1Ae4XFaCWSVsxdyGBWArfAepWwa99Lmskx"
                ],
                "reqSigs": 1
            }
        },
        {
            "value": 0,
            "n": 2,
            "scriptPubKey": {
                "asm": "OP_RETURN 6f6d6e69000000000000001f00000014f540a380",
                "hex": "6a146f6d6e69000000000000001f00000014f540a380",
                "type": "nulldata"
            }
        }
    ]
}
At the end you have "OP_RETURN 6f6d6e69000000000000001f00000014f540a380" and "6f6d6e69" is "omni". The rest are 16 bytes related to the Omni Layer. So you can type the same transaction ID in Omni Explorer and get some details: https://omniexplorer.info/search/1be33473aa7fd41e75a1d7e3000a45b2ff8e394b486a9534e4a4600ff4146c6b

Edit: I guess they used 0.00000546 BTC, because it was the minimal amount then, when Omni was created. But if they could use zero satoshi here, then I think they would do that. The whole idea is to get some representation of a token directly on Bitcoin, that is spendable. If you can create zero satoshis on-chain and if it is standard, then you can create tokens and exchange directly between Bitcoin and Altcoin in a single transaction!

For example imagine doing something like that:
Code:
+------------------------------------+
| Alice 50.01 BTC -> Alice  0.00 BTC |
| Bob    0.00 BTC    Bob   50.00 BTC |
+------------------------------------+
Then, "0.00 BTC" can represent for example "1000.00 ALT" and you can atomically trade on-chain. In this case, Alice sold 50 BTC to Bob for 1000 ALT.

Your idea of destroying or moving small coins somewhere else can break such things. You would think you destroyed 0.00000546 BTC, when in reality you would destroy also some altcoins or other tokens you know nothing about. Also, your idea means using zero satoshis will be impossible or pointless, so that would break many future protocols (like fractional satoshis on-chain, NFT's on Bitcoin, atomic trades between tokens on Bitcoin, etc.).
legendary
Activity: 2730
Merit: 7065
And you still have no way of stopping it till now today 13 Feb 2022?Huh
Stop the address from sending or receiving coins? Bitcoin can't be censored that way by anyone. That's a feature of it, not a bug. If I wanted to, I could send you dust inputs every day, how would you prevent that?

Wait a minute, but people are not going to pay a few cents as ransome?
Ransomware is mentioned in the reports by the people who submitted them. Those don't need to be true though.
full member
Activity: 228
Merit: 156
And you still have no way of stopping it till now today 13 Feb 2022?Huh
Wait a minute, but people are not going to pay a few cents as ransome?
It could be a hacking method, or just a notify that some real payment happened elsewhere
legendary
Activity: 2730
Merit: 7065
Yes, according to WalletExplorer, it's an address connected with the Huobi.com exchange.
The address also appears in Bitcoin's abuse database as being connected to ransomware attacks. It's been reported twice, in 2019 and 2020.
full member
Activity: 228
Merit: 156
I don't see where is "Omni" written in the original address?

It's the Huobi wallet
https://bitinfocharts.com/bitcoin/wallet/Huobi-wallet
Could be a malicious address
Pages:
Jump to: