Original title: "why decentralization is necessary -- a brief analysis of the design route of central bank digital currency based on UTXO model"
Author: blackstone Kingslayer, a senior practitioner in the financial industry, a staunch supporter and evangelist of blockchain technology
The central bank's digital currency, DCEP, has been screaming for months but never seems to come out. As is often the case, the imagination is simple, but the implementation, is another story. Just like the current blockchain craze, which was supposed to be a technological innovation to bypass the existing currency structure and promote the internationalization of the RMB, regulators are now busy refuting rumors and cracking down on fraud.
I recently read a DCEP analysis article written for caixin by zou chuanwei, chief economist of wanxiang, which speculated that DCEP would use a centralized ledger based on the UTXO model.
(1) there is no need to decentralize
When we talk about blockchain, we tend to associate three features: tamperability, decentralization, and traceability. The concept of block chain is derived from Bitcoin. The cryptopunk represented by satoshi nakamoto skillfully integrated the original cryptography technology and introduced game theory to further optimize the Byzantine general problem in the distributed communication system. The idea of cryptographers is rebellious, extreme, and often anti-politic. From this point, blockchain is inherently "anti-bone".Web 3.0& have spent The idea is simply fascinating. So the current mainstream public chain have also flaunt community autonomy and fairness, through the white paper described how to his own vision through optimizing mechanism and game mechanism to avoid the dictatorship and evil, representative, the most primitive form of democratic rights to freedom and the desire to express Internet citizens, with infinite appeal.
But these are not the manifestations of blockchain technology that we have been discussing recently in the news and in the media. The author held a negative attitude towards the government-led development of blockchain at the beginning, and has been thinking about a core issue: how to set block nodes effectively in the application of government-level blockchain, and how to ensure that hard bifurcation of blockchain will not occur under the condition of centralized and decentralized nodes? Is there a game between nodes? This idea is to bind the decentralized consensus mechanism with the blockchain bookkeeping technology. In today's thinking, there is no need for decentralized consensus, no need to consider the game between nodes, and no need to put down the "pride". These are the least worth considering factors in the current blockchain government application. Once abandoned the complexity of the consensus and TPS can achieve exponential jump, only need to consider that a reasonable set up limited node achieve data redundancy and guarantee safety to avoid hard branch (in terms of central bank digital currency, how to determine whether the deals eventually and continuation of the longest chain principle, also need to think about the problem).
(2) the interpretation of UTXO
Let's go back to the central bank digital currency and UTXO, and to illustrate the UTXO route of the central bank digital currency, let's start with UTXO. UTXO, Unspent Transaction Outputs, meaning Unspent Transaction Outputs, is one of the concepts behind Bitcoin's underlying blockchain bookkeeping technology.
The Transaction itself. The main content recorded in Bitcoin's blockchain ledger is transaction. Once the transaction is packaged into a block and linked through the consensus mechanism (generally, confirmation of the height of 6 blocks is required), the finality of the transaction is confirmed. In the traditional account trading system, the holding amount of funds is reflected in the form of account balance, while the transfer and transfer of funds are directly reflected in the increase and decrease of account balance. This form is very intuitive, and almost all Bitcoin wallets also refer to this form. At the bottom of the blockchain ledger, however, the details of what happens are very different.
In bitcoins block chain system, the transaction is a set of is passed to the script code, code contains the transaction input and the transaction output two parts, the first produce bitcoins trading blocks for the creation of the coinbase transaction (in fact each block has been identified, the right to charge to an account of all people have the right to initiate a coinbase trading, will be dug up the block and send to yourself). The input for this particular transaction is called coinbase, which is special and is outside the scope of analysis in this article. Therefore, none of the transactions mentioned in subsequent articles in this article include coinbase transactions. The output of the first transaction becomes the first UTXO on the Bitcoin blockchain before it is consumed by the next transaction.
In addition to the coinbase transaction, the input for the normal transaction indicates which UTXO will be consumed by the hash pointer (indicating the hash value and sequence number of the UTXO transaction) and contains the unlocking script for that UTXO to verify ownership.
The output of the transaction contains two aspects: one is the number of bitcoins in the output, represented by the smallest unit satoshis, and the other is the locking script that matches the unlock script in the input.
Basic concepts. Let's go back to UTXO, which is actually a collection of all outputs that have not yet been referenced by the input in a transaction that has occurred. Simply put, the output of one transaction can be called UTXO if it has not been referenced by the hash pointer of another transaction (which has been confirmed) and is not "consumed". The full node of the Bitcoin blockchain keeps track of all valid UTXO in the entire blockchain network, forming a set of UTXO (UTXO set), which is saved and dynamically updated. The occurrence of any bitcoin-related transaction implies a change in the UTXO collection, which triggers the update of the UTXO set in the full node. When we say that the user's wallet receives a Bitcoin transfer, the wallet actually recognizes a UTXO corresponding to the account key in the block chain, and the account's private key can sign the UTXO and construct a new transaction based on the transaction input. The balance of Bitcoin held by an account in a wallet is a collection of all the UTXO that the wallet has collected in the blockchain ledger that can be "spent" by the account.
The number of bitcoins contained in UTXO. In terms of the monetary unit of a Bitcoin, the value of a Bitcoin can theoretically be refined to eight decimal places. The number of bitcoins contained in a UTXO is determined at the time the transaction is constructed and cannot be changed once the transaction is generated. UTXO can only be consumed as a whole, not as a split. The UTXO can be compared to paper money of different denominations, which can be exchanged for more small denominations to meet different consumer needs.
Consider the following scenario (single input, multiple outputs) : if we need to pay 1Bitcoin but we only have UTXO of 20Bitcoin, we will construct a transaction that consumes UTXO of 20Bitcoin and produces two tranaction outputs, one containing 1Bitcoin to pay the target party and the other containing 19 bitcoins to pay yourself. The process is like paying out a $20 bill and exchanging it for $1 and $19 bills, with $1 to pay and $19 to keep.
Consider another scenario (multiple inputs, single output) where if we need to pay 5.5 bitcoins and we happen to have two UTXO of 2 bitcoins and one UTXO of 1.5 bitcoins, we take the three UTXO as inputs and produce an output of 5.5 bitcoins.
In practice, the user only needs to enter the number of bitcoins to be paid, and the rest of the splitting and combining of UTXO is done automatically through the wallet. With the continuous occurrence of the transaction, the old UTXO is consumed and removed from the UTXO set of the full node, and a new UTXO is generated and added to the UTXO set. Therefore, the value of Bitcoin is transferred between different account addresses as the transaction occurs.
(3) further thinking
Data on the chain can be traced. As explained in the UTXO model in the previous section, it can be expected that if DCEP adopts the UTXO model, any UTXO of DCEP can be located to the transaction it is in, and then the UTXO of the previous step can be located through the hash pointer in Input and the serial number, all the way back to the coinbase transaction. Therefore, a capital chain is formed. The transfer form and destination of DCEP of any unit are clearly visible on the block chain since it is generated by coinbase transaction, which is the traceability of data.
The problem of new and old COINS. Once the utxo-based model is adopted, DCEP deals with both new and old money, and the old and new money refers to the length of UTXO history covered by the value of a unit of DCEP. For example, if your wallet received 1 dcep, actually you have included 1 dcep UTXO, the value of the dcep UTXO contains 1 can come from a combination of many small units UTXO together as the input of the transaction, may also be a single large UTXO split, however, the above mentioned in the previous step UTXO and contact before a UTXO produce again, So the value of the 1DCEP that you have at this point is passed on through a lot of historical UTXO, it's like a dollar bill goes through a lot of hands before it gets to you, and you have old money; Consider another scenario. If you just got the UTXO of 1DCEP from the coinbase transaction, or if it's only a few steps back from the coinbase transaction, then you have a short history of the UTXO of 1DCEP. In this case, it's new money.
Why distinguish between old money and new money? The newer the money, the shorter the history of the UTXO, the less likely it is that the DCEP will pass through illegal transactions or gray areas, and the cleaner, so we all like the new money and reject the old. Given the principle that bad money drives out good, new COINS are stored away and gradually withdrawn from circulation, eventually flooding the market with "rusty" old money. In the actual operation, we don't really need to consider these issues, because we can't see the contents of the blockchain chain, but only show us the Numbers on the wallet. It is usually the financial institutions of the participants in the DCEP node that need to consider these issues.
Source:mp.weixin.qq.com
Welcome to join the official BlockBeats community:
Telegram Subscription Group: https://t.me/theblockbeats
Telegram Discussion Group: https://t.me/BlockBeats_App
Official Twitter Account: https://twitter.com/BlockBeatsAsia