At NEO DevCon 2019 in Seattle, NEO co-founder Da Hongfei opened with a presentation on the history of NEO and what the community should expect looking forward. Following his speech, co-founder and core developer Erik Zhang provided some insights into possible improvements to be expected as part of NEO 3.0 in a pre-recorded presentation.
Da set the stage for his smart economy vision by providing a glimpse at the evolution of ledger technology, and how this evolution changed the economic systems. New record-keeping methods provided civilization with the tools to move from exclusively public property, to also supporting private ownership.
In the future economy, assets are digitized and programmable, which Da explains allows for shared ownership and the creation of new forms of institution, such as DAOs (digital autonomous organizations). With the expectation that blockchain would act as the infrastructure for this new economy, Da noted that NEO’s architecture would need to be refined and updated with additional functionality.
Additional infrastructure modules
The NEO 3.0 milestone, which will likely take the form of a hard fork or start from a new genesis block, includes a few key upgrades intended to improve the usability and flexibility of the blockchain. Alongside protocol refinements, Da explained that new modules must be integrated to allow NEO to meet all the various user and developer requirements.
Examples of these modules include NeoID and NeoFS, both of which have candidates currently in the development stage. One NeoID candidate is a self-sovereign identity solution by Swisscom’s blockchain subsidiary, and the current NeoFS candidate is an off-chain distributed storage solution by NEO SPCC.
NeoFS intends to encourage adoption by large-scale entities by removing the high-cost barrier of contract storage. Data would be encryptable to ensure privacy, as well as being accessible via smart contracts. NEO users would be able to spend GAS to acquire storage space or rent out unused hard drive space to earn GAS.
In the subsequent presentation by Erik Zhang, other possible feature implementations for NEO 3.0 were outlined. NEO 3.0 aims to support adoption by large-scale commercial applications, which require high TPS, data storage and increased reliability.
Zhang began his presentation by highlighting the need to optimize the blockchain for Layer 2. As the TPS of Layer 2 increases proportionately with the TPS of the main chain, the base architecture needs to be streamlined to increase the main chain’s TPS. According to Zhang, most applications running on NEO in the future will likely operate on Layer 2.
Coinciding with DevCon and Zhang’s remarks, state channel scaling project Trinity announced the completion of its Layer 2 architecture. Trinity aims to integrate its solution directly into the neo-gui wallet, which it hopes will improve the onboarding process and allow NEO to be the first public blockchain with directly integrated state channels. More information can be found here.
As part of the streamlining process, Zhang noted that global assets are likely to be removed, which currently use the UTXO model popularized by Bitcoin. All assets will instead be tied to smart contracts, which allows them to be easily managed and programmed whilst also improving system performance.
This change also allows for the unification of all transaction types, some of which are required to handle global assets or handle other specific functions. All the various complex transaction types may instead be replaced with interop services within smart contracts, if not removed entirely.
The current NEO 3.0 outline also proposes the creation of native contracts, which are executed directly as opposed to being run inside NeoVM. These contracts are embedded directly in the core code, and would be responsible for the NEO and GAS assets. Erik noted that the NEO consensus node voting system would also likely take the form of a native contract.
Contract Manifest and Permission
Another feature proposed by Zhang and currently undergoing discussion on Github is a “manifest and permission system,” which aims to negate the risks inherent in dynamic invocation. Dynamic invocation refers to when one smart contract calls another contract.
With the manifest and permission system, a smart contract is required to expose a manifest that describes its behaviour. This avoids the issue of a user invoking a contract with no clear indication of how it will behave.
The manifest is broken down into four parts:
- Group – Defines a group of contracts that trust each other
- Features – Available features such as storage, accepting transfers etc.
- ABI – Interface information about how a contract is called
- Permissions – Lists of hashes and method names of other contracts that the contract may call
The manifest also allows contracts to expose safe methods, such as balanceOf or totalSupply, which can be called without permission
Internet Resource Access
The final proposed feature in Zhang’s presentation is Internet Resource Access. This feature would act as a built-in oracle for NEO, allowing users and developers to access Internet resources in smart contracts.
This would allow smart contracts to directly access information over the Internet via URLs, requiring new interfaces for the interop service. Consensus nodes will ensure data consistency and limit the length of the Internet resources, and if consensus is achieved, the URL and data pair is written into the block header.
At this point, all other nodes on the network may read those Internet resources from the block header while executing smart contracts. This allows smart contracts to act on information retrieved from outside of the network, which could potentially be a very powerful tool for dApps.
The DevCon presentations may be found here. Da Hongfei’s presentation starts at 6:42, Erik Zhang’s presentation starts at 42:35.
NEO News Today’s interview with Da Hongfei can be viewed below.