Xthinner Block Propagation Protocol: 99.6% Compression, 13 Bits Per Transaction

Xthinner Block Propagation Protocol: 99.6% Compression, 13 Bits Per Transaction

Veteran developer Jonathan Toomim recently released an update on his highly anticipated Xthinner/Blocktorrent project(s). It’s a new block propagation protocol, taking advantage of the lexical transaction ordering rule (LTOR) to reportedly yield 99.6% compression for blocks (assuming transactions were transmitted), which is about 13 bits per transaction. “My expectation,” Toomim explained, “is that when it is finished, it will perform about 4x to 6x better than Compact Blocks and Xthin for block propagation. Relative to Graphene, I expect Xthinner to perform similarly under ideal circumstances (better than Graphene v1, slightly worse than Graphene v2), but much better under strenuous conditions (i.e. mempool desynchrony).”

Lose Block Weight Now, Ask Toomim How!

The Bitcoin Cash (BCH) community applauded the update concerning dev Jonathan Toomim‘s project(s), Xthinner/Blocktorrent. It’s “designed to be fault-tolerant,” he told a popular subreddit, “and to handle situations in which the sender and receiver’s mempools are not well synchronized with gracefully degrading performance — missing transactions or other decoding errors can be detected and corrected with one or (rarely) two additional round trips of communication.”
Xthinner Block Propagation Protocol: 99.6% Compression, 13 Bits Per Transaction
He proceeded to run through the collected data, testing “Xthinner on a block with 1250003 transactions with sender mempool size 2500000 and recipient mempool size 2500000,” finding the “Blocks match!” and “No errors detected.”
According to his experiments, “If each transaction were 400 bytes on average, this block would be 500 MB, and it was encoded in 1.9 MB of data, a 99.618% reduction in size,” a pretty incredible difference.

Real-World Performance

He was also quick to add caution, as “Real-world performance is likely to be somewhat worse than this, as it’s not likely that 100% of the block’s transactions will always be in the recipient’s mempool, but the performance reduction from mempool desychrony is smooth and predictable. If the recipient is missing 10% of the sender’s transactions, and has another 10% that the sender does not have, the transaction list is still able to be successfully transmitted and decoded, although in that case it usually takes 2.5 round trips to do so, and the overall compression ratio ends up being around 71% instead of 99.6%.” He invited the curious to have a look at his work.
Xthinner Block Propagation Protocol: 99.6% Compression, 13 Bits Per Transaction

When Toomim finishes Xthinner he will start working on Blocktorrent, a project he describes as “a method for breaking a block into small independently verifiable chunks for transmission, where each chunk is about one IP packet (a bit less than 1500 bytes) in size.”

It’s a spin on Bittorrent’s speed relative to older peer-to-peer file sharing platforms, and he intends to eventually make it quicker than Xthinner. “Currently, one of the big limitations on block propagation performance is that a node cannot forward the first byte of a block until the last byte of the block has been received and completely validated. Blocktorrent will change that, and allow nodes to forward each IP packet shortly after that packet was received, regardless of whether any other packets have also been received and regardless of the order in which the packets are received,” he detailed.

Improve Efficiency and Reduce Latency

His hope is to ultimately optimize node bandwidth as blocks are propagated, while also shrinking latency — to the tune of a ten-factor improvement. “Blocktorrent achieves this partial validation of small chunks by taking advantage of Bitcoin blocks’ Merkle tree structure,” Toomim notes. “Chunks of transactions are transmitted in a packet along with enough data from the rest of the Merkle tree’s internal nodes to allow for that chunk of transactions to be validated back to the Merkle root, the block header, and the mining PoW, thereby ensuring that packet being forwarded is not invalid spam data used solely for a DoS attack.”

Xthinner Block Propagation Protocol: 99.6% Compression, 13 Bits Per Transaction
Jonathan Toomim

He’s also set a goal for every 5-to-10 seconds Blocktorrent to propagate a 1 GB block. “Blocktorrent will probably perform a bit worse than FIBRE at small block sizes, but better at very large blocksizes, all without the trust and centralized infrastructure that FIBRE uses,” Toomim hedged.

So far, BCH enthusiasts seem elated at such an update and the promise of what it/they might mean. “People like [Toomim] are the main reason for investing in and building on BCH. Thank you for all the excellent work, it is extremely valuable,” came a comment. “You had me at 99.61% Jaw dropped. This is epic. I love BCH Devs. I freaking love you guys,” another gushed.

Xthinner Block Propagation Protocol: 99.6% Compression, 13 Bits Per TransactionCONTINUE THE SPICE and check out our piping hot VIDEOS. Our podcast, Milk, might help sooth that crypto burn. Follow CoinSpice on Twitter. Join our Telegram feed to make sure you never miss a post. Drop some BCH at the merch shop — we’ve got some spicy shirts for men and women. Don’t forget to help spread the word about CoinSpice on social media.