Zilliqa cryptocurrency review and description
Zilliqa is the first public blockchain to use sharding. Sharding makes linear scaling possible as the blockchain grows in volume.
Today, scaling remains a serious blockchain issue.
For example, Bitcoin can no longer cope with so many requests on its network that it does not affect transaction fees for the better. The same thing happens with Ethereum: limited bandwidth can make smart contracts too expensive. This became especially noticeable with the popularity of Crypto Kitties, which significantly reduced the speed of Ethereum and demonstrated the limits of network capabilities.
Zilliqa, in turn, fundamentally changes the way consensus is reached. The solution used by the platform, based on sharding, changes scalability depending on the size of the network. Theoretically, the Zilliqa blockchain has achieved an unlimited number of transactions per second. However, in practice, this indicator depends on the number of nodes in the network, which can amount to tens or hundreds of thousands of transactions per second.
Zilliqa also promises support for smart contracts. For Zilliqa creators, launching smart contracts on a network using sharding is the most difficult technical problem.
How does Zilliqa (ZIL) work
Blockchains are constantly facing scaling issues. The more nodes are online, the more difficult it is to reach consensus.
To analyze the problem in more detail, you can imagine the blockchain as a group of people:
- A small group of close friends can easily make decisions. You will not always agree with each other, however in such a group it is quite easy to understand the motives of each of the participants.
- If we consider a large group (for example, an audience filled with people), people can raise their hands by voting for a decision. In such a group, it is already difficult to count the votes and it is difficult to understand whether everyone votes honestly.
- As for groups numbering thousands, or even millions of people, then a more complex voting system will be unambiguously used, which will cost a lot. In this situation, there is still no guarantee that everyone acts honestly, and that the final decision is even more difficult to achieve.
Of course, the analogy with people is not perfect, but it roughly demonstrates how it becomes more difficult to achieve consensus with the increase in the network. Consensus speed / quality and network size are inversely related to each other. If one indicator rises, the second inevitably falls.
Some solve the problem of scaling by transferring part of the information outside the blockchain. And others are looking for ways to increase the block size, achieving more transactions with each round of consensus. Although these solutions may work as a temporary measure, sooner or later a more durable solution will be required.
To really fix the problem, you need to change the architecture of the entire system so that the speed of consensus and the size of the network are in direct and not inverse relationship to each other.
How does Zilliqa (ZIL) solve this problem
Zilliqa developers have found a way to handle more transactions as more nodes join the network. To do this, they recreated the blockchain from scratch, introducing a new hybrid consensus protocol that increases throughput on approximately every 600th joined node.
Every 600 new nodes, Zilliqa’s throughput is increased by sharing their work. In practice, the network may have problems if the network becomes too large (more than 1,000,000 nodes). However, one million nodes is a very distant indicator: in the Bitcoin network, there are only about 10,500 active nodes.
Bitcoin and Ethereum networks with tens of thousands of nodes can process only 3-15 transactions per second. In turn, tests of a private test network (AWS virtual test) showed that the Zilliqa network issues 1218 transactions per second with 1800 working nodes. When the number of nodes increases to 3600, the speed increases to 2488 transactions per second.
Sharding: distribution of work throughout the network
How did Zilliqa achieve this scaling? As mentioned above, the developers used a solution called sharding. The Zilliqa protocol divides the number of mining nodes into groups of 600 nodes. Each group is called “shard” (literally from English – “splinter”).
For example, in the case of the test indicators above, 1800 nodes were divided into 3 shards. Accordingly, 3600 nodes consisted of six groups. As new nodes join, Zilliqa will create new shards.
Each of these shards processes the fractional part of transactions on the network. If you do not go into details, we can say that each of the 6 shards will process approximately 1/6 of all transactions. The more shards, the more the network shares the consensus between these groups, while maintaining relatively stable requests in computing power.
Each shard processes transactions allocated to it in the microblock in parallel with other shards. Upon completion of the parallel processing process, called by the creators of the “DS period”, these microblocks are assembled into an entire block and added to the blockchain.
DS Committee: Shard Management
For each processing period, several random nodes are selected that will need to control shards. These nodes are combined into a “DC committee’ and decide which shards these nodes will be bound to. As transactions arrive, the committee binds these transactions to shards for processing. At the end of the “DS period”, the committee collects a whole block of microblocks created by shards.
Consensus building: PoW + BFT
Zilliqa uses a hybrid consensus mechanism. Before starting mining on this network, the user will need to complete the proof of work hash. The PoW algorithm helps Zilliqa establish an identity, making it difficult for one user to create multiple identities, which once resulted in the so-called Sibyl attack. However, it is worth noting that the network does not use proof of work to achieve consensus.
After confirming the identity of the node attached to the shard. Inside shards, Zilliqa uses the so-called consensus of Byzantine fault tolerance or PBFT (Practical Byzantine Fault Tolerance). This is a complete consensus mechanism with high bandwidth. Consensus completeness means that most nodes must agree on a miniblock. Once a block is confirmed by shards and a committee, it becomes the only block that can refer to the previous block. This means that such a complete consensus mechanism does not allow forking.
Zilliqa is not the first blockchain using BFT. NEO, Tendermint, and Hyperledger also use the BFT mechanism.
Data flow contracts and state sharding
Transactions using sharding are quite simple. Verification of transactions is simply tied to a particular shard and each verification occurs independently of the other, that is, communication between shards is practically not required.
On the blockchain that uses sharding, the situation with smart contracts and decentralized applications is somewhat different. The problem is that smart contracts often rely on checking other variables, functions, and states. This, in turn, requires interaction between shards, and energy consumption for the constant exchange of information between them will negate all the advantages of sharding.
Therefore, Zilliqa smart contracts rely only on data flow and functional programming. They do not allow checking, changing and storing states. At least at the moment this is not possible.
To date, there is no solution that would effectively and safely provide a workflow with separate use of contracts in different shards. In this case, a whole series of problems would arise: the likelihood of attacks, problems with coordination and the excessive dependence of shards.
Ethereum is currently working on a solution to the problem of sharding by state, although it is not yet known how advanced they are, but you can look at more detailed information on Ethereum 2.0 in this article.
However, now Zilliqa can be used for decentralized applications that require high bandwidth. An application working with a huge transaction flow per second will not find an alternative better than Zilliqa.
New Scilla programming language
In order to make functional programming more secure and standardized, the Zilliqa team has developed its own programming language – Scilla.
Scilla separates state and function. This is a functional programming language that distinguishes between the communication aspects of contracts (transferring funds or calling another contract) and directly the computational work that the contract performs.
The new language is not Turing complete. This means that it does not support applications that require certain types of loops or conditional expressions. However, his incompleteness allows him to undergo formal logical evidence. This is an important safety factor. Confirmation contracts guarantee users the security of the contract before they use it.
Scilla helps distinguish between functional contracts supported on Zilliqa and state-dependent contracts that Zilliqa cannot yet support.
Zilliqa Team (ZIL)
The Zilliqa team consists mainly of academicians and doctors in the field of information technology.
Executive Director Xinshu Dong, whose studies have been cited repeatedly at scientific conferences and in reputable journals, holds a Ph.D. in information technology from National University of Singapore.
Pratik Saxena is the chief scientific supervisor of the project. He also holds a PhD in information technology from his University of California, Berkeley. Today, he is a professor at Singapore National University.
Amrit Kumar is the Head of Project Research at the University of Singapore. He also holds a doctorate from the University of Grenoble in France and an engineering degree from the Paris Polytechnic School.
The Zilliqa Advisory Board includes vivid figures from the blockchain industry. Among them, one of the founders of Kyber Network, Loy Luu, FBG Capital’s founding partner, Vincent Zhou, Nikolai Oster, Bitcoin Suisse AG partner, and Alexander Lipton, executive director and founder of StrongHold Labs.
Zilliqa Competitors (ZIL)
Zilliqa, being a high-bandwidth smart contract platform, has a niche of competitors. Similar functionality is offered by projects such as EOS and Tron. Another competitor is the Aelf smart contract platform, which uses side chains to solve the problem of scaling. In addition, this platform will also launch its main network at the beginning of 2019.
Where to buy Zilli
Currently, the ZIL token is available on many exchanges, but is most actively traded on Binance. Recently, the ZIL token listing has been confirmed by Coinbase Pro (formerly GDAX).
Where to store Zilliqa (ZIL)
The ZIL token purchased before the swap can be stored in any wallet that supports ERC-20. Naturally, the safest way to store hardware wallets is like Ledger Nano S. After the swap, you will most likely have to use the official Zilliqa wallet.
Scalability continues to be the main problem of blockchain technology, so Zilliqa is a truly unique and important project, one of the first to solve this problem. Thus, this platform can become an extremely important development in the history of the blockchain. If we consider the project in a broader sense, Zilliqa can not only open up new opportunities for sharding technology, but also share them with other representatives of the blockchain.