A Scalability Plan for Ergo

As of August’23, there is significant progress in lighter clients. In 5.0.12 and 5.0.13 (June/July’23) reference client releases support for bootstrapping with UTXO set snapshots and NiPoPoWs was added.

The most hot topic now is another round of L0 optimizations, avoiding broadcasting transaction twice, like was done in Compact Blocks BIP in Bitcoin Core.

At the same time, there is demand for faster transaction confirmations, so would be good to jump on that, finally (implementing Bitcoin-NG was in the initial roadmap from 2017, then it was abandoned due to competing proposals and hope to implement a best option when the landscape is set via a soft-fork).

There are many claims in the space about improving scalability in comparison with classic proof-of-work blockchain, such as Bitcoin or Ergo.
Often attempts to improve are about switching to Proof-of-Stake or other Proof-of-X consensus algorithms or issuing blocks more frequently along with adopting DAG.

However, with the same peer-to-peer network (L0), replacing timestamping method for L0 transactions (means L1 consensus mechanism) is leading to
higher TPS (transactions per second) rate is possible only if a new consensus mechanism is creating less network messages, and Proof-of-Work is already optimal in this regard (no any messages needed to create a block). DAG structure is also not a scalability solution, obviously, as more frequent blocks are leading to more collisions, so more network messages, thus TPS rate is becoming worse even.

Thus real scalability efforts are about:

  • improving propagation around peer-to-peer network. Like in Bitcoin before compact blocks implementation, in Ergo currently a new block is to be propagated in full. That means the network is busy when a new block is generated and then underutilized before next block. This was motivation for Bitcoin-NG paper [1], which is proposing to have microblocks created after empty PoW block which becomes just an indication of leader election. The paper shows better utilization of p2p network overall. More frequent blocks~(until significant increase in collisions rate) also helping with network utilization. However, compact blocks achieve similar results, and some alternative improvements of block chunks propagation, such as [2] are claiming results like 100x TPS increase.
  • unloading L0, which is necessary after all, as improvements there are limited, especially if we do care about decentralization, so aim to preserve flat peer-to-peer network. There are different techniques here, such as L2 protocols (where progress can be made offchain after initial commitments on L1, and scalability comes from the fact only protocol users exchange L0 transactions involved in L2), sidechains (where progress in a certain application, in case of application sidechains, such as Aspen [3], or in general domain case done on a dedicated chain, and scalability comes from the fact only consensus parties of a sidechain do need to handle its L0 transactions), plasma (where a trusted party is processing state updates offchain and publishing only short state commitments on chain, with some exit protocol exists for the case when trusted party ceased to exist), rollups(when contracts data is written on L1, and execution is happening outside, and L0 transactions are processed by rollup maintainers), etc.

The rough plan for the moment is as follows:

  • instead of microblocks, use weak-blocks (block candidates with lower difficulty). For example, w. weak-block diff of 1/128 of normal block’s diff, there will be 1 weak-block per second on average. A weak
  • weak-blocks are sent around the network along with new (since prev weak-block) transaction ids, in cut-through way similarly to [2]. This will make the network optimally utilizing bandwidth
  • after having enough confirmations from majority hashrate, a transaction can be considered as weakly confirmed, in practice for the current network it would be done under ~20 secs.
  • for incentivizing weak blocks reporting, they can commit to sidechains, thus making fast sidechains possible and miners will get rewards from that.

References:

[1] I. Eyal et al. Bitcoin-NG: A scalable blockchain protocol
[2] L. Zhang et al. Speeding up block propagation in Bitcoin network: Uncoded and coded designs
[3] A. Gencer et al. Service-oriented sharding with Aspen

15 Likes