You may also know that a very important factor that limits the current large-scale application of blockchain technology is performance, which is also one of the reasons why many traditional Internet practitioners are not optimistic about blockchain technology. .
So, how to solve the performance problem of blockchain? One of the solutions is Sharding technology.
01
What is sharding?
Sharding is a form of database partitioning, also known as horizontal partitioning, which divides a large database into many small, processable parts to improve performance and shorten response time.
Sharding is not a new concept. It appeared in traditional centralized database management as early as the late 1990s. The popularity of this concept can be attributed to Ultima Online, a role-playing game played by multiple players simultaneously online.
In this game, the developers assign players to different servers to relieve traffic pressure (this means there are many parallel "game worlds"). Commercially, a common sharding case is to divide the user information database according to geographical location, put user information in the same area together, and store it in a separate server.
02
What is sharding in the blockchain field?
The blockchain is equivalent to a database, and each node is equivalent to an independent server. Under normal circumstances, only one of these nodes can obtain the right to record and produce blocks at a time. The remaining nodes that have not obtained the right to produce blocks are equivalent to doing "useless work" and wasting computing power.
If sharding technology is applied to the blockchain, it is equivalent to decomposing all pending tasks in the blockchain network (such as confirming transactions, running DApps, etc.), and all nodes in the entire network will also perform Grouping, each group processes a decomposed task (such as 150 pending transactions) at the same time. This changes from the original single node processing all tasks of the entire network to multiple groups of nodes processing in parallel at the same time.
For example, assume that there are currently 8,000 nodes (miners) on Ethereum, and there are 15,000 transactions to be confirmed on the entire network. . Ethereum can process 7-15 transactions per second. Under normal circumstances, it takes at least 1,000 seconds to process these pending transactions. Of course, new pending transactions will be generated during the processing.
If sharding technology is used to divide 8,000 nodes into 100 groups, each group has 80 nodes, and these 15,000 pending transactions are divided into 100 partitions, each with 150 transactions, then each group of nodes (80 ) can process the pending transactions (150) in their respective partitions in parallel, so that all 15,000 pending transactions can be processed in as little as 10 seconds.
From this example, we can see that sharding technology can greatly improve the performance of the blockchain.
03
Potential risks of sharding technology
So, are there any flaws in sharding technology? The answer is yes.
Although sharding technology can solve the performance problems of the blockchain to a certain extent and make the blockchain more scalable, it also has two flaws.
One is the communication problem between different zones after partitioning. The above example divides the Ethereum network into 100 partitions. Each partition is independent, which is equivalent to 100 independent, parallel Ethereum blockchains, each of which is managed by a group of miners (80 Node) maintains and confirms transactions.
These 100 independent Ethereum blockchains cannot communicate with each other. If they want to communicate, it is necessary to add a cross-partition communication mechanism (similar to cross-chain), which will increase the complexity of the blockchain and development The difficulty will also increase.
The second is the security of the blockchain. Still the above example, before fragmentation, the Ethereum network has a computing power of 8,000 nodes. After being divided into 100 partitions, each partition is equivalent to an independent Ethereum blockchain, and the computing power drops to Computing power composed of 80 nodes.
At this time, it is much easier to carry out a 51% computing power attack on one of the partitions. By controlling a partition, an attacker can do evil in this partition and tamper with transactions.
The Ethereum Foundation plans to use sharding technology as one of the upgrades to Ethereum 2.0. We will wait and see how Ethereum solves the above 2 flaws of sharding technology.
The above is the detailed content of What is sharding mentioned by Buterin as the future of Ethereum scalability?. For more information, please follow other related articles on the PHP Chinese website!