Sharding As A Solution To Scalability

Cases Ethereum, Zilliqa, Devvio, Unit-e, Harmony, and Fleta.

The promise of decentralization and immutable registration makes Blockchain possibly one of the most powerful technological innovations of recent years. While platforms such as Bitcoin and Ethereum can barely handle a couple of dozen transactions per second and are today the most famous applications of the blockchain, it is also true that their scalability problem has limited many FinTech companies and some outside this segment, to use them as a real alternative of use for everyday cases.

When we compare the number managed by Ethereum of a maximum of 30 TPS with the one that handles VISA or MasterCard for example, it is obvious that Bitcoin and Ethereum are not processing transactions fast enough to be considered viable alternatives for daily transactions. And this is precisely understood by a significant number of technology companies that are working to interrupt the verticals of the industry in which they find themselves with the help of Blockchain technology

In order for Blockchain to be oblique, however, the issues of scalability, latency, and low performance must be addressed. The public chains without permission have nodes that maintain a shared version of the information allowing the chain to remain, that is, a cybernetic attacker cannot destroy it simply by removing a central server.

Through consensus mechanisms such as PoW, these Blockchains maintain the security of their platform intact by maintaining the sanctity of the order of transactions. While all the nodes that have complete information in the blockchain and the PoW consensus algorithm make the blockchain very secure and permanent, the design principles also adversely impact the scalability and performance of the transactions. This is where the SHARDING comes into play, a possible solution to the problems of scalability, latency and transaction performance.

Sharding is a concept that is widely used in databases to make them more efficient. A sharding is a horizontal part of a database, with each fragment stored in a separate server instance, which allows to distribute the load and make the database more efficient.

As blockchains are being implemented in a growing number of pilot programs for everything from border transactions to supply chain management, a persistent problem remains the lack of scalability.

Sharding is one of several popular methods that are being explored by developers to increase transactional capacity. In short, sharding is a form of partition to distribute the workload of storage and computation in a P2P network so that each node will not be responsible for processing the transactional load of the entire network. Instead, each node only maintains information related to its partition or shard.

Decentralization is achieved thanks to the fact that the nodes can share the information contained in a fragment with each other, keeping the network safe because everyone can still see all the entries in the general ledger.

Sharding In Ethereum.

Sharding is a concept that originated with the horizontal partition of the database and is being adopted by Ethereum as a neuralgic solution to its scalability problem. In addition to its ‘layer 2’ solution, the sharding is on the table for Ethereum 2.0.

In Ethereum after activating the sharding, the ‘state’ of the blockchain is divided into shards or partitions. Each unique user account is equivalent to a shard, and accounts can only make transactions with other accounts in the same shard. This allows many parallel transactions to occur at the same time. A separate protocol chosen by Ethereum allows communication between shards.

In addition to addressing scalability, some argue that sharding also maintains the native security of a blockchain because it retains ‘most of the desired decentralization and security properties of a blockchain’, as Vitalik Buterin wrote in his blog, created from Ethereum.

However, sharding faces challenges and one of the first is to avoid corruption of validators that entails compromising the shards and therefore the integrity of the native blockchain. Almost all the sharding designs nowadays are based on some source of randomness to assign validators to the shards. Randomness in Blockchain itself is a very challenging topic and both randomization and validation require a calculation that is not specific to any particular shard.

In the Ethereum network model, for example, the nodes must be randomly assigned to a fragment, and at random times, they are reassigned to another shard chosen at random. In this way, an attacker is more difficult to predict, or force, to which shard is assigned its malicious node.

In PoS systems, the nodes in the blockchain perform important tasks: not only 1) process transactions, but also 2) retransmit validated transactions and completed blocks to other nodes and 3) store the status and history of all the book of the network.

The above is a growing requirement in the nodes that operate in the network:

1.- The need to process transactions requires more computing power with a greater number of transactions that are processed.

2 .- The needs to retransmit transactions and blocks requires more bandwidth of the network with the largest number of transactions that are retransmitted.

3.- The need to store data requires more storage as the state of the network grows. It is worth noting that this requirement increases even if the transaction rate remains constant.

From the above list it may seem that the storage requirement would be the most urgent since it is the only one that increases over time even if the number of transactions per second does not change, but in practice, the most urgent requirement today is the power of computation.

Hence, sharding is a requirement for scalability and even for the fragmentation of storage and the network as a state fragmentation. To this sharding, it supposes another challenge and a problem to solve: the communication between the shards. Even today, when sharding is not available, there is a great demand for interoperability among several block chains to guarantee transactions between chains or shards, whether synchronous or asynchronous, as most of the current solutions proposed.

The correct rotation of validators and a tolerance tolerant to Byzantine faults, avoid forks, invalid state transitions, and malicious attacks. Avoiding corruption of shards is essential in Blockchain platforms that use sharding technology as a solution for their scalability.

Also, no less important, these platforms must guarantee the availability of data through complete nodes and lightweight nodes that allow the integrity of the chain and avoid the erroneous link between possible fragments corrupted by malicious nodes.

The validity of the data and their availability remain two problems when designing secure protocols that still do not have a satisfactory solution. Let’s take a look at some examples of Blockchain platforms that successfully address these and other sharding problems.

Zilliqa

In the industry, Zilliqa was the first sharding-based public blockchain that claimed 2,800 TPS throughput with six network shards running 3,600 nodes, compared to Ethereum’s current 30 transactions per second with four times the nodes. Zilliqa uses PoW as an identity registration process (ie, Sybil attack prevention).

The Zilliqa network contains a single directory services committee and a multi-shards committee (ie, network sharding), each of which contains hundreds of nodes. Transactions are assigned to different shards and processed separately (ie transaction processing). The resulting blocks of all the shards are collected and merged into the directory service committee.

Zilliqa is not a state sharding solution because each node has to maintain the whole state of the blockchain in order to process transactions.

The Zilliqa network performs another type of sharding, called computational sharding, too, in its Scilla framework. Computational sharding refers to the ability of the network to execute dApps to scale, with more than one instruction running through the network at the same time. This contrasts with others and intelligent contract platforms such as Ethereum that allow only one instruction to be processed at a time, which requires that computation tasks be repeated on all nodes in the network.

Devvio

At the beginning of the year, the company announced that it had created a highly efficient distributed accounting protocol based on sharding, layer 2 protocols and an efficient consensus mechanism that allows it to expand to global financial businesses by executing up to eight million transactions per second.

In the company’s ‘Devv’ protocol, each shard represents a Blockchain ledger and the company claims that thousands of shards can be added to a global public blockchain over time to ultimately process tens of millions of transactions per second. For example, each shard is an independent Blockchain node in the Devv decentralized ledger that can handle up to 3000 TPS. Adding another node would double the number of transactions that can be processed.

Devvio’s CEO, Tom Anderson, states that each shard (which is also a crypto wallet) becomes an entry into a larger network, which Devvio calls the T1 network, the individual shards can communicate with each other through a separate transactional network called T2.

Anderson states that his Start-Up is not only the one that has transactions faster but less expensive than, for example, the protocol of the chain of blocks of Ethereum since it uses a mechanism of sensible consensus called Test of Validation and employs’ sharding ‘to increase efficiency.

Similar to the Authority Test, the Devio Validation Test is a consensus mechanism in which validators collect transactions and take turns proposing new blocks in a chain. Other validators send cryptographically secure messages confirming that the block is valid, and the validator proposing the proposal adds the block, including validation messages, once 51% of the validators have verified the block.

Unit-e

This is a project funded by a non-profit organization in Switzerland that brings together seven major universities in the world including MIT, Stanford University, and the University of California at Berkeley, to build a payment system based on Blockchain to overcome traditional financial networks like VisaNet in terms of transactional capacity.

The Research Foundation for Distributed Technology (DTR) is the Swiss organization in question behind the new cryptocurrency development effort called Unit-e.

The new cryptocurrency that is expected to enter the scene in the testing phase in the second half of this year, aims to achieve the latencies of confirmation of transactions in the order of 15 seconds for chain transactions and from 2 to 4 seconds for Off-line transactions said the organization.

According to the organization’s words in a technical document at the beginning of this year 2019, they are directing returns of between 5,000 and 10,000 transactions per second. Unit-e uses a Proof of Stake consensus algorithm that is much more efficient and computationally less demanding than Proof of Work, the algorithm used by popular crypts such as Bitcoin and Ethereum. Its new protocol called ‘Prism’ is a consensus mechanism that explicitly deconstructs the various roles played by blocks in a Blockchain: record transactions, propose transactions and vote on other blocks.

In addition, Unit-e will use ‘completely new ways of sharding’, with which the researchers explained, the networks of payment channels will act as ‘overlapping networks’ that use consensus in the chain of blocks to set up guarantee accounts or channels between pairs of users.

Unit-e uses the new sharding mechanism called ‘PolyShard’, a storage and computing solution that makes more efficient with more users without sacrificing security, according to DTR. The key is that it combines data from different users and transactions in a way that still allows for accurate data recovery.

This mechanism of sharding uses ideas from the theory of coding to achieve at the same time optimal guarantees in security, storage efficiency and computational efficiency. The key is that the nodes should not store replicated data, instead, they should store combinations of coded data.

Harmony

Harmony is a chain of blocks of Proof of Stake with a sharded network where each shard contains a large group of validators (~ 400 at the start of the main network). The validators validate the new blocks and vote to reach a consensus using their FBFT algorithm, where a quorum of 2/3 of votes is needed for consensus.

Harmony is inspired by these previous sharding solutions previously proposed by Zilliqa, Omniledger, and RapidChain with the use of the limited Cuckoo Rule to reorganize the nodes without interruption and designs a complete sharding scheme based on PoS that is linearly scalable and probably safe.

Harmony contains a beacon chain and multiple sharded chains. The beacon chain serves as a beacon of randomness and identity registration, while sharded chains store separate Blockchain states and process transactions concurrently.

Harmony proposes an efficient algorithm for Randomness Generation through the combination of Verifiable Random Function (VRF) and Verifiable Delay Function (VDF). Harmony also incorporates PoS in the sharding process that changes the security consideration of a shard from the minimum number of nodes to the minimum number of shares entitled to vote.

In Harmony, the process of consensus and sharding is orchestrated by the concept of ‘epochs’ and an epoch lasts approximately one day. Within an era, the validators in each shard remain the same and execute the consensus repeatedly. When the time changes, the new validators with recently consolidated voting actions will be randomly assigned to join the shards. Existing validators without any guaranteed vote action will come out of the shards.

At the beginning of a new era, the validators are randomly permuted according to the randomness of the DRG protocol and form a random sequence. From the first position of the sequence, the validators take turns to be the leader of the FBFT consensus and each validator remains as a leader for 40 blocks.

Since the epoch time is 16384 blocks and an estimated block interval of 5 s, this configuration guarantees that each validator will have a chance to be the leader for a time.

Compared to the set of validators from 21 to 100 in other PoS blockchains, Harmony plans to be more decentralized with thousands of validators through different fragments.

FLETA

The parallel processing of transactions is a fundamental technology that leads to transaction speed at very high levels. In FLETA, the transaction is assigned to a certain shard according to a predetermined rule and the result of the transaction is processed independently in each shard.

That is, each shard works independently without being included or mutually connected with other shards, which means that each shard has its own chain. An account can access all the shards with the same key and address.

The keys and addresses are basic tools to test the authority of data change in blockchain, so users must have the keys and addresses before they can access them. This applies not only to the shards but also to the main chain. However, anyone can see the contents of a block or transaction, regardless of whether they have a key or address.

In the new FLETA sharding model, each shard works independently as if it were a single main chain to update the actual sharding technology. The main chain consists of and maintains several chains of shards and each chain operates independently in a parallel structure, which means that you can not do double spending on this design.

This, in turn, provides an unmatched transaction speed, making all token and currency transactions fast and efficient.

The Shard system basically does not share data and, therefore, it is not possible to duplicate the expense in this design. The independent strings of fragments update the complete parallel structure, increasing the processing speed.

Two forms of sharding implemented by FLETA include:

1. Data storage partition where each dApp operates its own substring; Y

2. Process of the partition of transactions so that the transactions are local to each chain.

The shard described below refers to the processing of a parallel transaction by using several nodes as shards.

Through the FLETA alpha test network, it was shown that a single chain performed consistently at 10,000 TPS. This means that the global transactions per second that could be handled by the FLETA network could be equal to 10,000,000 TPS with 1000 sub-chains operating at the same time.

In theory, the total number of transactions per second that the network can process has no limits, since there is no limit to the number of sub-chains that the network can support.

SOURCES