I'm not convinced that headers first will result in miners hashing on top of the block with more work without knowing if it's valid yet instead of just keep hashing on top of the longest known-to-be-valid chain. Both options are risky for the miner in some way, and I guess the probability of someone hashing an invalid block above difficulty is too low to be the main concern, but there's intermediate solutions, like say, waiting to validate at least 5% of the block.
But I don't see how miners mining headers first would result in empty blocks either. Why wouldn't them validate and include transactions after they have received the full block? They will likely know most of the transaction before receiving the block anyway. In a future where they ONLY live on transaction fees, why would they refuse to validate and include transactions? What are they hashing for then? If anything, looks like a threat to the current situation with huge mining subsidies coming from the seigniorage, not a problem that you would have when the the seigniorage is gone. In any case, it is true that this is mining policy and therefore out of the realm of what the protocol can regulate, so we should assume miners will do whatever it's best for them. The trade-off between tps and centralization remains: if you want higher tx volume, less full nodes will be able to process it. On 4/21/14, Tier Nolan <tier.no...@gmail.com> wrote: > On Mon, Apr 21, 2014 at 5:06 AM, Peter Todd <p...@petertodd.org> wrote: > >> Of course, in reality smaller miners can just mine on top of block >> headers >> and include no transactions and do no validation, but that is extremely >> harmful to the security of Bitcoin. >> > > I don't think it reduces security much. It is extremely unlikely that > someone would publish an invalid block, since they would waste their POW. > > Presuming that new headers are correct is reasonable, as long as you check > the full block within a few minutes of receiving the header. > > If anything, it increases security, since less hashing power is wasted > while the full block is broadcast. > > Block propagation could take the form > > - broadcast new header > - all miners switch to mining empty blocks > - broadcast new block > - miners update to a block with transactions > > If the block doesn't arrive within a timeout, then the miner could switch > back to the old block. > > This would mean that a few percent of empty blocks end up in the > blockchain, but that doesn't do any harm. > > It is only harmful, if it is used as a DOS attack on the network. > > The empty blocks will only occur when 2 blocks are found in quick > succession, so it doesn't have much affect on average time until 1 > confirm. Empty blocks are just as good for providing 1 of the 6 confirms > needed too. > -- Jorge Timón http://freico.in/ ------------------------------------------------------------------------------ Start Your Social Network Today - Download eXo Platform Build your Enterprise Intranet with eXo Platform Software Java Based Open Source Intranet - Social, Extensible, Cloud Ready Get Started Now And Turn Your Intranet Into A Collaboration Platform http://p.sf.net/sfu/ExoPlatform _______________________________________________ Bitcoin-development mailing list Bitcoin-development@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bitcoin-development