By Research Team
A PDF version of the writeup below can be found here.
1. Compared to Ethereum, NEO is in the early stages of its development and is therefore significantly behind on developer adoption, public mindshare, “battle tests” (practical load / exceptions testing), and overall network effects. However, NEO’s ecosystem could be positioned to grow as a result of:
- High levels of network throughput as a result of innovations such as its dBFT consensus mechanism and JIT-VM
- Relative resistance against hard forks
- Development environment compatibility with existing infrastructure and solutions
- Significant support and focus on Asian / Chinese markets
- Potential pipeline of storied ICOs launching on its platform
2. As seen in the graph below, Ethereum has historically traded at broad range of 12x-28x NEO+GAS.
3. The two native tokens on the NEO blockchain are NEO and GAS; for reasons described below, the former commands higher valuations in the short-term, but will likely be eclipsed by the latter in the long-term.
- Based on our analysis, a GAS/NEO ratio as high as ~4.5x may be justified (currently ~0.6x)
NEO is a blockchain “platform” that rents out its underlying tech stack, enabling the development of digital assets and smart contracts on top of its own infrastructure. Generally speaking, NEO’s value proposition is similar to that of Ethereum’s. While the latter markets itself as a more abstract tool with which to build arbitrarily complex decentralized applications (“dApps”), the former is more focused on digital asset recordkeeping with e-contracts, including for currently “fiat” or “real-world” assets.
According to its whitepaper, NEO offers a “decentralized and distributed ledger protocol that digitalizes realworld assets into digital ones, enabling registration, depository, transfer, trading, clearing and settlement via a peer-to-peer network.”
Relative to Ethereum, the NEO platform is in even earlier innings of development, but there appears to be sizeable support from its community. Further, the platform has gained a noteworthy following in certain regions in Asia, and has been labeled as “China’s Ethereum”.
In its current state, the NEO blockchain appends a new block every 15–20 seconds, with demonstrated transaction throughput of ~1,000 transactions per second (“tps”) and a theoretical transaction throughput of 7,500–10,000 tps (per their Reddit AMA and other sources). 1,000 tps puts NEO among the fastest across its peer group and an optimized 10,000 tps makes a case to support commercial applications of scale, pitting it against incumbent centralized solutions. These throughput levels substantially dwarf Ethereum’s current ~15 tps (~30 tps theoretical), though Ethereum’s near-term pipeline of scaling solutions (which we plan to cover in a future blog post) should bridge a meaningful portion of this current gap. The relative efficiency of NEO’s blockchain is further detailed in several points below (e.g. consensus mechanism, Virtual Machine build).
NEO utilizes a Delegated Byzantine Fault Tolerance (“dBFT”) consensus mechanism, which is a large driver of its elevated network throughput. dBFT is closer to a Proof of Stake (“PoS”) system than a Proof of Work (“PoW”) system, and shares several of its benefits.
While a detailed discussion of PoS vs. PoW is beyond the scope of this article, PoS has several advantages over PoW (e.g. electricity/hardware scalability, faster/greater transaction finality and higher network throughput, etc.). However, PoS involves numerous validators perpetually connected to the internet staking coins, increasing the attack surface for potential hacks. Additionally, like PoW, PoS is still prone to forks if consensus were to break. While in reality, most blockchains (PoW and PoS) fork fairly frequently before converging back to a single chain shortly thereafter (i.e. uncle and orphan blocks), this poses a conflict for NEO’s vision of widespread digitization of real-world assets. A blockchain securing traditionally fiat securities cannot afford to diverge into two versions and wait out inconsistencies until one is declared a winner (i.e. delayed finality on a regular basis). Lastly, while an order of magnitude more scalable than PoW systems, current PoS research has only demonstrated network throughput in the several hundreds of tps (compared to Visa’s 50,000+ tps capacity).
Taking a step back, “Byzantine Fault Tolerance” is a classic computer science problem that is especially fundamental to any distributed system. In essence, it poses the question: How does a system of anonymous, distributed actors who receive data at different times and in a different order, converge to consensus? A system that addresses this issue can guarantee that digital assets are moved in the correct order and recognized consistently by every node in the system.
In the NEO network, there are several types of actors, spanning several distinct categories:
- Ordinary Nodes — function as both as a client interface and server; store complete historical data as well as detect and relay transactions, but do not participate in block validation
- Bookkeeping Nodes — trusted nodes that must reach consensus to confirm every block; receive GAS transaction fees for validating blocks
- Users — clients via web browser or dApps, who not required to download the blockchain’s complete history
In NEO’s dBFT construct, the network enables large-scale participation in consensus through proxy voting. This process is simplified as follows:
- Ordinary nodes vote for a bookkeeping node (a delegate) it supports:
- Note that there are certain requirements (e.g. minimum RAM/internet speed, minimum stake of ~1,000 GAS) that must be met in order to be granted bookkeeping responsibilities
- Bookkeeping nodes can redeem their staked GAS at any time, but lose status as a bookkeeper upon withdrawal
- Bookkeeping nodes are not anonymous as they are required to get consensus authority certificates, potentially even revealing their real-world names
2. The selected group of bookkeepers, through a BFT algorithm, reach consensus and generate new blocks
- A bookkeeping node (randomly assigned from the pool of bookkeepers) broadcasts its version of the blockchain to the network
- If 2/3 of the other bookkeeping nodes agree with the information, consensus is achieved. If less than 2/3 of these bookkeeping nodes approve this, a different bookkeeping node is appointed to broadcast its blockchain version, with this cycle repeating until 2/3 consensus is achieved
3. Voting in NEO continues in real time, rather than in accordance with a fixed term (e.g. Ethereum’s CASPER PoS system has a “bonding period”, which appears to have a minimum of several months)
A more fulsome explanation of this can be found here. http://docs.neo.org/en-us/node/consensus.html
Hyperledger uses a similar “Practical Byzantine Fault Tolerance” approach, and have posted a few diagrams to illustrate their BFT algorithm in slides 13–16 here: https://www.slideshare.net/ericcattoir/anatomy-of-ahyperledger-application
The NEO developers suggest that their dBFT system mitigates several PoS concerns. By limiting block validation work to a limited number of “professional” bookkeeping nodes, it achieves a higher network tps (faster synchronization times) and minimizes the network’s attack surface (as well as hold malicious bookkeepers liable given their lack of anonymity). Further, the voting process outlined above mitigates the risk of forks or alternative blockchain records, regardless of a prospective attacker’s amount of computing power or token holdings. Because bookkeeping nodes must internally reach consensus before any block is actually added to the chain, the likelihood of network latency / bad actors manipulating different parts of the network to work on different versions of the blockchain is significantly reduced.
The trade-off here is a somewhat less decentralized decision-making model, and the requirement for ordinary nodes to trust the bookkeeping nodes enough to believe that at least 2/3 of them are not malicious. Further, there may be a “nothing at stake” concern, as dBFT does not have a codified slashing protocol such as that used in Ethereum’s CASPER PoS algorithm. Some of these issues may be alleviated by the lack of anonymity (i.e. requirement for consensus authority certificates) and so bad actors can be held accountable for their actions. NEO’s leadership has stated that it is possible to freeze, revoke, inherit, retrieve, and effect judicial decisions on bookkeeping nodes through the network’s implementation of digital identity.
In the end, while NEO adopted the dBFT mechanism given its belief that such a system should theoretically scale and perform better relative to similar platforms, dBFT is largely untested (practically speaking) given the early-stage nature of NEO, and there may be unknown nuances or uncontemplated non-normative scenarios involving dBFT that have yet to surface.
The NEO blockchain has two native tokens, NEO (“NEO”) and NeoGas (“GAS”).
NEO is capped at 100 million tokens, and grants holders with the right to manage the NEO network. Such rights include voting for bookkeeping nodes, overall network parameter changes, etc. It can only be traded in integer denominations and cannot be subdivided.
- Right to vote for bookkeeping notes
- Right to receive GAS dividends — but can only be generated by holding coins in a compatible wallet or exchange (e.g. NEON wallet, Binance, Kucoin)
- Right to receive “recycled” GAS fees from new asset registrations
- Right to vote over major governance/strategic decisions for the NEO blockchain
Out of the 100 million NEO cap, 50 million tokens have been distributed via the NEO ICO. The remaining 50 million NEO is managed by the NEO Council, and will be deployed to support the platform’s ongoing operations. The NEO council has indicated that they will not spend more than 15 million NEO per year, earmarking these funds as follows:
- 10 million NEO for core developers and Council
- 10 million NEO for other developers in the ecosystem
- 15 million NEO for investments in other blockchain projects related to or launched on NEO
- 15 million reserve pool
GAS is the crypto-fuel for the NEO blockchain, and the method by which the system allocates scarce computing resources. Like the NEO token, GAS has a cap of 100 million tokens. GAS is charged for the operation and storage of digital assets and smart contracts, thus developing economic incentives to ensure that network participants do not abuse common resources.
1. Used to pay for computing power on the NEO blockchain (i.e. service fees)
- Smart contract deployment (one-time fixed fee of 500 GAS)
- Implementation fees — execution of smart contracts and digital asset transactions, with fees based on the computational complexity. Like in Ethereum, if implementation fails due to lack of GAS, the cost of consumption will not be returned to caller
- Most simple contracts can be executed for free if GAS costs are under 10
2. Used as bookkeeper node deposits
100 million GAS will accrue to NEO holders under a decay algorithm in which the last GAS unit will be produced in the year 2038. Newly minted GAS will be distributed proportionally to NEO owners who are holding NEO in compatible wallets (e.g. NEON).
Based on this schedule, 16% of GAS has been created in the first year of NEO’s inception, 52% of GAS will be created in the first four years, and 80% of the GAS will be created in the first 12 years. Note that GAS generation is linked to block generation rates, as GAS is distributed upon the addition of a new block to the blockchain.
As a reminder, our analysis around this topic is more illustrative than it is instructive. From our research, it appears that some retail investors are unaware that GAS is the actual utility token of NEO’s blockchain, rather than NEO (confusing marketing and terminology on NEO’s part). As such, GAS may theoretically be more valuable than NEO in the long term given that it is the scarce economic unit that will be used to purchase computing power on the blockchain. NEO is a governance token that will stop generating newly minted (“genesis”) GAS in 21 years, but may accrue recycled GAS from one-time fees as referenced above. In the short term however, the NEO token may justifiably trade at a premium as a result of higher liquidity (listed on more exchanges, more easily accepted as store of value / medium of exchange / means of speculation), branding (association with the NEO platform), actionable use case (ICO funding), genesis GAS dividend entitlements (albeit temporary and diminishing), and a portion of recycled GAS dividends (but limited to “one-time” type fees).
One can argue that the NEO may lose several of these value drivers relative to GAS. For instance, GAS may achieve greater liquidity on subsequent exchange listings, its utility valued more broadly and acknowledged through community education or near-term catalysts that bid up GAS demand (e.g. the NEO council’s 1Q18 concession of bookkeeping nodes), and NEO ICOs may start accepting GAS or other tokens, with increased cross-chain interoperability. At present, recycled GAS dividends may not represent a large enough offset to the aforementioned factors in order to justify a NEO/GAS premium. Per the article here (https://medium.com/@MalcolmLerider/clarification-on-neo-gas-and-consensus-nodes-aa94d4f4b09), recycled GAS fees associated with new asset registrations accrue to NEO holders, but general transaction fees accrue to the bookkeeper nodes, who are not necessarily holders of NEO. We take the conservatized view (though this could shift quickly given the lack of data in the platform’s early innings) that registration fees would be one-time fees for the most part, with new registration volume plateauing over time, resulting in diminishing marginal returns similar to that of NEO’s GAS dividend schedule. Transaction fees, despite their lower ticket sizes, would represent a steadier stream of GAS demand and at larger volumes.
If one believes this is the case, then the right to genesis GAS dividends is the primary underlying value driver for NEO, discounted on a time value basis given the delayed distribution schedule. In the long-term, as genesis GAS rewards decrease and the GAS use case is developed through transaction fees and staking deposits, the GAS token value could surpass that of NEO, with NEO having relatively lower terminal value past 21 years. This is not to say that NEO has no “terminal value”, but rather, that buying GAS today (at relatively lower prices, given the nascence of its use case) represents a better risk/reward than buying NEO in the hopes of generating proportionally less GAS in the future.
Our analysis below illustrates the thesis of a GAS premium, where investors may be better off buying GAS as opposed to NEO as a GAS generator. We assume a discount rate of 10–30%. 30%, while relatively high in traditional standards, may be more modest relative to the crypto space. At such levels, NEO generates an NPV of 0.35 GAS (or 0.22, excl. 2017 which has largely passed), implying a GAS/NEO ratio of 2.9x (or 4.5x excl. 2017). The lower bound of 10% assumes that investors ascribe value to NEO outside genesis GAS dividend rights as posited above, so are willing to take a lower return rate using this framework. Here, NEO generates an NPV of 0.60 GAS (or 0.46 excl. 2017), implying a GAS/NEO ratio of 1.7x (or 2.2x excl. 2017). Again, while NEO may justifiably trade at a short-term premium, we expect a larger proportion of the network’s value to accrue to GAS in the years to come.
As seen in the charts above, the current NEO to GAS price relationship is has increasingly tempered downwards (~1.5x as of November 2017). Note that GAS supply is currently very limited (~8 million circulating out of 100 million cap).
The NEO blockchain has relatively low barriers to entry for developers. Specifically, the NEO leadership team has prioritized the blockchain’s compatibility with traditional programming languages. This obviates the need for developers to learn new programming languages, as they can utilize existing knowledge with mainstream languages in familiar IDEs such as Visual Studio (e.g. C#, C++) and Eclipse (e.g. Java), to write smart contracts on NEO smoothen the development and debugging process.
This is particularly relevant in the crypto space as much of the difficulty in developing smart contracts is due to the lack of good debugging and testing tools. For example, NEO has a development pack for .NET, which enables developers to quickly pull Visual Studio templates for NEO and not have to worry with setting up initial files and dependencies needed to interact with the NEO blockchain.
Further, the Neo Virtual Machine (“VM”) provides debugging support at the virtual machine level — a coder can set breakpoints (intentional stopping points) in the contract code, allowing easier error/exceptions tracking.
Building this effort out may be a catalyst for further adoption — by adding more and more compilers, any language can be used to develop NEO-compatible smart contracts. In the near-term, the NEO development plans to roll out Python and Go compilers in addition to the few referenced above.
Ultimately, these factors notably reduce the learning curve for smart contract development on the NEO platform, and while NEO development network effects cannot compare to that of Ethereum (less so in terms of developer tools, but more so developer activity/engagement, mindshare and thought leadership) such ecosystem expansion efforts may encourage developer adoption vis a vis more esoteric platform ecosystems.
As referenced above, the NEO VM takes compiler-produced .avm files and executes them, completing the deployment of smart contracts onto the NEO network. When considering the optimization of smart contracts, the actual execution environment (i.e. the VM) often represents a key lever. Because every smart contract call triggers the start-up of a new VM, the execution speed of the environment (the act of starting up a new VM) has a relatively greater impact on performance than the actual smart contract instructions (which basically just handles input /output logic).
The NEO VM employs a just-in-time (“JIT”) compilation approach. A JIT compiler analyzes the code being executed and identifies pockets where code can be re-cut and re-compiled in a faster way that offsets any overhead of performing such re-arrangements. By arranging bytecode into more logical pieces, a JIT compiler can for instance find a 10-iteration push instruction that can be collapsed into one push instruction with 10 items, thereby minimizing gas fees needed to fuel the operation.
A JIT-VM is by definition initially slower than a bytecode VM (what Ethereum currently runs), but may make up for this with future efficiency gains, as the former is smarter than the latter in the long-run. However, before the any code is actually executed, it must first be compiled into components that can be understood by the JIT VM, hence the slower start.
On the other hand, a bytecode VM such as Ethereum’s is interpreter-like and simply executes every instruction line without additional thought into considering additional optimizations. Note that Ethereum has a JIT-VM in the works as well, but its rollout timeline is unclear as it is a relatively less developed section of Ethereum’s GitHub (fewer commits and contributors), and less publicized than other EIPs.
Potential Catalyst — Chinese Regulation
As previously stated, NEO has established a substantial Chinese following for several reasons including i) its local domicile, ii) air-time on state TV channel CCTV, which people perceived as government endorsement, and iii) parent company Onchain’s consulting engagements with several local governments regarding blockchain applications in social governance.
However, following its almost ~500% run-up in August to ~$45/NEO, the China ban on ICOs and crackdown on exchanges have caused massive depreciation in Asia-linked tokens. NEO saw a significant sell-off, losing more than 60% of its value by mid-September, dipping to almost $15/NEO.
A large part of the previous run-up was in due part to the highly-anticipated Red Pulse ICO — a China-centered research platform backed by a solid team and advised by it’s founder Da Hongfei. Given the aforementioned regulatory environment, this ICO was postponed, and Chinese citizens were ultimately excluded from participating, though the ICO was still fairly successful as described further below.
NEO has since bounced back to around $35/NEO, it seems that most of the market has priced in the Chinese ICO ban, though there may be misconceptions around the exact nature of the ban (e.g. residents may not be able to participate in ICOs or un-licensed exchanges, but may still legally own digital assets). Speculative money buying the “Chinese Ethereum” hype should have tempered, and any news showing a reversal in sentiment by the Chinese government should present upside.
Our view at Titan is that the Chinese government will not ban ICO’s in perpetuity, as they will not want to stifle innovation in a promising space (and lose out to blockchain-friendly rivals like Russia or Singapore). That said, it may take a while for regulatory bodies to outline a framework for compliant ICOs and exchanges. In our opinion, there is a decent chance that the government may pick a few preferred providers as a means to pilot China’s re-entry into the space. There has been historical precedence in other regulated industries such as banking and insurance (e.g. Ming Sheng Bank, Ping An Insurance), in where a preferred privately-owned operator is given a license in a state-owned sector. NEO would be a likely candidate if this were the case, given that the leadership team is in ongoing conversations with regulators and local governments in a blockchain consulting capacity. Such government endorsement should also drive positive feedback loops (e.g. integration with Alipay or Tencent Pay, mobile solutions that should allow seamless payments/investments as low as ~$10), which may result in significant first mover advantages.
Potential Catalyst — new ICOs
The recent and successful Red Pulse (RPX) ICO has eased a lot of uncertainty regarding NEO’s survivability as a smart contract platform, fueling confidence in the future growth of the project, even in a scenario where Chinese ICO bans persist.
For context, RPX is somewhat akin to a reverse IPO (“reverse ICO”) with an existing business underpinning its tokenization. RPX aspires to develop itself as a Chinese economic research entity of scale and already has an established practice with blue-chip clients such as Bloomberg, Reuters, and S&P Capital. The combination of a track record (established in 2015 with revenue-generating institutional clients) and a solid team of managers and advisors, makes this project more advanced than the majority of ICOs and is an overall good brand to have within the NEO community.
The RPX ICO hit its hard cap of 405,844 NEO, or just over ~$10mm USD, in approximately 2 hours. RPX was the first ICO done on NEO, demonstrating the first large-scale set of smart contract interactions on its network, and represented the first significant load test for the blockchain. The network remained fairly resilient even in times of such network congestion — while block times slowed to 3 minutes at one point during the ICO, it quickly recovered to ~25 seconds. This is relatively better performance than what we have seen on Ethereum historically (granted, this is a sample size of one and smaller than the high-profile Ethereum-based ICOs that caused network congestion on its network).
The success of the RPX ICO should solidify confidence around NEO’s ability to support other dApps, attracting new ICOs to consider NEO as its ICO platform. Still, given the relative nascence of NEO and dominance of Ethereum, NEO does not have as robust of an ICO pipeline. One potentially noteworthy project on NEO would be City of Zion-led NEX decentralized exchange, which we may cover in a future article.
NEO is governed by the NEO Council (comprising founding members), who are responsible for strategic decision-making, technical decision-making and specific implementation. NEO was first developed by Onchain, which is led by CEO Da Hongfei (https://www.linkedin.com/in/dahongfei/) and CTO Erik Zhang (https://www.linkedin.com/in/erik-zhang-5a6b14ab/). Onchain is a private VC-backed company with over 40 employees. The company has a solid reputation as it has established partnerships with many local Chinese institutions (as well as the Japanese Ministry of Economy), been named a top 50 Fintech company in China by KPMG and garnered investments from Fosun Group (China’s largest conglomerate). For additional context, see https://hackernoon.com/neo-onchain-and-its-ultimate-plan-dna-4c33e9b6bfaa.
Currently, many of the bookkeeping nodes for the NEO network are operated by the NEO Council in China. However, the council aims to ramp this down to less than 2/3 of nodes By Q1 2018. In this sense, token holders are placing faith in the NEO Council to maintain and develop the blockchain (and not cash out for short-term profit) — both in their own interest given their significant stake in the token, and also in the interest of the broader community. This is a model which starts off as centralized (a single entity holds most tokens), but gradually grows decentralized (by selling NEO in the open market, and increasingly bequeathing decision-making nodes) as the ecosystem matures.
NEO employs half a dozen full-time developers in Shanghai, including two core developers (commit permission on GitHub). For context, Bitcoin has ~15 core developers. Beyond this, there are individuals contributing code and ideas as community members, and a few academic researchers serving as technical advisors. Further, NEO has the support of the City of Zion (CoZ), an independent, international group of open source developers working on NEO blockchain. While not officially part of Onchain, they have done a lot of work including on the NEON wallet, internal documentation, and the upcoming NEX ICO.
While NEO has a relatively lean development team, with mainly Erik Zhang pushing to GitHub (compared to the dozens of meaningful contributors in Ethereum), the NEO project has made substantial progress (e.g. written several compilers, NeoGUI, the whole NEO blockchain). Going forward, the hope would be for the community to take on projects that expand on existing infrastructure; for example build more compilers, or extend it’s VM to run faster. The more eyes you have verifying code, the fewer bugs and increased network effects.
11/29/17: Revised NEO/GAS commentary to reflect a discussion of recycled GAS fees accrued to NEO holders.