Zilliqa aims to provide a secure and efficient smart contract layer to enable security-by-design smart contract programming and verification.
- Raised ~$18.3MM (43,942 ETH) via private token sales in December 2017
- Launched mainnet on 31 January 2019
- Utilizes sharding technology to achieve scaling without sacrificing security and decentralization
- Implements PoW consensus for node identification, and pBFT for processing transactions
WHAT IS ZILLIQA?
Zilliqa (or the "Project") is a public blockchain platform that is designed to scale financial transactions. Zilliqa utilizes sharding technology which enables increased transaction rates as the network expands. The team states the latest experimental results demonstrate a throughput of more than 2,800 transactions per second. In addition to scalability.
Key Features of the Zilliqa Network
- Two-layer blockchain structure: Directory Service ("DS") blockchain stores the identities of the nodes in the network, while the Transaction ("TX") blockchain stores information on the transactions validated by the network.
- Scilla: the Zilliqa team has proposed a new smart contract language, Scilla, which scales better for applications such as automated auctions, shared economy, and financial modelling.
- Practical Byzantine Fault Tolerance (“pBFT”): Zilliqa uses an improved version of pBFT to achieve a more even payout for each node, lower communication overhead, and instant block finality to eliminate the need for block confirmations.
BLOCKCHAIN & NETWORK
Zilliqa’s network consists of several group of nodes, and each of them is called a shard. A special shard among these is referred to as Directory Service ("DS") committee. The DS committee acts as a supervisory shard and helps in the formation of shards and aggregate transaction validation results from each shard among others.
Zilliqa leverages on the shards for parallel processing of transactions. Each shard and the DS committee run an optimized pBFT for consensus on valid transactions. In pBFT, there is deterministic finality of blocks, unlike the probabilistic finality in Nakamoto consensus (in BTC, ETH). Therefore, there is no need for several block confirmation, the latest state of the latest block is the “truth” of the chain.
Blockchains in Zilliqa
There are two blockchains in Zilliqa’s architecture: the DS blockchain and TX blockchain. The DS blockchain stores the identities of the nodes in the network, while the TX blockchain stores information on the transactions validated by the network.
Time for each blockchain epoch are:
- TX block epochs are dynamic (1-2 mins).
- DS block epochs are dynamic and dependent on TX epochs (1-2 hours).
Zilliqa uses an account-based model, similar to Ethereum’s. The network currently supports account-to-account and account-to-contract transactions. Batch transactions will be supported in later versions.
Transaction Types in Zilliqa
There are 3 different types of transactions in the Zilliqa network:
- Type I - User account to user account transactions
- Type II - Simple user account to contract transactions
- Type III - Complicated user account to contract transactions
Node Types in Zilliqa
There are 5 types of nodes on the Zilliqa network:
- The shard nodes handle the Type I and Type II intra-shard transactions, and submit a micro TX-block signed. They get rewarded based on the number of signatures produced during this DS epoch.
- The DS nodes handle the assembling of micro TX-blocks submitted by the shards. They also process Type II and Type III transactions that are cross-shard transactions. They are also rewarded based on the number of signatures produced during this DS epoch.
- The lookup nodes handle the dispatching of transactions to the correct shard and assist seed nodes in fetching states and transaction history. They earn 5% of the transaction fees and coinbase reward.
- The seed nodes help to forward transactions to lookup nodes, assist new validating nodes in joining the network by providing the DS-blocks history, and expose transactional APIs to allow explorer/wallets to send transactions and fetch historical transaction data. They share the rewards earned by lookup nodes.
- The archival storage fetches historical data including transactions and blocks from seed nodes every DS epoch and store them in LevelDB. They also provide the historical data for new seed nodes that are joining.
MB4 and SD4 are for the Type II and Type III cross-shard transactions as discussed earlier, and they will be handled and processed by the DS committee. After MB4 and SD4, all MBs and SDs will be aggregated into FB and FSD respectively.
The gas accounting in Zilliqa has the same format as that of Ethereum. There is a gas limit that is set based on the complexity of the computation involved in processing a transaction, and there is a gas price (in the denomination Li) that is set by the free market.
The initial gas price will be set at 1,000 Li at the bootstrap phase. A simple account-to-account transaction costs 1,000 Li as well.
Smart Contracts in Zilliqa
Zilliqa Research created a domain-specific functional programming language called Scilla to power its high throughput smart contract platform safely. Scilla, short for Smart Contract Intermediate Level Language, is designed as a principled language with smart contract safety in mind.
Scilla imposes a structure on smart contracts that will make applications running on Zilliqa less vulnerable to attacks by eliminating certain known vulnerabilities directly at the language-level. Furthermore, the principled structure of Scilla will make applications inherently more secure.
Zilliqa uses JSON-RPC protocol to broadcast transactions in the network. Sending of ZILs and deploying/calling of contracts are all done via JSON-RPC methods. Several SDKs in different programming languages are made available for developers to choose from in order to ease their dApp development process.