As far as I know, there are no comprehensive papers yet, but there are a few references in the top post in the reddit link:
https://www.reddit.com/r/Bitcoin/comments/3m2wpf/bitcoindev_weak_block_thoughts/
And here are some of Gavin's thoughts:
http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-September/011157.html
Thanks for the links.
The concepts are similar in terms of pre-announcing transactions a miner is working on, but different in terms of how the pre-announcement works and more importantly how pre-announced blocks change over time and are coordinated between miners.
My understanding from the links, is with weak blocks a miner will pre-send the block they are working on and then when a block solution is found all they have to do is send the solution. The problems with this seem to be:
1) After a period of time (30 seconds or 1 min) the pre-sent block becomes stale and does not contain new transactions. The miner is then incentivized to re-send a new block out to everyone every X number of seconds. This might speed the final block solution propagation, but the cost is many duplication blocks being sent, which might increase total bandwidth used.
2) There is no method for miners to coordinate which weak block to work on. They might end up each announcing their own weak blocks to everyone else (every 30 seconds), which is both inefficient and requires miners to validate many weak blocks that would never become real blocks.
The mini-block chain described is different in that:
1) It coordinates miners (in a decentralized manner) to work on a single set of transactions to include in the next block. As each next mini-block is found only one miner will broadcast the mini-block out which contains the latest transactions to add.
2) Each mini-block builds on the chain and
adds new transactions to the mini-chain. New transactions only need to be included in a single mini-block to be part of the chain, and as time goes on new transactions are simply added to the mini-chain. This means that new transactions should only be pre-announced once across all miners. For example, if 2 minutes passed since the last real block was found there should be a 6 mini-block chain containing 2 minutes worth of transactions. After 20 seconds a new mini-block is found with 20 more seconds worth of transactions and added to the chain to make it a 7 mini-block chain with 2 min 20 sec worth of transactions.
3) Because mini-blocks are added to the mini-chain at regular intervals, miners can normally mine just on the previously found mini-block. For example, mini-blocks are found every 20 seconds and a miner always mines on the last mini-block found, on average that miner will only lose 10 seconds of new transactions to include in the real block while always being guaranteed that only a block solution needs to be sent.
[doublepost=1447388582][/doublepost]
One advantage I see with weak blocks, compared to your proposal, is that the miners are not wasting any hashing effort. The proof of work accompanying the weak block comes from the same hashing effort they devote to trying to solve the full blocks. In your scheme, if I understand, the miners would have to do some extra small proof of work for the "mini blocks" they send out.
It should be possible to construct the mini-block chain to be merged mined with the next real block, just as Namecoin is merged mined with Bitcoin. This means that there is no extra hashing effort.
Miners would simultaneously merge mine the following:
a) The next real Bitcoin full block. This is the set of transactions in the latest complete mini-block chain that all miners should already have (enabling a block solution to be sent)
b) The next mini-block to add to the mini-block chain. This is a set of new transactions to add to the mini-block chain.
From a mining perspective there should be no extra hashing effort. Merged mining takes care of working on two separate blocks.