For anyone who missed the discussions of weak blocks, here are the Scaling Bitcoin's transcripts: http://diyhpl.us/wiki/transcripts/scalingbitcoin/bitcoin-block-propagation-iblt-rusty-russell/ http://diyhpl.us/wiki/transcripts/scalingbitcoin/roundgroup-roundup-1/ (under Network Propagation). On Wed, Sep 23, 2015 at 4:43 PM, Gavin Andresen via bitcoin-dev < bitcoin-dev@lists.linuxfoundation.org> wrote: > I've been thinking about 'weak blocks' and SPV mining, and it seems to me > weak blocks will make things better, not worse, if we improve the mining > code a little bit. > > First: the idea of 'weak blocks' (hat tip to Rusty for the term) is for > miners to pre-announce blocks that they're working on, before they've > solved the proof-of-work puzzle. To prevent DoS attacks, assume that some > amount of proof-of-work is done (hence the term 'weak block') to rate-limit > how many 'weak block' messages are relayed across the network. > > > Today, miners are incentivized to start mining an empty block as soon as > they see a block with valid proof-of-work, because they want to spend as > little time as possible mining a not-best chain. > > Imagine miners always pre-announce the blocks they're working on to their > peers, and peers validate those 'weak blocks' as quickly as they are able. > > Because weak blocks are pre-validated, when a full-difficulty block based > on a previously announced weak block is found, block propagation should be > insanely fast-- basically, as fast as a single packet can be relayed across > the network the whole network could be mining on the new block. > > I don't see any barrier to making accepting the full-difficulty block and > CreateNewBlock() insanely fast, and if those operations take just a > microsecond or three, miners will have an incentive to create blocks with > fee-paying transactions that weren't in the last block, rather than mining > empty blocks. > > ................. > > A miner could try to avoid validation work by just taking a weak block > announced by somebody else, replacing the coinbase and re-computing the > merkle root, and then mining. They will be at a slight disadvantage to > fully validating miners, though, because they WOULD have to mine empty > blocks between the time a full block is found and a fully-validating miner > announced their next weak block. > > ................. > > Weak block announcements are great for the network; they give transaction > creators a pretty good idea of whether or not their transactions are likely > to be confirmed in the next block. And if we're smart about implementing > them, they shouldn't increase bandwidth or CPU usage significantly, because > all the weak blocks at a given point in time are likely to contain the same > transactions. > > -- > -- > Gavin Andresen > > > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > >