Q&A: Waves NG

Last modified:

What is the problem with current blockchain systems?

The problem is that in many decentralised systems, nodes are scattered around the world, and their synchronisation entails significant delays. If you create a large block and start sending it, while you are waiting for it to reach the rest of the network’s participants, one of them may have time to create a new block. Because of this problem, forks will occur. That is one of the reasons why, in the bitcoin community, there are constant debates about whether to increase block size. If you increase the size of a block in the bitcoin network by 4 times, only 90% of participants will have time to download it before creating a new one. If you increase it to 36 MB, then only half of participants will have time.

Can the problem be solved by reducing the interval between blocks?

It is possible to reduce the interval, but this solution does not allow a proportionate load on the network, since variation in the timing of block creation can be large.

What is good about NG?

In the case of bitcoin, you can choose whether to download the entire block or not. With Waves we went further. Having implemented NG, you can refer to any part of a block. If you download only half of it, and you can still refer to it without creating a new fork. Thus you can significantly increase the number of transactions and not worry about the fact that participants do not have time to download blocks entirely. NG allows the most optimal use of network resources.

Why have other platforms not implemented NG?

To implement such a system requires a hardfork. It is difficult to gain consensus for this, especially in bitcoin. In addition, the implementation of such a protocol requires significant investment in development and testing, a professional team and a serious infrastructure for testing.

Can the synchronisation problem be solved by using more advanced hardware for nodes?

Miners of bitcoin in China have giant data centers and can process as many transactions as they want. They can process a huge number of hashes, and they have access to the highest quality equipment. Nevertheless, the problem of synchronisation still remains. If the network is large enough, participants can’t all be connected to each other.

How else can the synchronisation problem be solved?

Some blockchain systems solve the problem of synchronisation in another way, by limiting the number of nodes. The question is whether such a system is appropriate. Theoretically, you can have only one node that will generate millions of transactions. Such a blockchain will be fast. However, the essence of the blockchain is decentralisation, since this provides security.

Will NG really make Waves the fastest blockchain system?

Yes - although, as explained above, only if you compare it to systems where the number of participants is not limited in some way. Therefore Waves will become the fastest decentralised blockchain system.

How will the NG protocol be activated in Waves?

Waves NG activation will be triggered by the newly-implemented Waves Activation Protocol. The idea of this protocol is to ensure that activation of features requiring a hardfork are more predictable, transparent and safe. Once a new version is released and nodes are updated, miners will begin to set new feature approval flags in their blocks. Once 10,000 blocks (roughly 1 week) pass, the protocol checks how many blocks contain the flag. If 90% of miners have approved the feature, it is automatically activated after a further 10,000 blocks.

At first, node version 0.8.0 with Waves-NG will be released for testnet. Anyone can download this new version and join our testnet. Moreover, we will lease the necessary amount of WAVES to those who want to try running a mining node on testnet. Testnet nodes will then start voting for Waves-NG using the Waves Activation Protocol. Testnet has a decreased voting period (3,000 blocks instead of 10,000) so will require less time to test approval and activation of NG.

Once Waves-NG is activated on testnet we will perform a public Stress Test. Again, everyone will be able to generate a number of transactions, check how fast they are processed and how this affects overall network performance.

Mainnet build will be released when it is clear that the new version works as expected and everyone is ready to upgrade their nodes.

Since testing is a two-way process, we will be announcing dates for each of the above activation stages in due course.