BLOG April 30, 2019
Roadmap of NEO 3.0 Development
About NEO 3.0
Thanks to all our devoted developers and community members, NEO has witnessed tremendous growth in its tech infrastructure and ecosystem over the past few years. In 2019, NEO will take a steady step forward in the continuation of our vision of supporting large-scale commercial applications with blockchain technology.
The cornerstone of our efforts is NEO 3.0, which will be a robust blockchain implementation with high throughput, enhanced stability and security, an optimized smart contract system, and a feature-packed infrastructure set for diverse business application scenarios.
On the flip side, we keenly recognize governance’s pivotal role in the long-term evolution of a blockchain as the common good collectively owned by stakeholders and more broadly the entire surrounding communities. In 2019, we will be actively collaborating with experts from the academia, industry and community to explore various governance mechanisms including liquid democracy, futarchy and some others emerged in recent times. In many cases economic model is tightly interlaced with governance mechanism, therefore they will be treated as an integrated system. NEPs regarding on-chain governance changes will be published if satisfying outcomes are achieved after extensive research and simulation.
Next, let's take a look at what new features are planned to be included in NEO 3.0.
New features in NEO 3.0
Delegated Byzantine Fault Tolerance (dBFT) is a consensus mechanism designed specifically for blockchains. A set of consensus nodes are selected through a voting process, and these consensus nodes jointly generate and validate blocks. As consensus nodes are required to come to a shared consensus on a new block before it is committed to the blockchain, dBFT provides single block finality, meaning the NEO blockchain cannot be forked and transactions are irreversible. Once a transaction is confirmed on the blockchain, it cannot be reversed or canceled. For financial applications, the finality of a transaction is a necessity.
In dBFT 2.0, we added a recovery mechanism that greatly improved the stability of the consensus algorithm. In the rare occurrence of a network failure or a node failure, a quick recovery is expected.
The development of dBFT 2.0 began in Q4 of 2018 and was completed in Q1 of 2019. It will soon be deployed to the main network of NEO 2.x.
As we know, there are two native tokens on the NEO blockchain, namely neo and gas. Gas is used to pay transaction fees and smart contract execution fees.
Currently, the relatively high cost of deploying and running smart contracts leads to a reluctance in smart contract usage and development. The current pricing model becomes a significant obstacle in the gas application scenarios, and thus hinders the continuous growth of DApp development and usage on NEO platform.
In NEO 3.0, we will address this issue by significantly reducing the deployment and execution costs of smart contracts, thereby expanding the application scenarios of gas and increasing the number of DApps. Prior to the NEO 3.0 implementation, credible projects can apply for grants from the NEO Foundation with contract deployment costs.
Internet Resource Access
NEO 3.0 will have a built-in Oracle implementation that allows smart contracts to access Internet resources during execution. Inconsistencies between nodes when accessing Internet resources can be resolved thanks to the security and efficiency of dBFT 2.0.
With this feature, developers can easily develop more sophisticated or scenario-specific oracles based on NEO, and develop more diverse DApps that rely on external data.
In NEO 3.0, we will redesign the P2P protocol, add support for the UDP communications protocol, and enable compression options. This is expected to greatly improve the TPS and stability of the network.
NeoVM is a lightweight virtual machine for executing smart contracts. It features fast startup, low resource consumption, and supports multiple high-level programming languages to allow developers to build contracts with familiar tools.
In NEO 3.0, NeoVM will be completely decoupled from the blockchain and become a pure virtual machine. There are several benefits to this:
- Easy implementation of native contracts.
- Application scenarios of NeoVM outside the blockchain.
- Smooth Integration of NeoVM into any IDE and easy debugging of smart contracts without loading blockchain data.
In addition, NeoVM will also include some new features, such as support for static members, exception handling, and more.
Currently, there are two methods to create assets on NEO. The first is to create a global asset with RegisterTransaction, and the second is to create a contract asset with a smart contract. In practice, global assets are rarely used, and most applications create contract assets due to their flexibility and functionality. Since global assets are not integrated with smart contracts, managing global assets in smart contracts is very difficult.
For these reasons, we do not need to continue to support global assets in NEO 3.0. In NEO 3.0, all assets are created in smart contracts, including neo and gas.
By removing global assets, it becomes possible to unify all transaction types. Currently, in NEO 2.x, there are 9 different transaction types. These transaction types are either related to a particular application scenario or provide more niche functionality. For example, RegisterTransaction and IssueTransaction are related to the creation and distribution of global assets. Since global assets will no longer exist, these related transactions are rendered obsolete.
Other transactions dealing with complex application scenarios will also be removed and replaced with interop services in smart contracts. As a result, there is only a need for a single transaction type in NEO 3.0, which is used to execute smart contracts.
We have also proposed a simplified validation model that will greatly improve the speed of transaction verification, and allow these validations to be performed concurrently.
With these architectural adjustments, the performance of NEO 3.0 base layer will be substantially increased by orders of magnitude. However, this new architecture can lead to incompatibility with NEO 2.x. In order to minimize the impact of this incompatibility, we plan to delay the development of any incompatible features until all NEO 2.x compatible features have been developed.
NeoFS is a distributed decentralized object storage platform integrated with NEO. NeoFS is intended to be primarily used by DApps for data storage and as a Content Delivery Network. Moreover, NeoFS can be used to create private distributed storage systems for SMEs, which use regular servers or clusters (data centers), and for storing large amounts of unstructured IoT data.
The use of smart contracts is proposed to control the distribution of rewards from data owners and publishers to participants that are hosting data. The NEO protocol can be extended for deeper integration with NeoFS, allowing storage on data nodes instead of blockchain ledger. A topic of further research is the potential of decreasing the cost of smart contract deployment along with storing data and files to be used by smart contracts. In addition, NeoFS could be used to store old block data instead of full nodes, further increasing the scalability of NEO.
NeoFS contains a scalable data placement method. Fine control over object location and minimal data movement in case of storage node failures are achieved by using a subset of a network map and storage policy rules for object placement, along with Rendezvous hashing for node selection.
In addition, the proposed platform uses a novel zero-knowledge data validation method based on homomorphic hashing to minimize data transfers. This helps to maintain network scalability by minimizing computational costs on storage node and validation nodes, and ensures a large number of parallel interactions.
Digital identity refers to the identity information of individuals, organizations, and other entities that exist in electronic form. Blockchain brings a new way to define identities and the relationships between them.
NeoID is a decentralized identity protocol built on NEO. It empowers users and organizations to have better control of their identities and delivers a higher degree of trust and security to the smart economy.
It consists of three main parts: Trust Model, Privacy Model and Game Model. The Trust Model describes the rules of trust in this distributed network. The Privacy Model describes the privacy protection scheme for users’ online data. The Game Model describes the benefits and penalties of actions within the trust network. These three parts provide a mathematical model to abstract the real world, forming the basis of NeoID.
NeoID will not only support a decentralized identifier issuance model but will also be compatible with the X.509 level certificate issuance model.
The development of NEO 3.0 began in Q4 of 2018 and is expected to be completed in Q2 of 2020. For quality assurance purposes, a review phase will be set up, during which imperfect features will be removed and necessary new features will be rigorously tested. Due to this security-focused approach, a several month delay may occur before the official launch of NEO 3.0.
NEO 3.0's roadmap includes some architectural improvements that will greatly improve NEO's performance and stability. Some of these improvements are not compatible with NEO 2.x. Therefore, NEO 3.0 will launch as a new blockchain network from a genesis block. However, before the launch of the NEO 3.0 MainNet, we will have two concurrent development branches for NEO 2.x and NEO 3.0.
Most of the new features in NEO 3.0 are backwards-compatible and will therefore be ported to NEO 2.x, which guarantees that the majority of development efforts for NEO 2.x DApps will be valid even if deployed to NEO 3.0. After the launch of the NEO 3.0 MainNet, we will also provide funding and technical support to assist developers in the migration of their DApps from NEO 2.x to NEO 3.0.
In Q2 of 2019, we will launch a NEO 3.0 TestNet for development purposes. Whenever a new feature is developed, it will be deployed to the TestNet to allow developers to test their DApps. After NEO 3.0 is fully developed, this TestNet will be shut down and replaced by a new TestNet that will be identical to the NEO 3.0 MainNet.
In Q1 of 2020, we will launch the migration plan.
Migration of DApps and users from NEO 2.x to NEO 3.0 is inevitable. At present, the features of NEO 3.0 are still under development, with improvements and minor modifications likely to occur. Therefore, it would be illogical to devise a comprehensive migration plan at this stage. However, the primary principles are set as follows:
- Data and transaction records on NEO 2.x will be permanently retained.
- The migration will be simulated in the TestNet to ensure a smooth transition.
- The costs incurred during the migration process, such as contract redeployment and testing, will be reimbursed by the NEO Foundation.
- The NGD team will provide comprehensive technical support for the migration of DApps.
- Token holders will need to swap tokens to activate new ones on NEO 3.0.
- The users of the exchanges will not be affected.
- In order to encourage users and DApps to migrate, an early adopter incentive plan will be devised and implemented.