The Sharding Technology and Trias Sharding MVP
There are two key factors in the development of blockchain, one is the privacy and right of data, the other is the capacity-expansion of blockchain, that is, the improvement of blockchain performance. The privacy and right of blockchain data have already been mentioned in our previous article, and today we mainly discuss the data-extensibility of blockchain.

Why does blockchain need expanding? Let’s take a look at the throughput of Bitcoin and Ethereum. Bitcoin is about 7 TPS, and Ethernet is about 20 TPS, but how much does the centralized VISA pay? It’s around 8000TPS. So, if a payment system is placed on a blockchain, the performance of the blockchain will be far from meeting the throughput requirements of the payment system. It’s like a highway toll gate, if we only open one toll gate, and the work efficiency of this toll gate is very low, then there will be a large number of cars jammed outside the toll gate, causing highway congestion. But if we open ten toll gates or more, the traffic will be great eased until there is no obstruction. If a toll gate can be regarded as a separate chain, then the sharding technology is of setting up multiple toll gates to increase the throughput of the blockchain.
Sharding technology originated from the database expansion technology, which is an expansion technology of traditional concept based on dividing the database into several fragments. It divides the database into several fragments and places these fragments on different servers. The data on these different servers can be processed concurrently. In the same time and environment, the processing speed will increase exponentially. The application of this sharding technology to blockchain is to divide the nodes in the network into different fragments, which can be distributed on different chains. Each sharding can process different transactions in parallel to improve the network concurrency, which is also known as TPS.

Blockchain sharding is characterized by dynamic capacity expansion. As the number of nodes increases, the performance of blockchain also increases. Breaking up the network into pieces will allow more transactions to be processed and verified at the same time. However, it can only process unconnected transactions in parallel, and the performance improvement of sharding will be affected for related transactions. Therefore, the application of sharding technology in blockchain has its unique advantages and challenges. There are mainly several sharding technologies applied in blockchain at present: network sharding, transaction sharding and state sharding.
Network sharding
Network sharding is the development of a mechanism to determine which nodes can be safely preserved in which fragments. This will avoid the attacks launched by those who control a large number of specific fragments. Random sampling is usually used to prevent malicious nodes from over filling single fragments.
Transaction sharding
Transaction sharding refers to the sharding of transaction data through the input and output data of users’ transactions and according to an algorithm (such as Hash). But this method can’t effectively avoid double spend attack, unless data communicates across fragments, but it can also undermine the purpose of fragmentation, which is to increase transaction throughput. However, fragmentation based on the trader’s address information can effectively detect the double spend attack without any cross-fragment communication.
State sharding
State sharding is a technology that divides blockchain data into data of different states. In the case of state sharding, redistributing nodes is tricky. A particular fragment will retain only a portion of the state, and in the course of a network reset, the entire system may fail before synchronization is completed.
However, Trias explores the new direction of sharding technology. By combining transaction sharding technology and state sharding technology, Trias makes up for the shortcomings of their respective technologies and enables the sharding technology to be better applied to blockchain. Based on the real blockchain, the Trias sharding MVP joins the main chain to coordinate the processing of each sharding transaction. In addition, the load balancing and database are added on this basis to distribute the transaction request and store the account data respectively.
Please refer to the following figure for the specific structure:

LoadBalance is a load balancing layer, and all transaction requests are processed through LoadBalance. Currently there are two types of requests, one is a query request, and LoadBalance requests the Storage query directly and returns it. There is also a transaction request, and LoadBalance requests storage to get the Chain involved in the transaction and forward the request to Root_Chain for processing. Currently LoadBalance is implemented through Openresty.
Modifying translation results
Storage as a storage layer to store transaction account data, including account name, Chain ID, balance, etc, and only LoadBalance will interact directly with Storage, involving queries and updates. Storage is currently implemented via etcd.
As a main chain, Root_Chain generates transaction credentials when transacting over the chain, and each Child_Chain’s operates according to the credentials of the main chain. The current version of Child_Chain operates when it receives a Root_Chain’s request, and the validation of Root_Chain and Child_Chain has not yet been implemented. Currently, Root_Chain is implemented through Python to open an rpc, and the API accepts LoadBalance’s request to determine whether to cross the chain and generate transaction generation credentials and return the results to LoadBalance.
Child_Chain is a separate blockchain with separate nodes and data that handles transactions by accepting Root_Chain requests. The current consensus is reached via Tendermint, where the account within Tendermint provides the transaction scenario as a built-in app.
Trias official platform:
WeChat: trias_as
Official network: https://www.trias.one
Twitter: https://twitter.com/triaslab
GitHub: https://github.com/trias-lab
Telegram(English): https://t.me/triaslab
Telegram(Notice): https://t.me/TriasOfficial
Telegram(Chinese): https://t.me/TriasChinese
Medium:https://medium.com/@Triaslab
