An update on the recent progress of Nimiq 2.0
29 Jun 2021
Team Nimiq is working on upgrading the Nimiq blockchain from the current 1.0 version to the new 2.0 version. While Nimiq 1.0 uses a proof-of-work consensus algorithm, Nimiq 2.0 will switch to our Albatross proof-of-stake algorithm and thus require magnitudes less electricity. While Nimiq 1.0 has a throughput of 15 tx/s, Nimiq 2.0 will be able to process more than 1000 on-chain tx/s. At the same time Nimiq will continue to enable browser applications to be nodes in the blockchain network and to provide a great user-experience.
The state of Nimiq 2.0 is progressing on multiple fronts. Work is being done on the Nimiq 2.0 nodes themselves, on the hard fork mechanism and on staking-related user interfaces.
A lot of time went into debugging and testing the Nimiq 2.0 full node. At this point, the node runs stable in a controlled lab environment. That means it establishes and maintains consensus, produces and validates blocks and maintains a network of peers to exchange data with. We shared a tutorial on how to setup a lab environment and are happy to see that community members are already testing the nodes and are reporting their findings.
The next step is to test the node in further scenarios: Unreliable network conditions, conflicting chains, malicious actors and much more. To this end we'll follow two approaches: First, we'll manually create different scenarios to test edge-cases. Secondly, we will setup an internal Devnet that will automatically simulate everyday usage: validators being added or removed, transactions, stake changes, different network delays and so on. After we verified that the node runs stable in various scenarios, we will start the public Aurora Testnet.
Apart from debugging, larger changes to the staking contract are also in progress. The staking contract contains information about validators and stakers. It is a type of account and as such it is contained in the accounts tree. Currently the staking contract is a leaf in the accounts tree, but we are changing it to be a subtree structure. The subtree structure will allow to efficiently query and prove which validators an account stakes with. This will allow browser nano nodes to quickly obtain and display staking information, for example in the wallet. The current changes will also allow staking contract information to be loaded into memory only as they are needed.
Since Nimiq 2.0 will have a completely different consensus algorithm than Nimiq 1.0, the upgrade requires to stop the Nimiq 1.0 blockchain and then start the Nimiq 2.0 blockchain. We previously detailed the hard fork mechanism in a blog post.
The genesis block of the Nimiq 2.0 chain will contain the last state of the Nimiq 1.0 chain. The blockchain state for example includes the accounts tree, which stores the balances of each account.
We recently created a tool that exports the current blockchain state from the database of a Nimiq 1.0 node. A second recently finished tool takes the exported data and creates a genesis block for the Nimiq 2.0 chain from it.
The genesis block generated by these tools will be broadcasted into the network. That means Nimiq 2.0 nodes will initially not have a preconfigured genesis block but will only receive it after being connected to the network for a while. Consequently, we started to adjust the Nimiq 2.0 client to receive the genesis block from the network.
Planning of the staking interfaces started early this year. The interface drafts received multiple internal iterations. After that we put together a design prototype and presented it to the community to gather additional feedback. While smaller changes to the designs might still happen, we already started implementing the designs in the wallet using a mock backend.
With OASIS released three weeks ago, we can now direct some additional workforce towards Nimiq 2.0. The current top priority is to get everything ready for the public Aurora Testnet and thus start a bigger "real world" test. We love how involved the Nimiq community has been so far and hope you'll join us in further Nimiq 2.0 blockchain tests as well!
None of the statements must be viewed as an endorsement or recommendation for Nimiq, any cryptocurrency, or investment product. Neither the information, nor any opinion contained herein constitutes a solicitation or offer by the creators or participants to buy or sell any securities or other financial instruments or provide any investment advice or service. All statements contained in statements made in Nimiq’s web pages, blogs, social media, press releases, or in any place accessible by the public, and oral statements that may be made by Nimiq or project associates that are not statements of historical fact, constitute “forward-looking statements”. These forward-looking statements involve known and unknown risks, uncertainties, and other factors that may cause the actual future results, performance, or achievements to be materially different from any future results, performance, or achievements expected, expressed, or implied by such forward-looking statements.