You are here

Antonopoulos foresees major Bitcoin "optimizations" 2017-2018

"I'm not proClassic, I'm not pro-Core, I'm pro concensus and concensus is coming. Within the next year and a half we're going to do segregated witness, and a hard fork to 2meg, and thin blocks, and invertible bloom look-up tables, and a number of other optimizations. And then we will a scaling wall again and the debate will continue."

(Antonopoulos, Berlin. Bitcoin Q&A: Scaling and the block size debate. Uploaded on April 22nd, 2016)


Segregated witness:

From: Segregated Witness Explained Like I’m 5.

Segregate Witness - invented by Pieter Wuille. Officially released on October 2016 in v0.13.1 of the bitcoin core.

The short non technical version:

Segregated Witness, or SegWit as it is commonly known is where data, or more specifically data related to signatures are removed from bitcoin transactions making them smaller in size. This in turn makes the blocks smaller meaning more transactions can be included in a block.

The short technical version:

“Segregated witness (segwit) is a soft fork that, if activated, will allow transaction-producing software to separate (segregate) transaction signatures (witnesses) from the part of the data in a transaction that is covered by the txid.”

What is the current status?
There is a site called where you can monitor the status. Currently there is about a 25% uptake since 15 November. (Requires 95% uptake to get "activated")


Hard fork to 2meg:

Increase block size from 1MB to 2MB

One of thousands of articles (from a community angle): SegWit-2MB: The Solution to the Block Size War - or the Submission of Bitcoin to Politics?.


Thin blocks:

"So what's the big deal with thin blocks? The theory is that if you've been connected to the Bitcoin network for a while, then you have seen all the transactions that are going to be added to the next block. You thus already have the block data. Then when the next block is announced you only need to get some metadata, including a list of transactions in the block and then rebuild the block by fetching the transaction data from your own mempool. This is not a new idea, in fact most miners are connected to a relay network which works in this fashion." (From All about thin blocks in XT.)

Images from Towards Massive On-Chain Scaling: Presenting Our Block Propagation Results With Xthin.


Invertible bloom look-up tables:

From "What are the benefits of Invertible Bloom Lookup Tables for Bitcoin?" (Stackoverflow, Sep 29 2014)

Invertible Bloom lookup tables can be used in many different ways, but the first paper you linked to explicitly proposes to use them to find differences between two data sets stored on different hosts without transferring the entire data set from one of the hosts to the other.

In context of Bitcoin, suppose that two nodes have just established a connection. Now they need to synchronize their transaction pools to make sure that each node knows about every transaction the other node knows about. A trivial solution is to send the list of transaction IDs for all transactions in the pool from one node to the other, but this list can be large. At the same time, each node will probably have most of the transactions that the other node has, so the number of transactions that have to be transferred is small.

The problem is to find which transactions should be transferred, and this is the problem that invertible Bloom lookup tables can solve. Rather than sending the list of all transactions IDs, a node only sends an invertible Bloom table, which is smaller, but it is only usable if the number of differences (transactions which are present on one of the nodes but not on the other) is small. The table can be made of different sizes, and the larger the table, the greater is the number of differences that it can resolve.

For Bitcoin, this means that the amount of unnecessary communication will be reduced, and that nodes will be able to synchronize their transaction pools more quickly. Bitcoin nodes need to synchronize the block chain as well, but because of its linear, append-only structure, there are simpler and more efficient algorithms for this, and such algorithms are used in Bitcoin from the beginning.