The Neo community had its first glimpse at the features and optimizations being pursued as part of Neo3 development during a presentation by Erik Zhang at Neo DevCon in Seattle. Changes to the protocol were chiefly focused on increasing TPS, efficiency, and reliability, with the goal of being able to support large-scale commercial applications.

During the event, it was noted for the first time that Neo3 would likely take the form of a new blockchain, a requirement to implement some changes that are not backwards compatible. These optimizations to the protocol, together with the single block finality offered by dBFT, were designed with the intention of making Neo3’s base layer a force to be reckoned with in the blockchain space.

In addition to protocol optimizations, new features designed to improve the usability of Neo also entered consideration. At the end of April, Zhang released a Neo3 roadmap which reiterated the development priorities and provided a mid-2020 target for completion.

The roadmap highlighted the importance of cutting edge features such as oracle systems for retrieving data from the Internet, but also noted the importance of improving Neo’s on-chain governance and economic model.

Zhang also commented on the importance of additional modules, such as NeoFS for decentralized data storage and NeoID to support digital identities for a higher degree of trust, security, and regulatory compliance in applications on the network.

Offering all of this functionality in an accessible manner is intended to make Neo a feature-rich and developer-friendly platform that can scale to serve as the infrastructure for the smart economy.

In this article, we’ll follow the most important stages of Neo3’s evolution throughout 2019.

Initial Development

Throughout the first few months of 2019, the Neo core development team completed work on dBFT 2.0, an updated version of the consensus mechanism used by the Neo blockchain. This was to address P2P node stalls caused by a block fork issue encountered on the MainNet, so was initially developed for Neo 2.x rather than Neo3.

The update was launched on TestNet in April, before going live on MainNet in June, marking the last major change to Neo2 and the ramping up of Neo3’s development. Since the update was deployed, the Neo2 MainNet has shown consistent and stable operations.

In its May development report, NGD Shanghai reported the first improvements to be implemented for Neo3: native contracts for the NEO and GAS tokens, optimization and compression for node communications, and the removal of UTXO from Neo.

Removal of UTXO transactions was an important step for Neo3, allowing all the different transaction and asset types to be simplified to a single one; a transaction that can invoke contracts. Coupled with the native contracts for the NEO and GAS tokens, all digital assets on Neo3 will take the form of contract assets.

These changes also help improve system performance whilst reducing complexity for those looking to build applications that interact with the Neo blockchain. Additionally, the adoption of native contracts allows critical components such as the transaction fee policy or consensus node voting mechanism to be executed or updated in a transparent and decentralized manner.

NCA Discussions and TestNet Launch

September was a milestone month for Neo, in which the inaugural Neo Community Assembly was hosted in Shanghai, resulting in discussions by community members on a range of important topics and features for Neo3. The Assembly was followed with the launch of the first Neo3 Preview Testnet, opening the doors for developers to get started experimenting with the newly reduced system fees and network requirements such as contract manifests.

Discussions and brainstorming sessions at the event focused on topics such as the design of the built-in oracle system, Neo’s governance and economic model, and the needs to be met by NeoID implementations.

Following community discussion on the requirements and various challenges, two potential solutions for the oracle implementation were submitted in September. Discussions on the proposals continued through October and implementation began in November.

The oracle implementation effort was primarily lead by core developers Shargon and Belane, co-founders of Spanish cybersecurity firm Red4Sec, who are also responsible for a laundry list of Neo3 improvements and PR reviews through 2019. Through the year, Red4Sec has also contributed security audits for code on the Neo GitHub and has developed new tools for running resistance and performance tests against different builds.

According to the December development report, most oracle components have now been implemented, including dividends, policies, the consensus mechanism, and execution processes. Current discussions on the topic are concerned with how oracle nodes should be elected, with options ranging from leaving that power with consensus nodes to the separation of powers and roles in the oracle network.

The December report also included information on new functionality under design, including the implementation of reference counting for VM memory management, and the addition of function pointers to allow cross-contract callbacks and even lambda functions. These changes are intended to greatly increase the performance and flexibility of contracts executed by NeoVM.

Looking Forward

With most of the changes outlined in the DevCon presentation and roadmap now implemented, development in 2020 is expected to focus on exploring new components, such as the use of BLS or Schnorr for signature aggregation, along with the integration of high priority items such as NeoFS and NeoID.

At the end of November, discussions were opened to help determine which of the three potential NeoID candidates should be selected as the ideal solution. The selected candidate will be implemented in time to be available as part of the functionality available in the Neo3 launch, alongside NeoFS which is undergoing refinement as part of its beta testing phase.

The finalization of an updated Neo governance and economic model is also expected in 2020, a topic which is being heavily researched as part of the next dBFT update. The update, dBFT 3.0, will see the mechanism isolated into three key components: governance, incentivization, and consensus protocol itself.

To accompany the refinement of Neo’s governance system, a new native contract responsible for handling the voting mechanism will be required. A fundamental component in Neo, upon release this contract will allow Neo holders to elect consensus nodes, required to allow the Neo blockchain to become decentralized. Implementation of the voting contract began in September, which is expected to be included in the next Neo3 preview release.