Bitcoin Forum
June 24, 2024, 05:31:33 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: ...  (Read 1809 times)
AgentofCoin
Legendary
*
Offline Offline

Activity: 1092
Merit: 1001



View Profile
June 18, 2015, 11: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.

I support a decentralized & unregulatable ledger first, with safe scaling over time.
Request a signed message if you are associating with anyone claiming to be me.
lemipawa
Legendary
*
Offline Offline

Activity: 1708
Merit: 1003


View Profile
June 19, 2015, 12:13:53 AM
 #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?).
AgentofCoin
Legendary
*
Offline Offline

Activity: 1092
Merit: 1001



View Profile
June 19, 2015, 12:35:59 AM
 #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).

I support a decentralized & unregulatable ledger first, with safe scaling over time.
Request a signed message if you are associating with anyone claiming to be me.
Amitabh S
Legendary
*
Offline Offline

Activity: 1001
Merit: 1003


View Profile
June 19, 2015, 03:23:29 AM
 #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.

Coinsecure referral ID: https://coinsecure.in/signup/refamit (use this link to signup)
eleuthria
Legendary
*
Offline Offline

Activity: 1750
Merit: 1007



View Profile
June 19, 2015, 04:00:39 AM
 #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).

RIP BTC Guild, April 2011 - June 2015
Amph
Legendary
*
Offline Offline

Activity: 3206
Merit: 1069



View Profile
June 19, 2015, 07:46:42 AM
 #26

there is already a discussion ongoing about this https://bitcointalk.org/index.php?topic=1085800.0

basically they usefulness is releated to secure more the next block and confirm the previous transaction
Hyena
Legendary
*
Offline Offline

Activity: 2114
Merit: 1013



View Profile WWW
June 19, 2015, 10: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.

★★★ CryptoGraffiti.info ★★★ Hidden Messages Found from the Block Chain (Thread)
bitnanigans
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250


View Profile
June 20, 2015, 04:14:00 PM
 #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.
Pages: « 1 [2]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!