Zilliqa is a contract-enabled platform for payment processing and dApps focused on speed, security, and scalability. It transitioned from the Ethereum blockchain to start its own mainnet yesterday, January 31.
Development for Zilliqa began in June 2017, and by September of that year, it had a private testnet operating. Since then, it has created a public testnet, thoroughly tested sharding, developed a testnet wallet, and established a smart contract language and framework – called Scilla – for a sharded architecture. Developers have also begun creating dApps for the platform. And now, of course, there's the mainnet.
The primary way that Zilliqa scales beyond the current capacity of the Ethereum mainnet is sharding. In short, sharding means breaking a blockchain network up into smaller subnetworks to process transactions and execute operations in parallel rather than requiring the whole network to process every transaction or operation simultaneously. Other blockchain projects, including Ethereum, plan to implement sharding in the future, but Zilliqa is the first big blockchain project to do so.
Zilliqa sees its main advantage over other blockchain platforms as speed. Theoretically, transaction speeds for Zilliqa will increase as the number of network nodes increases. By comparison, in a standard blockchain, transaction times don't improve. But in a sharded network, wherein each shard/group of nodes processes transactions independently of the other shards, more transactions can be processed simultaneously.
In fact, Zilliqa uses two types of sharding.
Zilliqa's network sharding protocol uses proof of work (PoW) to divide up the task of validating transactions across the network. It does this by choosing and continually updating what is called a directory service committee (DS committee), a group of randomly selected nodes that assigns transactions to specific shards and validates blocks of transactions proposed by these shards.
A transaction in Zilliqa involves a user initiating a transaction, which is then sent to a shard that validates the transaction, grouping it with other transactions to form a "microblock" of transactions. A consensus is reached by the shard on the validity of the microblock, which is then sent to the DS committee to combine the microblocks into what is called the "final block". The DS committee then runs a final consensus on this block before adding it to the blockchain.
The consensus protocol used to confirm each block to update the state of the blockchain across the network is called Elliptic Curve Based Schnorr Signature Algorithm (EC-Schnorr), and uses a type of practical Byzantine fault tolerance for each shard, allowing shards to agree on blocks they propose to the DS Committee, and for the DS Committee to reach consensus on the final block.
Using network sharding, according to the development team, the network will match the transaction processing speeds of Mastercard and Visa, the difference being that fees will be lower and it won't rely on a centralized authority to manage the network. Zilliqa says that during one test on its testnet, it executed 2,488 transactions per second with six network shards running 3,600 nodes, compared to Ethereum's current approximately 10 transactions per second with four times the nodes.
The Zilliqa network performs another type of sharding, called computational sharding, as well, on its Scilla framework. Computational sharding refers to the ability of the network to run dApps at scale, with more than one instruction being run across the network at once. This contrasts with other dApp and smart contract platforms such as Ethereum that allow only one instruction at a time to be processed, requiring computation tasks to be repeated across all network nodes.
Computational sharding is done by coordinating the data dependencies between operations and allowing independent operations to be executed by a shard, or even a portion of the nodes in a shard, as soon as the operations have everything they need to run.
The Zilliqa team's goal for Scilla is to allow mutable (alterable or upgradeable) contracts that can be securely implemented. This would allow bugs to be fixed more easily and for contracts to be modified as user needs evolve. The immutability of typical smart contracts is why some projects, such as NEM, choose not to run them at all on the public blockchain.
"The main advantage of Scilla is its capability of formally (mathematically) verifying the security and correctness of smart contracts," says Xinshu Dong, CEO and co-founder of Zilliqa.
Prior to the mainnet launch, Dong said that due to the "immutable" nature of the mainnet, the Zilliqa team would need time to fully test the system and its new features to make sure it's stable:
"At launch, we don't expect our mainnet to be as robust and stable, as say, Ethereum. We will need some time to gather the computing power required for our blockchain to run faster, more efficiently and more securely. However, what people can really expect is a running version of the main features that we've talked about in terms of sharding, efficient consensus protocol, and in terms of the Scilla smart contract language."
Popular cryptocurrencies such as Bitcoin and Ethereum have shown that they can't yet be used on a wide scale without delays and significant transaction fees. As such, scalability has become a hot topic in the cryptocurrency space. As the first big blockchain project to implement a sharding solution that in theory only gets faster with the growth of the network, Zilliqa may become an important driver of innovation in the blockchain space in coming months and years.
However, even if the project can deliver on its promises, it remains to be seen if it can provide a user-friendly option for implementing blockchain technology on an organizational level, as it needs to attract developers to a new programming language and a new way of implementing dApps. After all, first-mover advantage for Ethereum has already proven to be a powerful force.