In view of the feedback from many small partners, they feel that the blockchain technology circle is full of chaos and mixed with fish and dragons, making it difficult for everyone to identify what is the real technology. There are even some people who, in the name of talking about technology, actually dont understand it themselves. They just understand the superficiality and start using various technical terms to bluff people. Such a phenomenon leads to the confusion and misleading of friends who want to learn technical knowledge well, and what they learn and receive is wrong information. The editor is also deeply saddened by the existence of such chaos. As a public chain team from Tsinghua Yaoban, the friends of Conflux have decided to help everyone who really wants to learn technology! Launch the column Tucao Jun Xiao C, Xiao C will use the most direct and sharp words to express the advantages and disadvantages of blockchain project technology, really explain the technology clearly, and explain the difference between technologies clearly, so that everyone can understand technology and technology. The whole industry has a deeper understanding, this article is the first issue of Conflux Tucao Jun~
a ridiculous story
A few years ago, when the taxi-hailing platform was in fierce competition, a start-up company was born, claiming to have achieved zero taxi fare, which fundamentally solved the pain points in peoples travel. The way to achieve this is to allow users to buy their own cars and then act as drivers for themselves. Let the service demand side provide services for themselves, thus saving service fees. The idea surprised investors and knocked entrepreneurs out.
The above story was made up by me, Little C. But in the blockchain circle, there really is such a public chain project, relying on the technical cognition threshold of blockchain, making up concepts to tell stories, claiming to solve the pain points of blockchain + Internet of Things. When the blockchain bubble was at its peak, this project was once on the top 10 market capitalization list. This is the project that Xiao C wants to talk about with you today: IOTA.
What is IOTA?
First of all, IOTA is a blockchain system using a DAG ledger structure. (Note: DAG, Directed Acyclic Graph, the full name in Chinese is Directed Acyclic Graph. The so-called DAG structure is to allow each block or transaction to refer to multiple blocks or transactions as the parent. In this way, all blocks or transactions The parent-child relationship constitutes a directed graph. Each block or transaction must refer to transactions earlier than itself. Therefore, the parent-child relationship of these blocks or transactions cannot be cycled. Therefore, this structure is called a directed acyclic graph ) Its ledger data structure is called Tangle, which means entanglement, chaos when translated into Chinese. Yes, the name is very apt. Because from the first day of researching IOTA, Little C has been stunned by all kinds of weird and unreliable solutions in IOTA technology.
IOTAs project vision is very beautiful: it solves various pain points in IoT scenarios through no blockchain, no transaction fees, and unlimited scalability. This is simply redefining the blockchain. However, if you dig deep into the technical principles of IOTA, you will find that the implementation of IOTA is very unreliable. How unreliable is it? Its not as reliable as shouting two hundred and five, sum to excel.
Why is IOTA so unreliable
Little C will first talk about this infinite scalability. In the original setting of IOTA, all transactions constitute a DAG. Anyone (or an IoT device) who wants to initiate a transaction just needs to reference two other transactions. There are no miners, no blocks, and no miners earn transaction fees. How fast you send transactions is how high IOTA’s TPS is. As long as the total number of good guys transactions is large enough, its safe.
This is simply awesome, attacking a blockchain system has never been as easy as attacking IOTA. There is no need to collect coins, no need to buy mining machines, I just need to use a computer to keep sending transactions every minute and every second, so that my transactions account for more than 50% of the entire network, and my attack is successful.
IOTA is probably also aware of this problem (it was criticized by everyone so that it had to be aware of this problem). So IOTA changed it later, saying that each transaction must be counted as a PoW to prevent double spending problems caused by Sybil attacks. Nani? What about unlimited scalability?
IOTA with PoW is fantastic. You know, the application scenario of IOTA is IoT devices, and it is a genius idea for IoT devices to run PoW. The so-called Internet of Things devices include the most popular smart homes, such as smart sockets, smart speakers, and smart refrigerators. So what kind of IoT devices can give full play to the advantages of PoW? The witty editor, I immediately thought of the smart induction cooker of the Internet of Things! I cant wait to buy an IOTA IoT smart induction cooker. Every time I turn on the induction cooker, it will start to perform PoW calculations, and the heat emitted can also heat food. When your dinner is ready, an IOTA transaction is sent.
Not only that, this IOTA induction cooker can also improve the safety factor of cooking. It prevents you from accessing the Internet by occupying the bandwidth of your home network, and prevents you from setting your house on fire by using WeChat and Weibo while cooking. Because in IOTA, when sending each transaction, two transactions need to be selected as parents. This requirement seems simple, but you need to ensure that there are no illegal transactions or conflicting transactions in the history of these two transactions. This requires synchronizing a large amount of history, verifying the correctness of historical transactions, handling conflicting transactions, and keeping in sync with the latest state of IOTAs DAG. If you are lazy and out of sync, then your transaction may be invalidated because it violated some rules. In order to re-initiate the transaction, you have to cook another meal.
In Bitcoin, miners are responsible for PoW calculations, synchronization, verification of network transactions, and conflict resolution, and users pay transaction fees to miners. IOTA redefines the blockchain, eliminates transaction fees, and replaces these things with users themselves. While Bitcoin users are sitting at the dining table eating roast ducks, IOTA users are still squatting in the back kitchen to raise ducks themselves. Little C believes that IOTAs so-called no transaction fee is essentially returning from a commodity economy to a natural economy. This is a retrogression, not an innovation.
Of course, because this is too unreasonable, the IOTA community has a compensation plan. There is a service called IOTA PoWer, which allows users to pay a sum of money to outsource tasks such as their own transaction PoW calculations. But little C, I think about it carefully, isn’t this the user who sends a transaction and then pays the miner to pack it into the block for me? This block is very special, only one transaction can be placed. It can be seen that IOTAs so-called no blockchain is nothing more than self-deceiving propaganda.
IOTA supporters may be dissatisfied with the above absurd story. They think that the purpose of IOTA’s PoW is different from Bitcoin’s PoW. IOTA’s PoW is only to reduce spam transactions in the network and will not burden users. Then let Xiao C lead everyone to calculate how the difficulty of PoW in IOTA is more reasonable.
First of all, we have to calculate how many TPS can the IOTA network reach? If IOTA generates 10,000 transactions per second, the limitation of network bandwidth makes IOTA unable to guarantee the synchronization of DAG ledgers in the whole network. If the ledger cannot be synchronized in time, different nodes may go further and further apart on different forks, and then part ways, and the consensus is no longer. So in the IOTA network, there are 10,000 transactions per second, no more.
Then, we have to calculate how much TH/s the computing power of IOTAs entire network reaches to be considered safe? How much TH/s is the computing power of the entire network, and can an ordinary home computer issue a transaction within the time of a meal (1 hour)? The computing power of an Intel Core 2 Duo is about 2.5MHash/s, and you can try 9G Hash attempts within 1 hour. 9G Hash attempts to send a transaction, the current throughput rate of the IOTA main network is only 5TPS, if the bad guys have > 45GHash/s computing power, then they can generate > 5 transactions per second, and they can dominate the number of transactions , so as to carry out a 51% computing power attack. Even if it reaches 10,000 TPS, 90THash/s can still perform a 51% attack. What is the concept of 90THash/s? The computing power of one Antminer S9 mining machine is 13.5THash/s, and the computing power of seven Antmining machines can exceed 90THash/s.
Even if it takes an hour for ordinary users to initiate a transaction, seven S9 Antminers can complete the double-spend attack on IOTA. IOTA is faced with a choice: to let users endure a longer waiting time, or to make the threshold of breaking IOTA lower?
Which IOTA to choose? IOTA chooses neither, IOTA chooses centralization!
In order to solve the above contradictions, an additional centralized Coordinator is used in the IOTA network to regularly verify DAG and transactions. This makes IOTA effectively a centralized system. IOTA claims that this centralized Coordinator will be canceled in the future. However, based on the above calculations, even if the network bandwidth is increased by 100 times, even if users are willing to endure 1 hour to send a transaction, 700 S9 mining machines can still launch a double-spend attack on IOTA. Correspondingly, the total network computing power of Bitcoin is about (50 EHash/s), which is equivalent to 4,000,000 S9 mining machines.
Advice to IOTA
Little C believes that there are two roads ahead for IOTA, either continue on the road of centralization, or actively promote PoW outsourcing solutions. Let specialized miners handle transaction packaging, PoW mining and other matters, and let users pay for miners. Abandon irresponsible rhetoric such as no transaction fee, no blockchain, unlimited expansion.
But even if IOTA rehabilitated and accepted the suggestion of Xiao C, IOTA is essentially a block DAG in which one block can only contain one transaction. It violates one of the most common common-sense optimization ideas in system design -- batching, which is batch processing. This means that the overhead brought by metadata will increase significantly, and it will bring many performance challenges in system implementation. For example, when the throughput rate of the blockchain system reaches thousands of transactions per second, network bandwidth usually becomes a bottleneck. Transactions are the main data that needs to be transmitted in the blockchain network. If each transaction is accompanied by a lot of DAG-related metadata (such as references to other DAG nodes), the pressure on network bandwidth will increase significantly. In addition, maintaining a DAG with transaction granularity will greatly increase the complexity of local calculations. IOTAs DAG needs to maintain a cumulative weight for each transaction node, that is, the number of all transactions that directly or indirectly reference the transaction. When a new transaction is added to the end of the DAG, the cumulative weight of all transactions that it can directly or indirectly refer to needs to be updated, and this complexity is proportional to the number of transactions. Assuming that the throughput rate of the system is 1000TPS, then the number of transactions in the DAG will reach 3.6 million from the start of the system to 1 hour later. A day later it would hit 86 million. Afterwards, each new transaction will bring about 100 million weight updates, and the complexity will increase.
Little C has something to say
We need to recognize a few facts. Throughput is limited because of limited network bandwidth. The high difficulty of PoW is to avoid being easily attacked by 51%. The existence of transaction fees allows full-time miners to solve the needs of ordinary users. The design of one block to accommodate multiple transactions improves the efficiency of operation. If you cant see the principles behind these, but blindly remove the speed limit, remove the transaction fee, remove the block, and then use an underlying technology full of loopholes to design product solutions and tell a so-called Arabian Nights story, then only Will ruin the future of this project.
(Note: If tokens are issued additionally, inflation is essentially the payment of service fees by token holders to miners.)