Author

Topic: Gold collapsing. Bitcoin UP. - page 353. (Read 2032266 times)

legendary
Activity: 1764
Merit: 1002
May 15, 2015, 06:45:40 PM
That seems to be correct.

And ... each node holds a different set of non-standard and invalid transactions, because they are only held, not propagated. Correct?



i wonder why they would even be held.  why not ignored?
legendary
Activity: 1512
Merit: 1005
May 15, 2015, 06:38:50 PM
That seems to be correct.

And ... each node holds a different set of non-standard and invalid transactions, because they are only held, not propagated. Correct?

legendary
Activity: 1764
Merit: 1002
May 15, 2015, 06:33:42 PM
as Bitcoin has alot of enemies, why do you think we aren't seeing a regular stream of these types of blocks?

I'm not trying to be conspiratorial here, just factual, but there is no real gain in doing it at 1 MB. 1 MB was chosen to be a size that is fairly immune to spamming attacks. Opinions differ I guess about whether 20 MB is similarly immune.

Doesn't make sense that the protocol allows non standard TX's to be accepted in block form by nodes yet at the same time they won't relay or accept them if simply propagated.

The transactions were always valid.

To make them invalid would require a hard fork. We try to avoid hard forks for obvious solutions.

So the compromise was to change bitcoind nodes to only consider certain types of transactions as "standard" and not re-transmit transactions that did not qualify as "standard", these have since been called "non-standard". Along with this change many miners decided to not include these "non-standard" transactions either (but some still do).

This did not require a fork because the base protocol, which is defined by what constitutes a valid block, did not change.

As a consequence, non-standard transactions can still be included in a block because they are valid transactions from a block verification standpoint. However to discourage them, most P2P nodes and most miners ignore them.

So how come they appear in the unconfirmed transaction list on blockchain.info?


Because someone sent them to blockchain.info directly, or they were relayed by a node that ignores the "non-standard" agreement (not rule). blockchain.info's website is also setup to be a view of the network, they include visibility into strange and other transactions. So it would make sense they would also display information on non-standard transactions that most node's won't re-transmit.

Again they are valid transactions, it's just an informal agreement to ignore/limit them. A formal agreement requires a hard fork.

So any code changes made to the Bitcoin Core client do not require forks which is to be distinguished from  changes to the protocol which defines what is acceptable as a block and requires a fork?
legendary
Activity: 1512
Merit: 1005
May 15, 2015, 05:55:22 PM
as Bitcoin has alot of enemies, why do you think we aren't seeing a regular stream of these types of blocks?

I'm not trying to be conspiratorial here, just factual, but there is no real gain in doing it at 1 MB. 1 MB was chosen to be a size that is fairly immune to spamming attacks. Opinions differ I guess about whether 20 MB is similarly immune.

Doesn't make sense that the protocol allows non standard TX's to be accepted in block form by nodes yet at the same time they won't relay or accept them if simply propagated.

The transactions were always valid.

To make them invalid would require a hard fork. We try to avoid hard forks for obvious solutions.

So the compromise was to change bitcoind nodes to only consider certain types of transactions as "standard" and not re-transmit transactions that did not qualify as "standard", these have since been called "non-standard". Along with this change many miners decided to not include these "non-standard" transactions either (but some still do).

This did not require a fork because the base protocol, which is defined by what constitutes a valid block, did not change.

As a consequence, non-standard transactions can still be included in a block because they are valid transactions from a block verification standpoint. However to discourage them, most P2P nodes and most miners ignore them.

So how come they appear in the unconfirmed transaction list on blockchain.info?


Because someone sent them to blockchain.info directly, or they were relayed by a node that ignores the "non-standard" agreement (not rule).

Again they are valid transactions, it's just an informal agreement to ignore/limit them. A formal agreement requires a hard fork.

Ok. And I see that the mempool (I run a standard bitcoind) is even bigger, but according to docs the nodes keep invalid transactions, and logically they therefore also keep the nonstandard transactions, in the memory pool until shutdown. There seems to be no way to display the number of valid and standard transactions waiting in the mempool in a standard node. Correct?

Edit: After (upgrade and) restart of my node, the mempool is only 107 long, i guess those are mostly valid and standard transactions waiting to get in.
legendary
Activity: 1153
Merit: 1000
May 15, 2015, 05:46:12 PM
as Bitcoin has alot of enemies, why do you think we aren't seeing a regular stream of these types of blocks?

I'm not trying to be conspiratorial here, just factual, but there is no real gain in doing it at 1 MB. 1 MB was chosen to be a size that is fairly immune to spamming attacks. Opinions differ I guess about whether 20 MB is similarly immune.

Doesn't make sense that the protocol allows non standard TX's to be accepted in block form by nodes yet at the same time they won't relay or accept them if simply propagated.

The transactions were always valid.

To make them invalid would require a hard fork. We try to avoid hard forks for obvious solutions.

So the compromise was to change bitcoind nodes to only consider certain types of transactions as "standard" and not re-transmit transactions that did not qualify as "standard", these have since been called "non-standard". Along with this change many miners decided to not include these "non-standard" transactions either (but some still do).

This did not require a fork because the base protocol, which is defined by what constitutes a valid block, did not change.

As a consequence, non-standard transactions can still be included in a block because they are valid transactions from a block verification standpoint. However to discourage them, most P2P nodes and most miners ignore them.

So how come they appear in the unconfirmed transaction list on blockchain.info?


Because someone sent them to blockchain.info directly, or they were relayed by a node that ignores the "non-standard" agreement (not rule). blockchain.info's website is also setup to be a view of the network, they include visibility into strange and other transactions. So it would make sense they would also display information on non-standard transactions that most node's won't re-transmit.

Again they are valid transactions, it's just an informal agreement to ignore/limit them. A formal agreement requires a hard fork.
legendary
Activity: 1153
Merit: 1000
May 15, 2015, 05:44:24 PM
NYT has an article claiming Nick is Satoshi.

http://www.nytimes.com/2015/05/17/business/decoding-the-enigma-of-satoshi-nakamoto-and-the-birth-of-bitcoin.html?_r=0

While I agree the evidence shows him to be in the likely list, there is a pool of other people who worked on similar projects and participated in similar forums, any one of which could be Satoshi as well.
legendary
Activity: 1512
Merit: 1005
May 15, 2015, 05:44:02 PM
as Bitcoin has alot of enemies, why do you think we aren't seeing a regular stream of these types of blocks?

I'm not trying to be conspiratorial here, just factual, but there is no real gain in doing it at 1 MB. 1 MB was chosen to be a size that is fairly immune to spamming attacks. Opinions differ I guess about whether 20 MB is similarly immune.

Doesn't make sense that the protocol allows non standard TX's to be accepted in block form by nodes yet at the same time they won't relay or accept them if simply propagated.

The transactions were always valid.

To make them invalid would require a hard fork. We try to avoid hard forks for obvious solutions.

So the compromise was to change bitcoind nodes to only consider certain types of transactions as "standard" and not re-transmit transactions that did not qualify as "standard", these have since been called "non-standard". Along with this change many miners decided to not include these "non-standard" transactions either (but some still do).

This did not require a fork because the base protocol, which is defined by what constitutes a valid block, did not change.

As a consequence, non-standard transactions can still be included in a block because they are valid transactions from a block verification standpoint. However to discourage them, most P2P nodes and most miners ignore them.

So how come they appear in the unconfirmed transaction list on blockchain.info?
legendary
Activity: 1153
Merit: 1000
May 15, 2015, 05:40:26 PM
as Bitcoin has alot of enemies, why do you think we aren't seeing a regular stream of these types of blocks?

I'm not trying to be conspiratorial here, just factual, but there is no real gain in doing it at 1 MB. 1 MB was chosen to be a size that is fairly immune to spamming attacks. Opinions differ I guess about whether 20 MB is similarly immune.

Doesn't make sense that the protocol allows non standard TX's to be accepted in block form by nodes yet at the same time they won't relay or accept them if simply propagated.

The transactions were always valid.

To make them invalid would require a hard fork. We try to avoid hard forks for obvious solutions.

So the compromise was to change bitcoind nodes to only consider certain types of transactions as "standard" and not re-transmit transactions that did not qualify as "standard", these have since been called "non-standard". Along with this change many miners decided to not include these "non-standard" transactions either (but some still do).

This did not require a fork because the base protocol, which is defined by what constitutes a valid block, did not change.

As a consequence, non-standard transactions can still be included in a block because they are valid transactions from a block verification standpoint. However to discourage them, most P2P nodes and most miners ignore them.
legendary
Activity: 2968
Merit: 1198
May 15, 2015, 05:39:42 PM
as Bitcoin has alot of enemies, why do you think we aren't seeing a regular stream of these types of blocks?

I'm not trying to be conspiratorial here, just factual, but there is no real gain in doing it at 1 MB. 1 MB was chosen to be a size that is fairly immune to spamming attacks. Opinions differ I guess about whether 20 MB is similarly immune.





Doesn't make sense that the protocol allows non standard TX's to be accepted in block form by nodes yet at the same time they won't relay or accept them if simply propagated.

The main reason it does make sense is that p2p relaying has no fee.
legendary
Activity: 1764
Merit: 1002
May 15, 2015, 05:21:03 PM
as Bitcoin has alot of enemies, why do you think we aren't seeing a regular stream of these types of blocks?

I'm not trying to be conspiratorial here, just factual, but there is no real gain in doing it at 1 MB. 1 MB was chosen to be a size that is fairly immune to spamming attacks. Opinions differ I guess about whether 20 MB is similarly immune.





Doesn't make sense that the protocol allows non standard TX's to be accepted in block form by nodes yet at the same time they won't relay or accept them if simply propagated.
legendary
Activity: 2968
Merit: 1198
May 15, 2015, 05:13:02 PM
as Bitcoin has alot of enemies, why do you think we aren't seeing a regular stream of these types of blocks?

I'm not trying to be conspiratorial here, just factual, but there is no real gain in doing it at 1 MB. 1 MB was chosen to be a size that is fairly immune to spamming attacks. Opinions differ I guess about whether 20 MB is similarly immune.



legendary
Activity: 1153
Merit: 1000
May 15, 2015, 03:29:49 PM
as Bitcoin has alot of enemies, why do you think we aren't seeing a regular stream of these types of blocks?

The attacks yield zero profit, and in actuality cost money. Only a government agency (or something similar) not driven by profit and highly motivated to stop bitcoin would bother with these types of blockchain/UTXO bloat attacks.
legendary
Activity: 1764
Merit: 1002
May 15, 2015, 03:18:54 PM
I was assuming the unconfirmed TX set to stay relatively the same size if the cap was lifted.

First off, you can't take a 1BTC address and create 10000 zero balance outputs  with 0.0001BTC fees. They are invalid and wouldn't be accepted by the rest of network.

Second, even if the attacking miner constructs  non zero output  TX's, he  can't just spring this block onto the network filled with those TX's if the network nodes haven't heard about them beforehand. They will reject  the bloated block since they don't recognize any of the content.

There's a difference between non-standard transactions and invalid transactions.  Non-standard transactions are a subset of valid transactions. Examples of non-standard transactions are TXs with outputs less than the dust limit or TXs with insufficient fees; such transactions may still be valid, however.  

Clients do not relay nonstandard transactions, nor accept them into mempool, but will nonetheless accept a solved block that contains them (provided each TX in the block is still valid).    Example of blocks full of nonstandard (and pointless) transactions are Block #309657 and Block #309740.  They each contain thousands of 1 satoshi dust outputs that will pollute the UTXO set for a long time!

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

A miner can fill a block full of nonsense transactions very easily.  

thanks for clarifying that.

as Bitcoin has alot of enemies, why do you think we aren't seeing a regular stream of these types of blocks?
legendary
Activity: 1153
Merit: 1000
May 15, 2015, 02:38:41 PM
I was assuming the unconfirmed TX set to stay relatively the same size if the cap was lifted.

First off, you can't take a 1BTC address and create 10000 zero balance outputs  with 0.0001BTC fees. They are invalid and wouldn't be accepted by the rest of network.

Second, even if the attacking miner constructs  non zero output  TX's, he  can't just spring this block onto the network filled with those TX's if the network nodes haven't heard about them beforehand. They will reject  the bloated block since they don't recognize any of the content.

There's a difference between non-standard transactions and invalid transactions.  Non-standard transactions are a subset of valid transactions. Examples of non-standard transactions are TXs with outputs less than the dust limit or TXs with insufficient fees; such transactions may still be valid, however.  

Clients do not relay nonstandard transactions but will accept a solved block that contains them (provided each TX in the block is still valid).    Example of blocks full of nonstandard (and pointless) transactions are Block #309657 and Block #309740.  They each contain thousands of 1 satoshi dust outputs that will pollute the UTXO set for a long time!

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

A miner can fill a block full of nonsense transactions very easily.  

Good point on the inclusion of non-standard but valid transactions. What I outlined just included standard & valid transactions. What you outlined is how much further an attacker could push this, here 1BTC could turn into 100M satoshi dush outputs....

On the UTXO topic, the distribution of balances here

http://bitcoinrichlist.com/charts/bitcoin-distribution-by-address?atblock=350000

shows that 96.97% of addresses contain less than 0.001 BTC. Now these are address totals, any analysis of UTXO outputs would show that more than 96.97% of UTXO outputs contain less than 0.001BTC.

I think this shows that the UTXO is already vastly populated by dust nonsense that simply sits around. If UTXO size becomes an issue any intelligent implementation could easily swap these out to a lower tier of storage. Most of this dust will never be spent simply because you'd have to pay more in fees than the output is worth, spending them is literally burning money.
legendary
Activity: 1162
Merit: 1007
May 15, 2015, 02:27:03 PM
I was assuming the unconfirmed TX set to stay relatively the same size if the cap was lifted.

First off, you can't take a 1BTC address and create 10000 zero balance outputs  with 0.0001BTC fees. They are invalid and wouldn't be accepted by the rest of network.

Second, even if the attacking miner constructs  non zero output  TX's, he  can't just spring this block onto the network filled with those TX's if the network nodes haven't heard about them beforehand. They will reject  the bloated block since they don't recognize any of the content.

There's a difference between non-standard transactions and invalid transactions.  Non-standard transactions are a subset of valid transactions. Examples of non-standard transactions are TXs with outputs less than the dust limit or TXs with insufficient fees; such transactions may still be valid, however.  

Clients do not relay nonstandard transactions, nor accept them into mempool, but will nonetheless accept a solved block that contains them (provided each TX in the block is still valid).    Example of blocks full of nonstandard (and pointless) transactions are Block #309657 and Block #309740.  They each contain thousands of 1 satoshi dust outputs that will pollute the UTXO set for a long time!

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

A miner can fill a block full of nonsense transactions very easily.  
legendary
Activity: 1512
Merit: 1005
May 15, 2015, 02:22:31 PM

The discussion on reddit was about this being reported in the main stream media.

The answer is, if it can be used to smear Russia, it will be reported, if not, it will not be reported (I hope I am wrong).
legendary
Activity: 1153
Merit: 1000
May 15, 2015, 02:22:12 PM
Let me ask again.

Does anyone know the average number of unconfirmed TX's that exist in mempool at any given time, the average size in MB (i know <1) and what % of them get cleared into a block every 10 minutes or so?

https://blockchain.info/en/unconfirmed-transactions



2MB, not much.  thus, it appears an attacker would have to construct and broadcast all his own fake or withheld tx's to try and perform this bloated block attack which, imo, is way too expensive and risky even though he would be paying himself his own tx fees.

Well to be fair, the reason why we don't see this attack is because with the 1MB limit it is not possible to pull off. If BTCGuild started to do this, they could only take 3% of the blocks to 1MB, which is immaterial.

I think it would technically be very easy for a pool/miner to add a huge number of transactions into a block. For every address they have with 1BTC, they could create 10,000 transactions with 0.0001 fee each  (which they receive back in the coinbase transaction) by simply creating a chain of transactions in rapid succession. With 100BTC, they cloud create 1M transactions at zero cost because they would only include the transactions in their own block and recover the fees.

In the real world though, a pool could only do this a few times before miners would abandon them en mass, destroying the pool's business in the process. So it seems unlikely

At large solo miner with maybe 0.1% or 0.3% of the hash rate could start to inject very large 1GB blocks every 200 or 400 blocks or so, but in that case I could very easily see the rest of the pools agreeing to ignore those massive blocks. And even if they didn't coordinate to ignore them, the large blocks would propagate so slowly they might not be included anyway. (The attack requires transmitting a full block since Gavin's IBLT wouldn't help here).

Another way to address the issue of one or two rouge pools making large blocks, is to set a floating blocksize cap that resets with each difficulty adjustment and is based on an average of the last x number of blocks plus some overhead. Now to implement the attack an attacker would need to create false transactions that everyone mines on to bring up the average, but this would become too expensive since the fees would be lost to other miners.


I was assuming the unconfirmed TX set to stay relatively the same size if the cap was lifted.

First off, you can't take a 1BTC address and create 10000 zero balance outputs  with 0.0001BTC fees. They are invalid and wouldn't be accepted by the rest of network.

You start with 1BTC and send 0.9999BTC to a new address with a 0.0001BTC fee -> then 0.9998BTC -> 0.9997BTC and so on until you have created a chain of 10,000 transactions, each paying a 0.0001BTC fee. This is a chain of valid transactions.

Since these fees are recovered by yourself, you don't mind paying them and can do this over and over and over again. For every 100BTC that you control you can create 1M transactions in every block you mine with this attack.

Second, even if the attacking miner constructs  non zero output  TX's, he  can't just spring this block onto the network filled with those TX's if the network nodes haven't heard about them beforehand. They will reject  the bloated block since they don't recognize any of the content.

Blocks can include any transaction, even ones that network nodes haven't heard about. Today nodes receive transactions a minimum of 2 times today, once as it is broadcast, and a 2nd time in the block it is picked up in.

The entire reason for Gavin's IBLT proposal is to eliminate this wastefulness and take advantage of the fact nodes already have heard of most of the blocks.

However even after IBLT is implemented you can still include unannounced transactions in blocks. You just would have to send the whole block and not the IBLT diff.
legendary
Activity: 1764
Merit: 1002
legendary
Activity: 1764
Merit: 1002
May 15, 2015, 01:08:59 PM
Let me ask again.

Does anyone know the average number of unconfirmed TX's that exist in mempool at any given time, the average size in MB (i know <1) and what % of them get cleared into a block every 10 minutes or so?

https://blockchain.info/en/unconfirmed-transactions



2MB, not much.  thus, it appears an attacker would have to construct and broadcast all his own fake or withheld tx's to try and perform this bloated block attack which, imo, is way too expensive and risky even though he would be paying himself his own tx fees.

Well to be fair, the reason why we don't see this attack is because with the 1MB limit it is not possible to pull off. If BTCGuild started to do this, they could only take 3% of the blocks to 1MB, which is immaterial.

I think it would technically be very easy for a pool/miner to add a huge number of transactions into a block. For every address they have with 1BTC, they could create 10,000 transactions with 0.0001 fee each  (which they receive back in the coinbase transaction) by simply creating a chain of transactions in rapid succession. With 100BTC, they cloud create 1M transactions at zero cost because they would only include the transactions in their own block and recover the fees.

In the real world though, a pool could only do this a few times before miners would abandon them en mass, destroying the pool's business in the process. So it seems unlikely

At large solo miner with maybe 0.1% or 0.3% of the hash rate could start to inject very large 1GB blocks every 200 or 400 blocks or so, but in that case I could very easily see the rest of the pools agreeing to ignore those massive blocks. And even if they didn't coordinate to ignore them, the large blocks would propagate so slowly they might not be included anyway. (The attack requires transmitting a full block since Gavin's IBLT wouldn't help here).

Another way to address the issue of one or two rouge pools making large blocks, is to set a floating blocksize cap that resets with each difficulty adjustment and is based on an average of the last x number of blocks plus some overhead. Now to implement the attack an attacker would need to create false transactions that everyone mines on to bring up the average, but this would become too expensive since the fees would be lost to other miners.


I was assuming the unconfirmed TX set to stay relatively the same size if the cap was lifted.

First off, you can't take a 1BTC address and create 10000 zero balance outputs  with 0.0001BTC fees. They are invalid and wouldn't be accepted by the rest of network.

Second, even if the attacking miner constructs  non zero output  TX's, he  can't just spring this block onto the network filled with those TX's if the network nodes haven't heard about them beforehand. They will reject  the bloated block since they don't recognize any of the content.
legendary
Activity: 1568
Merit: 1002
May 15, 2015, 12:35:37 PM
all you math heads and CS guys will find this a very interesting read i think.. lost of ground breaking tech and lots of examples of algorithms etc.. i dont understand the maths at all so any expert input into this would be appreciated. Smiley

https://drive.google.com/file/d/0B7wAe2jt1MMzYVJhUUFnMHQxZ1U/view?usp=sharing
Jump to: