Zilliqa Review: High Performance Sharding Based Blockchain
One of the biggest challenges for blockchains right now, if not the biggest challenge, is scalability, or the ability to process more transactions in a shorter period of time.
Bitcoin has struggled to process transactions, and fees have risen accordingly. The same has happened with Ethereum, where the CryptoKitties craze in December 2017 ground the network nearly to a halt for about a week. Ethereum is banking on a switch to proof of stake as a consensus method and sharding to improve network throughput.
However, there is one public blockchain that is already designed with sharding working...
That blockchain is Zilliqa, which had its private ICO in late 2017 and a small public offering in January 2018, making it one of the first new tokens of 2018.
Zilliqa is the only blockchain that has functioning sharding, which allows the blockchain to scale in a linear fashion as the network grows in size. After running on its testnet for most of 2018, the highly anticipated Zilliqa mainnet was launched in January 2019. Since then the development team has continued making improvements to the security and speed of the network.
This is a fundamental change to how a blockchain reaches consensus, as the sharding solution scales alongside the size of the Zilliqa network. In theory, Zillqa has no limit on the number of transactions per second it could process.
In practice, there are limits however, as the number of transactions processed is dependent on the number of nodes in the network. As of August 2019, the network is capable of processing 2,828 transactions per second. Ultimately however it’s reasonable to think that Zilliqa could process tens of thousands of transactions, and possibly even hundreds of thousands of transactions per second.
The Zilliqa team has also said that the blockchain will ultimately support smart contracts. This is a major technical hurdle, as running smart contracts on a sharded network poses many challenges.
In the remainder of this article, I’ll go deeper into the approach Zilliqa is taking regarding both scalability of transactions and smart contracts. And I’ll take a look at the Zilliqa team and its roadmap to see if their vision is feasible.
Zilliqa: Solving the Scalability Problem
One inherent weakness of blockchain technology is its inability to scale well. The problem stems from the fact that as the number of nodes in a network grows, it becomes increasingly difficult to reach consensus.
Looking at a network in terms of people can be helpful to understand the consensus and scaling issue that blockchain's face:
- If you have a meeting with a small group of people it isn’t difficult to make decisions at all. You may find that some of you don’t agree on everything, but you’ll still easily see how each person feels, and be able to reach consensus.
- When the group of people grows to the hundreds you can still get a good idea of how everyone feels, by polling or some similar method. It starts to become more difficult to count the votes, and you can’t be sure everyone is honest.
- When the group grows to tens of thousands of people, or even millions of people your voting system necessarily grows in complexity, and in the amount of power necessary to make it work. You’ll find more people not acting honestly, and it becomes increasingly difficult to know when or if everyone has voted.
It’s not a perfect analogy for talking about blockchain consensus, but I think you get the point in how it becomes increasingly difficult to reach consensus as a network grows larger and larger. And this is where the scalability issues begin, because network size and network speed are inversely related. So, when one increases the other decreases.
The solutions being explored by most blockchains currently consist of increasing the block size so more transactions can be confirmed in each consensus round, or by moving some information off the blockchain completely.
While these solutions will help the scalability problem in the short-term, they’ll never scale as much as is needed for blockchains to process thousands or tens of thousands of transactions per second. They’re simply a stop-gap measure that doesn’t fix the fundamental problem.
In order to really fix scalability, the entire architecture of the blockchain needs to be redesigned so that network size and network speed are no longer inversely correlated. And this needs to be done with security still in mind. The security of the network shouldn’t be compromised in order to achieve greater speed and throughput.
Zilliqa’s Scalability Solution
Zilliqa is attacking the scalability issue with their own solution that allows more transactions to be processed as more nodes enter the network. It basically rebuilds the blockchain architecture from scratch. The model they’re using has a hybrid consensus protocol that will increase throughput with every additional 600 nodes in the network.
Zilliqa’s blockchain works by dividing the work done on the network, with throughput increasing for every 600 new nodes. This is in theory. In practice they are finding problems with broadcast once the network scales to more than 1 million nodes. However, we are currently nowhere near this level on any existing blockchain. Ethereum, which has the largest network of nodes, currently has roughly 25,000 full nodes.
The Ethereum network, with its 25,000 full nodes, is only capable of processing 15 transactions per second. Zilliqa by contrast has run tests on their private testnet that has reached 1,218 transactions per second with only 1,800 full nodes.
If you double the nodes to 3,600 the throughput scales as well to 2,488 transactions per second. The network has been able to scale to 2,828 transactions per second successfully.
Zilliqa Sharding: Divide and Conquer
The potential in these results is astounding, but how does Zilliqa do it?
They are using a solution called Sharding which with Zillqa works by dividing the network into groups of 600 nodes, with each group known as a shard.
For example, when Zilliqa ran the abovementioned test on their testnet with 1,800 nodes these were divided into 3 shards. When increased to 3,600 nodes there are 6 shards. Each new group of 600 nodes creates a new shard in the network.
The shards divide the work being done on the network, with each shard responsible for just a portion of the network transactions. So, if you get 10 shards, each shard is only concerned with processing 10% of the network transactions. And as the network grows, more shards become available, dividing the load further and keeping computing demands for each shard fairly stable.
Each shard creates a microblock with the transactions it processes. All of the shards process these transactions in parallel, and at the end of the parallel processing period, called the DS Epoch by the Zilliqa team, the microblocks are combined to form a full block. That full block is then added to the blockchain.
The DS Committee
Each DS Epoch has a DS Committee as well. This is a small group of several randomly selected nodes which act to manage all the other shards. The DS Committee decides which transactions get assigned to which shards.
And once the microblocks are created, the DS Committee is responsible for creating the full block and committing it to the blockchain.
The July 2023 Upgrade
The latest mainnet upgrade introduced enhanced interoperability for fungible token contracts, allowing EVM contracts to invoke fungible token contracts written in Scilla, a smart-contract language.
This functionality, which contains a mechanism that allows ZRC-2 tokens to appear as ERC-20 tokens to other contracts, is the first phase of expanded interoperability for fungible token contracts. In the future, this will be expanded through the introduction of a mechanism that allows ERC-20 tokens to appear as ZRC-2 tokens to smart contracts written in Scilla.
Consensus Mechanism in Zilliqa
Zilliqa uses a hybrid consensus mechanism consisting of proof of work and Byzantine fault tolerance. Proof of work is not used as it is in traditional blockchain mining. Instead, each node begins by completing a proof of work hash.
This does not result in any blockchain reward, but instead is used to establish the node identity. By forcing machines to establish their identity, the Zilliqa network avoids any potential Sybil attack, where a bad actor would create multiple identities in an attempt to overwhelm the network.
Once the nodes identity is proven through proof of work, the node can be assigned a shard. Shards find consensus through Byzantine fault tolerance, which is a high-throughput consensus mechanism with finality. Because it includes finality, most of the 600 nodes in the shard must agree on the microblock.
After the microblock has been confirmed and added to the final block, it becomes the only block that is able to reference the block before it. Because of this, forking is not possible in a Byzantine fault tolerance consensus with finality.
There are an increasing number of blockchains that are successfully using Byzantine fault tolerance for consensus. These include NEO and Hyperledger, both of which use a version of the proven Byzantine consensus mechanism.
State Sharding for Smart Contracts
It’s fairly straightforward to shard transactions on a blockchain. Transaction verifications are easily assigned to different shards, and each verification stands on its own. Shards have little need to communicate between themselves thanks to the DS Committee.
However, this can’t be said for smart contracts and Dapps running on a sharded blockchain. A smart contract often relies on external sources of data, functions, and other variables.
To do this on a sharded blockchain would require potentially massive amounts of communication between the shards. The bandwidth and processing power consumed by this communication would make the benefits of sharding null.
The current state of blockchain technology has led to a widespread opinion that state sharding can’t be made efficient and secure. If contracts were executing separately in sharded states it would leave the network open to all types of potential attacks, as well as cross-shard contamination, and possible challenges for reconciliation of transactions.
After nearly two years of work, Zilliqa released smart contracts on June 10, 2019. This allows developers to write and deploy smart contracts on the Zilliqa blockchain using the safe-by-design smart contract language Scilla. The smart contracts come with a number of impressive features:
- The Scilla language comes with static analyzers that will check for bugs within each contract before they go live.
- Scilla comes with its own library of standard operations, removing the need to rely on external programming libraries.
- Scilla is balanced between tractability and expressivity, enabling formal reasoning regarding contract behavior.
- There is a very clean separation between different operational components such as communication with other contracts and computations. This will prevent hacking incidents such as the Parity or DAO hacks.
In its current state, Zilliqa can be used by Dapps that require very high throughput and transaction rates beyond what’s capable on other blockchains.
Zilliqa’s Programming Language
Not only is Zilliqa a new and unique blockchain, but the development team also created a new functional programming language known as Scilla.
Zilliqa’s smart contract language, Scilla, is safe by design and addresses several known security vulnerabilities in existing languages. As a functional programming language that allows for static checks and formal verifications, developers will also be able to easily conduct thorough checks to ensure that their smart contracts behave as intended.
Scilla focuses on making functional programming more secure and standardized, and it does this by separating state and function. In other words, it is a programming language that can differentiate between the actual computational work of a contract and the communication aspects of the contract.
One downside to the Scilla language is that it is not Turing complete, and can’t be used to create applications that require conditional statements and certain types of loops.
It does remain subject to formal logical proofs, and this is key to security. It allows users to verify a contract is safe before using it, which is one of the keys to widespread adoption.
Zilliqa versus Ethereum 2.0
The sharding used by Zilliqa differs from that planned for Ethereum. Ethereum 2.0 is creating a state sharding system, but Zilliqa has implemented a system of transaction or network sharding. In this type of sharding Zilliqa automatically divides the network nodes to be able to process transactions in parallel.
So if you take a network with 1,000 nodes Zilliqa would automatically divide the network into 10 shards of 100 nodes each. If each shard can process 100 transactions per second the sharded network has the capability to process 1,000 transactions per second.
This network or transactional sharding ensures that throughput increases in a linear fashion with the size of the network.
By comparison, the Ethereum 2.0 solution is based on state sharding, or breaking up the state of the blockchain so that storage is no longer a limitation in the long run. Zilliqa currently has no immediate plans to include state sharding, but their long-term plan does include the addition of state sharding.
Regarding Ethereum 2.0, even though switching to its Proof-of-Stake has been in the works since 2015, all the details haven’t yet been decided. Plus the implementation of Ethereum 2.0 has been delayed from a January 2020 launch to a possible July 2020 launch.
Even then phase 1 of Ethereum 2.0 won’t include a complete solution to all of the sharding related issues. Below are some issues that the phase 1 Ethereum 2.0 implementation will suffer from and Zilliqa’s response to the same issues:
- The validator manager contract (VMC) that maintains the sharding system could also become a bottleneck and single point of failure. Zilliqa has no such central entity on which the entire system is dependant.
- Ethereum 2.0 does not provide finality to the system state. Zilliqa does provide finality through its pBFT protocol.
- Sharding in Ethereum 2.0 phase 1 is expected to increase network throughput by roughly 100 times. Zilliqa already has a reported throughput that is 250 times greater than the throughput of Ethereum 1.0.
- Phase 1 of Ethereum 2.0 will have no cross-shard communication, or at best limited cross-shard communication. This means a smart contract in one shard may not run properly if it needs to call a smart contract that resides in a different shard. This cross-shard communication is one of the biggest challenges when using a Turing-complete language like Solidity in a sharded architecture. Eventually Ethereum plans to use a UTXO-type model for cross-shard communication, but this isn’t expected to be part of the phase 1 implementation.
dApps on Zilliqa
With its own programming language, Zilliqa makes it possible for developers to code new decentralized applications that take advantage of the secure functional programming language Scilla.
While there remains a gap in the number of Zilliqa dApps when compared with a more mature ecosystem like Ethereum or Tron, it’s clear that Zilliqa developers are making good use of the ability to create dApps.
One of the most popular is the Unstoppable Domains, which allows users to purchase a human-readable domain name to connect to their Zilliqa address. The domains end in the .zil extension and the Zilliqa user base has already purchased more than 100,000 of these .zil domains.
Another area that is seeing great growth on Zilliqa is the gaming sector. Zilliqa’s combination of security, speed, and decentralization makes it the perfect choice for gaming dApps. Some popular titles released on Zilliqa include Ocean Rumble and the Krypton Galaxy.
The Zilliqa team is comprised primarily of PhDs in computer science with an academic background. In fact, Zilliqa was born from an R&D project of the National University of Singapore and more than two years of work had a functioning blockchain before the Zilliqa ICO.
The Zilliqa team is a great mix of individuals with expertise in computer science, business and marcom. A team that values excellence but with humility. -- Amrit Kumar
The team has undergone some changes since the launch of the blockchain, with the former CEO Xinshu Dong and the former Chief Scientific Advisor Prateek Saxena both stepping down from active roles at the project and joining the Board of Directors and becoming advisors to Zilliqa.
In their absence, the former Crypto Lead and a co-founder of the project, Amrit Kumar, has stepped up and taken on the role of President and Chief Scientific Officer for Zilliqa. Amrit Kumar has a Ph.D. from Universite Grenoble-Alpes. In addition to his role at Zilliqa, he is also a research fellow at the National University of Singapore.
As of January 2020, Saayan Choudhury has joined Zilliqa as their Chief Technology Officer. Saayan has taken on this role as the leader of the Platform team, helping ensure the technical architecture of the blockchain remains robust and resilient and adaptable for enterprise usage.
Saayan is a seasoned technology expert, with 20 years of experience and a global perspective. He has been active in software development and research in positions at companies in India, Australia, and Singapore and in areas spanning blockchain, cybersecurity, DevOps, and e-commerce.
Finally, there is the Zilliqa advisory board, which includes Zilliqa founders Xinshu Dong and Prateek Saxena as mentioned above, as well as the following prominent blockchain notables: Loi Luu, Co-founder of Kyber Network; Vincent Zhou, Founding Partner of FBG Capital; and Alexander Lipton, Founder and CEO of StrongHold Labs.
Partnerships at Zilliqa
Following the launch of the Zilliqa mainnet the team began to focus more heavily on partnerships in an effort to strengthen and spread the Zilliqa brand. They have been quite successful over the first year following the release of the mainnet, adding many different partners across a number of industries.
One recent and very important partnership is the one forged with Elliptic, which has finally brought AML compliance to the Zilliqa blockchain. The London-based Elliptic will monitor transactions on the Zilliqa network to ensure there is no trafficking on the network with potentially illicit capital. This will help shield Zilliqa from risk and satisfy regulators and governments that Zilliqa is free from money-laundering and similar transactions.
Another important partnership was forged in July 2019 when Zilliqa became the exclusive technological infrastructure provider of Aqilliz, a blockchain solutions provider that looks to restore the balance across the platform economy in the digital marketing space. Such partnerships put an emphasis on driving strategic market adoption, allowing Zilliqa the opportunity to become the backbone to many far-reaching solutions.
Another July 2019 partnership involved Chainlink, which develops oracles that allow blockchains to access real-world data. With this partnership, Zilliqa’s smart contracts are able to easily retrieve and query external data feeds, allowing real-time access to data such as exchange rates, market prices, voting results, weather forecasts and other data sets. The collaboration is further enriching the Zilliqa ecosystem, allowing smart contract creation using data from the physical world.
Zilliqa also partnered in March 2020 with the NEO based decentralized exchange Switcheo, with the goal of creating a non-custodial decentralized exchange (DEX) based on ZIL. This will expand the reach of Zilliqa by giving ZIL holders and traders the ability to tap into Ethereum assets, thus bolstering the Zilliqa DeFi ecosystem.
There is a token for the Zilliqa ecosystem and it is known as a Zilling (ZIL). Those familiar with other Dapp platforms like Ethereum and NEO know that the token is necessary as a mining incentive, and as tender for paying transaction fees, but perhaps most importantly as gas for contract execution.
ZIL was created initially as an ERC-20 token on the Ethereum blockchain. This was done because the project needed development funds, but the public main net for Zilliqa hadn’t been released yet. Following the January 2019 release of the mainnet, the native ZIL tokens have been issued, and users are required to exchange the ERC-20 ZIL tokens for native ZIL tokens.
This can be done easily by depositing the ERC-20 ZIL tokens with a participating exchange (the list can be seen here) and then withdrawing the native ZIL tokens to a wallet that is compatible with native ZIL tokens.
This token swap procedure will eventually end and the ERC-20 ZIL tokens will become obsolete, so users are encouraged to exchange ERC-20 ZIL tokens for native ZIL tokens as quickly as possible.
Zilliqa began its ICO with a private funding round that raised $12 million in ETH. Soon after the surging price of ETH made the funding received worth more than $20 million, meaning the ICO had reached its hard cap.
Zilliqa canceled plans for a public ICO round, but due to community interest, it allocated 4445 ETH worth of ZIL to a January 2018 public sale. That public sale ended on January 4, 2018, and raised $22 million with tokens sold for $0.00381 each.
ZIL Price Performance
Like nearly every cryptocurrency ZIL has gone through massive ups and downs. Following the January 2018 ICO, the ZIL token saw its value rising strongly, finally reaching an all-time high of $0.231489 on May 10, 2018.
As the cryptocurrency bear market took hold the token fell quickly from that high and has traded steadily lower since August 2018. As of August 21, 2019, the ZIL token was at its all-time low of $0.006943. Fortunately for early investors, this is still nearly double the January 2018 ICO price.
However that wasn’t the end of the bear market for ZIL. Price remained depressed and continued lower throughout much of 2019. There was a bouce higher as 2020 began, but that was cut short by the coronavirus pandemic and associated sharp drop in nearly every asset class in March 2020.
As for ZIL, it hit a new all-time low of $0.002477 on March 13, 2020. Those quick enough to jump into that low price were handsomely rewarded however as just two months later on May 11, 2020 one ZIL was worth $0.006975 for a gain of roughly 180%.
Buying & Storing ZIL
The liquidity at these exchanges is well spread out which means that trading is not reliant on a single exchange. You also have decent levels of liquidity on each of the exchange order books. This means that you can get easy execution for your orders with relatively little slippage.
There are a number of Zilliqa wallets that have been released and can be used for the native ZIL tokens. The top recommendation from the Zilliqa team is the Moonlet wallet, which is a blockchain agnostic wallet that supports both Ethereum and Zilliqa chains.
It is recommended as it has been audited by BitSentinel and has gone through a bug bounty program on BugCrowd. The Trust wallet also supports Zilliqa, as does the hardware wallet Ledger.
Development & Roadmap
So, how far along in the development is the Zilliqa protocol?
Well, this can sometimes be hard to determine as projects often tend to overstate the amount of work that they are getting done.
However, one of the reliable ways to measure this is to take a look at the coding activity in their public code repositories.
Therefore, I decided to jump into the GitHub for Zilliqa and measure the amount of code that the developers were pushing. Below are the total number of commits over the past year for their two most active pinned repos.
As you can see, there has been quite a bit of activity here and the developers have been pushing a decent amount of code. You should also note that there are another 16 repos with varying levels of activity.
This is about in line with some of the other projects that we have seen. This level of development also makes sense when viewed in conjunction with the broader roadmap.
As of May 2020 the team is working on over a dozen different projects to improve the Zilliqa blockchain. Some of the most highly anticipated developments are those relating to privacy and staking. There are no timelines associated with these projects, but here are some of the core improvements being addressed:
- Staking mechanisms: Using staking to facilitate and incentivise certain actors in the protocol.
- Support for zk-SNARKS: Adding privacy features to Zilliqa.
- Efficient smart contract sharding: Leveraging certain properties of smart contracts for more efficient processing.
- Layer 2: Building a state channel infrastructure or an off-chain computing layer.
- Cross-chain solutions: Making Zilliqa interoperable.
It will be interesting to see whether the developers are able to keep to these milestones. If you wanted to keep up to date with the development then keep your eyes on their official blog.
Scalability will remain an issue for blockchain technologies for the foreseeable future.
While existing blockchain projects are looking for a work-around that likely won’t provide more than a short-term solution, the team at Zilliqa is taking a different approach and tackling the issue head on, with a unique and innovative approach.
While Zilliqa may not have the ultimate solution yet, it is sure to be an important step in blockchain technology, and there’s good chance its development of sharding technology will come into play in numerous future blockchain projects.
Disclaimer: These are the writer's opinions and should not be considered investment advice. Readers should do their own research.
Disclaimer: These are the writer’s opinions and should not be considered investment advice. Readers should do their own research.