Getting started with blockchain | Bitcoin's success book: How does it solve the double flower problem?

The Bitcoin White Paper, released in 2008, shows the world the first fully functional P2P cash transaction system. In 2009, the father of the mysterious bitcoin, Nakamoto, released the first bitcoin client at SourceForge. Bitcoin was officially born, and a new special adventure kicked off.

The core of Bitcoin's success is the resolution of double-spending, which led to the failure of all previous attempts to create other digital currencies. In this article, I will answer what is a double flower problem and show how the blockchain bitcoin solves the double flower problem to secure the funds for all users.

Before Bitcoin, there was already Bit Gold.

Bitcoin is not the first attempt to create a functional digital currency system. In 1998, Nick Szabo, a pioneer in the digital currency field, came up with the idea of ​​Bit Gold. In 2005, he put forward his own ideas in a blog post. From here, it can be seen that Nick Szabo could have developed from Bit Gold. Bitcoin.

However, in 2008 he published an article on Bitcoin on his blog, which showed that his view of this iconic cryptocurrency is different from that of Bitcoin's anonymous creator, Nakamoto. A key point in Nick Szabo's work is related to his attitude toward Bitcoin.

For Nick Szabo, Bitcoin is first and foremost a means of value storage, not an exchange medium.

One of the reasons for the previous attempt to create a digital currency (such as Bit Gold) was that it could not solve the double flower problem.

What is the double flower problem?

First of all, it is important to define what is a double flower. As the term strongly implies, double spending means spending the same currency twice. Since legal tender money exists in the form of coins and banknotes, this problem does not occur at all.

Consider the following example:

You shop at Walmart and buy a $30 item. You pay $20 and $10 in cash. Once these notes are boxed, you can no longer use them unless you steal them yourself.

Why is there a double flower problem with digital currency?

Digital currency is different from cash. When you trade in digital currency, you will broadcast the transaction to all nodes on the network. A node is a software computer that supports running the cryptocurrency involved. These nodes need to receive and confirm the transaction. It takes time. Therefore, the questions are as follows:

How can I prevent someone from copying and resending the transaction to the network before the network confirms the previous transaction?

How does the network know which transactions are real?

Bitcoin does not have a central bank to resolve disputes

Prior to the invention of Bitcoin, digital currency transactions on the Internet were monitored by banks and financial institutions. Banks act as mediators in financial disputes. The problem with this approach is that transactions may be cancelled. All of this leads to higher transaction costs and longer verification times.

Bitcoin sets a goal for itself by addressing a system that is based entirely on cryptographic evidence rather than trust brokers. In this sense, Bitcoin makes it possible to exchange bank types without the need for a bank.

Every bitcoin can track its owner chain

In order to understand how the Encrypted Evidence System works, you must understand what Bitcoin is.

In the Bitcoin white paper, Bitcoin is defined as a digital signature chain.

It can be transferred from one owner to another through a digital portfolio. Each portfolio has a public key (also known as an address) and a private key. The private key is an encrypted password that only the owner can know.

When the owner of Bitcoin decides to transfer Bitcoin to someone else, the transaction will be signed with the hash of the previous transaction and the public key of the next owner. Then add this hash to the end of Bitcoin. Therefore, each bitcoin is equivalent to a car's log, which records all previous owners.

What is the cryptographic hash function?

The cryptographic hash function is a mathematical algorithm that accepts string input of any length and outputs a fixed-length string whose size can be arbitrarily set. This is a one-way function, meaning that multiple inputs of the same parameter settings will produce the same output and, in addition, it is not possible to push the input backwards from the output.

More importantly, two different inputs are unlikely to produce the same output value. In fact, each output produced by the cryptographic hash function is unique. A new hash is added each time a bitcoin is transmitted. Therefore, you can verify the owner chain of each bitcoin by simply looking at the signature embedded in the bitcoin.

These are especially interesting, but they don't solve the double flower problem. The beneficiary cannot verify that the former owner of Bitcoin did not use the bitcoin twice. One solution might be to set up a central bank that allows verification of each transaction to prevent duplicate spending problems.

But in that case, we will lose the meaning of the birth of Bitcoin – decentralized. Bitcoin was originally designed to solve the problems that the central bank brought in banking transactions. What is the point of replacing a central bank with another central bank?

Bitcoin blockchain is a general ledger

In order to solve the double-flower problem, Bitcoin relies on a general ledger, also known as the blockchain. To prove that there are no duplicate payments, the blockchain allows all nodes to know every transaction that is made.

With Bitcoin, all transactions are made available to all network nodes. The latter can then agree on a single history of receipts for the order.

Therefore, Bitcoin avoids the double flower problem by considering the transactions that most network nodes have agreed to arrive first.

Do not consider attempts that occur later and therefore cause a double flower problem.

Description of bitcoin timestamp

Nakamoto said in his Bitcoin white paper that using a timestamp server is a solution to prevent double-flowering problems.

The Bitcoin timestamp server takes a hash of the bitcoin transaction record of a block and broadcasts the hash value to the entire network.

This timestamp associated with the hash will prove that all the data contained in the hash cannot be created after the hash is published.

Since each timestamp contains the timestamp of the previous block in its hash, it provides an unchangeable record of the order in which each transaction occurred. Therefore, timestamps will enhance each other's role.

All Bitcoin transactions have been publicly recorded since their creation

In order to fully understand how the blockchain bitcoin protects itself from the double-flower problem, it is worthwhile to recall that since the first time Bitcoin was sent by Ben Cong in 2009, the company has kept a complete history of all transactions.

Since each transaction of the Bitcoin blockchain is connected to the previous block by the created cryptographic hash, the past record cannot be modified.

The more well-known name of the recorded transaction history is the blockchain, adding a new trading group (ie a new block) every 10 minutes.

Developing bitcoin blockchain

Before we finish, let's talk about a bitcoin blockchain example that will explain the problem. You will consider that you have a bitcoin that you want to spend twice. Let's imagine that you bought a product worth 1 bitcoin, such as Microsoft, at a merchant that accepts bitcoin payments. Now, what happens if you try to send the same bitcoin to another bitcoin address?

You can have a try!

As you can see, there is no mechanism to prevent malicious people from trying to spread two transactions in the same bitcoin.

In this scenario, both transactions will enter the unconfirmed trading pool. What will happen next?

Your first transaction with Microsoft will be confirmed by Bitcoin miners and verified in the next block. Therefore, the transaction will be stored as a cryptographic hash in the Bitcoin blockchain.

Of course, the timestamp of the previous block was recorded at that time. It is by relying on this timestamp that the node of the blockchain bitcoin can determine that the second transaction is invalid.

The second pen will be rejected by the network and will never be confirmed.

The confirmation here means that the block containing the transaction has been added to the blockchain. Since each block is connected to the previous block, the merchant only has to wait for a certain number of transactions to be received to ensure that the received bitcoin is not spent twice.

Therefore, the double flower problem has been well managed and solved!

in conclusion

In summary, you must know that the Bitcoin blockchain links this information to all nodes of the Bitcoin network by associating timestamps with the transaction group, avoiding the double-flower problem. Since transactions are time stamped on blockchains and mathematically related, they are irreversible and cannot be forged.

The article is from Medium, and the translation is provided by First.VIP_Annie. Please reprint the information at the end of the article.