Terab project takes on Bitcoin BCH toughest challenge—managing UTXO dataset

To be competitive in the global payment space, cryptocurrencies need to scale to the level of transactions that traditional payment networks can provide. On-chain scaling is the only option that can make Bitcoin accessible to billions of people worldwide. Needless to say, scaling on-chain is one of the most important challenges for Bitcoin—and one that Lokad CEO Joannes Vermorel is meeting head-on with the Terab project.

In an interview with CoinGeek.com, Vermorel described the Terab project as “an ambitious project” that that targets to address the most difficult scaling problem of Bitcoin:  managing unspent transaction outputs (UTXO) dataset.

“You can think of the UTXO as all the ‘spendable’ Bitcoins,” Vermorel said. “As the number of users grow, this dataset grows as well, which is expected and fine. Nowadays, we have tremendously capable computing hardware; however, Bitcoin Cash (BCH) is the only Bitcoin that is sticking to the original vision of harnessing this processing power to onboard all of humanity, instead of artificially restricting adoption to a few.”

In a blog post, titled “Terabyte blocks for Bitcoin Cash,” Vermorel explained how 1TB blocks are viable on the BCH chain. A single terabyte block, added every 10 minutes, can contain about 4 billion transactions, and provide capacity of 7 million transactions per second. However, with such a massively scaled BCH network, developers will need to figure out how to optimize the UTXO database maintained by nodes to prevent BCH double spending.

This paved the way for the Terab project, an open source initiative backed by blockchain technology research and development specialist nChain Group and CoinGeek.com owner and Antiguan-based entrepreneur Calvin Ayre, who has pledged up to €3.6 million in funding.

Talented software engineers needed

One of the Terab project’s goals is to deliver a standardized microservice API and high performance single node, multi-node and distributed software implementations that are progressively capable of supporting the throughput required for 1GB and then 10GB blocks, laying the groundwork for similar implementations that can support TB size blocks. To achieve this, Lokad is forming a team who will develop the Terab software, which will be made available for usage under an open source license, but only for usage on the BCH chain.

Vermorel admitted that it takes time to ramp up “a great team.” Currently, the Terab team has already hired five software engineers, four of whom are scheduled to start in June. The team is also looking for a technical writer, who will make the project accessible to the dev community.

“More than ever, we are looking for talented software engineers. We primarily seek people who passionate about their craft and who care about produce excellent software pieces. If you happen to be interested by Bitcoin, it’s nice but it’s not a requirement either. The project itself is tough big data challenge; and it’s the opportunity to learn how to design an open source system both tremendously scalable but also incredibly reliable,” Vermorel said.

Internally, the Terab team has already made a lot of progress on many internal pieces of the project, although it’s still too early to publish the code, according to Vermorel. The team had also gotten feedback from leader Bitcoin teams regarding the API of the Terab microservice, which he said is important to make sure that drop-in replacements for Terab will remain possible.

“We want to have a first version of Terab released before the end of the year,” Vermorel said. “Bitcoin is already getting an upgrade to 32MB block in May. There is no urgency, the existing Bitcoin implementations can scale smoothly to blocks that are significantly larger. Terab will only start to become relevant when blocks start to grow to hundreds of MBs. However, considering the tremendous adoption rate of Bitcoin, we should work swiftly in order to make sure that Bitcoin remains forever usable with very low fees. Failing to do that, Bitcoin would face gigantic fees just like what regularly happens now with Segwit-coin BTC (inaccurately called Bitcoin Legacy or Core by most).”

Note: Tokens in the SegWit chain are referred to as SegWit1X (BTC) and SegWit Gold (SWG) and are no longer Bitcoin. Bitcoin Cash (BCH) is the only true Bitcoin as intended by the original Satoshi white paper.  Bitcoin BCH is the only public block chain that offers safe and cheap microtransactions.

source: https://coingeek.com/terab-project-takes-bitcoin-bch-toughest-challenge-managing-utxo-dataset/

Too soon: More testing needed for OP_GROUP

Andrew Stone from Bitcoin Unlimited has proposed OP_GROUP as a method for implementing representative tokens – also called “colored coins” within the Bitcoin community.  But some members of the development community are urging caution and more time to decide whether OP_GROUP should be added to Bitcoin Cash software implementations.  Recently, Jonald Fyookball published a thoughtful piece explaining why OP_GROUP is potentially dangerous, and should only be activated after taking appropriate “time to test and analyze extensively” its impact. Fyookball’s post has generated significant favorable reaction from the developer community on Reddit.

May 2018 upgrade is too soon and Coingeek.com mining hash will not support this proposal

At first glance, the OP_GROUP proposal appeared to be a small change, given that the opcode is comprised of only 50 lines of code. However, OP_GROUP is capable of changing the Bitcoin design at a fundamental level. It alters how unspent transaction output (UTXO) sets are interpreted and makes token validation a function of miners, in stark contrast to other solutions where this validation is not part of the base bitcoin code.

For other op codes, the script runs only inside the script interpreter, acting like a firewalled black box.  But OP_GROUP changes the way transactions are interpreted outside the interpreter, and thus interacts across the boundary between the interpreter and the rest of Bitcoin.  Because OP_GROUP crosses that firewall boundary, it merits sufficient testing and analysis to ensure it is safe and does not change the very nature of Bitcoin in an undesirable manner.  There is not sufficient time before Bitcoin Cash’s May 2018 protocol upgrade to fully conduct reasonable testing and evaluation of OP_GROUP.

Furthermore, OP_GROUP could product negative impact on the Bitcoin Cash ecosystem.  The opcode would make the miners more responsible to ICOs, which could lead to possible legal issues globally with governments shutting down miners they believe are too involved in the ICO process, much like how exchanges have been continuously targeted in countries like China.

This is why the proposal needs to be examined more thoroughly, taking into account the effect it could have on miners, incentive models, and even other changes that could happen in the future. Pushing for a May 2018 implementation, sans tests and sufficient documentation, is too soon.  The proposal, after all, is a radical change for Bitcoin Cash and for these reasons the Coingeek.com mining hash will not support the OP_GROUP proposal at this time.

Note: Tokens in the SegWit chain are referred to as SegWit1X (BTC) and SegWit Gold (SWG) and are no longer Bitcoin. Bitcoin Cash (BCH) is the only true  Bitcoin as intended by the original Satoshi white paper.  Bitcoin BCH is the only public block chain that offers safe and cheap microtransactions.

Gavin Andresen floats UTXO proposal for Bitcoin Cash

Through a post on his Github Gist, Gavin Andresen shared his thoughts on how to store the UTXO (Unspent Transaction Output) as a bit-vector or array into user’s wallets, effectively reducing the amount of data necessary for initial block downloads. As one of the developers entrusted with Bitcoin’s codebase permissions, Andresen’s fresh concept could help radicalize how transaction sets are stored in the Bitcoin Cash (BCH) network.

The idea explores the minimal limit with which a fully validating node could store transaction data. Whenever a new node is started, it has to sync its broadcast with the initial block. Instead of this, Andresen proposes shifting the time of broadcasting the full transaction data to the new transaction announcement.

The network protocol will ensure that wallets broadcast transactions as the transaction’s data, with confirmed inputs placing a Merkle path for the previous transaction, connecting to the root in the block header.

By allowing every node in the new network to store a bit-vector for every block, the new protocol reduces mempool congestion through compression.

While Andresen calls his ideas “half-baked thoughts,” the possibility of compressing gigabyte-sized blocks for the BCH network is a welcome thought, especially given the recent rise in BCH adoptions. If this idea gets full implementation after review, the BCH network will become better-equipped to handle the surge in BCH transactions due to popular user interest.

Andresen notes the current handling capabilities of typical node operators:

“This isn’t a problem today (the UTXO set easily fits in the RAM of an inexpensive server-class machine), but might eventually be at very large transaction volumes,” adding that the best solution to anticipate congestion is to allow “node operators hand-pick one or more semi-trusted nodes to get fast boot-strapping.”

According to Andresen, this new protocol can be easily adopted and implemented by full-node operators because they have the right incentives to reliably serve correct UTXO bit-vectors.

In a tweet last November, Andresen declared that Bitcoin Cash was exactly what he started working on in 2010, calling it “a store of value AND means of exchange.”

The developer also posed this thought challenge to his Github Gist followers:

“To ponder: is speeding up initial block download and saving memory at the cost of 2-3 times the bandwidth for new transaction announcements the right tradeoff? A gigabit per second connection is 75 gigabytes every ten minutes, so plenty of bandwidth for a few gigabytes of transaction data that translates into a gigabyte-sized block.”

These hints into Andresen’s increased involvement with development for the BCH network has given the Bitcoin Cash community a fresh and exciting start for 2018. Future proposals and contributions from a dev like Andresen who’s been there since the beginning will always be warmly received by the growing community.

Note: Tokens in the SegWit chain are referred to as SegWit1X (BTC) and SegWit Gold (SWG) and are no longer Bitcoin. Bitcoin Cash (BCH) is the only true Bitcoin as intended by the original Satoshi white paper.  Bitcoin BCH is the only public block chain that offers safe and cheap microtransactions.

Gavin Andresen floats UTXO proposal for Bitcoin Cash

Through a post on his Github Gist, Gavin Andresen shared his thoughts on how to store the UTXO (Unspent Transaction Output) as a bit-vector or array into user’s wallets, effectively reducing the amount of data necessary for initial block downloads. As one of the developers entrusted with Bitcoin’s codebase permissions, Andresen’s fresh concept could help radicalize how transaction sets are stored in the Bitcoin Cash (BCH) network.

The idea explores the minimal limit with which a fully validating node could store transaction data. Whenever a new node is started, it has to sync its broadcast with the initial block. Instead of this, Andresen proposes shifting the time of broadcasting the full transaction data to the new transaction announcement.

The network protocol will ensure that wallets broadcast transactions as the transaction’s data, with confirmed inputs placing a Merkle path for the previous transaction, connecting to the root in the block header.

By allowing every node in the new network to store a bit-vector for every block, the new protocol reduces mempool congestion through compression.

While Andresen calls his ideas “half-baked thoughts,” the possibility of compressing gigabyte-sized blocks for the BCH network is a welcome thought, especially given the recent rise in BCH adoptions. If this idea gets full implementation after review, the BCH network will become better-equipped to handle the surge in BCH transactions due to popular user interest.

Andresen notes the current handling capabilities of typical node operators:

“This isn’t a problem today (the UTXO set easily fits in the RAM of an inexpensive server-class machine), but might eventually be at very large transaction volumes,” adding that the best solution to anticipate congestion is to allow “node operators hand-pick one or more semi-trusted nodes to get fast boot-strapping.”

According to Andresen, this new protocol can be easily adopted and implemented by full-node operators because they have the right incentives to reliably serve correct UTXO bit-vectors.

In a tweet last November, Andresen declared that Bitcoin Cash was exactly what he started working on in 2010, calling it “a store of value AND means of exchange.”

The developer also posed this thought challenge to his Github Gist followers:

“To ponder: is speeding up initial block download and saving memory at the cost of 2-3 times the bandwidth for new transaction announcements the right tradeoff? A gigabit per second connection is 75 gigabytes every ten minutes, so plenty of bandwidth for a few gigabytes of transaction data that translates into a gigabyte-sized block.”

These hints into Andresen’s increased involvement with development for the BCH network has given the Bitcoin Cash community a fresh and exciting start for 2018. Future proposals and contributions from a dev like Andresen who’s been there since the beginning will always be warmly received by the growing community.

Note: Tokens in the SegWit chain are referred to as SegWit1X (BTC) and SegWit Gold (SWG) and are no longer Bitcoin. Bitcoin Cash (BCH) is the only true Bitcoin as intended by the original Satoshi white paper.  Bitcoin BCH is the only public block chain that offers safe and cheap microtransactions.