How to understand the expansion of the bitcoin system
Related to bitcoin, one of 2016’s most concerned about the topic, is the lack of good plan to promote future growth and its expansion.
I think this is strange, because anyone rely on any system should at least do some research in this year and the next 5 years or longer, it can achieve what kind of growth, and whether it can do what we want.
In this article, I want to do a survey, we can expect about bitcoin what kind of scale, according to the system, what we need to do to get more expansion.
The primary reason is the value of bitcoin, bitcoin is promised, in the near future will bitcoin is used by millions of people and is regarded as useful. Any money only when enough people using it have value. Only when money can actually use, it has value. If no one pay for it, its value will not be realized.
Therefore, the number one goal is to make millions of people use bitcoin in their daily lives here, “use” is defined as at least once a day trading. As with any technology, we believe that this technology can use tomorrow, even this year, because the growth need time, need to build a system of time.
Therefore, one of our goals is that 50 million users every day to use the bitcoin network to send a transaction. Not today, but in the next 5 years.
A further goal is for home users, they can deal with bitcoin blocks speed should be at least five times the speed of creating block. This means that if a node off the net for an hour, it will take about 20 minutes, you can catch up with the new block (backlog and generated in the backlog of all the new deal).
The speed is 5 times faster and better, but not up to the block creating speed is too slow.
Or, the present theoretical support is what?
Bitcoin system is composed of software to all nodes, after several years of development has matured. But developers have not really in the view of the user base growth note. So we see competitors BitcoinClassic and BitcoinUnlimited began to participate in the competition. As usual, the competition is good for the end user, we see the emergence of some future revenue commitments.
But let us see what today we can support the transaction load.
Last week, forum.bitcoin.com published a video download time. Fully verify and check for 7 years, or 420000 blocks of history (from the first day of bitcoin). The use of mid-range hardware, 75GB data need 6 hours and 50 minutes to complete the verification. Mid-range hardware is not cheap, but it is certainly not the top hardware or server hardware. In other words, this is a good baseline system.
Look at what has been done in 6 hours and 50 minutes:
From the height of 295000 blocks to the height of 420000 blocks (125000 blocks) of each transaction signature have been verified.
From bitcoin nodes around the world where you have downloaded 75GB data.
A UTXO database contains 11 million transactions, create 40 million did not use bitcoin address. (you can get information from the TX set RPC call).
The 125000 block contains 104847758 pen all verified trading. This is the 105 million txs.
We know that this is not in the adjustment settings under the condition of complete. This is a Classic1.1.0 node (the performance equivalent to BitcoinCore0.12.1)
What need to work?
Let us see, and our goal to compare with our bottom line. Most people can always love software as soon as possible, but the priority is very important, we should look at what needs to pay attention to.
Our goal is, a single node can handle about 50 million transactions in 24 hours.
We note that, in 6 hours and 50 minutes of the baseline examination, our node is actually in the transaction to download, storage and inspection of nearly 105 million. You can download and verify the calculated speed is 368 million transactions every day.
This means that we have 50 million transactions per day for the next 5 years the target for today’s bandwidth and CPU power is not a problem. In fact, our baseline system (Note: refers to the baseline system mentioned in the mid-range hardware) can use a factor 7 beyond our goal.
The number of today our baseline system can handle 7 times in the next 5 years of our goals!
Today, bitcoin node every independent can download, storage and verification of 368 million transactions. This magnitude is many times the amount of bitcoin now.
How I understand the system expansion?
The typical family point
To completely verify all nodes of the block, to ensure that everyone is honest. It also brings me peace of mind, if I believe my node, I need not believe anyone else. So I see, you will get a small community gathered all nodes. You can let your family use it, or just to support the community, you will set up a community football club or church. People will make their mobile phone wallet has at least one complete end node they trust from his community of people.
This retains bitcoin’s greatest assets, you don’t have to trust the government or the bank. Usually it is common, people believe that their local church or football club.
These nodes do not need to save the block from zero height complete history block. It will use the streamlined. The use of today’s hardware, does not mean it is not able to block history for all services, but it absolutely can easily obtain a month history block. However, this means that we need to make the software more intelligent. Let’s look at some lean thought.
Today’s hard disk capacity is very cheap. In the current block size limit, 3TB disk can bitcoin historical data storage for 75 years. But if we start to reach our goals, and how will it be. We need what kind of hard drive?
The answer is, we don’t need any big things. Because of the block bigger, so we need to have a larger hard drive, this idea is a misunderstanding. In fact, we should do some simplification, it can make everyone without investing in more storage space.
Finally, a big performance node that our Internet connection speed. In order to achieve our goal, we need to be able to achieve 24 hours to download 50 million transactions, the average transaction accounted for a 300 byte data.
Ideally, if the node will have a period of time off, we should take 5 times faster to download and then block the line, to ensure that nodes can “catch up” with the latest block. We may also want to add some overhead to the other part. But today the download speed of 1.39Mbit almost everywhere. 2GB we need to achieve in 5 years plan 1440 times faster today in countries such as Japan is realized.
The family node need not worry about, even every day about 50 million users huge bitcoin growth. Their hardware and the Internet can easily cover them, especially in about 5 years, may have created more optimization software.
Note that there is no dependence such as Moore’s law, we do not need to increase the hardware technology, we can achieve the goal.
Typical users will use mobile phone or hardware wallet. If the user uses a lightweight client (SPV) can achieve safe and fast payment, the actual hardware requirements are really low.
Although the wallet also need some optimization work. In the use of the network to update the status of the wallet, they are usually quite greedy. Although useful, but in many cases, do not need to do this, for example, when I was in the flow of data roaming overseas is a very expensive case.
Before creating a payment transaction, does not require any network communication. Only the actual payment itself needs to be transferred to the bitcoin network.
The typical use of mobile phone users in the chain operation, the expansion of this thing, this kind of user is hardly what needs to be done.
Although the thin client (thinclients) availability and related topics do need to do a lot of work.
Typical mining nodes
The miners need a complete node. Here “all” means it verifies all transactions. In addition to meet the family node demand, miners also need to quickly connect with other miners, and fast broadcast block transfer to other miners.
As for the typical family node that, as part of the network today, most of the bandwidth and hard disk capacity and speed of CPU is large enough.
In addition, the miners use their nodes created block. This means that they need to deal with a pool of memory without confirmation of the transaction, and then create a new block. Now in the process there are some optimization, but also can make more optimization. For example, in the block before returning, block chain using getblocktemplateRPC call check just created to verify the effectiveness. The inspection will take a long time, the simple solution is to return and verify the weakened block, so the miners can begin to cross validate mining (should be at least 100% through the case) (translator’s note: this sentence I may not confirm, retain the original: Thischecktakesquitealotoftimeandasimplesolutionwouldbetodecouplethereturningoftheblockandthevalidationsotheminercanstartminingoptimisticallyoverthecheckpassing (itshouldpassin100%ofthecasesanyway)).
When the block becomes larger, more data is returned, and the system is using JSON, which is almost the type of data container large binary data to block the worst. Replace the RPC interface with a simple thing, but the communication format into binary, it is relatively easy to do (probably a month of the project) and may not cause the miners, the long delay (translator’s note: this sentence translation may not be accurate, the original is: likelyneededforminerstonotendupwaitingtoolongoninterfacedelays.).
In our baseline node, we explained that from a new node from zero to full synchronization takes 7 hours. If we will block extended to larger size, the situation will not be so. It will cost a lot of time to do the initial synchronization. However, the miners need node synchronization. BitcoinClassic has made great changes, which will greatly shorten the verification time. It introduces dynamic checkpoint, through a set of a block within a week without head information bifloral, transaction data node allows the miner to skip verification (translator’s note: this sentence translation may not be accurate, the original is: Itintroduceddynamiccheckpointswhichallowthenodetoskipvalidationoftransactiondatabyassumingthataboutaweek sworthofblockswillnotbebuiltontopofdouble-spenddata.). This will make a start from zero synchronization node can delete transaction verification millions.
For the miners, for the future of bitcoin another suggestion is that a new node can point to a known and trusted node. The new node will need to receive from the quick start the trusted nodes and run UTXO and all other details. This means that in 10 minutes, after downloading a few megabytes of data can run a new node.
The mining, the most important improvement is the use of various methods to ensure fast download and upload new block.
The first is a very thin block (xthin), this is the only cost 25KB data can pass a 1MB block to all miners. This expansion is linear, so the block chain transmission 10MB need to send 250KB data.
Another method is called “optimistic mining technology, it helps the miners by dividing into two parts from the block. One part is super fast notification of new blocks. Just send block header information. Receiving this header information can confirm the validity of the miners to prove its workload, and in the head start out piece of information. When the complete block arrives, a new block contains the transaction can be seen. All transactions in the memory pool will be added to the new block, finally, creating new blocks will be as much as possible to add the transaction, then let the miners continue mining.
A mining node does not need to include the wallet in the node, also do not need to store the historical blocks in the node, so they can be reduced.
Many of these techniques have been developed, there are plans to complete in the next year or so. In order to achieve our 50 million users every day in 5 years after the program, most of these techniques is enough to make a miner can remain connected to the bitcoin network, without bitcoin investment in a high-end server node.
I tried to target the 50 million daily users. From today onwards, the target is a huge growth. But to make sure that we do right, my goal is set to complete in the next 5 years.
Bitcoin expansion is a very tedious work, requiring little effort, because the system has proven simple modern can be easily extended to the current block size block size limit of 10000 times.
The whole system expansion needs more work, mainly because the miners have not received many new features ready for the expansion of the security. The majority of these characteristics can be added in a few months, including the extremely thin blocks by (xthin) and the already developed optimistic mining technology.
I want to give the conclusion is: 50 million user / day is not only the goal of up to 5 years, we will be very easy to do.
In this document did not mention like lightning network skills, because there is no need. Bitcoin can be quite easy and almost no risk to achieve Chain expansion. As the lightning network as the idea of the existence of the risk is very high, because there are too many unknowns.
Now the biggest problem on the expansion of the 1MB block size limits of agreement. Should as soon as possible to delete this agreement.