Paperbyte: Nervos Network ($CKB)
Many blockchains today deal with the same problems: scalability, interoperability, privacy, and more. For each problem we face on our march toward global adoption, it seems a multitude of blockchains arise in response.
As such, the landscape is ripe with innovation. New blockchains could be summed up into three camps:
- Specific layer 2 solutions to solve the aforementioned foundational problems.
- Improving or reinventing the actual foundations themselves.
- All of the above.
The Nervos Network falls within the third camp, and offers a unique solution to the problems plaguing the industry. Thankfully, while they are building a foundation for new developers and users to build upon, they have also built what can be describe as a blockchain hub (or nervous system, if you will) — with a focus on interoperability and a better user-experience for anyone interacting with blockchain.
The Nervos Network has an extensive leadership team, and is broken into a few different departments. The most notable members are:
- Terry Tai (Co-Founder, Developer and Podcast host)
- Kevin Wang (Co-Founder, Researcher, token economics)
- Daniel Lv (Co-Founder, Community)
- Jan Xie (Former Core Researcher & Architect at Ethereum Foundation)
- Cipher Wang (Founder & CEO of Nervina Labs)
- Ren Zhang (Lead Researcher, Consensus Protocols)
The Nervos Network provides a novel solution to the current problems of the blockchain space. In particular, scalability, sustainable economics, and interoperability between blockchains are some of Nervos' core objectives it is trying to solve.
For instance, imagine a user wants to use a decentralized app (dApp) on Cardano, but all of their assets are ERC-20 tokens, and live on the Ethereum blockchain. As it currently stands, this user would likely need to utilize a third dApp (either on Cardano or on Ethereum) to move their assets to whichever blockchain they wanted to use.
Furthermore, the user would need to have two wallets now: one for their Ethereum assets, and one for their Cardano assets.
Nervos' goal is to simplify this experience by creating a decentralized common knowledge database in which both Ethereum and Cardano can have "common knowledge" about this user's assets. Beyond this, Nervos would even allow the user to keep their wallet of their choosing for the duration of the experience, all while Ethereum and Cardano talked to each other through this common knowledge database.
This is so core to the Nervos' mission that they named both their layer 1 blockchain and their cryptocurrency as CKB, or Common Knowledge Base and Common Knowledge Byte respectively.
The Nervos Network employs a dual layer blockchain design, but not in the way you might assume. For instance, Cardano utilizes two layers in their design as well and names each the Cardano Settlement Layer (CSL) and the Cardano Computation Layer (CCL).
For Nervos, the same idea is applied to the Common Knowledge Base (CKB) which acts as global consensus layer that is final and immutable, synonymous with a trustless ledger and database.
The main difference here is that Nervos' computation layer (called the Generation Layer) is blockchain-agnostic — in other words, any other blockchain or client will generate new states for the Common Knowledge Base, and submit them for verification to the network nodes.
To better understand this, let's break down each.
Common Knowledge Base
This is the global Nervos ledger. Once data is injected in the CKB (via a block production from a node), it cannot be removed. It can only be changed, updated, or added upon, but the full history remains intact.
In terms of a blockchain, Nervos is far more concerned about the CKB than the Generation Layer (as we'll see why in a bit). In essence, writing data to this layer is the final state that any computation layer may generate, and only needs to be added when and if the Generation Layer decides to submit it to the CKB.
Perhaps most notably, the CKB employs a different transaction model than either Cardano or Ethereum, which centers around state rather than computation:
- Cardano, Bitcoin (UTXO)
- Ethereum (Account)
- Nervos Network (Cell)
In the most basic terms, a Cell is a more generic state model when compared to the UTXO and Account model. This may get complicated, so let's take each type and compare.
UTXO models define ownership of assets via a locking script (that is, if you have the private key to move assets locked in many different accounts). This, however, makes tracking state of a user's assets difficult and hard to use — if you've ever interacted with Cardano before, you know that having multiple wallet addresses is confusing.
Ethereum (or Account models) define the ownership of assets via ownership of the wallet (that is, you have the private key to authenticate an account of assets). This makes tracking state easier, but causes bottlenecks in scalability since transactions in this design cannot be run in parallel.
The Cell model, introduced by Nervos, takes the best of both models and merges them together in a more generic model, allowing parallel processing and easier state management.
Generation Layer (CKB-VM)
The Nervos CKB-VM is a crypto-agnostic virtual machine. This means that it does not hardcode the cryptographic primitives that support other blockchains into its own VM. At its base, the VM does not define its own instructions, but implements its cryptographic primitives as ordinary assembly.
In simpler terms, this means that decentralized application developers can use any new cryptography that they desire without requiring a hard-fork to the blockchain. This includes opting for features like zero-knowledge proofs (zkSNARKs). It also means that as quantum computing becomes more mainstream, developers could utilized yet-to-be-invented cryptographic signatures that are quantum-resistant.
Another defining attribute of the Nervos Network is that computation happens on the client rather than on the VM. In current blockchains, computation happens on the decentralized virtual-machine, which means incurring gas fees to keep computation resources available and in check.
Since computation for Nervos happens on the client (which could be any platform, such as the web, an app on your phone, and even wearable devices like a smart watch), scalability is more easily achieved since computational resources are localized to the user's interaction and their associated device.
The client would then generate a new state and, at which point it decided this state was final and/or ready to be common knowledge, it would submit it as a new state to the Common Knowledge Base as a transaction.
As you can see in the diagram, nodes on the Nervos Network use the CKB-VM to simply run verification checks after receiving the state and transaction from the client (traditional blockchains just take the transaction and generate their own state). If transaction and state match on the node, and they reach consensus on the network, the state is added to the CKB and made common knowledge to the rest of the blockchain ecosystem.
Furthermore, clients can choose to run their smart contracts on the CKB-VM, but it is not required. A smart-contract could be run on a separate blockchain (similar to a Layer 2 solution on Ethereum — such as Mattic — or on the CKB-VM). Since Nervos is a 2-layer crypto-economy, the only thing that matters is whether consensus of the smart contract's output can be validated and verified by the base layer (Common Knowledge Base) protocol.
And since the Nervos Network is crypto-agnostic, any cryptography of other blockchains is compatible as long as the output and associated state match the Cell model structure.
The Nervos Network relies on a Proof-of-Work consensus algorithm, which is a variation from the Nakamoto Consensus (NC) algorithm employed by Bitcoin. The details of how this protocol is designed is not important to this Paperbyte.
It is, however, beneficial to point out that the Nervos Network improves on the NC algorithm in two important ways:
- Faster block time by eliminating bottlenecks in NC throughput.
- Better selfish mining attack resistance (where miners can earn more rewards by deviating from the protocol's prescribed behavior).
The token economic design on Nervos is unique and specifically designed to accomplish 3 major things for the protocol:
- Ensure security.
- Ensure long term sustainability.
- Align the objectives of different actors with growing the value of the network.
Similar to how Nervos borrows from proven qualities in Bitcoin, it also tries to solve some core issues with Bitcoin. In particular, Bitcoin has two types of users:
- Medium-of-Exchange users (those using the platform and having to pay transaction fees).
- Store-of-Value users (those holding long term as a way to hedge against inflation).
The current problem with Bitcoin, is that once mining rewards are depleted, miners will be paid entirely through transaction fees. This leads to problems in the incentive structure, particularly in that user type #1 will no longer desire to pay higher transaction fees (since they have brief exposure to the network), and user type #2 will gladly pay the fees, but rarely create transactions (since they hold long term).
Nervos solves these problems by incentivizing both types of users by charging not for transactions, but for their storage of assets. In this scenario, the network has long-term sustainability by charging for the critical resources of storage space (those who transact on the platform as well as those who store their assets on it).
Nervos calls this Store-of-Assets, and architecturally it is designed to support on-chain state and off-chain computation.
Common Knowledge Byte ($CKB)
The native token for the Nervos Network is called $CKB, which can be confusing since the blockchain's Layer 1 protocol is also called CKB. The key difference here, however, is the last word, which is Byte.
As we described in the Technology section, Nervos utilizes a new transaction model called a Cell. Within the Cell model, there is a
capacity parameter, which determines the allowed state size in that particular transaction. Nervos determines this state size through the amount of $CKB bound to it.
Confused? So were we a bit, but here's a helpful example from their whitepaper:
If Alice owns 1000 CK Bytes ($CKB), she can create a cell with 1000 bytes in capacity, or multiple cells that add up to 1000 bytes in capacity. She can use the 1000 bytes to store assets, application state, or other types of common knowledge within the Common Knowledge Base.
The $CKB token has two types of issuance. The first is a base issuance (which has a finite supply, similar to Bitcoin, and halves every 4 years until all tokens are mined). The second issuance is called, unsurprisingly, the secondary issuance (which is designed to collect state rent and has an amount constant over time).
- Base Issuance: Surprisingly, we could not find a definitive answer to the max supply of the base issuance for Nervos, either in their whitepapers or otherwise. This is perhaps by design, since a fixed base issuance does not mean a fixed supply of $CKB, and likely is meant to incentivize early miners while the rewards are higher.
- Secondary Issuance: Since the amount of $CKB has direct correlation to the allowed storage capacity of Cell data, Nervos effectively binds the token issuance to state growth. Let's focus on this issuance.
The issuance of $CKB can more easily be pictured as state rent, in which a user must purchase $CKB in order to store their assets (from any blockchain) on the network.
Instead of mandating periodic rent payments, however, Nervos uses a two-step approach to collecting state rent.
Users are "taxed" through inflation of the network size and through each secondary issuance event. For users who use their $CKB to store state, this recurring inflation tax is how they pay state rent to miners.
To hedge against unfair dilution (since some $CKB could technically not contain state, such as users simply holding the token and not using it), Nervos allows users to deposit and lock their $CKB within a special smart contract called the NervosDAO.
The NervosDAO receives part of the secondary issuance event, effectively allowing users to receive staking rewards to balance out unfair inflation payments to miners. In this way, users can use Nervos as a Store-of-Value, replicating the Bitcoin effect but not requiring it.
As a chain-agnostic layer 1 protocol, and one that aims to be the central common knowledge of all blockchains, Nervos has extreme flexibility, including more capabilities with its tokenomics:
- Paying Transaction Fees with User Tokens (i.e. stablecoins)
- Developers offloading costs to users
To read about the full tokenomics architecture, see below.
The Nervos Network attempts to chart a new path upon which all other blockchains can follow. In my personal experience, Nervos is the first protocol to offer a compelling roadmap for the future idea of a multi-verse of chains.
Again, the current landscape doesn't offer much for composability of chains, but the Nervos Network does. With that being said, the ambition and goal of Nervos is a big one — I have concerns about real adoption, namely the practicality of convincing an already noisy landscape to build bridges and rely on the CKB public ledger to store data.
Furthermore, any blockchain is complicated. Mass adoption will only happen after abstraction of the underlaying architecture, and marketing simplifies the use-case. Nervos has yet to make this apparent, at least in my opinion (though they have a good start with their homepage marketing video).
However, with recent news of Cardano and Nervos already building a bridge, there may be more synergy within the crypto landscape than is currently apparent — particularly among newer blockchains that favor interoperability on the protocol level. And the association with Cardano may help with awareness and more.
I'm cautiously optimistic, and Nervos may very well achieve the future it is promising.