Eight months after presenting a case for Graphene as a solution to the bitcoin cash blockchain’s scalability issue, Bitcoin Unlimited has unveiled its block compression utility that takes care of excessive blockchain bandwidth usage. Presented in November 2017 at a developers conference, Graphene uses what has been described as “crazy math” to reduce a 1MB block to 2.6KB, potentially revolutionizing the entire Bitcoin transaction space.
What Is Graphene?
BTCManager reported in November 2017 that Bitcoin Unlimited presented its roadmap for scaling bitcoin cash in the mid-term future as a developers conference in London. Team lead Gavin Andresen laid out a framework for addressing scalability issues by sending nodes instructions for building data blocks based on existing information, instead of the data-hungry process of transmitting whole blocks to blockchain nodes.
Brian, George and Pinar did all the hard work on Graphene, and it was Brian’s original idea to combine bloom and IBLT.
— Gavin Andresen (@gavinandresen) January 19, 2018
“In Graphene, when a node requests a block from a peer, the node sends the size of its mempool (rather than a Bloom filter of its mempool as was the case with Xthin [ Xtreme Thin Blocks] ).”
A decentralized network is a group of computers called nodes where each node has the same capability, hence taking the name of “peers” and when data is moved from one node to another, it’s called block propagation. Graphene can help blockchains combat the latency in block propagation.
Graphene uses IBLTs and Bloom filters together. For the unaware, a bloom filter is an advanced data structure which allows us to know whether an element “e” is part of set “S” in optimized complexity.
They offer more functionality than traditional bloom filters, and IBLTs are better than conventional bloom filters because they can support a subtraction operation if two of them differ by less ( or equal to) 15 percent. Latency and efficiency are great when mempools are small, but when mempools are larger than a block, IBLTs size blows up.
The developers realized it’s expensive to use IBLTs or bloom filters alone when the difference between the mempool and the block is high. Graphene combines both of them to solve the problem. The solution uses a bloom filter to reduce the symmetric difference between block and mempool and to use IBLTs to recover from small errors in the Bloom Filter.
What Graphene Achieves
(Source: Youtube )
One of the most significant problems currently facing bitcoin and many of its forks is that of scalability. Sending out large sets of data to a decentralized network works fine in a white paper, but in practice, this causes network congestion issues and storage problems as the blockchain grows larger.
Even though storage is relatively cheap, SSD storage stubbornly bucks the trend with persistently high prices, which is compounded by the number of nodes that need to be kept continuously in sync with the entire network.
Miners also face the problem of bandwidth, which happens when a block does not propagate quickly enough, and another miner wins the “race” to hash and claim the block reward. To avoid this, they attempt to grow larger than other competitors to have a realistic shot at claiming block rewards.
In theory, if they get big enough, the decentralization of the blockchain itself may be threatened.
Graphene solves the congestion and storage issue by drastically reducing the adequate size of blocks from 1MB to 2.6KB through IBLT. This exponentially increases the capacity of the Bitcoin blockchain to process transactions. It also addresses the bandwidth issue through a decentralized relay engine which ensures that blocks are relayed across nodes at almost instantaneous speeds, which gives every miner a fair shot and precludes the risk of centralization.
For now, there is no work on whether Bitcoin Unlimited or any other development teams will get to work on sharding like Ethereum, but in any event, Graphene promises to do a neat job of making bitcoin cash (BCH) more usable and thus driving overall crypto adoption.