I understand IBLT (Invertible Bloom Lookup Tables) and as far as I know it is used to increase propagation speed by only sending the transactions to a full node that its missing instead of sending all transactions. In Gavin's specification it is mentioned that we do:
IBLT_diff = IBLT_new - IBLT_us
What I understand from this is that the full node checks and after comparing its IBLT with the miner's IBLT, the full node figures out which transactions are missing.
Then full node requests the transactions missing from the miner. Is this correct?
In the middle of the specification, it says that they are not using the full transaction hash and then it says that in order to prevent brute forcing it adds a salt to it. May I know why they are doing this and if so then how does full node know the transaction hash to request from if its truncated.