Bitcoin Forum
May 03, 2024, 09:40:20 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 [4] 5 »  All
  Print  
Author Topic: Again, a block with 0 transactions is accepted  (Read 4408 times)
leijurv
Member
**
Offline Offline

Activity: 63
Merit: 10


Vires in Numeris


View Profile WWW
May 27, 2013, 07:19:59 PM
 #61

How about instead of rejecting the block when it doesn't have at least 50% of the unconfirmed transactions you know of, you just don't relay it? Then you don't need 51% of the network to follow this new rule. Also, this rule may vary from node to node. Some nodes might have a ton of unconfirmed transactions they know about, so they reject a certain block that contains just under 50% of them, but the other nodes don't know about as many of those transactions, so they accept the block. (This is rather rare, though. The amount of unconfirmed transactions that each node knows about should equalize as transactions propagate) Those nodes could then fork the blockchain. Having it accept but just not relay those problematic blocks would solve that problem.

Firstbits 1Leijurv. Or, if you like cats, Firstbits 1Kittens and 1catcat as well. If you're a chemist, also 1Helium, 1Erbium, 1Copper, 1Cerium, and 1Nickel. If you like numbers, 123four, 12234,  12three.
Keybase and onename user: leijurv.
1714772420
Hero Member
*
Offline Offline

Posts: 1714772420

View Profile Personal Message (Offline)

Ignore
1714772420
Reply with quote  #2

1714772420
Report to moderator
1714772420
Hero Member
*
Offline Offline

Posts: 1714772420

View Profile Personal Message (Offline)

Ignore
1714772420
Reply with quote  #2

1714772420
Report to moderator
1714772420
Hero Member
*
Offline Offline

Posts: 1714772420

View Profile Personal Message (Offline)

Ignore
1714772420
Reply with quote  #2

1714772420
Report to moderator
Make sure you back up your wallet regularly! Unlike a bank account, nobody can help you if you lose access to your BTC.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714772420
Hero Member
*
Offline Offline

Posts: 1714772420

View Profile Personal Message (Offline)

Ignore
1714772420
Reply with quote  #2

1714772420
Report to moderator
1714772420
Hero Member
*
Offline Offline

Posts: 1714772420

View Profile Personal Message (Offline)

Ignore
1714772420
Reply with quote  #2

1714772420
Report to moderator
leijurv
Member
**
Offline Offline

Activity: 63
Merit: 10


Vires in Numeris


View Profile WWW
May 27, 2013, 07:36:15 PM
 #62

I think DannyHamilton is right. If a non-empty block is mined right now, then the time distance from now until the next non-empty block is (which will include your transaction), on average, 10 minutes. If an empty block is found in between, then it's still 10 minutes.

If a miner has just mined a block which includes your transaction, and is about to broadcast it, but then it receives an empty block, it doesn't say "Oh dang. Someone found a block. Now I have to wait another ten minutes until I'l allowed to mine another block. Better shut off the ASICs until then so I don't waste electricity" No. It just keeps on mining and will mine a block with your transaction much sooner than that (on average, because it's already been mining for a while).

Firstbits 1Leijurv. Or, if you like cats, Firstbits 1Kittens and 1catcat as well. If you're a chemist, also 1Helium, 1Erbium, 1Copper, 1Cerium, and 1Nickel. If you like numbers, 123four, 12234,  12three.
Keybase and onename user: leijurv.
aaaxn
Sr. Member
****
Offline Offline

Activity: 359
Merit: 250



View Profile
May 28, 2013, 12:11:14 AM
 #63

Of course miners that mine empty blocks delays transactions.
They might be not affecting average block time, but they affect average 'block with transactions' time and that matters.

Do we have at least one empty block every 2016 blocks (probably yes)? If yes then such miners delay transactions all the time.


                                                                              █
                              █████████                  ██████ 
                      ███████████████████████████   
              ███████████████████████████████   
            ████████████████████████████████   
        █████████████████████████████████     
    ████████████████████████████████████   
    ████████          █████████          █████████   
  ████████                ██████              ████████   
█████████                █████                ████████   
███████████                █                ███████████ 
██████████████                      ██████████████ 
█████████████████            ████████████████ 
███████████████                  ███████████████ 
█████████████                          █████████████ 
███████████              ███                ██████████ 
█████████                █████                ████████   
  ████████              ███████              ███████     
    █████████        █████████          ████████     
      █████████████████████████████████       
        ██████████████████████████████           
            ███████████████████████████             
              ████████████████████████                 
                  ████████████████████                     
CorionX


















Powered by,
mezzomix
Legendary
*
Offline Offline

Activity: 2618
Merit: 1252


View Profile
May 28, 2013, 05:25:47 AM
 #64

It's simple: A miner is free to include any transaction he wants. I'm operating a few well connected nodes. I'm free to not relay blocks that do not contain at least a minimum amount of transactions until the next block is found. I patched my clients to prevent relaying those blocks to give miners an incentive to include transactions. I do not relay the last block in the chain when I have a certain amount of open transactions in my pool, the block is the last block and the block included a much lower number of transactions than my pool when I first saw it.

Maybe we should include this feature into the official client to give miners an incentive to include transactions?!
solex
Legendary
*
Offline Offline

Activity: 1078
Merit: 1002


100 satoshis -> ISO code


View Profile
May 28, 2013, 05:43:42 AM
 #65

How about instead of rejecting the block when it doesn't have at least 50% of the unconfirmed transactions you know of, you just don't relay it?

Can of worms there. You would have a solved block discarded which contains dozens of transactions which people have been waiting on for a confirmation? Also, a spammer could immediately cripple the network by generating loads of new transactions. A few weeks ago I saw over 12,000 unconfirmed on blockchain.info, most were not legitimate. Only 2400 (on average) fit into the current block limit.

justusranvier
Legendary
*
Offline Offline

Activity: 1400
Merit: 1009



View Profile
May 28, 2013, 05:55:21 AM
 #66

tl;dr

How about if you don't like what some miners are doing with regards to block creation, then start mining yourself so that you can enforce your own policy for which transactions get included in a block?
mezzomix
Legendary
*
Offline Offline

Activity: 2618
Merit: 1252


View Profile
May 28, 2013, 06:59:07 AM
 #67

Mining yourself is not an option. You have no chance against the pools. The only thing everybody can do and should do is to establish a relay policy for blocks. Each miner (pool) is free to include whatever he wants but each node operator is free as well to relay whatever he wants. Without a relay policy you hand over to much power to the pools. The miners get a lot of money for doing their work. Part of this work is to include transactions. If miners act against my interest and do not include transactions I will not relay their blocks.
Shevek (OP)
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250



View Profile
May 28, 2013, 08:57:48 AM
 #68

I'm becoming too old. I remember this exact discussion and proposed solutions when so called mystery miner gained significant percentage of the hash power and did not included any transactions besides the coinbase. The exact same discussion.

https://bitcointalk.org/index.php?topic=67634.20
There were more topics. Not sure if this is THE one.

Thanks for the tip. Not everbody here are "becoming" as old as you  Cheesy and these appointments are useful.

Proposals for improving bitcoin are like asses: everybody has one
1SheveKuPHpzpLqSvPSavik9wnC51voBa
Shevek (OP)
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250



View Profile
May 28, 2013, 09:01:45 AM
 #69

Not a big deal, really.

It depends on how often they become.

Nevertheless, I think this is a weakness of the protocol.

Proposals for improving bitcoin are like asses: everybody has one
1SheveKuPHpzpLqSvPSavik9wnC51voBa
Shevek (OP)
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250



View Profile
May 28, 2013, 10:13:21 AM
 #70

BTW somebody figures out how to poll the apis of blockexplorer.com / blockchain.info to get the list of blocks with only the generation TX?

Proposals for improving bitcoin are like asses: everybody has one
1SheveKuPHpzpLqSvPSavik9wnC51voBa
leijurv
Member
**
Offline Offline

Activity: 63
Merit: 10


Vires in Numeris


View Profile WWW
May 28, 2013, 01:13:50 PM
 #71

How about instead of rejecting the block when it doesn't have at least 50% of the unconfirmed transactions you know of, you just don't relay it?

Can of worms there. You would have a solved block discarded which contains dozens of transactions which people have been waiting on for a confirmation? Also, a spammer could immediately cripple the network by generating loads of new transactions. A few weeks ago I saw over 12,000 unconfirmed on blockchain.info, most were not legitimate. Only 2400 (on average) fit into the current block limit.
Hmmm. I suppose so.

Firstbits 1Leijurv. Or, if you like cats, Firstbits 1Kittens and 1catcat as well. If you're a chemist, also 1Helium, 1Erbium, 1Copper, 1Cerium, and 1Nickel. If you like numbers, 123four, 12234,  12three.
Keybase and onename user: leijurv.
cp1
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


Stop using branwallets


View Profile
May 28, 2013, 03:53:18 PM
 #72

I think DannyHamilton is right. If a non-empty block is mined right now, then the time distance from now until the next non-empty block is (which will include your transaction), on average, 10 minutes. If an empty block is found in between, then it's still 10 minutes.

If a miner has just mined a block which includes your transaction, and is about to broadcast it, but then it receives an empty block, it doesn't say "Oh dang. Someone found a block. Now I have to wait another ten minutes until I'l allowed to mine another block. Better shut off the ASICs until then so I don't waste electricity" No. It just keeps on mining and will mine a block with your transaction much sooner than that (on average, because it's already been mining for a while).


The miners producing empty blocks increase the difficulty.  So they do have an affect.

Guide to armory offline install on USB key:  https://bitcointalk.org/index.php?topic=241730.0
mmeijeri
Hero Member
*****
Offline Offline

Activity: 714
Merit: 500

Martijn Meijering


View Profile
May 28, 2013, 04:05:02 PM
 #73

The miners producing empty blocks increase the difficulty.  So they do have an affect.

All miners increase difficulty. All miners add value. Miners who only produce empty blocks produce less value than others.

ROI is not a verb, the term you're looking for is 'to break even'.
Shevek (OP)
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250



View Profile
May 28, 2013, 04:19:17 PM
 #74

Miners who only produce empty blocks produce less value than others.

Let's say, the value they produce to bitcoin is much lesser than the value bitcoin produces for them.

Proposals for improving bitcoin are like asses: everybody has one
1SheveKuPHpzpLqSvPSavik9wnC51voBa
DannyHamilton
Legendary
*
Offline Offline

Activity: 3388
Merit: 4615



View Profile
May 28, 2013, 04:30:10 PM
 #75

Miners who only produce empty blocks produce less value than others.
Let's say, the value they produce to bitcoin is much lesser than the value bitcoin produces for them.

Let's just agree to disagree on that point, but the end result is that it isn't going to change without overwhelming support, and I think you'll find it extremely difficult to get the overwhelming support that you need.  There are many like me who prefer to just leave it the way it is.
bezzeb
Member
**
Offline Offline

Activity: 103
Merit: 10



View Profile
May 28, 2013, 04:58:38 PM
 #76

Interesting discussion, but a few points seem to have been missed.

1.  The blockchain grew from nothing and there were long periods when 0 transaction blocks were normal in the early days.  You need a system that can handle everything from zero to infinity, and the bitcoin protocol does this well (provided pruning and such get good solutions to handle long term growth).

2.  This was said already, but a brilliant incentive exists already to include transactions:  Greed.  Fees will keep transactions flowing.  This current (and temporary) period of time where 25BTC rewards are issued for empty blocks has created a brief window where transactions might not be included by a rogue miner, but I still don't see the threat.  Proof of work is still required, and if they want to give their fees to the next miner, then they're idiots - i'll take the fees gladly.  Smiley  As network use continues to grow the fees will I think quickly get more valuable than the reward.  Parity is almost certainly only 2 or 4 years away, and as the reward diminishes the problem will fix itself..

2a.  There is a bizarre edge case I thought of ages ago whereby one might be able to do a zero-tx block as a way of sort of "mining without the rush" - to essentially take as long as you wanted to process a block and then trick it into the network to snag the reward, but as I understand it now, I don't think this would work as you need the prior fresh block included in your proof of work declaration.  And this info only exists after said block is created.  And if a loophole existed here - the network would simply not work as everyone would dream up blocks in their free time and then apply them later, so I've discarded this notion completely.

3. Also said already - as long as the zero transaction block has valid proof of work, it does serve to secure prior transactions deeper in the chain.  So we're still getting part of what we need. 

4.  The statistical method used to deliver proof of work almost ensures that once in a very rare while (would love it if a statistician did the maths for us Smiley, a miner would come up with an honest zero tx block - especially if they had some flakey connectivity.  I mean there was only 100 seconds between the prior block and the zero block, so there could be any number of ways this could happen without screaming foul.  And it's possible blocks could be solved within just a few seconds of each other - throw of the dice really.

This leaves me saying:  Meh.  We'll survive.

All the other ideas which have been thrown around to somehow stop zero blocks have horrible repercussions as far as I can tell.  So in the end I also must ask if a "fix" for such an edge case problem could even be worth it.

Now if we see it start to happen 15 times a day, then ignore everything i said 'cause we some hacker biatches we need to drop a boot on!!!!
Smiley
Blowfeld
Newbie
*
Offline Offline

Activity: 53
Merit: 0



View Profile
May 30, 2013, 07:18:20 AM
 #77

... I think this is a weakness of the protocol.
How does an empty block (~250 bytes) do you more harm than any other 250 byte, 25BTC transaction?  [All I can see is that it (slightly) increases the difficulty two weeks from today.  But if it included one or more transactions, it would still (slightly) increase the difficulty two weeks from today.]  Yes, it's a lost opportunity to include transactions, but is it really any worse than if the miner hadn't been mining at all?

If it ain't broke, don't fix it.
Shevek (OP)
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250



View Profile
May 30, 2013, 09:26:20 AM
 #78

... I think this is a weakness of the protocol.
How does an empty block (~250 bytes) do you more harm than any other 250 byte, 25BTC transaction? 

Because bitcoin IS about transactions. So, NO transactions, NO bitcoin. It is easy to understand.

[All I can see is that it (slightly) increases the difficulty two weeks from today.  But if it included one or more transactions, it would still (slightly) increase the difficulty two weeks from today.]  Yes, it's a lost opportunity to include transactions, but is it really any worse than if the miner hadn't been mining at all?

If it ain't broke, don't fix it.

I said, it is a weakness of the protocol, but it does not mean that it is fixable.

Proposals for improving bitcoin are like asses: everybody has one
1SheveKuPHpzpLqSvPSavik9wnC51voBa
mezzomix
Legendary
*
Offline Offline

Activity: 2618
Merit: 1252


View Profile
May 30, 2013, 09:50:36 AM
 #79

... I think this is a weakness of the protocol.
How does an empty block (~250 bytes) do you more harm than any other 250 byte, 25BTC transaction?

My point of view is that the miners keep the block chain running and acknowledge transactions. If I miner is not willing to do the second point it does not deserve the 25 BTC. My reaction was to change my bitcoin nodes to accept all blocks but I do not relay a block block if it is the last block, it includes only a fraction of the possible transactions and my local transaction pool sees much more transactions. If I see a block that better fit my rules I replace this last block by the new one.

If everybody includes this kind of change an "empty" block miner will have a small disadvantage.
solex
Legendary
*
Offline Offline

Activity: 1078
Merit: 1002


100 satoshis -> ISO code


View Profile
May 30, 2013, 09:56:32 AM
 #80

This is a temporary problem, so why risk breaking the protocol with a change?

Fees are increasing steadily, and the block reward halves every four years. Probably during the time the reward is 12.5 BTC the fees per block will be begin exceeding that amount. So any miner producing empty blocks will be throwing away 50% of his potential revenue. Because difficulty will probably be 500+ million it will be uneconomic to mine empty blocks.

Pages: « 1 2 3 [4] 5 »  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!