# The secret hidden in the characteristics of currency circulation, how does DCEP elegantly solve the "double-flower problem"

As we have talked about in the previous article, the account system can perfectly solve the problem of double spending caused by data as currency, but due to this account mechanism, the circulation of currency will lose the parallel characteristics, and it is difficult to be in an independent system To accommodate a large number of transactions at the same time.

So, how can we make these accounts parallelize data processing?

In our previous account system, different user accounts recorded a number, and we used a number to represent the amount of currency held by a user. But now we no longer use a number to represent the amount of currency in the account, but instead convert each currency into a separate data segment and record it in the ledger.

When the user wants to conduct a transaction, he only needs to select a part of the currency, and copy these currencies to the new user, and mark the currency in the original user's hand as invalid.

Assuming that there are 100 currencies representing one dollar in Zhang San ’s account, and each one dollar currency has a unique number, then when Zhang San transfers 50 yuan to Li Si, Zhang San only needs to choose in his account After issuing these 50 currencies, I told the account manager that I would transfer these 50 currencies to Li Si. After the account manager receives such a request for information, he will mark the 50 currencies as invalid in the account. At the same time, 50 new one-dollar currencies were generated in Li Si's account.

This processing method is also a method adopted by the so-called Bitcoin UTXO structure. Its advantage is that it allows currency to be transferred from multiple accounts to multiple accounts simultaneously. During the transaction, the system will automatically add a time stamp. If the user pays two people with the same UTXO, the nodes in the system only confirm the first one received.

However, in fact, Bitcoin transactions are not implemented by the 50-dollar one-dollar approach, but each currency has its own denomination.

This is also easy to understand, because since the currency can be generated and destroyed, why not directly generate a 50 yuan, it is more simple and convenient.

In the Bitcoin account book, the currency is recorded in the form of a string. Each currency has its own unique ID. This ID is determined by the UTXO transaction hash value and the location index in UTXO.

The advantage of this bookkeeping method is that the transaction logic is clear. It can analyze the dependence relationship between transactions through algorithms, and can achieve a certain degree of transaction parallelization.

Although the problem of parallelization is solved, the concept of real currency also exists in the system, but users do not actually own these currencies, they are stored on the blockchain.

If so, why don't we let users "hold" these currencies?

It sounds like this is just a simple operation, as long as the data record of this currency is taken from our ledger to the user.

But this small change has enabled our entire system to achieve a qualitative leap.

In fact, this is the design logic of DCEP.

Let the user actually hold the character string representing the currency. These string data are signed by digital signature technology to ensure that the currency is indeed issued by the central bank.

In this way, the entire DCEP system got rid of the original ledger. It is not just value but cash that flows in the system. All user transactions will be expressed as an exchange of encrypted strings. In this way, the equivalent relationship between the currency circulation process and cash is truly achieved.

This method can really make the circulation of digital currency simulate the circulation of real currency, which is essentially different from any existing way of account book recording.

In the original form of ledger, what the user has is a string that proves your identity, not cash. Cash is placed in the hands of the account management organization. In other words, users only have the value of money, not the physical attributes of money. Users never know what the regulatory agencies have done with their cash.

In addition, users in life do not pay attention to the number of the currency stored in the bank. They only need to consider the denomination of the currency when using it. And such a design will make the currency exhibit different characteristics from real cash.

For example, the currency recorded in the account can be divided, and in theory this division can be carried out indefinitely. There is no difference between two identical unary in the account system, they are just a number recorded in the system.

Speaking of which, I have to mention a concept from the blockchain industry-NFT.

This concept is different from the way the value of the bank account is recorded. Its full name is a non-homogeneous token.

Simply put, every currency is different. Like cash, although the value of two 100-dollar currencies is 100 yuan, they are physically different.

In reality, every real currency can be held in the hands of anyone. The physical attributes and value of money are managed in a unified manner. Each currency also has a unique number, which can be used to track currencies, while also ensuring the independence of the currency itself. Every currency is indivisible. We cannot tear a hundred-dollar bill in half and use half of it as fifty yuan. Then, if we need to adjust the denomination of the currency, we must exchange the currency in our hands.

The difference between these two systems is essentially the difference between cash and accounts.

From this perspective, the design pattern of DCEP shows that it is a kind of real cash.

Any of its attributes, including circulation characteristics, are exactly the same as real cash.

On this basis, since data can be transmitted and managed remotely, DCEP has a greater advantage than cash.

As a form of cash, DCEP's technical design cannot of course be completed by the account mechanism.

Although the digital currency can be parallelized after reaching the user's hands, considering that the data itself can be copied, the digital signature used to ensure the authenticity of DCEP can be used even after being copied For correct verification, we still need to solve the "double-spending problem" of digital currencies.

The solution to this problem lies in the circulation characteristics of cash currency.

As I said before, there is a unique number on every piece of cash.

In fact, this number is the key to solving the DCEP double spend problem. By numbering, we can solve the "double-flower problem" elegantly.

The problem of the "double-spending problem" is simply that the payer has paid a sum of money to the receiver, but still has the right to control the transferred currency. In other words, the money was owned by two people at the same time.

From this perspective, the core point of avoiding currency "double spending" is to ensure that a currency can only be owned by one person at a time.

In the DCEP scenario, through the number of DCEP itself, we can successfully track the owner of each currency.

Therefore, under the DCEP system, the way to solve the problem is to construct a registration center to record the mapping relationship between the DCEP string number and the owner's identity number.

As the process described in the figure, when Alice sends Bob a digital currency, Alice first sends Bob the digital currency string she owns. At the same time, Alice will also notify the digital currency registration center that the digital currency registration center's own ownership of the currency 0x001 has been transferred. The digital currency registration center will verify Alice's identity based on the digital signature information sent by Alice to ensure that Alice is indeed the owner of the currency 0x001, and modify the currency's ownership record to Bob.

Although we use a registration center to record the identity changes of all currency transfer processes, this center does not limit the performance of the entire digital currency. Because each currency managed by the digital currency registration center is independent of each other, it naturally becomes a stateless characteristic. On this basis, the entire system can be extended in parallel indefinitely, which means that the core system of DCEP can theoretically provide high-performance support for unlimited expansion.

As for Stateless, this is a computer term.

Stateless design can ensure that there is no performance bottleneck in the entire system. As long as the design of any system meets the characteristics of Stateless, the performance of this system can be infinitely expanded.

In the entire digital currency registration center system, the ownership record of each currency is independent, just like the process of real cash circulation in society.

In a sense, the design goal of DCEP is to provide support for the currency circulation process throughout the country and the world. This has high requirements on the performance of the entire system.

The technical solution adopted by DCEP to simulate the real cash flow process can not only skillfully solve the double-spending problem that may occur in digital currency, but also use the parallel characteristics of currency circulation to ensure that the currency settlement process can be perfectly parallel deal with.

Regardless of the form of the cryptocurrency on the blockchain or the technical characteristics of the implementation, the design model of DCEP can be said to be a completely different design model from the blockchain.

In essence, no matter what form the blockchain takes, it is a form of ledger, and the realization of DCEP is a real cash.

Obviously, the design of DCEP is more in line with the needs of the digital currency scenario.