The holly grail of public blockchains is undoubtedly scalability, a subject that divided the bitcoin community and now three years on is still unsolved.
Conceptually, how to address it has become clear. You bundle transactions through second layers, and you bundle nodes through sharding or parallelization in more traditional language.
The latter is a bit of a rocket science. Ethereum has been working on it for much of this year and the first sharding implementation might optimistically be out next year.
A newcomer, however, is claiming they have already implemented sharding. Zilliqa, which we are told came out of an academic research paper from a team of computer scientists at the National University of Singapore in 2015, raised around $22 million worth of eth in an Initial Coin Offering (ICO) last year.
Their market cap has now risen to half a billion and they tell us they have launched the second version of their testnet, with the mainnet launch expected during autumn this year.
We interviewed Xinshu Dong, CEO of Zilliqa, to learn a bit more. What follows will be a transcript of the interview with our questions in bold, followed by Dong’s answers. The interview is a bit technical and may require some familiarity with ethereum’s proposed sharding set-up.
Can you explain how Zilliqa’s sharding is similar and different to Ethereum’s planned sharding?
At the high level, blockchain sharding is about dividing the network of nodes into smaller groups, and each group can process a subset of pending transactions. Then the result obtained from each group is aggregated to form the block for the entire blockchain.
There are many differences between Zilliqa’s sharding and that of Ethereum’s proposal.
First of all, Zilliqa focuses on network and transaction sharding as a first step towards scalability, while Ethereum plans for state sharding. What this means is that in Zilliqa, each node, regardless of which shard it is in, has the same global final state. This allows much easier reshuffling of nodes across different shards for strong resilience against failures and attacks. On the other hand, non-state sharding requires additional optimization effort in design and implementation to prevent transaction propagation from becoming a performance bottleneck.
Secondly, Ethereum’s sharding proposal is in many ways related to proof of stake. On the other hand, Zilliqa’s sharding leverages proof of work (PoW) at the moment, although it is independent of PoW. We chose PoW over PoS as PoW has survived the test of time, while PoS is based on cryptoeconomics and very nascent at the moment.
Many other specific differences thus arise from the above two points.
The PoW directory sounds like the beacon in ethereum? Is the sharding set-up structurally similar?
If you are referring to the Casper beacon chain for Ethereum, Zilliqa’s directory service committee is quite a different concept. The directory service committee is a group of nodes elected by PoW, and tasked to orchestrate sharding of nodes and transactions. It also aggregates microblocks into final blocks before sending them over to different shards. The directory service committee is an integral part of the Zilliqa blockchain.
There’s a statement that says no cross links are needed between shards, how do they communicate with each other?
This is one of the directions we are exploring. The idea for this approach is to analyze different transactions and smart contracts to be processed and dispatch correlated ones into one shard. The techniques to address cross shard communications vary, but more importantly is which approach would match real-world smart contract behaviors more efficiently. We plan to share more with the community on our insights from experimental results in future.
The consensus algorithm for transactions validation, that’s PoS?
Zilliqa’s consensus protocol is based on practical byzantine fault tolerance (PBFT). PBFT has the benefit of immediate finality once consensus is reached, so you don’t have to wait for several confirmations before you can be sure. However, classical PBFT doesn’t scale very well on a large network, so that’s why we improved the protocol with techniques of CoSi (collective signing). Of course, we had to address some limitations of CoSi as well to make it practical under a hostile environment of a public blockchain.
Are you able to provide some basic details such as block times, block rewards, and what’s the data limit per block (blocksize) within a shard?
Block times are around 1 minute at the moment. Details of block rewards are still being finalized. We don’t have a hard limit on microblock size yet, which can vary from 2,000 to 200,000 transactions in our experiments, i.e., 64KB to 6.4MB. Note that our microblocks do not contain transaction content, but only the hashes of transactions for better efficiency.
Why did the team decide to start a new chain rather than simply build on ethereum?
We studied the possibility of applying our sharding technology to Ethereum, but we did not feel the feasibility of doing so without completely changing the architecture and mining mechanism. Thus, we decided to start a new project and have more freedom in including several other ideas into the design of the new blockchain, including a secure smart contract language.
Who do you think is the friendly competition, ethereum or some other chains that have launched or are planning to launch?
Ethereum is clearly very technology-driven and open to new innovative ideas. We are also looking forward to explore any potential cooperation among different projects targeting the scalability issue.
What’s your view on Cardano specifically?
Cardano seems to be using PoS as its consensus protocol and as a result we differ in quite a number of ways in terms of design philosophy and choices, such as Zilliqa using PoW and PBFT for sybil defense and consensus, respectively.
Finally, what do you think will attract dapp developers to Zilliqa (besides capacity) over any of the other options?
Several things: One is the dedication of the Zilliqa team in working very closely with our developer community. We are just starting to ramp up this process by rolling out a grant programme. Two is that our new smart contract language Scilla is much more secure by having a more secure structure and enabling formal verification of security properties. It will appeal to critical business logic looking to be implemented on a blockchain.
This sounds like a simpler implementation of sharding, but it appears interesting if for nothing else then diversity as a Proof of Work sharding not only doesn’t exist but is not even planned by any other blockchain.
We are quite hazy on some details, however, such as how do the shards communicate and what incentivizes validation. On their whitepaper, they say:
“Zilliqa leverages proof-of-work (PoW) to establish identities and perform sharding. However, unlike several existing blockchain platforms (such as Ethereum and Bitcoin), Zilliqa does not employ PoW to achieve consensus.”
It thus appears to be a hybrid of sorts between PoW and CoSi, with much untried experimentation seemingly ongoing in this chain.
Block times appear to be very high for a smart contracts platform, and perhaps except for being slightly ahead in launching some sharding implementation, it is unclear what other tangible benefit this blockchain provides.
That’s especially when considering ethereum’s vastly bigger ecosystem and its far shorter block times, but rather than ethereum, Zilliqa’s competitor is probably Cardano or even Tezos.
Cardano has not launched yet, with that project setting itself apart by having a transactions layer and a smart contracts layer. Tezos’ betanet is out, with their unique feature being in-built governance.
All three are in effect a slight variation of ethereum’s smart contracts blockchain, with neither presenting an innovative breakthrough. Yet the field is becoming more extended and the choices more numerous as some competition makes an entrance.