The Graphene (block) protocol transmits blocks with what is believed to be the least amount of bandwidth possible. Graphene mitigates the bandwidth issues.
In the “Graphene Block Propagation Protocol: Advantages and Limitations/Challenges” by Darren Tapp he outlines discussion of the technical considerations of this in the blockchain network. He notes:
“Lots of research has been done into how to transmit blocks using as little bandwidth as possible. The less bandwidth that is used, the quicker the messages will propagate.”
“A node with a new block that uses that Graphene protocol will construct two data structures. First, a Bloom filter with all the transactions in a block is constructed. Then an IBLT (invertible bloom lookup tables) with all the transactions in a block is constructed.
Then this will be sent to nodes without the block. The receiving node will then pass all transactions in the mempool through the bloom filter. This should provide a list of all transactions in the block. However there could be too many transactions as the Bloom filter could have a false positive.
There could also be transactions missing from the mempool. The receiver will then unpack the candidate transactions from the IBLT. This will identify any false positives and any missing transactions. Lastly if needed, the receiver will query other nodes for the missing transactions….
November of last year the Bitcoin Cash chain hard forked to change a consensus rule to require blocks have transactions in a given, predetermined order. Such a choice of order is called a canonical order.
After this change, Graphene can be used without including the order information. This is where Graphene shines. Blocks can become very large and the optimal bloom filter and IBLT stay very small.”…
Source: Dash News