Example: Retail CBDC with Blockchain Technology
Next: Inflation as a Form of Tax
Let’s do an incomplete exercise on implementing CBDC with blockchain just to see what that could mean.
Note that a CBDC can well be implemented using centralised database using similar database tools that the major Internet companies use for keeping their billions of users’ data. Often these solutions are based on splitting the data into smaller fragments on some user data and/or using some of the so-called NoSQL and big data platforms. So blockchain is by means the only option.
The key characteristics of the CBDC is that it will be implementing a real time payment network efficiently, ideally have anonymity on the ledger level for participants and allow real time taxation at source.
As a sneak peek, the high-level view of such a system could look like like image below :
Transactions are recorded in a blockchain. I.e., it acts both as the ledger (storing transfers of money and thus indirectly balance of each account) and payment clearing network at the same time.
Central bank issues new money simply by writing to the blockchain update to its own account balance. After that it can transfer money to other accounts.
Transactions are validated by a set of validating nodes that are run by trusted parties. These parties can be for example banks or financial institutes of some kind. Since participation is only by known and trusted parties, there is no need to resorts to expensive consensus algorithms like in the public chains that are trustless by design. This lowers the costs significantly and speeds up the system. Central bank itself acts as a validator also.
End-users interact with the system via their digital wallets.
Let’s go through the system a little bit more in detail
Distribution model
In realistic implementation the validator nodes are existing financial institutes where customers already have an account (they have skin in the game unlike any newly formed organisation would have). These institutions have performed know-your-customer (KYC) checks sparing central bank this work that it is ill equipped to do.
These financial parties can order CBDC from the central bank and store it in their digital wallets. Then they can offer their end-users the ability to open digital wallets storing CBDC.
An alternate equally well working model would be that as part of you renewing your passport, getting drivers license or identity certificate, you would also get issued digital identity. This digital identity is just your name + private and public keys.
Privacy
The validating nodes see all transactions. This will allow all these parties to see how much trade for example a particular wallet has in terms of their CDBC transactions at minimum. If a party has only one wallet address and it is public (for example a shop of some kind), this means that all validator have a good look into how their business is doing.
On positive side, a bank can use this information in handling loan application, on negative side, there is a high likelihood of this information leaking as it is a leading indicator how for example price of stocks are going to move.
A privacy preserving system would allow same entity to have multiple wallet addresses so that they can distribute value between wallets and the wallet could randomly use one of them for each transaction. Another option is to use so called mixers that take in a large amount of transactions, aggregate and/or break them into a flow of equally sized transactions over a longer time. This makes mapping to parties difficult. Some backchannel information flow is needed so recipient knows who has paid and who not. Mixers are controversial as they hinder also law enforcements work. Mixer could be a public service, but this makes it a single point of failure. Its better to have a fleet of them. As you see, getting complex systems right is a rat-race where most if not all choices are partial solutions.
Note that unlike public blockchains, the system envisioned heredoes not allow anyone else to see what is in the ledger.
Consensus Algorithm
A good consensus algorithm for our sketch system is so called proof of authority. It is based on trusted parties doing the validation of each transaction and their majority vote wins.
It works so that wallet software signs transactions that get published to the network and one of the validators is chosen (random or round-robin) to write a block. Validators check the signatures of each transaction in the block and if majority things that is is fine, it gets accepted. The is a much faster and less resource consuming process than the proof of work.
Validators have strong incentive to protect their reputation by keeping their nodes uncompromised and highly performant.
As an alternative for this, so called zero knowledge proofs are emerging. When this bit was written, they were still immature. (and there is a need to limit the scope of writing to something, zk-proofs are also complex animals requiring good intro, none existed). Your mileage may vary. Every choice is limited by what was available at time, and when you read, the continental plates may have shifted.
Digital Wallets
Users have digital wallets through which they interact with the system. Wallet has one or more addresses of the user and stores the private keys. These private keys are used to sign transactions.
If the user loses their private key, there are multiple ways to get it back. There can be a word list-based mechanism (list words that can be used to regenerate the key). These are called seed-phrases and consist of 12 to 24 words normally.
Another option is so called social recovery. Its based on having a smart contract on the blockchain representing you wallet. That contract has your key and is used to sign transactions. In addition it is associated with a set of other wallets (“guardians”) that can be used to change your key if you lose it. A majority of these guardians (for example 3 out of 5) can change your key to a new key that you have generated for yourself. The guardians do not learn what is your new key.
Guardians normally are your, your friends’ or other trusted parties’ wallets.
Transaction Fees
There need to be some format of transaction fee, even a small one. Otherwise, the payment system is subject to distributed denial-of-service attack (DDoS). Without it, a fleet of compromised devices (phones, toasters, TVs, cameras) might generate huge load of transactions moving small amount of CDBC between a few accounts. When friction in the form of transaction payment is added, this becomes costly.
Taxation at Source
Clearing payments allows to handle taxation in real time when the transaction happens. This could be implemented as smart contract interfaces that implement the taxation laws when payments are made to companies.
This allows to carry in real time VAT and municipal tax. Some countries have state/province and municipal tax and these do differ, so location of parties would have to be known as well.
Reducing Bookkeeping Fraud
Enterprises need to have public addresses to which customers pay when they purchase something.
At same time tax officials (through central bank perhaps) see potentially all transactions between enterprises. Knowing the identity allows the tax officials to automate many checks. From the ledger it is possible to read each transaction and compare this to the bookkeeping of a company when audits are done. Comparison can be done from the books of both the sender and receives making it impossible to hide or add stuff to the books without being caught.
Reducing Financial Risk for Loaning and hence Loan Rates
As noted earlier, system can be set up so that only validators see the complete transaction data. Other parties can be organised access to this data for example via a sandbox similar to one visioned for health data.
This allows loaners to make their customer specific analyses. And research institutes could do macro analyses on the economy.
Macro would tell in real time how the business environment in the country is developing, how different segments are doing, how employment is moving. And on micro level where a particular company is going.
Combining allows loan givers to perform much better risk analysis when they issue loans. This should lower the costs for lending to private enterprises. Today models are based on inaccurate visibility leading to large risk premiums being applied often unnecessarily. Lower loan rates should boost the economy. Loan givers here would be both banks and peer-to-peer lending systems.
Stimulus payments
Its also very easy for governments to issue stimulus packages. First check if people have accounts in multiple banks, and then do the payment only once.
As digital money is “programmable”, its possible to add rules to it. For example that you need to spend it within next 4 weeks in basic supplies like groceries and household items etc.
Extension to Public Digital Identities
If the digital identity is issued as part of passport renewal, the identity can be used to start companies, sign contracts on behalf of a company (where you have rights) or sign documents and contracts as individual persons.
Extension to Public Records
Keeping digital records of ownerships is a natural addition to the portfolio of blockchain based services. These can be among others:
Land and vehicle registers
Bonds and other Securities
Titles from major educational institutes and other academic achievements like individual course completions
During sale situation, the change of ownership and payment can be done simultaneously. Taxes and other duties can be settled at the same time by the smart contract performing the operation.
For job markets the chain based approves means that it’s very easy to verify educational achievements and additional courses completed.
Single system for all reduces resilience (single point of failure) and needs to be weighted in that light. At the same time, it will give government and economists clear and real-time understanding of current state of the country and where it is heading.
Standardised Template Contracts
Companies have costs when they do contracts with each other. There tends to be shorter or longer period when each party reads through complex legal clauses and suggest modifications.
To speed up economy, we could move towards a world where a number of template contracts are available on the chain. Parties could use them and sign simple two- or three-party contracts. The smart contracts would automate the operational parts of the contracts.
Being standardised allows a body a knowledge forming what are the good, bad and ugly side effects of each contract model (there is no perfect contract system).
This is one way for the government to boost economic activity as it takes away hassle from small and medium size enterprises as they need to understand the details of offered contracts or draw upon their own proposals.
Decentralised Messaging
As part of trading, it’s common for participants to enter into dialogue over the right price for more expensive items and terms of contract. Public side can also offer a secure, decentralised messaging platform to facilitate this and keep its citizens personal data private.
Whether this is needed, is questionable as lots of options already exists.
Integration
The major work in implementing such a platform is to integrate a myriad of physical payment systems. This means point of sales equipment from many vendors etc. This means commissioning the needed integration work from companies specialising in point-of-sale system.
To facilitate immediate uptake a complementing method of allowing an app to provide POS functionality and charge customers should be part of the system.
Composable Financial Services
Implementing Ethereum interfaces like ERC-20 on CBDC allows to build a composable ecosystem of financial services. There is already plenty of decentralised finance applications on the public blockchain systems. Their source code is also available. This means that the CDBC backed system could also allow more deregulated service innovation leading among others to proliferation of:
Peer lending services. Peer lending allows individuals to loan and SMEs to issue bonds. Other individuals and SMEs purchase those bonds or to lend against interest. As all the transactions are on the chain, the bond issuer or lender can authorise a third-party company or machine learning model to analyse the financial performance as information for potential lenders. The analysis results and results can also be stored to ledger allowing a second level analysis company to validate how successful different analysis vendors are.
Token Exchanges allow exchange between any arbitrary token pairs as long as there is interest to support that pair by participants. There is a protocol called Bancor that can automate that process.
Composability means that tokens of one service can be further used to consume other services. When I lend to one platform, I get tokens of that service as a “receipt” and can further use them as collateral in some further financial service.
Final System
The full architecture thus becomes: