Pages:
Author

Topic: ... (Read 1871 times)

sr. member
Activity: 266
Merit: 250
...
June 20, 2015, 11:14:00 AM
#28
Empty blocks are normal. This usually happens when a block is quickly found after a previous one, and there were no transaction in the space of time between when they were found.
legendary
Activity: 2114
Merit: 1015
June 19, 2015, 05:17:09 AM
#27
Luckily this wouldn't be a problem with Proof of Stake blocks so in case miners start to damage the network with this selfish mining we could introduce PoS blocks and turn bitcoin into PoW/PoS hybrid.
legendary
Activity: 3248
Merit: 1070
June 19, 2015, 02:46:42 AM
#26
there is already a discussion ongoing about this https://bitcointalksearch.org/topic/empty-blocks-1085800

basically they usefulness is releated to secure more the next block and confirm the previous transaction
legendary
Activity: 1750
Merit: 1007
June 18, 2015, 11:00:39 PM
#25
There is a nine (9) minute period (according to blockchain.info) from block 361241 and block 361242.
That is a nine minute period where, what you are saying is, or i believe,
(1) there are no transactions in the memepool, which can't be correct since there were a few thousand unconfirmed transactions pending, or
(2) the miner found the block within seconds of the prior and thus no transactions were added.

Both situations, i do not believe, apply here.
The situations that I described, mostly the second one, are the primary reason for empty blocks. There are exceptions to this, obviously. Sometimes a miner may actually be consciously refusing to add transactions and mined an empty blocks. This could be for a variety of reasons, e.g. reduce bandwidth, but we won't know unless they tell us. Either way, it is not an attack on the blockchain (how would it be?).

This actually is incorrect.  There are (almost) always transactions in the mempool with enough priority to be included.  However, some pools (generally the ones based on eloipool) opt to push out an empty template block to miners when a new block is found on the network to have the least possible delay between a new network block and miners beginning to work on it.  They then send a proper block template with transactions shortly after.  Some mining software does not immediately switch to the newest work, or sometimes the miner actually solves a block on the empty template before those pools manage to send one with transactions.

It's an ugly hack, and the performance gain is virtually nothing on other mining software (BTC Guild and ckpool have no issue producing a proper block template and sending it to miners immediately).
legendary
Activity: 1001
Merit: 1005
June 18, 2015, 10:23:29 PM
#24
Murphy's law in action:
Today I broadcasted a wrong transaction by accident (irretrievable bitcoins) with zero fee and it was confirmed in about 2 mins. It was very small 0.01.. Still by the time I realized it and tried to double spend, it already had a confirmation... in under 2 minutes.

They were very old coins if that makes any difference.
legendary
Activity: 1092
Merit: 1001
June 18, 2015, 07:35:59 PM
#23
There is a nine (9) minute period (according to blockchain.info) from block 361241 and block 361242.
That is a nine minute period where, what you are saying is, or i believe,
(1) there are no transactions in the memepool, which can't be correct since there were a few thousand unconfirmed transactions pending, or
(2) the miner found the block within seconds of the prior and thus no transactions were added.

Both situations, i do not believe, apply here.
The situations that I described, mostly the second one, are the primary reason for empty blocks. There are exceptions to this, obviously. Sometimes a miner may actually be consciously refusing to add transactions and mined an empty blocks. This could be for a variety of reasons, e.g. reduce bandwidth, but we won't know unless they tell us. Either way, it is not an attack on the blockchain (how would it be?).

Ok. I personally don't think it is an attack on the network.
I think they are just refusing to add transactions to get a leg up over the other miners time wise.
I have heard and others too (see prior posts) that miners might do this in protest of the rising MB cap issue.
I don't know if this is true or not.

I have noticed and suspect that they are doing it more often then in the past. Intentionally.
But I don't have the skill or know how to data mine the blockchain and prove or disprove if it is increasing (empty blocks).
legendary
Activity: 1708
Merit: 1006
June 18, 2015, 07:13:53 PM
#22
There is a nine (9) minute period (according to blockchain.info) from block 361241 and block 361242.
That is a nine minute period where, what you are saying is, or i believe,
(1) there are no transactions in the memepool, which can't be correct since there were a few thousand unconfirmed transactions pending, or
(2) the miner found the block within seconds of the prior and thus no transactions were added.

Both situations, i do not believe, apply here.
The situations that I described, mostly the second one, are the primary reason for empty blocks. There are exceptions to this, obviously. Sometimes a miner may actually be consciously refusing to add transactions and mined an empty blocks. This could be for a variety of reasons, e.g. reduce bandwidth, but we won't know unless they tell us. Either way, it is not an attack on the blockchain (how would it be?).
legendary
Activity: 1092
Merit: 1001
June 18, 2015, 06:56:38 PM
#21
I'm not going to pretend that I fully understand what you are saying.
Here is a screenshot my data that day.
Are you saying that the three low size blocks (0.0%) within this bottlenecking is normal?

yes

Edit: To clarify, I have not noticed those 0 transactions blocks till recently, so it is possible this has existed since the beginning of mining.
It has been going on since Bitcoin began and has always existed. Just look at the first hundred or thousand blocks. They are all empty blocks because Satoshi was both the only person mining and the only person on the Bitcoin network.

We understand that. The question is how can this happen nowadays with more than 100,000 daily transactions and a large bunch of miners all other the planet.

I wonder if this could have been done on purpose, with 2 miners working together, one "idling" his computer when it's about to complete the mining of a block, and only releasing it one second after his friend had mined a block. Do I have a crazy imagination, or is this possible?

Possible, but unlikely. This happens nowadays because of randomness.

Let me explain. Miners are really only hashing the block header. The block header contains several fields, of relevance here are the merkle root and the nonce. The merkle root is the hash of all of the transactions included in the block. If there are no transactions except the coinbase, the merkle root will be the coinbase transaction's hash. The nonce is a 32 bit integer which the miner will iterate through all of its possibilities until the header's hash is below the target hash. Additionally, there is another field in the coinbase called the extranonce which some miners will also use. This is also iterated through to change the merkle root to find the hash that is less than the target. When mining, only these two fields will change in order to have on changing variable. Everything else, including the merkle root and thus the transactions in the block, stays constant while the miner iterates through the nonces and extranonces. If none of the nonces and extranonces produce a hash that is lower than the target, they will rebuild the entire header, a new timestamp, new merkle root by including transactions, and so on. Then the miner repeats the process again.

A miner begins mining on a block after the previous was found when there are no transactions of high enough priority. It will create the header with a merkle root that has only 1 transaction, the coinbase. It then goes through all of the nonces and extranonces to find the hash lower than the target. Sometimes it will find the hash without going through the entire set of nonces and extranonces and thus the merkle root and the transactions in the block will remain at 1 transaction. If it iterates the entire set and doesn't find the hash, which is very very likely, then it rebuilds as I said above and suddenly, there are now transactions included in the next block header it attempts to hash. Most empty blocks are found within a few seconds after the previous block because the miner was lucky enough to not have to change the merkle root to find the block.

There is a nine (9) minute period (according to blockchain.info) from block 361241 and block 361242.
That is a nine minute period where, what you are saying is, or i believe,
(1) there are no transactions in the memepool, which can't be correct since there were a few thousand unconfirmed transactions pending, or
(2) the miner found the block within seconds of the prior and thus no transactions were added.

Both situations, i do not believe, apply here.
legendary
Activity: 1708
Merit: 1006
June 18, 2015, 06:40:05 PM
#20
I'm not going to pretend that I fully understand what you are saying.
Here is a screenshot my data that day.
Are you saying that the three low size blocks (0.0%) within this bottlenecking is normal?

yes

Edit: To clarify, I have not noticed those 0 transactions blocks till recently, so it is possible this has existed since the beginning of mining.
It has been going on since Bitcoin began and has always existed. Just look at the first hundred or thousand blocks. They are all empty blocks because Satoshi was both the only person mining and the only person on the Bitcoin network.

We understand that. The question is how can this happen nowadays with more than 100,000 daily transactions and a large bunch of miners all other the planet.

I wonder if this could have been done on purpose, with 2 miners working together, one "idling" his computer when it's about to complete the mining of a block, and only releasing it one second after his friend had mined a block. Do I have a crazy imagination, or is this possible?

Possible, but unlikely. This happens nowadays because of randomness.

Let me explain. Miners are really only hashing the block header. The block header contains several fields, of relevance here are the merkle root and the nonce. The merkle root is the hash of all of the transactions included in the block. If there are no transactions except the coinbase, the merkle root will be the coinbase transaction's hash. The nonce is a 32 bit integer which the miner will iterate through all of its possibilities until the header's hash is below the target hash. Additionally, there is another field in the coinbase called the extranonce which some miners will also use. This is also iterated through to change the merkle root to find the hash that is less than the target. When mining, only these two fields will change in order to have on changing variable. Everything else, including the merkle root and thus the transactions in the block, stays constant while the miner iterates through the nonces and extranonces. If none of the nonces and extranonces produce a hash that is lower than the target, they will rebuild the entire header, a new timestamp, new merkle root by including transactions, and so on. Then the miner repeats the process again.

A miner begins mining on a block after the previous was found when there are no transactions of high enough priority. It will create the header with a merkle root that has only 1 transaction, the coinbase. It then goes through all of the nonces and extranonces to find the hash lower than the target. Sometimes it will find the hash without going through the entire set of nonces and extranonces and thus the merkle root and the transactions in the block will remain at 1 transaction. If it iterates the entire set and doesn't find the hash, which is very very likely, then it rebuilds as I said above and suddenly, there are now transactions included in the next block header it attempts to hash. Most empty blocks are found within a few seconds after the previous block because the miner was lucky enough to not have to change the merkle root to find the block.
legendary
Activity: 3066
Merit: 1047
Your country may be your worst enemy
June 18, 2015, 06:06:08 PM
#19
Edit: To clarify, I have not noticed those 0 transactions blocks till recently, so it is possible this has existed since the beginning of mining.
It has been going on since Bitcoin began and has always existed. Just look at the first hundred or thousand blocks. They are all empty blocks because Satoshi was both the only person mining and the only person on the Bitcoin network.

We understand that. The question is how can this happen nowadays with more than 100,000 daily transactions and a large bunch of miners all other the planet.

I wonder if this could have been done on purpose, with 2 miners working together, one "idling" his computer when it's about to complete the mining of a block, and only releasing it one second after his friend had mined a block. Do I have a crazy imagination, or is this possible?
legendary
Activity: 1092
Merit: 1001
June 18, 2015, 05:50:37 PM
#18
Here is what i kept track of from the 6/16/15, according to blockchain.info.
Note that this is not all the blocks that day. This is just what I was messing with a few days back.

Block#  -  Miner  -  # of tx other than coinbase:
361167 - Antpool - 0 tx
361174 - Eligius - 0 tx
361181 - Antpool - 0 tx
361216 - F2Pool - 0 tx
361242 - 101.251.203.6 - 1 tx
361244 - AntPool - 0 tx
361247 - 78.47.143.154 - 1 tx

Seems on purpose to me.
Not really. With the exception of a two, those blocks were mined within a couple of seconds to about 2 minutes of the previous one before it. This means that the miner did not need to rebuild the block after they began mining on the previous block. When they began, there were no transactions with high enough priority in the mempool to put into the block, so that block had no transactions in it. Then, they were able to find the nonce without exceeding both the nonce and extranonce values so there was no reason to create a new block header with a merkle root that included more transactions.

Somewhere in this thread: https://bitcointalksearch.org/topic/empty-blocks-1085800 someone created and published (I think) a script that looks for all of the empty blocks.

I'm not going to pretend that I fully understand what you are saying.
Here is a screenshot my data that day.
Are you saying that the three low size blocks (0.0%) within this bottlenecking is normal?
legendary
Activity: 1834
Merit: 1020
June 18, 2015, 05:49:28 PM
#17
This has been going on for awhile now. Like a 3-4 weeks maybe.
Those miners are not adding transactions to get the block faster.
Kind of cheap, but I think someone started it, and now other follow randomly.

Edit: To clarify, I have not noticed those 0 transactions blocks till recently, so it is possible this has existed since the beginning of mining.

someone may be attacking the network by finding blocks but not publishing them immediately. then when they have found 3 blocks in a row they would publish them all at once to reverse the transactions of last 2 published blocks since the attacker has a longer block chain.
It would be incredibly difficult because what you just described is called a 51% attack. No one has >51% of the hashing power

You don't need >50% to be lucky for a few blocks.  It would just be statistically impossible to continue outpacing the other chain indefinitely with <50%.
legendary
Activity: 1708
Merit: 1006
June 18, 2015, 05:42:48 PM
#16
Here is what i kept track of from the 6/16/15, according to blockchain.info.
Note that this is not all the blocks that day. This is just what I was messing with a few days back.

Block#  -  Miner  -  # of tx other than coinbase:
361167 - Antpool - 0 tx
361174 - Eligius - 0 tx
361181 - Antpool - 0 tx
361216 - F2Pool - 0 tx
361242 - 101.251.203.6 - 1 tx
361244 - AntPool - 0 tx
361247 - 78.47.143.154 - 1 tx

Seems on purpose to me.
Not really. With the exception of a two, those blocks were mined within a couple of seconds to about 2 minutes of the previous one before it. This means that the miner did not need to rebuild the block after they began mining on the previous block. When they began, there were no transactions with high enough priority in the mempool to put into the block, so that block had no transactions in it. Then, they were able to find the nonce without exceeding both the nonce and extranonce values so there was no reason to create a new block header with a merkle root that included more transactions.

Somewhere in this thread: https://bitcointalksearch.org/topic/empty-blocks-1085800 someone created and published (I think) a script that looks for all of the empty blocks.
legendary
Activity: 1092
Merit: 1001
June 18, 2015, 05:30:11 PM
#15
Edit: To clarify, I have not noticed those 0 transactions blocks till recently, so it is possible this has existed since the beginning of mining.
It has been going on since Bitcoin began and has always existed. Just look at the first hundred or thousand blocks. They are all empty blocks because Satoshi was both the only person mining and the only person on the Bitcoin network.

I'm not referring to Satoshi and when there were basement miners and there were a few transactions a day.
I'm referring to the beginning of pools competing. Did they always choose when to fill blocks, or is that recent?
I don't know. I arrived late 2013, early 2014.

Edit: I've watch the blockchin.info blocks found since I started and don't recall seeing so many 0 transaction blocks.
        Some days I see 10 of more.


Are all the 0 transaction blocks that you have recently seen from the same pool? I heard a rumor that a pool might refuse to put any transactions in the blocks it mined as a protest over the block size debate that's been going on. It was only a rumor and probably fake but it would be interesting if all those blocks were from the same pool.

I'm not a programmer and all that, so I can't automate some python script to find that answer, or whatever the programmers say.. lol.
But I can do it by hand for yesterday, I'll take a quick glance and report back.

Sorry, I was wrong, the pool with IP 54.69.13.36 mined the block referred to in the OP and also block 361525 afterwards which contains 2149 transactions. It cannot be to do with a protest.

https://blockchain.info/block-height/361525

Here is what i kept track of from the 6/16/15, according to blockchain.info.
Note that this is not all the blocks that day. This is just what I was messing with a few days back.

Block#  -  Miner  -  # of tx other than coinbase:
361167 - Antpool - 0 tx
361174 - Eligius - 0 tx
361181 - Antpool - 0 tx
361216 - F2Pool - 0 tx
361242 - 101.251.203.6 - 1 tx
361244 - AntPool - 0 tx
361247 - 78.47.143.154 - 1 tx

Seems on purpose to me.

Edit: I would like to add that all the above blocks were found during a time of slight bottleneck in unconfirmed transactions.
        That is why I was saving this data and looking at it. Most blocks were full (700 to 900kb caps) but then a empty block appears.
full member
Activity: 185
Merit: 100
June 18, 2015, 05:23:07 PM
#14
Edit: To clarify, I have not noticed those 0 transactions blocks till recently, so it is possible this has existed since the beginning of mining.
It has been going on since Bitcoin began and has always existed. Just look at the first hundred or thousand blocks. They are all empty blocks because Satoshi was both the only person mining and the only person on the Bitcoin network.

I'm not referring to Satoshi and when there were basement miners and there were a few transactions a day.
I'm referring to the beginning of pools competing. Did they always choose when to fill blocks, or is that recent?
I don't know. I arrived late 2013, early 2014.

Edit: I've watch the blockchin.info blocks found since I started and don't recall seeing so many 0 transaction blocks.
        Some days I see 10 of more.


Are all the 0 transaction blocks that you have recently seen from the same pool? I heard a rumor that a pool might refuse to put any transactions in the blocks it mined as a protest over the block size debate that's been going on. It was only a rumor and probably fake but it would be interesting if all those blocks were from the same pool.

I'm not a programmer and all that, so I can't automate some python script to find that answer, or whatever the programmers say.. lol.
But I can do it by hand for yesterday, I'll take a quick glance and report back.

Sorry, I was wrong, the pool with IP 54.69.13.36 mined the block referred to in the OP and also block 361525 afterwards which contains 2149 transactions. It cannot be to do with a protest.

https://blockchain.info/block-height/361525
legendary
Activity: 1092
Merit: 1001
June 18, 2015, 05:20:06 PM
#13
Edit: To clarify, I have not noticed those 0 transactions blocks till recently, so it is possible this has existed since the beginning of mining.
It has been going on since Bitcoin began and has always existed. Just look at the first hundred or thousand blocks. They are all empty blocks because Satoshi was both the only person mining and the only person on the Bitcoin network.

I'm not referring to Satoshi and when there were basement miners and there were a few transactions a day.
I'm referring to the beginning of pools competing. Did they always choose when to fill blocks, or is that recent?
I don't know. I arrived late 2013, early 2014.

Edit: I've watch the blockchin.info blocks found since I started and don't recall seeing so many 0 transaction blocks.
        Some days I see 10 of more.


Are all the 0 transaction blocks that you have recently seen from the same pool? I heard a rumor that a pool might refuse to put any transactions in the blocks it mined as a protest over the block size debate that's been going on. It was only a rumor and probably fake but it would be interesting if all those blocks were from the same pool.

I'm not a programmer and all that, so I can't automate some python script to find that answer, or whatever the programmers say.. lol.
But I can do it by hand for yesterday, I'll take a quick glance and report back.
legendary
Activity: 1302
Merit: 1008
Core dev leaves me neg feedback #abuse #political
June 18, 2015, 05:10:31 PM
#12
This has been going on for awhile now. Like a 3-4 weeks maybe.
Those miners are not adding transactions to get the block faster.
Kind of cheap, but I think someone started it, and now other follow randomly.

Edit: To clarify, I have not noticed those 0 transactions blocks till recently, so it is possible this has existed since the beginning of mining.

someone may be attacking the network by finding blocks but not publishing them immediately. then when they have found 3 blocks in a row they would publish them all at once to reverse the transactions of last 2 published blocks since the attacker has a longer block chain.
It would be incredibly difficult because what you just described is called a 51% attack. No one has >51% of the hashing power


building one block on top of another block just solved and waiting to broadcast till you have two or three blocks is known as selfish mining and actually can be competitively advantageous to a slight degree in theory, but not sure if the big pools are actually doing it.
legendary
Activity: 1092
Merit: 1001
June 18, 2015, 05:08:33 PM
#11
Edit: To clarify, I have not noticed those 0 transactions blocks till recently, so it is possible this has existed since the beginning of mining.
It has been going on since Bitcoin began and has always existed. Just look at the first hundred or thousand blocks. They are all empty blocks because Satoshi was both the only person mining and the only person on the Bitcoin network.

I'm not referring to Satoshi and when there were basement miners and there were a few transactions a day.
I'm referring to the beginning of pools competing. Did they always choose when to fill blocks, or is that recent?
I don't know. I arrived late 2013, early 2014.

Edit: I've watched the blockchin.info blocks found since I started and don't recall seeing so many 0 transaction blocks.
        Some days I see 10 or more.

Edit: spelling errors and etc all over..  Tongue
legendary
Activity: 1092
Merit: 1001
June 18, 2015, 05:03:47 PM
#10
This has been going on for awhile now. Like a 3-4 weeks maybe.
Those miners are not adding transactions to get the block faster.
Kind of cheap, but I think someone started it, and now other follow randomly.

Edit: To clarify, I have not noticed those 0 transactions blocks till recently, so it is possible this has existed since the beginning of mining.

someone may be attacking the network by finding blocks but not publishing them immediately. then when they have found 3 blocks in a row they would publish them all at once to reverse the transactions of last 2 published blocks since the attacker has a longer block chain.

I don't think so because the miners are in a race to find the nonce and publish that block first, to get the reward.
For someone to find multiple blocks and not publish on purpose to perform doublespends or etc, would be too powerful.
That miner(s) would have massive mining power beyond all other pools/farms.
More profitable for them to, if they actually had that power, to mine regularly since they would beat everyone all day long, everyday to the 25 btc reward.

staff
Activity: 3458
Merit: 6793
Just writing some code
June 18, 2015, 04:59:53 PM
#9
This has been going on for awhile now. Like a 3-4 weeks maybe.
Those miners are not adding transactions to get the block faster.
Kind of cheap, but I think someone started it, and now other follow randomly.

Edit: To clarify, I have not noticed those 0 transactions blocks till recently, so it is possible this has existed since the beginning of mining.

someone may be attacking the network by finding blocks but not publishing them immediately. then when they have found 3 blocks in a row they would publish them all at once to reverse the transactions of last 2 published blocks since the attacker has a longer block chain.
It would be incredibly difficult because what you just described is called a 51% attack. No one has >51% of the hashing power
Pages:
Jump to: