Performance and scalability issues have bottlenecked the future development and real-life application of popular mainchains, such as Bitcoin and Ethereum. Many methods have been employed to solve this problem, but all of them have their own pros and cons.
The Impossible Trinity – safety, decentralization and scalability, coined by the blockchain world, bars the way to the future and the industry has fought hard to figure out an optimized solution. Sharding, proposed by Ethereum, has been viewed as one such candidate.
What is sharding?
Sharding technology splits a network into smaller partitions called shards, which contain an independent state and transaction history. The idea behind this is to divide a huge amount of workload into smaller pieces to make life easier for every participating node.
If sharding were to be adopted, each node will only need to keep a part of the network’s information, instead of downloading the whole ledger, which can lead to a large data file. Subsets of nodes grouped into one shard will only process transactions specific to that shard. By doing this, the network will be able to process many transactions in parallel, and the performance will continue to increase with more nodes joining in, thus making the network highly scalable.
Limitation of sharding
Of course, sharding carries both pros and cons. The security of the network might be compromised as sharding makes it possible to launch Single-Shard Takeover Attack (1% Attack), where an attacker can create a malicious shard by taking over the majority of collators in a single shard. A 1% Attack is easier to be launched compared to the 51% Attack, which requires more than 50% of the network’s computing power.
To solve this problem, one suggestion is that every shard gets assigned a validator that is random-sampled from a pool. This way, the validator does not know which shard it gets beforehand, so chances it will collude with a malicious node are minimized.
However, this untested solution raises questions. Who would be a qualified validator? How to incentivise validators? What if a validator fails and a malicious node gets validated? What if there are too many malicious nodes causing the random-sample approach to be de facto ineffective? All this needs to be carefully addressed.
Apart from the above, sharding also brings forth other problems. First, by partitioning the whole network into smaller shards, it is effectively making the whole network more susceptible to attacks as it is always easier to take control of a part of the network than the whole network.
Next, with a validator assigned to each node, the problem of single-point-of-failure appears again, and this could cause the network to be less decentralized. A more complex mechanism will, however, eat into efficiency and defeat the initial purpose.
Last but not least, while a validator might be able to protect the network from being jeopardized by a single malicious node, all the data in that attacked node are left unprotected.
So it seems that while sharding is improving performance, it is also sacrificing safety and degree of decentralization, which is surely not an ideal solution.
What can be done?
Blockchain Directed Acyclic Graph (B-DAG) is a proprietary solution by the SmartX project. Unlike a blockchain, every single transaction is itself a “block” in a B-DAG system. From this perspective, B-DAG resembles DAG. However, unlike other DAG projects, SmartX has different Epochs, which subdivide the network by a given time-cycle and main blocks are randomly produced in each Epoch. The main blocks will be linearly linked to form the Most Heavily Weighted Chain, which resembles the chain-structure of blockchain.
With this unique B-DAG technology, SmartX is harvesting both the advantages of traditional blockchain and DAG. It is faster, cheaper-to-use and more scalable compared with the traditional blockchain, while it is also safer and more promising compared to DAG.
Like traditional trading systems, SmartX uses a balance account model. During every Epoch cycle, if it is found that an output account for a certain transaction block does not exist, the account will be created across the network. The input amount will be transferred to this account and the input must have sufficient balance. Each account balance is determined by the difference between the input and output transaction components.
The system ensures that every transaction is treated as idempotent. The end result is the same whether a transaction is executed once, multiple times, or repeated. Duplicated transactions are recognized by the random Nonce value of the transaction.
SmartX will have several genesis nodes by default, each staking a minimum of 10 million tokens in order to allow participation in node operation. SmartX allows for mining nodes to join and leave at any time. The purpose of this is to select nodes that have a stronger willingness to participate.
Sharding is only a band-aid solution to the fundamentally broken system of Blockchain. Sharding breaks the network down into partitions to deal with workloads but compromises decentralization and security. Blockchain needs to be completely reimagined, not fixed after the fact. The project SmartX does just this through its own proprietary, innovative and all-new DAG structural algorithm – B-DAG, which can integrate the transaction partitions created by any nodes around the world. Since SmartX operates like a flow chart and every transaction does not need to pass through nodes sequentially, the project does not have the same memory issues as Blockchain. This feature also gives SmartX a higher transaction speed and allows implementation of more than one consensus mechanism.
Sharding will always have to operate on a Proof of Work system and hold all transactions as “pending” before packaging them at the same time. SmartX is using both Proof of Work and Proof of Stake. By doing this, SmartX is able to take advantage of both types of consensus mechanisms. Every node participating in SmartX’s network will have to make a pledge and ensure that it has enough bandwidth and capacity to support itself. SmartX will use proprietary Blockchain-DAG technology to achieve decentralization, optimized handling capacity and delay validation at the same time.