Hi,
I was just wondering based on some rough figures, according to this site
http://bitcoinstats.com/network/propagation/2013/11/23 it takes 8.3 seconds for a message to propagate to 90% of the network and transactions are stored locally in a node's memory pool. It takes 125.8 (say 130) seconds to propagate a message to 99% of the network. Every block is found at an average of 10 minutes (600 seconds). Once a block is created, it contains transactions that have been broadcasted to the network, so the assumption here is that once a miner starts mining a block it took 130 seconds to reach that miner, and the transaction still has 600-130=470 seconds to propagate through the rest of the network.
Each block contains approximately 4200 transactions (assuming an average transactions size of 235 bytes, depending on the signature, and a 1MB (1.000.000 in bytes) block size), which leads to (4200/600) approximately 7 transactions per second.
Now, what if each node creates a hash (say SHA256) of each valid transactions, and adds those hashes in a block. Each block can contain 8.000.000 (in bits) / 256 = 31.250 transactions, a factor 7 increase.
The miner broadcasts the block containing the hashes of transactions, and every other node verifies these hashes with its own memory pool in which the transactions and corresponding hashes are stored. If valid, the block is added to the chain, including the actual transactions in case of any forks occurring. Would that work?