Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Satosh¡ Slot on July 08, 2014, 11:18:00 AM



Title: Why did this transaction confirm?
Post by: Satosh¡ Slot on July 08, 2014, 11:18:00 AM
https://blockchain.info/tx/ee61b911610f66f539832699fbbf4ab3955c8bd5ad0cfa570ff500dedcde5bf8

Isn't the 1 satoshi outputs present in this transaction supposed to be considered dust?

The transaction fee is only 0.0001 for a 26kb transaction, it appears very low so I assume this transaction had very low priority.

What am I missing?



Title: Re: Why did this transaction confirm?
Post by: amaclin on July 08, 2014, 12:29:04 PM
Quote
Re: Why did this transaction confirm?

1) because it is valid
2) because one of miners decided to include it to a block

Quote
Isn't the 1 satoshi outputs present in this transaction supposed to be considered dust?

Dust outputs are allowed. Standard clients disallows to send dust values without fees, but this transaction was not created by standard client, but some kind of bot-software

Quote
The transaction fee is only 0.0001 for a 26kb transaction, it appears very low so I assume this transaction had very low priority.

Yes. But if you are miner you are able to put in block whatever you want while it is valid.
Another way - is to find a miner with old (but still not obsolete) software


Title: Re: Why did this transaction confirm?
Post by: gmaxwell on July 08, 2014, 12:51:26 PM
I've already nagged the miner in question about the wad of dust floods they just mined.


If you've received some of this 1e-8 dust to a bitcoin-core wallet, https://github.com/petertodd/dust-b-gone is a good way to get rid of it.


Title: Re: Why did this transaction confirm?
Post by: Satosh¡ Slot on July 08, 2014, 01:47:31 PM
Quote
Re: Why did this transaction confirm?

1) because it is valid
2) because one of miners decided to include it to a block

Yes, but I saw earlier transactions take a long time to be included in a block and blockchain lists this as received and included in a block at the same time. So I guess it had problems being brodcasted properly, but still got included in a block? Or was it mined the same minute it was created?


Title: Re: Why did this transaction confirm?
Post by: gmaxwell on July 08, 2014, 01:50:21 PM
Yes, but I saw earlier transactions take a long time to be included in a block and blockchain lists this as received and included in a block at the same time. So I guess it had problems being brodcasted properly, but still got included in a block? Or was it mined the same minute it was created?
The times reported on bc.i are just whenever they saw it. Because this is a dust transaction that wouldn't have generally been relayed (and because bc.i themselves suppress these when unconfirmed) it wouldn't have been seen by bc.i until it ended up in a block.


Title: Re: Why did this transaction confirm?
Post by: DeathAndTaxes on July 08, 2014, 02:48:45 PM
As pointed out dust is allowed.  That miner just massively bloated the UTXO and those outputs will very likely never be spent.  The protocol tries to make this difficult by making dust non-standard and it assumes that miners are at least moderately intelligent.  Miners have to parse the UTXO to verify txn so including this dusty garbage only makes their future work more difficult.  In a logical world with rational miners wouldn't be cutting their own throat.

You may want to ask bcpool.io why they included this txn knowing that nobody will ever use those outputs and thus they will bloat the UTXO (increasing memory pressure for every node both now and in the future) probably for perpetuity.  Are they malicious or are they just ignorant and still feel competent enough to run a pool?

If you don't like this then really there are only two things you can do:
a) if you are a miner, then boycott bcpool.io as they are either idiots of malicious.  If they have no hashpower they can't mine any more stupid txns.
b) Push to make txn with outputs below the dust limit invalid.  This would be a hard fork but it could be done.  One option would be to have a lower threshold for valid.  i.e. min fee is 10,000 satoshis, dust limit is 5,430 sat, valid limit is 543 sat (1/10th dust limit).


Title: Re: Why did this transaction confirm?
Post by: amaclin on July 08, 2014, 03:00:23 PM
Quote
If you don't like this then really there are only two things you can do:
a) if you are a miner, then boycott bcpool.io as they are either idiots of malicious.

Slow down, man. The miner had a right to mine this transaction. And the whole bitcoin network agreed that block is valid.
There are a lot of dust and spam transactions in the blockchain. We should live with them and think about future, not about past


Title: Re: Why did this transaction confirm?
Post by: DeathAndTaxes on July 08, 2014, 03:15:47 PM
There are a lot of dust and spam transactions in the blockchain. We should live with them and think about future, not about past

Well the pool operator decided to include the txn not the individual miners.  Miners have a right to use another pool.  If they agree with the decision to include this txn well they obviously wouldn't change pools would they.  However if they don't agree with that stupid decision then they are free to use a pool they find more responsible.

Quote
There are a lot of dust and spam transactions in the blockchain. We should live with them and think about future, not about past
That is the whole point isn't it.  Most of the dust in the UTXO (forget the blockchain the critical resource is the UTXO) is from BEFORE the dust limits.  Since the dust limits were put in place most miners intentionally DO NOT include these dust outputs because they are unspendable and they will bloat the UTXO and increase the cost of all nodes forever.  So it is thinking about the future.  Miners who don't want to see the UTXO bloated IN THE FUTURE should probably choose another pool.  Right?


Title: Re: Why did this transaction confirm?
Post by: Peter R on July 08, 2014, 05:42:12 PM
Hopefully we can build community awareness around the important difference between "blockchain bloat" and "UTXO bloat"--I think many users erroneously lump these two topics as one in their minds.  A more intelligent way to limit unnecessary growth of the UTXO set like we just saw with ee61b911... (https://blockchain.info/tx/ee61b911610f66f539832699fbbf4ab3955c8bd5ad0cfa570ff500dedcde5bf8) might be one of the few hard forks I'd support.

By the way, recent analysis of the UTXO set (https://bitcointalk.org/index.php?topic=563972.msg7658989#msg7658989) by DeathAndTaxes as of Block #305,303 indicates that the "dust rule" has had a notable impact.  If dust rules had been in place since 2009, we'd have a much cleaner UTXO set today with essentially no loss of function to bitcoin.  

https://i.imgur.com/j4XjZgN.gif


I've already nagged the miner in question about the wad of dust floods they just mined.

Blockchain.info indicates that the block with the offending TX (Block #309,740) was relayed by "Unknown 37.187.90.171" and is the only block relayed by that IP address in the last 24 hours.  May I ask how you were able to contact them?


Title: Re: Why did this transaction confirm?
Post by: gmaxwell on July 08, 2014, 05:47:52 PM
Blockchain.info indicates that the block with the offending TX (Block #309,740) was relayed by "Unknown 37.187.90.171" and is the only block relayed by that IP address in the last 24 hours.  May I ask how you were able to contact them?
BC.i's analysis is ... seldom good.  Just look in the coinbase of the block.


Title: Re: Why did this transaction confirm?
Post by: amaclin on July 08, 2014, 06:36:27 PM
By the way.
This is not new spam-attack from enjoy-sochi.
It is echo of past events.
Transaction https://blockchain.info/tx/ee61b911610f66f539832699fbbf4ab3955c8bd5ad0cfa570ff500dedcde5bf8
was created and sent in February. You can find in in google archives.
For example
http://webcache.googleusercontent.com/search?q=cache:WhRSCSqOMC4J:hibitcoin.com/bitcoin/unspent/18qQzy6SR6HmMpCLs1nHb2jraTMoXPPkW6
Some node ( may be not bcpool.io ) keeped it in its memory pool and relayed today
bcpool.io got it, checked and included into a block.


Title: Re: Why did this transaction confirm?
Post by: gmaxwell on July 08, 2014, 06:55:36 PM
Some node ( may be not bcpool.io ) keeped it in its memory pool and relayed today
bcpool.io got it, checked and included into a block.
Normal nodes do not relay old transactions... but, indeed, could have just been them not updated after all this time.

The one I searched for got not hits, good sleuthing. :)


Title: Re: Why did this transaction confirm?
Post by: Satosh¡ Slot on July 08, 2014, 07:06:07 PM
If you've received some of this 1e-8 dust to a bitcoin-core wallet, https://github.com/petertodd/dust-b-gone is a good way to get rid of it.

The only person I know that got one of these say he/she has no other unspent output on this address so I guess it's easier to just remove it from his/hers bitcoin core. Still curious what kind of problems he/she can run into when trying to spend it though.


Since the dust limits were put in place most miners intentionally DO NOT include these dust outputs because they are unspendable and they will bloat the UTXO and increase the cost of all nodes forever.

I see several of these outputs are already spent. How are they supposed to be unspendable?


Title: Re: Why did this transaction confirm?
Post by: gmaxwell on July 08, 2014, 07:07:14 PM
I see several of these outputs are already spent. How are they supposed to be unspendable?
They are technically spendable but they cost more in marginal fees than they are worth... It's altruistic to redeem them but not rational to do so otherwise.


Title: Re: Why did this transaction confirm?
Post by: amaclin on July 08, 2014, 07:07:47 PM
Quote
Normal nodes do not relay old transactions...
They have a "mempool" request and everyone is able to take all transactions from a node and re-broadcast them to the network.
You know that it is very easy to do. Even my buggy-script do it for some transactions sometimes.  ;D


Title: Re: Why did this transaction confirm?
Post by: amaclin on July 08, 2014, 07:11:17 PM
Quote
They are technically spendable but they cost more in marginal fees than they are worth...
No. It is possible to collect dust-outputs with free-transactions.
Look here https://blockchain.info/address/155M7TvBRww6WFdtGQgTYUH8DuLheNafCf


Title: Re: Why did this transaction confirm?
Post by: gmaxwell on July 08, 2014, 07:12:56 PM
Quote
They are technically spendable but they cost more in marginal fees than they are worth...
No. It is possible to collect dust-outputs with free-transactions.
Look here https://blockchain.info/address/155M7TvBRww6WFdtGQgTYUH8DuLheNafCf
Yes, but they still cost more in marginal fees, instead those transactions used priority to get them through which could have instead been used to make valid transactions... and the loss of priority will me that person must pay more fees in the future.


Title: Re: Why did this transaction confirm?
Post by: amaclin on July 08, 2014, 07:19:46 PM
Quote
and the loss of priority will me that person must pay more fees in the future.
What are you talking about? This person can send free transactions each second block!
309655 https://blockchain.info/tx/0e7f9ab6e5b2916b390f749c6b980f669e1dc1e02fc9d795b833451889524ded
309657 https://blockchain.info/tx/bddbbc8d0e9d8dc8e4fd1b48bfd9582318648ba501243015887082773b48a860
309659 https://blockchain.info/tx/ce9862e3cadc5d9b87da119b52b8f2b1c6a6a7e6d86d9df108febcc715c5a89d
S/he does not pay fees at all!



Title: Re: Why did this transaction confirm?
Post by: Peter R on July 08, 2014, 08:17:05 PM
It looks like https://blockchain.info/tx/ee61b911610f66f539832699fbbf4ab3955c8bd5ad0cfa570ff500dedcde5bf8 is just one of many spam transactions that have been mined recently.  If you look up the 1Enjoy address, you'll see that several transactions were included in blocks 309740 and 309657.  Both these blocks were mined by the same group, as the coinbase was awarded to https://blockchain.info/address/19RZPWsNmVM2cVVDMtkzo2UtkFBFc6nFE8 in each case.  BCPool.io (https://bcpool.io/index.php?page=statistics&action=blocks) shows that they were the pool responsible for mining these two blocks.  In fact, as far as I can tell, these are the only blocks ever mined by BCPool.  

In total, 17,976 satoshi dust outputs sent from 1Enjoy have been mined in the last two days by BCPool.io.

Code:
BLOCK #309740:  10,486 DUST OUTPUTS 
        ADDRESS SENT FROM                                            TX HASH                              N_OUTPUTS    
===================================================================================================================                      
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z b2b6112e73cbe0937a1b60c9abfc4c2ca6e26b2612c90ec598b1cd28787a553e 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z 5e5d17901378b8835861d8cc0df2b5f9bf3c86759c3821f96470cd852344d799 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z b2bf7525618ed5402024d5bff6f477a2093965d3f11ececbc2b6a9b5bbe1f5d5 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z 3df8f4a7e06486bb3b0700935a16fc6d4fad397dcb6c88b9c4b6a7453301aa54 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z ae05ddfc8aa206b213c71ec0e96723dcd4ff03a71ca76b469d225d1c60d9e262 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z f75b455b4df94bcdcd54985b4aeea9948d2a1dca0f63c65b85ad2d941050c5cf 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z ee61b911610f66f539832699fbbf4ab3955c8bd5ad0cfa570ff500dedcde5bf8 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z a22186cbcf82cac66da17183209f20f76088934c931bec131fe71ad2f250e8f8 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z 0469286403543b7d794fe52661135a80142c47ac541793c703fd637a4e9dc0bf 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z a71dc9abd8bae377b661b0c288222acf2ab62fc7bf96b0bab2dd5354fbc91643 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z f437d94c1cfe818c44f4505f3e6506839113ec747d815a867e953a4164276047 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z eb95d902eb841ce23c9c1466e010cbb05d43d1c248376440f9dd56ee1bc8b3e5 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z b62416ceb3453d6dcba95213e4e222915438a4b70eba37e09099110b20be0d52 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z f3aba1c064e9c9a1d49db3bce42c07c184a0b329366994000fa49f0bc8f3ba16 749

BLOCK #309657: 7,490 DUST OUTPUTS
        ADDRESS SENT FROM                                            TX HASH                              N_OUTPUTS    
===================================================================================================================  
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z 2e7fdb43e2a0fe17cfe2d283a2da4d375204700aef4bf2c31056125f4383b121 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z 3d1105d7c2cd36705b2163fa2d0f74973377467aefea72156a30444f330acf71 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z 5c4e56943f3128629ebecb41f5916bd7bc1dceaccc37f29e59c385464f2bf558 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z 536adfb745ffaa8c1fb698414475f5ca7d82846eadd912cfe0a76045d78c3198 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z 45c7544374e88de47d9be2e3e100f4aa10aafd9469c4dba8d55a870f83c312ab 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z e7ae2378a44a940a8c872a63e43fa67c5a023df4df3f9ca8011611422fc2861c 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z d864e3cc07dc79f221bd91210b274e136159ccbb5c9eafad906d9d08c5558ce5 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z 3dedbc086d5cfc81bd3614a1b3fab1bb4d73d8982d9552e811f84f0118a1fc12 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z 7337d7ac353a9283c65a1ab99d28f97997784a0fb26d0dc0b59f2fa2556c4460 749
1Enjoy1C4bYBr3tN4sMKxvvJDqG8NkdR4Z 634a7fdcba3fe91da07f44e6b9bee1c659cbfca27076bd8b61984d062c071651 749


Title: Re: Why did this transaction confirm?
Post by: DannyHamilton on July 08, 2014, 08:41:29 PM
It looks like https://blockchain.info/tx/ee61b911610f66f539832699fbbf4ab3955c8bd5ad0cfa570ff500dedcde5bf8 is just one of many spam transactions that have been mined recently.

Yep.  I noticed this one last week:

https://blockchain.info/tx/cff61bad78a1759cf71cf287d67f3a6d63f9f9c2f0566735c06446455834b231


Title: Re: Why did this transaction confirm?
Post by: Peter R on July 08, 2014, 08:56:03 PM
It looks like https://blockchain.info/tx/ee61b911610f66f539832699fbbf4ab3955c8bd5ad0cfa570ff500dedcde5bf8 is just one of many spam transactions that have been mined recently.

Yep.  I noticed this one last week:

https://blockchain.info/tx/cff61bad78a1759cf71cf287d67f3a6d63f9f9c2f0566735c06446455834b231

Interesting.  That one was sent from "SPAM SEND" (1DkRWKXpfQwm5b1pGL2QdpPdrUdKSdzbnG) and mined by Discuss Fish.  I checked the two blocks mined recently by BCPool (blocks 309740 and 309657) and indeed they mined another 120 satoshi spam outputs from "SPAM SEND" in addition to the 17,976 from 1Enjoy that I reported earlier.  

What's interesting is that BCPool also includes some transactions that consolidated a bunch of dust too:

https://blockchain.info/address/1MQQAxLKLKt3RznFMLmxXMieEuCqKXbMoe

So, who is BCPool?


Title: Re: Why did this transaction confirm?
Post by: DeathAndTaxes on July 08, 2014, 08:57:55 PM
The coinbase txn decoded contains bcpoool.io

https://bcpool.io/



Title: Re: Why did this transaction confirm?
Post by: Peter R on July 08, 2014, 09:21:59 PM
The coinbase txn decoded contains bcpoool.io

https://bcpool.io/


Yes, but there seems to be no information about bcpool.io.  Their "about" page:

https://bcpool.io/index.php?page=about&action=pool

Is also exactly the same this "about" page:

https://chunkypools.com/aur/index.php?page=about&action=pool

And doesn't contain any information about them at all.





Title: Re: Why did this transaction confirm?
Post by: amaclin on July 09, 2014, 03:45:22 AM
Hmm. I also see some strange things that have never seen before.
Lets take transaction https://blockchain.info/tx/4af1a19fd6940758e2c4a3e779cb25023d93668c75a313f93e8008c0b075488e
it was created ant sent a ~week ago with 0 fees and very-very low priority (date on bc.i is incorrect - tx is older)
No miner wanted to include this transaction into a block.
There was no reason to include this transaction
Yesterday somebody re-broadcasted it (bc.i forgot the first copy) again

Yesterday I redeemed it with
https://blockchain.info/tx/8a1f0f07fb397b2aa0e77995723f2dac9aee7df63a6f05a7db7d168d62a60f94
with a fee of 0.0001

So, there is a reason now for a miner to include both transactions - miner gains 0.0001 (which is more than default 0.00001 per kb)

And these two transactions were mined! Of course, in same block (309837) because miner would not include first transaction without second.
----
Update 1: No. Block 309837 contains a lot of free transactions.
----
Update 2: child-pays-for-parent?


Title: Re: Why did this transaction confirm?
Post by: RedDiamond on July 09, 2014, 02:38:25 PM
Hmm. I also see some strange things that have never seen before.
Lets take transaction https://blockchain.info/tx/4af1a19fd6940758e2c4a3e779cb25023d93668c75a313f93e8008c0b075488e


Some of the addresses in transaction are also quite interesting: 1P1ease..., 1Give..., 1hint...



Title: Re: Why did this transaction confirm?
Post by: amaclin on July 09, 2014, 03:06:30 PM
Quote
Some of the addresses in transaction are also quite interesting: 1P1ease..., 1Give..., 1hint...

Nothing interesting. You have missed topic https://bitcointalk.org/index.php?topic=661781.0 (I do not remember the exact page)
The transaction with vanity addresses was used as a "public message".


Title: Re: Why did this transaction confirm?
Post by: RedDiamond on July 09, 2014, 03:42:37 PM
Quote
Some of the addresses in transaction are also quite interesting: 1P1ease..., 1Give..., 1hint...

Nothing interesting. You have missed topic https://bitcointalk.org/index.php?topic=661781.0 (I do not remember the exact page)
The transaction with vanity addresses was used as a "public message".

Yes, missed totally  :-[. Thank you for the link, looks that the puzzle was great fun.


Title: Re: Why did this transaction confirm?
Post by: runeks on July 26, 2014, 02:02:40 PM
FWIW, one of the outputs in f75b455b4df94bcdcd54985b4aeea9948d2a1dca0f63c65b85ad2d941050c5cf sends 1 Satoshi to an address I own, that has been used as a change address in a previous transaction. So it looks like the outputs aren't random, or at least not all of them. Someone has scanned the blockchain are they are sending outputs to existing addresses.

I discovered this thread because I noticed someone had sent 1 Satoshi to me on July 8, and the transaction ID led me to this thread.