NEO co-founder and core developer Erik Zhang has published a post announcing the completion of the “Native Contract” functionality, a key part of the NeoContract component in NEO 3.0.
Native contracts are like smart contracts, except they do not need to be run within a virtual machine, allowing them to be executed more quickly. These contracts can also be updated without the contract’s hash changing, which allows them to be updated with new features without causing disruption to existing services that use them.
NEO and GAS Contracts
Zhang noted that so far, two native contracts have been developed, which are responsible for the NEO and GAS native assets respectively. As the original UTXO-based versions will be removed in NEO 3.0, these native contracts will be responsible for managing NEO and GAS in the future.
All existing features supported by the current UTXO NEO and GAS—including GAS distribution, voting, and consensus node elections—are implemented in the new native contract-based versions. In addition, these new contracts are compatible with the NEP-5 standard, allowing other contracts and services to easily interface with them to provide more advanced functionality for users.
These changes are expected to bring “huge benefits to users, developers, and exchanges” by allowing NEO dApp developers to easily integrate NEO and GAS, simplifying the distribution of GAS to users for exchanges, and making the migration process from NEO 2.x to NEO 3.0 smoother.
Future Changes and Backwards Compatibility
Moving forward, NEO Global Development will continue work on other NeoContract functionality, including the Manifest and Permission system, Internet Resource Access (oracles), and a contract-based voting system. These contract features are being designed alongside other NEO 3.0 roadmap items, including the new pricing model and P2P protocol.
Most of these upcoming NeoContract features are also compatible with NEO 2.x, so native contracts are also expected to be implemented in the current NEO 2.x protocol.
However, it should be noted that there is an open proposal by Nash co-founder Fabio C. Canesin that requests NEO 2.x to be placed under a long-term support management policy, which would prevent changes to NEO 2.x aside from necessary bug fixes, stability, or security upgrades.
Although this would delay the release of some new features until the launch of NEO 3.0, Canesin argues that existing projects on NEO require a stable platform without the risk of critical changes.
He noted that backporting new features to NEO 2.x “will only limit NEO’s speed of development and how bold it can be.” Instead, the proposal encourages a new NEO 3.0 TestNet to be released, which Canesin speculates may help speed up development and attract new interest.