List of articles

brief introduction

Bitcoin network is proposed and operated by Nakamoto as an experimental network . What I didn't expect was this experimental network , It has become the leader of the virtual currency world . It is estimated that Nakamoto himself had never thought of this ending .

Since it's an experimental network , What pain points are hidden in the bitcoin network ? Come and see .

*** Bitcoin network

Bitcoin network is based on P2P Architecturally . There may be thousands of nodes in the whole bitcoin network .

So here comes the question , A network of so many nodes , You're going to get *** Do you ? What kind of *** Well ?

Here are three *** Ways and means :

  1. Consensus ***(51%***): If a person's mining ability , More than the computing power of the whole network 51%, You can decide the content of the virtual currency network block at will , Such as canceling transactions or creating virtual transactions , It means , The whole network of virtual currencies collapsed , All virtual currency assets will be held in this hold 51% In the hands of the calculators .

  2. Selfish mining ***: The so-called selfish mining , It means to be a ” Selfish mines ” Dig into new blocks , Before it has to be submitted to a network node , They kept it in private . The theory is based on ” Selfish mines “ Keep the privacy of the block , Let the rest of the network computing power waste resources to mining , such ” Selfish mines ” Get the first chance when you dig the next block .

    “ Selfish mines ” You have to watch other mines , Predict when they will discover new blocks . When ” Honest mines ” When the radio found a new block ,” Selfish mines ” And you have to start a Sybil Attack( witch ***) In order to get the recognition of the network for the blocks they steal . The block header, of course, has a timestamp ,” Selfish mines ” There must also be enough Sybil The node reports that it is ” Selfish mines ” Find blocks first , So the network will accept reports and reward ” Selfish mines ”.

  3. Denial of service ***: Send out a lot of small transactions , Congested networks . We need to know that the processing power of bitcoin network is very, very weak . Every time 10 Every minute comes a block , The size of a block is 1M( Of course , Now we have an isolated witness. It seems that the capacity has increased ), The size of the block is limited , Eventually, the transaction in the block is limited . This limits the transaction processing speed of bitcoin network .

    If this time the network receives a large number of small transactions , Then the real big deals will be blocked .

Empty block problem

An empty block means that the block does not contain any transactions .

So how does the empty block come into being ? If we had two A,B Ore pool .

A After the ore pool produces blocks , It's going to take time to get new pieces across the network .

B Mine pool received A After the basic data of the new block of the ore pool , In order to make full use of computing power , Before the transaction data in the new block is transmitted , We'll start to count the next block .

During the transmission of transaction data ,B The pool has a certain probability of finding the next block , Now B The pool does not know which unconfirmed transactions have been A The pool is packed into the previous block , To avoid packing up the same deal , Lead to trade conflicts , Block rejected ,B The pool doesn't package any deals .

That's where the Nuggets come from .

If you go to the history of blockchain , You can find ( From the block 364188 To 345469) altogether 18720 Block , Only one 1 A deal ( namely coinbase transaction ) There are 422 individual .

Capacity expansion

  • Clearing system

Bitcoin blockchain is global 、 A distributed 、 Of limited capacity 、 Expensive systems . The value content of each transaction is different , When the block capacity is not enough , We should protect high-value transactions into the block . High value transactions are willing to be able to pay high enough Internet fees , In order to get enough priority into the block .

With the boom of bitcoin , There will be more and more transactions , Limited block capacity makes low value transactions ( For example, send 1 Cents ) Never get into the block , Because it's impossible for low value transactions to pay high network fees .

Then the network degenerates into a clearing system , Low value trading is being driven out , These transactions are carried out by a third party bookkeeping system instead .

Before the lightning network , Third party accounting systems are mainly out of Chain Wallet providers . Users trust a third-party wallet platform , Put bitcoin in it , Transfer between users on the same platform only brings changes to account balance , It doesn't result in bitcoin transactions .

  • The cash system

The cash system means that all transactions should go into the block , So when the block capacity is not enough , The block volume limit should be raised in time , Expand the system . In a short period of time, transaction blocking may occur , But in the long run, all transactions should be able to enter the block . Everyone enjoys the great convenience and advantages of bitcoin system .

In order to solve the problem of blockchain capacity , Bitcoin in 2017 year 8 month 24 Isolation witness was introduced in Japan .

  • What is isolation witness ?

Let's review the structure of transactions in the blockchain of bitcoin in the figure above .

Of every deal input There's a ScriptSig, This ScriptSig It is mainly used for transaction verification , It only makes sense for miners who need to verify the transaction , For ordinary users, this ScriptSig It's totally unnecessary .

And isolation witness is to put this ScriptSig Out of the deal . This expands the number of transactions that can be accommodated .

At the same time ScriptSig One of the advantages of excluding transactions is to avoid transaction malleability ***(Transaction Malleability).

  • What is ductility *** Well ?

Malleability means that something is deformed , But its essence is unchangeable . For transactions ,ScriptSig Signature contained in , In fact, it can change . This leads to a change in the whole deal , Finally lead to Transaction ID The change of .

because Transaction ID It's a whole deal Hash.

Why can signatures be changed ?

Because for a certain signature algorithm , There may be several ways to sign , Therefore, many signature methods are correct and valid . But eventually it leads to a deal id The change of .

Suppose there's a situation like this . Xiaoming launched a cash withdrawal transaction on fire currency website . When the deal was broadcast to the Internet , And before it's packaged into blocks .

Xiao Ming is monitoring the deal , And fine tuned the signature of the deal , So a new deal was created , Send it to the bitcoin network .

Finally, the bitcoin network received Xiaoming's modified transaction .

however , At this time, Xiaoming can complain to the fire currency net that he has not received the transaction . The customer service of fire currency net will be based on the previous transaction id To check this record , Of course, it can't be found . Finally, fire money net will compensate Xiao Ming for a sum of expenses . therefore , Xiao Mingjiu *** succeed .

The expansion of blockchain

The blockchain size of bitcoin has been increasing , It's not just bitcoin , All blockchain networks have this problem , Because every node in the blockchain needs to save all the information on the chain .

Let's look at the size of the blockchain ,2020 year , The size of an entire node will exceed 250G!

Opposing communities

For bitcoin , Mining itself is a vote , The original idea was to use CPU Vote for units to ensure the security of the system . But as the “ smart ” Our technicians will CPU Switch to GPU, And then to FPGA, Until then ASIC mill , This road has gone away from the original intention .

Anyone in the bitcoin community will find , Bitcoin owners and miners are very different people . Bitcoin's group of miners seems to have been completely separated from the community , Many miners may not understand the ecology of bitcoin at all , They don't even care about the future of bitcoin .

So every year you can see some strange things , The community that holds bitcoin has to go through condemnation and appeal , Some mines are required to reduce their computing power , So as not to seriously affect the development of bitcoin .

And these mines will also show that they reduce their share based on morality and consciousness . Anyone who owns bitcoin , Don't you think it's weird , The fate of bitcoin is actually in the hands of people who do not necessarily care about the fate of bitcoin .

This seems to be a little bit similar , The fate of a company is not determined by the shareholders who hold shares in the company , It's those who may not own shares at all , And as long as the rich decide , Those in the financial world “ Barbarian at the door ”. Those who own bitcoin can't make their own decisions about the future of bitcoin . We seem to have set one from Nakamoto CPU One vote civilization , All of a sudden, it's just brute force , To see who is more powerful in primitive society .

The evolutionary mechanism of failure

At the early stage of its development, bitcoin mainly relied on the technical team with Nakamoto as the core to formulate relevant technical standards and develop bitcoin wallet . But with Nakamoto's exit from bitcoin , The task is gradually shifting to the bitcoin Foundation .

The bitcoin foundation is a nonprofit organization responsible for coordinating the development of bitcoin . In addition to developing bitcoin wallets , Also involved in promoting bitcoin concepts and Applications 、 Education market and communication with the government . Because the foundation itself is a non-profit organization , It can only be run on donations . But bitcoin, a lot of money in the world goes into mining machines , And it's hard for developers to profit from the development of bitcoin .

Developers often face a dilemma , Because bitcoin has gained some recognition all over the world , Its client is used by millions of people around the world , But its early core developers have disappeared , Let follow-up developers dare not change the core code , You can only do some repairs on the outside . Because once you change the core code , Any small problem can cause the global bitcoin network to be paralyzed ( This has happened in the development of bitcoin ), And not many developers are willing to take such risks . But if the changes are successful and stable , In addition to the applause of the community , There's no real benefit .

And it's up to bitcoin miners to decide whether to use the new version of the client , So any changes that are not good for the miners can't be passed , Even the bitcoin foundation can't help , So the developers don't have enough enthusiasm to modify . under these circumstances , Bitcoin client is still in a very primitive state after years of development , Not only is it not suitable for ordinary people , And it's not like the software of the Internet age . Many developers in Nakamoto's original community are constantly modifying the system , It's like Linux equally , There is no such thing as promoting the system to adapt to the development of the times through the joint efforts of the community .

solve the problem

So, for the problem of block expansion , In fact, there are already two better solutions .

The first is the lightning network :

The lightning network can be seen as a temporary billing system , for instance A and B There are a lot of deals directly , So they can build a channel in the blockchain first .

All the subsequent transactions are made in this channel ( It can be in the form of a smart contract ), Only when the channel is closed , The transaction between the two will be officially updated into the bitcoin network .

That's why A and B Save a lot of transaction costs .

And there's a side chain technology

Side chain technology actually builds a chain outside the bitcoin network . Bitcoin network is only used for clearing .

Of course , To solve the bitcoin problem , The second and even the third generation of blockchain technology platforms have appeared . Interested friends can continue to follow my follow-up updates .


This paper introduces the dilemma of blockchain network and some solutions , I hope you like it .

The author of this article :flydean Program those things

Link to this article :

In this paper, the source :flydean The blog of

Welcome to my official account. : Program those things , More wonderful waiting for you !