Zilliqa (ZIL), a blockchain platform that is designed from the scratch to address the issue of scalability, executed 2,488 transactions per second in the latest testnet trial run (6 shards and 3,600 nodes).
The most notable feature of the network is the transaction rates increase in proportion to an increase in the miners in the Zilliqa network. With a network size of 17,000 nodes, which Ethereum has as of now, Zilliqa would be able to achieve 1,000 times the transaction rates of Ethereum.
As the number of applications utilizing public cryptocurrencies and smart contract platforms grow, the demand for processing high transaction rates in the order of hundreds and thousands of Tx/s is increasing. A global payment network would likely require tens of thousands of Tx/s in capacity. That’s where Zilliqa comes in.
Zilliqa’s design allows its transaction rates to roughly double with every few hundred nodes added to its network. Zilliqa is a redesign from scratch and has been under research and development for over 2 years. The cornerstone in Zilliqa’s design is the idea of sharding — dividing the mining network into smaller consensus groups called shards each capable of processing transactions in parallel.
Zilliqa further comes with an innovative special-purpose smart contract language and execution environment that leverage the underlying architecture to provide a large scale and highly efficient computation platform. The smart contract language in Zilliqa follows a dataflow programming style, where the smart contract can be represented as a directed graph.
Nodes in the graph are operations or functions, while an arc between two nodes represent the output of the first and the input to the second. A node gets activated (or operational) as soon as all of its inputs become valid and thus a dataflow contract is inherently parallel and suitable for decentralized systems such as Zilliqa. The sharded architecture is ideal for running large-scale computations that can be easily parallelized.
Zilliqa has a new, conceptually clean and modular design. It has six layers:
The cryptographic layer – defines the cryptographic primitives used in Zilliqa. Similar to several other blockchain platforms, Zilliqa relies on elliptic curve cryptography for digital signatures and a memory-hard hash function for proof-of-work (PoW). Zilliqa employs Elliptic Curve Based Schnorr Signature Algorithm (EC-Schnorr) as the base signing algorithm. Use of EC-Schnorr over ECDSA (used by Ethereum) offers benefits such as non-malleability and multi-signature.
Data layer – defines the data that constitutes the global state of Zilliqa. By extension, it also defines the data needed by the different entities in Zilliqa to update its global state.
The network layer – Zilliqa has been designed to scale in transaction rates. The main idea is that of sharding i.e., dividing the mining network into small shards, each capable of processing transactions in parallel.
The consensus layer – The core of Zilliqa’s consensus protocol relies on improved practical byzantine fault tolerance (PBFT) protocol.
The smart contract layer – Zilliqa’s smart contract layer employs a dataflow programming architecture. The smart contract language and its execution platform are designed to leverage the underlying network and transaction sharding architecture. In contrast with existing smart contract architectures (such as Ethereum), computational sharding in Zilliqa takes a very different approach towards how to process contracts.In Ethereum, every full node is required to perform the same computation to validate the outcome of the computation and update the global state Albeit being secure, such a fully redundant programming model is prohibitively expensive for running large-scale computations that can be easily parallelized. Zilliqa’s computational sharding approach relies on a new smart contract language that is not Turing-complete but scales much better for a multitude of applications.
The smart contract language in Zilliqa follows a dataflow programming. In the dataflow execution model, a contract is represented by a directed graph. Nodes in the graph are primitive instructions or operations. Directed arcs between two nodes represent the data dependencies between the operations, i.e., output of the first and the input to the second. A node gets activated (or operational) as soon as all of its inputs are available.
The key advantage of employing a dataflow approach is that more than one instruction can be executed at once. Thus, if several nodes in the graph become activated at the same time, they can be executed in parallel. This simple principle provides the potential for massive parallel execution.
The incentive layer – Zilliqa has a finite supply of 21 billion ZILs. Each final TX-Block comes with a block reward that generates new tokens. The block reward will be spread over a period of 10 years decreasing over time. The first 80% of the tokens is aimed to be mined in the first 4 years and the remaining 20% in the next 6 years. The token emission will be “smooth” in the sense that the block reward does not reduce drastically after a certain number of blocks.
The smooth reduction in the block reward means that the network hashrate can be expected to be stable as the reward reduces over gradually over time. After 10 years, the developers expect to have reached a significant scale both in terms of the number of nodes in the network and users executing transactions. By then, the market would have stabilized upon certain rates of transaction fees to fully sustain the running of the network without a need for new tokens entering the system as rewards.
There are two main entities in Zilliqa: users and miners. Zilliqa’s mining network is further divided into several smaller networks referred to as a shard. A miner is assigned to a shard by a set of miners called DS nodes. This set of DS nodes is also referred to as the DS committee. Each shard and the DS committee has a leader. The leaders play an important role in the Zilliqa ’s consensus protocol and for the overall functioning of the network.
Zilliqa has an intrinsic token called Zillings or ZILs for short. Zillings give platform usage rights to the users in terms of using it to pay for transaction processing or run smart contracts.